Wireguard ist ein VPN mit direkter Integration in den Linux Kernel. Wireguard ist mit ca. 4000 Zeilen Code vergleichsweise übersichtlich und deshalb wartbarer als z.B. OpenVPN. Wireguard ist außerdem schneller und um Längen leichter aufzusetzen. Alle benötigten Werkzeuge zur Schlüsselverwaltung sind dabei
In den meisten Distributionen ist Wireguard verfügbar. In CentOS 8 sollte man einfach Kernel 6.x nachinstallieren, denn das Wireguard Modul ist dort fest einkompiliert. Nach erfolgreicher Installation kann man das Kernelmodul testen.
modinfo wireguard
Server Grundkonfiguration
Wenn diese Ausgabe nicht leer ist, kann man loslegen. Wir generieren einen privaten Schlüssel und schreiben ihn direkt in eine neue Konfigurationsdatei.
sudo -i
cd /etc/wireguard/
wg genkey | tee wg0.conf
vim wg0.conf
Dann die Datei editieren und speichern.
[Interface]
PrivateKey = <privater Schlüssel>
Address = 192.168.10.1/24
ListenPort = 12345
PostUp = iptables -A FORWARD -i wg1 -j ACCEPT; iptables -t nat -A POSTROUTING -o ens11 -j MASQUERADE;
PostDown = iptables -D FORWARD -i wg1 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o ens11 -j MASQUERADE;
Den Service aktivieren und starten
systemctl enable wg-quick@wg0.service --now
Firewall
Beispielkonfiguration für firewall-cmd
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>Wireguard</short>
<description>Ports for currently configured Wireguard instances</description>
<port protocol="udp" port="12345"/>
...
</service>
Konfigurationsdatei nach /etc/firewalld/services/wireguard.xml
speichern. Dann den Service aktivieren und die …