alpha
This commit is contained in:
parent
036633d9e8
commit
453054a53d
@ -1,86 +1,62 @@
|
|||||||
+++
|
+++
|
||||||
title = "Wireguard with Android & VPS"
|
title = "Wireguard Gateway & Android"
|
||||||
date = 2019-07-07T02:02:05+02:00
|
date = 2019-07-07T02:02:05+02:00
|
||||||
author = "MH"
|
author = "MH"
|
||||||
cover = ""
|
cover = ""
|
||||||
tags = ["VPN", "Wireguard", "Android", "Setup"]
|
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
|
showFullContent = false
|
||||||
draft = true
|
draft = true
|
||||||
+++
|
+++
|
||||||
|
|
||||||
install
|
# Setup your Linux Server
|
||||||
https://www.wireguard.com/install/
|
|
||||||
|
|
||||||
|
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 = <Client-Pub-Key> >> /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
|
look at
|
||||||
https://www.wireguard.com/quickstart/
|
https://www.wireguard.com/quickstart/
|
||||||
|
|
||||||
use config from ct (heise)
|
use config from ct (heise)
|
||||||
https://www.heise.de/select/ct/2019/5/1551091519824850
|
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 = <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 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 = <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.
|
|
||||||
|
|
||||||
________________________________
|
|
||||||
|
|
||||||
Witepaper https://www.wireguard.com/papers/wireguard.pdf
|
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
|
||||||
|
Loading…
Reference in New Issue
Block a user