homepage/content/post/wireguard-vps-android.md

87 lines
3.5 KiB
Markdown
Raw Normal View History

2019-07-07 00:12:17 +00:00
+++
title = "Wireguard with Android & VPS"
date = 2019-07-07T02:02:05+02:00
author = "MH"
cover = ""
tags = ["VPN", "Wireguard", "Android", "Setup"]
2019-07-07 00:21:24 +00:00
description = "Setup Wireguard Server and connet with Android"
2019-07-07 00:12:17 +00:00
showFullContent = false
draft = true
+++
2019-07-07 00:15:06 +00:00
install
https://www.wireguard.com/install/
look at
https://www.wireguard.com/quickstart/
use config from ct (heise)
https://www.heise.de/select/ct/2019/5/1551091519824850
2019-07-07 00:21:24 +00:00
# VPN-Server aufsetzen
2019-07-07 00:15:06 +00:00
2019-07-07 00:21:24 +00:00
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).
2019-07-07 00:15:06 +00:00
2019-07-07 00:21:24 +00:00
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
2019-07-07 00:15:06 +00:00
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:
2019-07-07 00:21:24 +00:00
iptables -t nat -A POSTROUTING -s 100.64.0.0/10 -o eth0 -j MASQUERADE
2019-07-07 00:15:06 +00:00
2019-07-07 00:21:24 +00:00
# Client-Seite
2019-07-07 00:15:06 +00:00
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.
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.
2019-07-07 00:29:27 +00:00
________________________________
Witepaper https://www.wireguard.com/papers/wireguard.pdf
Demo Videohttps://video.obermui.de/videos/watch/5009724a-a670-4130-bc99-4ab820773da6