Was ist ein VPN?
Mit einem VPN (Virtual Private Network) können Sie eine sichere Verbindung zu einem anderen Netzwerk über das Internet herstellen, was für einige Anwendungsfälle sehr vorteilhaft sein kann. VPNs können für viele Dinge genutzt werden, z. B. für den Zugriff auf regional eingeschränkte Websites, zum Schutz vor bösen Jungs im öffentlichen WLAN, zur Verbindung und Nutzung lokaler Ressourcen, die von außen nicht zugänglich sind, oder einfach zur Schaffung eines sicheren Netzwerks zwischen Ihren Servern und zu deren Isolierung.
Was sind also die üblichen Schritte zur Erstellung eines VPN? Zunächst müssen Sie sich über den ISP (Internet Service Provider) mit dem öffentlichen Internet verbinden und dann mithilfe einer Client-Software ein VPN einrichten. Klingt einfach, oder?
Nun, das hängt von der Software ab, die Sie wählen, wobei die meisten VPN-Lösungen dem Client-Server-Prinzip folgen. Das bedeutet, dass alle Knoten eine Verbindung zu einem zentralen Server herstellen, der die zentrale Anlaufstelle für alle anderen ist. In einer solchen Umgebung läuft der gesamte Verkehr über den zentralen Server, wodurch eine Sterntopologie entsteht, so dass dieser Server viel Bandbreite benötigt. Fällt der zentrale Server aus und ist er nicht in der Lage, den gesamten Datenverkehr zu bewältigen, bricht das VPN zusammen und die anderen Mitglieder können nicht mehr kommunizieren. Dies ist der größte Nachteil einer solchen Einstellung. Wenn Sie also diesen Single Point of Failure nicht haben wollen, können Sie eine Full-Mesh-Topologie verwenden, bei der jeder Teilnehmer mit den anderen kommuniziert, ohne einen zentralen Server zu haben. Wenn einer von ihnen ausfällt, sind die anderen Mitglieder davon nicht betroffen. Eine gute, einfache und zuverlässige Peer-to-Peer-/Full-Mesh-Lösung ist PeerVPN.
09APRHierist eine kurze Anleitung zur Installation und Konfiguration der PeerVPN-Software unter RHEL:
1. Stellen Sie sicher, dass Sie jeden Server über seine öffentliche IP anpingen können.
2. Installieren Sie die notwendigen Abhängigkeiten:
$ yum install gcc -y;
$ yum install openssl-devel -y;
$ yum install openssl -y;
3. Herunterladen des PeerVPN-Clients:
$ curl -O http://peervpn.net/files/peervpn-0-044.tar.gz;
4. Entpacken und Kompilieren der Software:
$ tar xzfv peervpn-0-044.tar.gz && cd peervpn-0-044 && make
5. Verschieben der Binärdatei:
$ cp peervpn /usr/sbin;
6. Erstellen und bearbeiten Sie die Konfigurationsdatei:
$ mkdir /etc/peervpn && nano /etc/peervpn/peervpn.conf
Beispielinhalt der Konfigurationsdatei, mit Kommentaren:
// Dies ist der Standard-UDP-Port, den PeerVPN verwendet. Sie können ihn ändern, aber stellen Sie sicher, dass Sie eine offene eingehende/ausgehende Verbindung für diesen Port haben (wenn Ihr Server über iptables verfügt: iptables -S)port 7000
//Dies ist der Netzwerkname, der jeder beliebige sein kannNetzwerkname MyPeerVPN
//Dies ist ein generierter 512 gemeinsamer Schlüssel für die Verschlüsselung des Datenverkehrs zwischen den Peers. Wenn Sie die Verschlüsselung verwenden möchten, stellen Sie sicher, dass der Schlüssel auf jedem Rechner derselbe ist. Verwenden Sie diesen Befehl, um ihn zu erstellen:
$ openssl rand -base64 382 | tr -d 'n' && echo
//IMPORTANT: don use the same key from my example below
Psk VqmWsJje18/qqIOEN2+pLHugDtAcN5So03J0TL9wIQomAkQwcNR23SzM+m7cuJyCeyXXuHDLoKbzVbk
176eDVLPS8wLNoWSiwPF2yQn57Q4vjRz3qjI51nhE3yEyKmHZgotQga4Uz0vyvTGjJRxtPJqZ/igDN0YmI2
5nwhsYsyi34c6pIcqPCOHYlILndCUh8AYk3hGNPc0lSnkxW/sY+Uo+5BU0K6nB1LYcMlXA9Ij0deU+eyRTfoVg
gKnpXdl5FikrELbAOyoo71F0PEjL73k5fmyGmsoEE1f4yvgUXOKOzsPUaf567SP4Hm+h/EpqkWMR7JGc5
jBDsOlY52LTp5XaZNn+l+VEInCsFQiKgTW3zvzSmUcrPB3GqQ1KXknwfHmtCJe4SRiRZLKtSeTiPdPvXC0HBM
k+KK9TNk45dDUi3/ougCIwavMPEedH7Gh5fvG5iNXjZ24tAAOTle2oBHVgO2Wq7llh2VwKkrzyYATuchus
VLbHa98D0YR2wA==
enabletunneling yes
// This is the name of the network interface ( like eth0 )interface pvpn0
// this is the IP address range. Note that every peer should have a unique one in the same subnet, so simply increment the address for each new server. In my example I have the 10.1.1.1 , which will be the IP of the initialization peer.ifconfig4 10.1.1.1/24
//the initpeers is the initial host (its public IP/hostname + port) which has to be connected in order to discover the other hosts from the private network. This directive should be included only in the config files of the second, third… hostsinitpeers 165.165.165.165 7000
So here are two sample config files, the left is for the initialization peer and the right is for the other hosts:
| Port 7000 Netzwerkname MyPeerVPN psk VqmWsJje18/qqIOEN2+pLHugDtAcN5So03J0TL9wIQomAkQwcNR23SzM +m7cuJyCeyXXuHDLoKbzVbk176eDVLPS8wLNoWSiwPF2yQn57Q4vjRz3qjI51 nhE3yEyKmHZgotQga4Uz0vyvTGjJRxtPJqZ/igDN0YmI25nwhsYsyi34c6pIcqPC OHYlILndCUh8AYk3hGNPc0lSnkxW/sY+Uo+5BU0K6nB1LYcMlXA9Ij0deU+ey RTfoVggKnpXdl5FikrELbAOyoo71F0PEjL73k5fmyGmsoEE1f4yvgUXOKOzsPU af567SP4Hm+h/EpqkWMR7JGc5jBDsOlY52LTp5XaZNn+l+VEInCsFQiKgTW3z vzSmUcrPB3GqQ1KXknwfHmtCJe4SRiRZLKtSeTiPdPvXC0HBMk+KK9TNk45d DUi3/ougCIwavMPEedH7Gh5fvG5iNXjZ24tAAOTle2oBHVgO2Wq7llh2VwKkr zyYATuchusVLbHa98D0YR2wA== enabletunneling yes interface pvpn0 ifconfig4 10.1.1.1/24 | Port 7000 Netzwerkname MyPeerVPN psk VqmWsJje18/qqIOEN2+pLHugDtAcN5So03J0TL9wIQomAkQwcNR23SzM +m7cuJyCeyXXuHDLoKbzVbk176eDVLPS8wLNoWSiwPF2yQn57Q4vjRz3qjI51 nhE3yEyKmHZgotQga4Uz0vyvTGjJRxtPJqZ/igDN0YmI25nwhsYsyi34c6pIcqPC OHYlILndCUh8AYk3hGNPc0lSnkxW/sY+Uo+5BU0K6nB1LYcMlXA9Ij0deU+ey RTfoVggKnpXdl5FikrELbAOyoo71F0PEjL73k5fmyGmsoEE1f4yvgUXOKOzsPU af567SP4Hm+h/EpqkWMR7JGc5jBDsOlY52LTp5XaZNn+l+VEInCsFQiKgTW3z vzSmUcrPB3GqQ1KXknwfHmtCJe4SRiRZLKtSeTiPdPvXC0HBMk+KK9TNk45d DUi3/ougCIwavMPEedH7Gh5fvG5iNXjZ24tAAOTle2oBHVgO2Wq7llh2VwKkr zyYATuchusVLbHa98D0YR2wA== enabletunneling yes interface pvpn0 ifconfig4 10.1.1.1/24 initpeers 165.165.165.165 7000 |
Um einen weiteren Host hinzuzufügen, kopieren Sie einfach die richtige Konfiguration und setzen Sie die nächstmögliche IP (ifconfig4) aus dem Bereich
7. Erstellen Sie eine System-Unit-Datei, um das Netzwerk beim Booten zu starten:
$ nano /usr/lib/systemd/system/peervpn.service
[Unit]Description=PeerVPN-Netzwerk serviceWants=network-online.targetAfter=network-online.target[Service]ExecStart=/usr/sbin/peervpn /etc/peervpn/peervpn.conf[Install]WantedBy=multi-user.target
8. Starten und aktivieren Sie das PeerVPN:
$ systemctl start peervpn.service
$ systemctl enable peervpn.service
9. Überprüfen Sie den Dienst für das Abhören:
$ netstat -tupanl | grep peervpn
Die Ausgabe sollte wie folgt aussehen (wenn IPv6 aktiviert ist):
udp 0 0 0.0.0.0:7000 0.0.0.0:* 5766/peervpnudp6 0 0 :::7000 :::* 5766/peervpn
10. Pingen Sie jeden Host mit der VPN-IP-Adresse an

