Wireguard installieren

Wireguard installieren

Wireguard installieren und Clients anlegen

Installation von Wireguard

Pakete laden

Zunächst müssen die benötigten Pakete geladen werden. Iptables wird für das spätere Routen genutzt und Wireguard wird später zum Serve rumgebaut.

apt-get install iptables -y
apt-get install wireguard -y

System Control bearbeiten

Das System muss angewiesen werden IPv4 zu forwarden. Dies ist standardmäßig ausgeschaltet.

nano /etc/sysctl.conf

Folgende Zeile muss verändert werden. Die Raute muss entfernt werden.

...
#net.ipv4.tcp_syncookies = 1 
...

Nun sollte der Eintrag wie folgt aussehen:

net.ipv4.tcp_syncookies = 1

Die Datei muss neu eingelesen werden, damit die Änderung wirksam wird:

sysctl -p

Verzeichnisse erstellen und öffnen

Nun erstellt man die benötigten Verzeichnisse. In diesen Verzeichnissen werden später die Benutzerkonfiguration und die Serverkonfiguration liegen.

mkdir /etc/wireguard/
mkdir /etc/wireguard/clients/
cd /etc/wireguard/

Schlüssel für den Server generieren

Zunächst legt man den Privatekey für den Server an. Dieser darf nicht an dritte weitergegeben werden.

wg genkey | tee /etc/wireguard/privatekey | wg pubkey | tee /etc/wireguard/publickey

Schlüssel für Client1 generieren

Zunächst geht man in das zuvor erstellte Verzeichnis wo die Benutzerkonfiguration abgelegt werden sollen.

cd /etc/wireguard/clients/

Hier erstellt man nun einen Private- und einen Publickey

wg genkey | tee /etc/wireguard/clients/client1_privatekey | wg pubkey > /etc/wireguard/clients/client1_publickey

Wireguard Interface erstellen

Es muss die Konfigurationsdatei für Wireguard und deren Schnittstelle erstellt werden. Diese kann benannt werde, wie man möchte. In der Community wird standardmäßig das Interface wg0 genannt.

nano /etc/wireguard/wg0.conf

Nun wird die Konfigurationsdatei angepasst.

Es ist wichtig das unter PostUp und PostDown das Interface des Systems angegeben wird. Es muss der Punkt <INTERFACE> geändert werden.

[Interface]
Address = 10.8.0.1/24 #VPN Netz welches zwischen Client und Host augebaut wird (Kann frei gewählt werden)
ListenPort = 51820 #Port der Freigegeben werden soll (Kann frei gewählt werden)
PrivateKey = <server-private-key> #Key aus der Datei /etc/wireguard/privatekey
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o <INTERFACE> -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o <INTERFACE> -j MASQUERADE

In diesem Zustand ist zwar der Server und das Interface eingerichtet aber es können sich noch keine Clients verbinden.

Wireguard Interface Aktivieren/Deaktivieren

Interface starten

wg-quick up wg0

Interface stoppen

wg-quick down wg0

Interface beim Start des Servers mit starten

systemctl enable wg-quick@wg0.service

Interface nicht mehr beim Start des Servers mit starten:

systemctl disable wg-quick@wg0.service

Wireguard Clients einrichten

Client am Interface anmelden

Es muss die Konfigurationsdatei von dem Wireguard-Interface geöffnet werden:

nano /etc/wireguard/wg0.conf

Fügen Sie folgendes hinzu:

[Interface]
...
[Peer]
PublicKey = <Client1_publickey> #Key muss geändert werden
AllowedIPs = 10.8.0.2/16 # IP muss im selben VPN Netz liegen

Die Datei sollte nun wie folgt aussehen:

[Interface]
Address = 10.8.0.1/24 #IP im VPN Netz
ListenPort = 51820 #Prot der Freigegeben werden
PrivateKey = <server-private-key>
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o <INTERFACE> -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o <INTERFACE> -j MASQUERADE


[Peer]
PublicKey = <Client1_public.key> #Key muss geändert werden
AllowedIPs = 10.8.0.2/16 #IP muss im selben VPN Netz liegen

Hiermit erstellt man einen Peer [Verbindung]. Man erklärt Wireguard, wenn sich dieser Client meldet, darf mit diesem gearbeitet werden.

Interface neu starten

wg-quick down wg0
wg-quick up wg0

systemctl disable wg-quick@wg0.service
systemctl enable wg-quick@wg0.service

Erstellen der Client-Konfigurationsdatei

Die Konfigurationsdatei muss nicht auf dem Host Server liegen! Sie wird nur auf dem Client benötigt und kann da eingefügt werden. Die IP muss immer an den Peer in der wg0.conf gleich sein.

[Interface]
PrivateKey = <CLIENT-PRIVATE-KEY>
Address = 10.8.0.2/24
DNS = 172.0.0.1

[Peer]
PublicKey = <SERVER-PUBLIC-KEY>
Endpoint = <IP/DOAMIN>:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25