I am trying to set up a VPN server on VyOS 1.3 using wiregaurd with a single client, an iPad Pro as the other end. I’m using the following:
Version:          VyOS 1.3-rolling-201912271900
Built by:         autobuild@vyos.net
Built on:         Fri 27 Dec 2019 19:00 UTC
Build UUID:       95437501-980e-48ea-aa3f-2e6182f9532c
Build Commit ID:  ef122b630db38e
My server configuration is as follows:
set interfaces wireguard wg0 address '192.168.254.1/24'
set interfaces wireguard wg0 description 'wireguard vpn server'
set interfaces wireguard wg0 peer ipad allowed-ips '192.168.254.10/32'
set interfaces wireguard wg0 peer ipad persistent-keepalive '15'
set interfaces wireguard wg0 peer ipad pubkey '<redacted pub key>'
set interfaces wireguard wg0 port '12345'
On my client, an Apple iPad Pro, I’m using the Wireguard VPN client. I’ve exported it’s configuration and have the following:
[Interface]
PrivateKey = <redacted private key of ipad client>
Address = 192.168.254.10/24
[Peer]
PublicKey = <redacted pub key of the server>
AllowedIPs = 192.168.254.1/32
Endpoint = <public_ip_address_of_vyos_device>:12345
According to the iPad client, i’m establishing a tunnel.
[NET] peer (yEjv...ti1A) - Starting...
[NET] peer (yEjv...ti1A) - Routine: sequential receiver - started
[NET] peer (yEjv...ti1A) - Routine: nonce worker - started
[NET] peer (yEjv...ti1A) - Routine: sequential sender - started
[NET] Device started
[APP] Tunnel 'wg1' connection status changed to 'connected'
I’m not able to ping client->server OR server->client.
When i attempt to ping from VyOS to the iPAD, i’m getting an odd message:
ping 192.168.254.10
PING 192.168.254.10 (192.168.254.10): 56 data bytes
/bin/ping: sending packet: Destination address required
When i ping from iPAD to VyOS, i get no response.
Show interface reveals errors and drops on the VyOS side:
show interfaces wireguard wg0
interface: wg0
  description: wireguard vpn server
  address: 192.168.254.1/24
  public key: <redacted key of vyos>
  private key: (hidden)
  listening port: 12345
  peer: ipad
    public key: <redacted key of ipad>
    allowed ips: 192.168.254.10/32
    persistent keepalive: every 15 seconds
  RX:
    bytes    packets    errors    dropped    overrun    mcast
        0          0         0          0          0        0
  TX:
    bytes    packets    errors    dropped    carrier    collisions
        0          0       597         49          0             0
Additionally,
sudo wg show
interface: wg0
  public key: <redacted pubkey of vyos>
  private key: (hidden)
  listening port: 12345
peer: <redacted pubkey of ipad>
  allowed ips: 192.168.254.10/32
  persistent keepalive: every 15 seconds
I have the following firewall rule as well… applied to eth0, my WAN interface
set firewall name WAN_IN rule 80 action 'accept'
set firewall name WAN_IN rule 80 destination port '12345'
set firewall name WAN_IN rule 80 protocol 'udp'
Any thoughts on this? Troubleshooting tips? I’m stumped… Thanks
PS… Is this a NAT thing?