paste & format things

This commit is contained in:
6543 2019-07-07 02:21:24 +02:00
parent a6df03a0d3
commit 4e78510f6a

View File

@ -4,7 +4,7 @@ date = 2019-07-07T02:02:05+02:00
author = "MH"
cover = ""
tags = ["VPN", "Wireguard", "Android", "Setup"]
description = "Setup Wireguard Server and connet"
description = "Setup Wireguard Server and connet with Android"
showFullContent = false
draft = true
+++
@ -19,96 +19,59 @@ use config from ct (heise)
https://www.heise.de/select/ct/2019/5/1551091519824850


VPN-Server aufsetzen
# VPN-Server aufsetzen

Die WireGuard-Schnittstelle auf dem VPN-Gateway gibt die in ihren Tunneln verwendeten IP-Adressen vor. Diese dürfen sich wie üblich nicht mit lokal verwendeten, privaten IPv4-Blöcken (RFC 1918) überschneiden. In den folgenden Beispielen nutzen wir die für Carrier-Grade-NAT reservierten privaten IPv4-Adressen (100.64.0.0/10, RFC 6598). So können die Tunnel-IPs nie mit Adressbereichen kollidieren, die ein mobiler Peer beispielsweise in fremden WLANs zugeteilt bekommt (meist 192.168.x.y).
Gateway gibt die in ihren Tunneln verwendeten IP-Adressen vor.
Diese nicht lokal verwendeten, privaten IPv4-Blöcken (RFC 1918) überschneiden.
In den folgenden Beispielen nutzen wir die für Carrier-Grade-NAT reservierten privaten IPv4-Adressen (100.64.0.0/10, RFC 6598).


echo "Address = 100.64.0.1/10" >>:


./etc/wireguard/wg0.conf
echo '[Interface]' > /etc/wireguard/wg0.conf
echo "PrivateKey = $(wg genkey)" >> /etc/wireguard/wg0.conf
echo "Address = 100.64.0.1/10" >> /etc/wireguard/wg0.conf

Der öffentliche Schlüssel jedes Clients kommt zusammen mit seiner vom Admin festgelegten individuellen Tunnel-IP-Adresse in einen [Peer]-Abschnitt der Konfigurationsdatei:


cat << EOF >> /etc/wireguard/wg0.conf


[Peer]


PublicKey = <Client-Key>


AllowedIPs = 100.64.0.101/32


EOF

Nachdem alle Peers angelegt sind, ist die Server-Konfiguration komplett. Entfernen Sie die Schnittstelle wg0 und starten Sie sie wieder mit wg-quick, damit die neuen Einstellungen greifen:


ip link del wg0


wg-quick up wg0


wg show

Wenn Clients über den Tunnel auch ins Internet gelangen können sollen, muss der VPN-Server Masquerading-NAT anwenden, wofür bei iptables-Firewalls eine zusätzliche Zeile genügt:


iptables -t nat -A POSTROUTING -s :
iptables -t nat -A POSTROUTING -s 100.64.0.0/10 -o eth0 -j MASQUERADE


.100.64.0.0/10 -o eth0 -j MASQUERADE

Die Entsprechung für firewalld könnte so aussehen:


firewall-cmd --zone=external --add-:


.masquerade --permanent


firewall-cmd --reload
Client-Seite
# Client-Seite

WireGuard-Peers erhalten ihre Tunneladresse, den öffentlichen Schlüssel des Gegenüber hier der VPN-Server und weitere Netzwerkparameter (im Tunnel erlaubte Adressbereiche, DNS-Name oder IP-Adresse des Peers, verwendeter UDP-Port) aus ihrer wie folgt erweiterten Konfigurationsdatei:


cat << EOF >> /etc/wireguard/wg0.conf


Address = 100.64.0.101/32


[Peer]


PublicKey = <Pub-Key-des-VPN-Servers>


AllowedIPs = 0.0.0.0/0


Endpoint = wg.example.org:<Port>


EOF

Damit ist die Peer-Konfiguration vollständig. Entfernen Sie die Schnittstelle und starten Sie sie neu:


ip link del wg0


wg-quick up wg0


wg show

Können die Peers übers Internet kommunizieren, dann zeigt der letzte Befehl die bestehende WireGuard-Verbindung an. Sie können sie mit wg-quick [up|down] wg0 ad-hoc auf- und abbauen.