Wireguard VPN einrichten
Hinweis: Das sind nur ein paar Notizen für mich selbst, eure Bedürfnisse für ein VPN könnten komplett anders aussehen!
PiVPN
Ready to go könnte man einfach PiVPN benutzen.
wireguard-ui
Eine Alternative, um Konfigurationsdateien zu erstellen wäre wireguard-ui.
FreeBSD
Um FreeBSD als VPN-Server zu nutzen, braucht man erstmal folgendes:
pkg install wireguard-tools
Dann muss man die Firewall in /etc/pf.conf
anpassen, um Wireguard-Verbindungen anzunehmen und NAT ins lokale Subnetz zu erlauben (das ist keine komplette Konfig!):
wireguard_clients="10.20.30.0/24"
wanint="genet0"
wg_port="51820"
nat on $wanint inet from $wireguard_clients to any -> $wanint
pass in proto udp from any to port $wg_port
pass in on wg0 from any to any
Und die enstsprechenden Services in /etc/rc.conf
starten:
wireguard_enable="YES"
wireguard_interfaces="wg0"
gateway_enable="YES"
pf_enable="YES"
Mit wireguard-ui die Endpunkte konfigurieren.
Chimera Linux
Pakete installieren:
apk add chimera-repo-contrib
apk add wireguard-tools wireguard-tools-wg-quick-dinit iptables iptables-dinit
Feste IP konfigurieren in /etc/dhcpcd.conf
:
interface end0
static ip_address=10.0.0.4/24
static routers=10.0.0.1
static domain_name_servers=10.0.0.2 10.0.0.3
NAT ins lokale Subnetz aktivieren. Dafür sysctl -w net.ipv4.ip_forward=1
ausführen und in /etc/sysctl.conf
eintragen:
net.ipv4.ip_forward=1
In die /etc/iptables/iptables.rules
muss als Beispiel:
# filter
*filter
:INPUT DROP [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
# Allow all loopback (lo0) traffic and drop traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT ! -i lo -s 127.0.0.0/8 -j DROP
# Drop invalid packets
-A INPUT -m conntrack --ctstate INVALID -j DROP
-A FORWARD -m conntrack --ctstate INVALID -j DROP
# Allow ICMP (ping)
-A INPUT -p icmp -j ACCEPT
# Allow established and related incoming connections
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Allow Wireguard
-A INPUT -p udp --dport 50000 -j ACCEPT
# Allow SSH
-A INPUT -p tcp --dport 22 -j ACCEPT
COMMIT
# nat
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 10.20.30.0/24 -o end0 -m comment --comment wireguard-nat-rule -j MASQUERADE
COMMIT
Einstellungen übernehmen mit dinitctl restart iptables
und dauerhaft aktivieren mit dinitctl enable iptables
.
Mit wireguard-ui die Endpunkte konfigurieren und den Wireguard-Service aktivieren mit dinitctl enable wg-quick-all