diff --git a/content/post/wireguard-vps-android.md b/content/post/wireguard-vps-android.md index f25dad8..2b80ba8 100644 --- a/content/post/wireguard-vps-android.md +++ b/content/post/wireguard-vps-android.md @@ -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 = - - 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 = - - AllowedIPs = 0.0.0.0/0 - - Endpoint = wg.example.org: - 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.