VPN
tinc
Mit tinc
können mehrere Server zu einem gemeinsamen internen Netzwerk zusammengeschaltet werden.
Das Netzwerk bekommt einen Namen, der auch für das jeweilige Netzwerkinterface gilt.
Die nachfolgende Anleitung soll nur erste Hinweise geben, es handelt sich *nicht* um eine vollständige Installationsdokumentation.
Netzwerk anlegen, die folgenden Beispiele beziehen sich dann immer auf den im folgenden verwendeten Namen.
cd /etc/tinc mkdir ffpi chmod 700 ffpi cd ffpi mkdir hosts chmod 700 hosts
- /etc/tinc/ffpi/tinc.conf
Name = host1 Mode = Switch
- tinc-up
#!/bin/sh ifconfig $INTERFACE 192.168.42.1 netmask 255.255.255.0 up
- tinc-down
#!/bin/sh ifconfig $INTERFACE down
Schlüssel erstellen, Ausgabe ist ein Schlüsselpaar im angegebenen Netzwerkverzeichnis
cd /etc/tinc/ tincd -K 4096 -n ffpi
Abschließend wird das Netzwerk noch in die Daten nets.boot
eingetragen, damit die
Verbindungen automatisch gestartet werden.
Im hosts
-Verzeichnis werden die öffentlichen Schlüssel aller Netzwerkteilnehmer
in jeweils eine Verbindungsdatei eingetragen, zusammen mit der Adresse über die dieser
Server erreicht werden kann und der Adresse des Servers im tinc-Netz.
Infos von tinc erfragen
kill -USR1 <tinc pid>
- dumps the connection listkill -USR2 <tinc pid>
- dumps virtual network statistics
Systemd
Systemd macht anscheinend mal wieder sein eigenes Ding, damit funktioniert tinc nicht out of the box. Anscheinend wird nets.boot nicht beachtet.
Starten eines einzelnen VPNs:
systemctl start tinc@<networkname>
Automatisch beim Booten:
systemctl enable tinc@<networkname>
OpenVPN
Normalerweise verwendet um ein Endgerät mit einem Server zu verbinden. Es werden Zertifikate benötigt, folglich ist eine PKI zu verwalten.
TODO
Ser
Wireguard
Anleitung speziell für Debian
apt-get install wireguard
Schlüsselpaar für den Server erstellen
cd /etc/wireguard wg genkey | tee privatekey | wg pubkey > publickey chmod 600 privatekey chmod 640 publickey
Konfigurationsdatei für den Server anlegen
- /etc/wireguard/wg0.conf
[Interface] ListenPort = 51820 PrivateKey = <INSERT PRIVATEKEY HERE> [Peer] # Peer 1 PublicKey = <INSERT PEER1-PUBLICKEY HERE> AllowedIPs = 192.168.68.101/32 [Peer] # Peer 2 PublicKey = <INSERT PEER2-PUBLICKEY HERE> AllowedIPs = 192.168.68.102/32
Berechtigungen für Konfigurationsdatei setzen
chmod 600 /etc/wireguard/wg0.conf
Netzwerkkarte, Firewalregeln fehlen hier noch
- /etc/network/interfaces
iface wg0 inet static address 192.168.68.1/24 pre-up ip link add $IFACE type wireguard pre-up wg setconf $IFACE /etc/wireguard/$IFACE.conf #post-up sysctl --quiet --write net.ipv4.ip_forward=1 #post-down sysctl --quiet --write net.ipv4.ip_forward=0 post-down ip link del $IFACE
Client
apt-get install wireguard wg genkey | tee /etc/wireguard/private.key chmod go= /etc/wireguard/private.key cat /etc/wireguard/private.key | wg pubkey | sudo tee /etc/wireguard/public.key chmod go= /etc/wireguard/public.key
Für einen Client muß in der Konfiguration der Endpoint (Server-Adresse:Port) angegeben werden.