PeerVPN – Ein Mesh VPN Netzwerk aufbauen

Beim stöbern im Netz bin ich dank Thomas Leister auf dieses spannende und sehr unkomplizierte VPN Tool gestoßen – PeerVPN. Sobald ihr mehr als nur einen physischen oder virtuellen Server zu verwalten habt hilft PeerVPN ein privates dezentrales vermaschtes Peer-to-Peer Netzwerk aufzubauen.

PeerVPN bietet dir folgende Features:

  • Ethernet tunneling support using TAP devices
  • IPv6 support
  • Full mesh network topology
  • Shared key encryption and authentication support

Punkt 1: Installation unter Debian

Da es noch kein Repository gibt benötigen wir zuerst folgende Pakete.

Punkt 2: Quellcode herunterladen

Wir wechseln in einen beliebigen Ordner, oder bleiben in /root/.

Punkt 3: Kompilieren

Wer OpenSSL verwenden möchte benötigt nur das Paket libssl-dev.

Anschließen wechseln wir den Ordner und kompilieren.

Bevorzugte Alternative: Die Empfehlung des Herstellers ist LibreSSL, diese Library habe ich ebenfalls verwendet und dazu folgendes Script genutzt (Danke Thomas Leister).

Wechsel den Ordner und erstelle das Script.

Holt euch von der Webseite https://www.libressl.org/ die aktuelle Versionsnummer und tragt sie unter libressl_version= ein.

Das Script führen wir aus, dieses erstellt eine statisch gelinkte Version von PeerVPN mit LibreSSL.

Punkt 4: Kopieren der Binary

Die soeben erstelle Binary kopieren wir auf dem lokalen Server um.

Ebenso kann diese Binary auf die anderen Server kopiert werden.

Punkt 5: Konfiguration

Wir erstellen uns einen Konfigurations Ordner sowie Datei.

Beispiel Konfiguration:

Erläuterung (Details im Github):

  • networkname – Ein frei wählbarer Name. Auf allen Servern identisch.
  • psk – Ein Shared Key. Kann mittels openssl rand -base64 32 generiert werden. Auf allen Servern identisch.
  • enabletunneling – Ermöglicht Ethernet Tunneling per TAP Device.
  • interface – Der Interface Name.
  • ifconfig4- Die IPv4 Adresse für den Server. Beispiel Server1: 10.1.2.3, Server2: 10.1.2.4 etc.
  • port – Der verwendete Port.
  • initpeers – Server die im gesamten PeerVPN sich erreichen sollen. Domainname + Port. Getrennt mit Leerzeichen. Auf allen Servern am besten identisch.

Punkt 6: Systemd Service Unit

Auf jedem Server legen wir eine Systemd Service Unit an.

Aktivieren und starten den PeerVPN Dienst.

Punk 7: Test

Jetzt sollte der Dienst laufen.

Auch die Server sollten über die in der Konfiguration angegeben IP-Adressen erreichbar sein.

 

2

dominion

Linux Systemadministrator

Das könnte dich auch interessieren …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert