From 453054a53d3cd403934aa0dbaac78d1c94b1dead Mon Sep 17 00:00:00 2001 From: 6543 <6543@obermui.de> Date: Sun, 7 Jul 2019 03:36:48 +0200 Subject: [PATCH] alpha --- content/post/wireguard-vps-android.md | 114 ++++++++++---------------- 1 file changed, 45 insertions(+), 69 deletions(-) diff --git a/content/post/wireguard-vps-android.md b/content/post/wireguard-vps-android.md index b4a2331..6ab0a59 100644 --- a/content/post/wireguard-vps-android.md +++ b/content/post/wireguard-vps-android.md @@ -1,86 +1,62 @@ +++ -title = "Wireguard with Android & VPS" +title = "Wireguard Gateway & Android" date = 2019-07-07T02:02:05+02:00 author = "MH" cover = "" tags = ["VPN", "Wireguard", "Android", "Setup"] -description = "Setup Wireguard Server and connet with Android" +description = "Setup a Linux Wireguard Gateway and connet with Android" showFullContent = false draft = true +++ -install -https://www.wireguard.com/install/ +# Setup your Linux Server +Your Linux Server should be reachable throu an public via UDP. +If the IP address changes then DynDNS works just fine. + +First **install WireGuard** on your Linux server. On the official website you will find +the right way for your Linux distro: +[WireGuard.com/install](https://www.wireguard.com/install/) + +Then **configure** the Gateway. +We will use the 100.64.0.0/10 range (RFC 6598) because it wont colide with private IPv4 adresses (RFC 1918). + + echo '[Interface]' > /etc/wireguard/wg0.conf + echo "PrivateKey = $(wg genkey)" >> /etc/wireguard/wg0.conf + echo 'ListenPort = 50002' >> /etc/wireguard/wg0.conf + echo "Address = 100.64.0.1/10" >> /etc/wireguard/wg0.conf + + iptables -t nat -A POSTROUTING -s 100.64.0.0/10 -o eth0 -j MASQUERADE + systemctl enable --now wg-quick@wg0 && systemctl status wg-quick@wg0 + +To get the public key type: + + wg pubkey <<<$(grep PrivateKey /etc/wireguard/wg_obermui.conf | cut -d ' ' -f3) + +# Setup your Android + +Download the App from [F-Droid](https://f-droid.org/en/packages/com.wireguard.android/) or [Google Play](https://play.google.com/store/apps/details?id=com.wireguard.android). + + +use [ABC].jgp to explane + +# Add Android Client to Server + + [Peer] >> /etc/wireguard/wg0.conf + PublicKey = >> /etc/wireguard/wg0.conf + AllowedIPs = 100.64.0.101/32 >> /etc/wireguard/wg0.conf + + systemctl restart wg-quick@wg0 && ystemctl status wg-quick@wg0 + +________________________________ + +# Sources look at https://www.wireguard.com/quickstart/ use config from ct (heise) https://www.heise.de/select/ct/2019/5/1551091519824850 - -# VPN-Server aufsetzen - -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 '[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 100.64.0.0/10 -o eth0 -j MASQUERADE - - -# 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. - -Für permanente Verbindungen lässt sich WireGuard bei den meisten Distributionen ins Startup-System einbinden. Ist der Tunnel heruntergefahren, erreichen Sie das bei einem SystemD-Linux mit systemctl enable --now wg-quick@wg0. Ob es geklappt hat, zeigt systemctl status wg-quick@wg0. - -WireGuard ist noch jung. Aber seine Popularität lässt sich schon jetzt an der Unterstützung anderer Betriebssysteme ablesen. Die Portierung fällt leicht, weil es das Protokoll neben der Kernel-Version auch in einer Go-Implementierung gibt, die das TUN/TAP-Interface anderer Betriebssysteme nutzt und als normales Programm läuft. Sie ist so zwar langsamer und energieintensiver als die native Linux-Kernel-Version, taugt aber auf Smartphones und Tablets problemlos zum Testen von WireGuard. - -________________________________ - Witepaper https://www.wireguard.com/papers/wireguard.pdf -Demo Videohttps://video.obermui.de/videos/watch/5009724a-a670-4130-bc99-4ab820773da6 + +Demo Video https://video.obermui.de/videos/watch/5009724a-a670-4130-bc99-4ab820773da6