Wireguard .. "
On FreeBSD wireguard is implemented in go.
Software installation
Using freebsd, poudriere all done and running, repositories pointing the right ways, this is easy. All I have to do is a simple
$ sudo pkg install -y wireguard
This gifts me the installation of two packages, wireguard-go, the main thing and wireguard
which does have the /usr/local/bin/wg command, but more importantly, it has
the /usr/local/bin/wg-quick which takes a ... kind of simple config
file and feeds it to wg.
Server Side
In /usr/local/etc/wireguard/server.conf on the server, I've got the
following.
192.168.3.170 is the servers IP on the tun interface with the listed peers
[Interface]
PrivateKey = serverprivate
ListenPort = 51820
Address = 192.168.3.170/32
[Peer]
PublicKey = clientpublic
AllowedIPs = 192.168.3.171/32
PersistentKeepalive = 25
Just a minor thing that upsets me with this, and confused me a lot.
ListenPort is just fine, that's the port it listens on, Address
on the other hand has nothing to do with the listening side of things but is
related to the tunnel side of things, I kind of wish it was
TunnelAddress and perhaps also a ListenAddress or instead of
ListenPort it could have been the more traditional ListenBind to
imply where the socket would be bound and hint towards a more traditional way of writing
with 0.0.0.0:51820 or :51820 or [::]:51820, but of
course that takes a lot extra work to create the parser that now just have to deal with a
simple integer.
Might be minor, but it did upset me a lot ;-)
Client Side
Very similar to the server, in /usr/local/etc/wireguard/client.conf, and
192.168.3.171 is the clients IP in the wireguard tunnel.
[Interface]
PrivateKey = clientprivate
Address = 192.168.3.171/32
[Peer]
PublicKey = serverpublic
Endpoint = 192.0.2.170:51820
AllowedIPs = 192.168.3.0/24
PersistentKeepalive = 25
192.0.2.170 is the IP of the listening server
Comments
comments powered by Disqus