Ich habe OpenVPN verwendet, um ein Netzwerk zwischen ein paar Computern zu verwalten, aber es braucht einen zentralen Server und alle Daten müssen darüber laufen. Darüber hinaus bedeutet das Ändern des zentralen Servers möglicherweise, dass das gesamte Netzwerk aktualisiert wird.
Ich suche nach einem dezentralen (P2P) Open-Source-VPN-Netzwerk, das keinen zentralen Server benötigt. Anforderungen:
Zuerst dachte ich, Tor wäre die Lösung für Sie, aber es ist ein offenes Netzwerk: Jeder kann beitreten, also funktioniert Ihre "sichere" Anforderung nicht.
Also würde ich vorschlagen, einen Blick auf Tinc zu werfen . Es handelt sich um ein P2P-VPN, bei dem Peers über öffentliche Schlüssel authentifiziert werden und einige NAT-Transversal unterstützen , obwohl es möglicherweise nicht so gut mit Hosts umgeht, die Adressen ändern, da diese in der Konfiguration fest codiert sind. Es hat auch volle IPv6-Unterstützung. Kurze Grundierung:
apt-get install tinc
mkdir -p /etc/tinc/net0/hosts
cat >> /etc/tinc/net0/tinc.conf <<EOF
Name = host
Mode = switch
Address = host.example.com
EOF
tinc -n net0 generate-keys
cat >> /etc/tinc/net0/tinc-up <<EOF
ifconfig $INTERFACE 172.16.242.43 netmask 255.255.255.255 up
EOF
chmod +x /etc/tinc/net0/tinc-up
tincd -d4 -D -n net0
Führen Sie dies auf jedem Host durch, ändern Sie tinc.conf
und tinc-up
nach Bedarf. Das hosts
Verzeichnis enthält Kopien von jedem Host tinc.conf
und die gemeinsame Nutzung dieser Konfiguration erfolgt außerhalb des Bandes (z. B. habe ich Git verwendet).
Beachten Sie auch, dass es einige ernsthafte Sicherheitsprobleme mit Tinc gab und mir nicht klar ist, ob das Sicherheitsdesign solide ist.
Wenn ich jetzt bei Null anfangen würde, würde ich mir Wireguard ansehen, das eine bessere Roaming-Unterstützung und eine solide Kryptographie bietet. Ihr Schnellstart ist ausgezeichnet und beläuft sich im Wesentlichen auf:
apt install wireguard-dkms wireguard-tools
ip link add dev wg0 type wireguard
ip address add dev wg0 10.0.0.1/8
umask 077
wg genkey | tee /etc/wireguard/private.key | wg pubkey > /etc/wireguard/public.key
wg set wg0 listen-port 51820 private-key /etc/wireguard/private.key peer $(cat /etc/wireguard/peers/peer0.pub) allowed-ips 10.0.0.2/32 endpoint 192.0.2.1:51820
ip link set up dev wg0
Dies setzt voraus, dass der öffentliche Schlüssel des anderen bereits generiert und in gespeichert wurde /etc/wireguard/peers/peer0.pub
. Dieser Peer sollte unter erreichbar sein 192.0.2.1
und eine ähnliche Konfiguration mit 10.0.0.2
zugewiesen auf der wg0
Schnittstelle haben.
Habe Spaß!