WireGuard: Difference between revisions

 
(5 intermediate revisions by the same user not shown)
Line 6: Line 6:


==Server==
==Server==
How to setup a WireGuard VPN server on Ubuntu
How to setup a WireGuard VPN server on Ubuntu.
This is based on [https://linuxize.com/post/how-to-set-up-wireguard-vpn-on-ubuntu-18-04/ linuxize].


<ul>
<ul>
<li> If using Ubuntu <= 19.04, add the WireGuard PPA
<pre>
sudo add-apt-repository ppa:wireguard/wireguard
sudo apt update
</pre>
</li>
<li>
<li>
Install WireGuard.
Install WireGuard.
Line 38: Line 33:
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o ens3 -j MASQUERADE
</pre>
</pre>
* Replace <code>ens3</code> with your network interface <code>ip -o -4 route show to default | awk '{print $5}'</code>
</li>
</li>


Line 51: Line 47:
<pre>
<pre>
sudo ufw allow 51820/udp comment wireguard
sudo ufw allow 51820/udp comment wireguard
# For DNS purposes if you use subspace
sudo ufw allow from 10.99.97.0/24 to any port 53 comment dns
</pre>
</pre>
</li>
</li>
Line 70: Line 68:
Managing connections manually is a large pain.
Managing connections manually is a large pain.


[https://github.com/subspacecloud/subspace Subspace] provides a front end you can use.
[https://github.com/subspacecommunity/subspace Subspace] provides a front end you can use.


Below is my setup. I have subspace running on port 52395. Apache and certbot manages SSL/TLS and proxies to this local port.
Below is my setup. I have subspace running on port 52395. Apache and certbot manages SSL/TLS and proxies to this local port.
<pre>
<pre>
mkdir -p /home/david/wireguard/data
mkdir -p /home/$USER/wireguard/data
docker create \
docker create \
     --name subspace \
     --name subspace \
Line 80: Line 78:
     --network host \
     --network host \
     --cap-add NET_ADMIN \
     --cap-add NET_ADMIN \
    --volume /usr/bin/wg:/usr/bin/wg \
     --volume /home/$USER/wireguard/data:/data \
     --volume /home/david/wireguard/data:/data \
     --env SUBSPACE_HTTP_HOST=wireguard.davidl.me \
     --env SUBSPACE_HTTP_HOST=wireguard.davidl.me \
    --env SUBSPACE_NAMESERVER="1.1.1.1" \
     --env SUBSPACE_HTTP_ADDR="localhost:52395" \
     --env SUBSPACE_HTTP_ADDR="localhost:52395" \
     --env SUBSPACE_HTTP_INSECURE="true" \
     --env SUBSPACE_HTTP_INSECURE="true" \
     --env SUBSPACE_LETSENCRYPT="false" \
     --env SUBSPACE_LETSENCRYPT="false" \
     subspacecloud/subspace:latest
     subspacecommunity/subspace:latest


sudo docker start subspace
sudo docker start subspace
sudo docker logs subspace
sudo docker logs subspace
</pre>
To stop subspace:
<pre>
sudo docker stop subspace
sudo docker rm subspace
</pre>
</pre>