Seite anzeigenÄltere VersionenLinks hierherNach oben Diese Seite ist nicht editierbar. Sie können den Quelltext sehen, jedoch nicht verändern. Kontaktieren Sie den Administrator, wenn Sie glauben, dass hier ein Fehler vorliegt. ==== WireGuard Server auf Linux ==== Paket installieren <code>apt install wireguard</code> \\ <code>cd /etc/wireguard</code> Alle nachfolgenden Kommandos im Ordner /etc/wireguard durchführen \\ \\ === Vorbereitungen === Ordner für die Clients anlegen <code>mkdir clients</code> Ordner für die Certs anlegen <code>mkdir ssl</code> === Server Zertifikate === Server Zertifikat erstellen <code>wg genkey | tee ssl/server_private.key</code> <code>chmod 600 ssl/server_private.key</code> Server PublicKey erstellen <code>cat ssl/server_private.key | wg pubkey | tee ssl/server_public.key</code> \\ === Client Zertifikate === Client Zertifikat erstellen <code>wg genkey | tee ssl/client1_private.key</code> Client Pubkey erstellen <code>cat ssl/client1_private.key | wg pubkey | tee ssl/client1_public.key</code> === Verbindung erstellen === Jetzt wird die Konfigurationsdatei für die Serverseite Verbindung erstellt. Hierbei werden Firewallregeln hinzugefügt, die es ermöglichen, dass die Clients sich untereinander, das Internet und des Server erreichen können. Dem Server wird der eigene Private Key bekannt gemacht, als auch **alle* Public Keys der Clients. Dateipfad ist /etc/wireguard/wg0.conf <code> cat << EOF > /etc/wireguard/wg0.conf [Interface] PrivateKey = $(cat /etc/wireguard/ssl/server_private.key) Address = 10.0.0.1/24 ListenPort = 51820 PostUp = sysctl net.ipv4.ip_forward=1 PostUp = iptables -A FORWARD -i $(ip a | grep 2: | head -n1 | awk '{print $2}' | awk -F: '{print $1}') -o %i -j ACCEPT PostUp = iptables -A FORWARD -i %i -j ACCEPT PostUp = iptables -t nat -A POSTROUTING -o $(ip a | grep 2: | head -n1 | awk '{print $2}' | awk -F: '{print $1}') -j MASQUERADE PostDown = sysctl net.ipv4.ip_forward=0 PostDown = iptables -D FORWARD -i $(ip a | grep 2: | head -n1 | awk '{print $2}' | awk -F: '{print $1}') -o %i -j ACCEPT PostDown = iptables -D FORWARD -i %i -j ACCEPT PostDown = iptables -t nat -D POSTROUTING -o $(ip a | grep 2: | head -n1 | awk '{print $2}' | awk -F: '{print $1}') -j MASQUERADE [Peer] PublicKey = $(cat /etc/wireguard/ssl/client1_public.key) AllowedIPs = 10.0.0.2/32 EOF </code> \\ Das Ergebnis sollte ungeähr so aussehen <code> [Interface] PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # Private Key des Servers Address = 10.0.0.1/24 ListenPort = 51820 PostUp = sysctl net.ipv4.ip_forward=1 PostUp = iptables -A FORWARD -i ens6 -o %i -j ACCEPT PostUp = iptables -A FORWARD -i %i -j ACCEPT PostUp = iptables -t nat -A POSTROUTING -o ens6 -j MASQUERADE PostDown = sysctl net.ipv4.ip_forward=0 PostDown = iptables -D FORWARD -i ens6 -o %i -j ACCEPT PostDown = iptables -D FORWARD -i %i -j ACCEPT PostDown = iptables -t nat -D POSTROUTING -o ens6 -j MASQUERADE [Peer] PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # Public Key des Clients AllowedIPs = 10.0.0.2/32 </code> \\ Jetzt wird pro Client eine Eigene Konfigurationsdatei erstellt. Diese Datei beinhaltet die Adresse und den PubKey des Servers. Ebenso den PrivateKey des Clients. <code> cat <<EOF > /etc/wireguard/clients/client1.conf [Interface] PrivateKey = $(cat /etc/wireguard/ssl/client_private.key) # Client-Private-Key Address = 10.0.0.2/24 DNS = 8.8.8.8 [Peer] PublicKey = $(cat /etc/wireguard/ssl/server_public.key) # Server-Public-Key AllowedIPs = 0.0.0.0/0 Endpoint = $(hostname -f):51820 # Server Adresse PersistentKeepalive = 15 EOF </code> <code> [Interface] PrivateKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # Client-Private-Key Address = 10.0.0.2/24 DNS = 8.8.8.8 [Peer] PublicKey = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # Server-Public-Key AllowedIPs = 0.0.0.0/0 Endpoint = wireguard.mydomain.de:51820 # Server Adresse PersistentKeepalive = 15 </code>