Peer-to-Peer VPN mit Tinc auf Ubuntu 22.04 einrichten

Tinc ist eine kostenlose und quelloffene VPN-Software, die zum Aufbau von Mesh-VPN-Netzwerken verwendet werden kann. Es ist ein kleiner und leistungsstarker VPN-Daemon, der auf mehreren Plattformen installiert werden kann. Tinc nutzt Verschlüsselungen und Tunneling, um ein sicheres privates Netzwerk zwischen mehreren Hosts aufzubauen.

Tinc bietet zusätzliche Funktionen wie Verschlüsselung, Komprimierung und automatisches Mesh-Routing. Damit kannst du sichere und verteilte private Netzwerke zwischen Servern an verschiedenen Standorten erstellen.

In diesem Lernprogramm richtest du einen Peer-to-Peer-VPN-Server mit tinc ein und nutzt dabei mehrere Ubuntu 22.04-Server. Du wirst ein Peer-to-Peer-VPN mit drei verschiedenen Servern einrichten. Jeder Server wird sich über eine sichere VPN-Verbindung verbinden können.

Am Ende dieses Tutorials überprüfst du die Peer-to-Peer-VPN-Installation von tinc, um sicherzustellen, dass alle Server über die sichere interne VPN-Verbindung miteinander kommunizieren können.

Voraussetzungen

Um dieses Tutorial durchzuführen, musst du folgende Voraussetzungen erfüllen:

  • Zwei oder mehr Linux-Server mit dem Betriebssystem Ubuntu 22.04 Server.
  • Einen Nicht-Root-Benutzer mit sudo/root-Administrator-Rechten.

In diesem Beispiel werden drei verschiedene Ubuntu-Server verwendet. Unten findest du die Server im Detail:

Hostname        Extrernal IP
------------------------------
tinc-ubuntu     192.168.5.30
client1         192.168.5.120
client2         192.168.5.122

Das war’s. Wenn diese Voraussetzungen erfüllt sind, kannst du die Installation von tinc auf jedem Server starten.

Tinc VPN installieren

tinc ist ein kleiner und leistungsstarker Virtual Private Network (VPN) Daemon, der auf verschiedenen Betriebssystemen wie Linux, BSD, MacOS oder sogar Windows installiert werden kann. Mit Tinc kannst du ein Mesh-VPN-Netzwerk aufbauen, ohne dich auf einen zentralen Knotenpunkt verlassen zu müssen. Tinc VPN nutzt Tunneling und Verschlüsselung, um ein sicheres privates Netzwerk zwischen Hosts im Internet aufzubauen.

In diesem Schritt installierst du den Tinc VPN Server auf allen deinen Ubuntu Servern.

Standardmäßig ist das tinc-Paket im Ubuntu-Repository verfügbar. Bevor du beginnst, aktualisiere deinen Ubuntu-Paketindex, indem du den Befehl „apt update“ eingibst.

sudo apt update

Überprüfe das Paket„tinc„, das im Ubuntu 22.04 Repository verfügbar ist, mit dem folgenden apt-Befehl.

sudo apt info tinc

Zum Zeitpunkt der Erstellung dieses Artikels enthält das Ubuntu 22.04 Repository tinc v1.0.36.

Ausgabe:

tinc-Paket anzeigen

Installiere das Paket„tinc„, indem du den unten stehenden Befehl „apt install“ eingibst. Wenn du dazu aufgefordert wirst, bestätige mit y und drücke ENTER, um fortzufahren.

sudo apt install tinc

Ausgabe:

tinc installieren

Wenn tinc VPN installiert ist, richtest du als Nächstes die UFW-Firewall ein und öffnest den Standard-Port, der von tinc verwendet wird.

UFW-Firewall konfigurieren

In diesem Schritt richtest du die Standard-Firewall ufw auf allen deinen Ubuntu-Servern ein. Du fügst den OpenSSH-Dienst und den tinc-VPN-Port hinzu und startest und aktivierst dann die ufw-Firewall.

Zuerst fügst du den OpenSSH-Dienst mit dem unten stehenden ufw-Befehl hinzu. Die Ausgabe„Rules updated“ bestätigt, dass die neue Regel zu ufw hinzugefügt wurde.

sudo ufw allow OpenSSH

Füge den Port 655 hinzu, der von tinc VPN verwendet wird, indem du den folgenden Befehl eingibst.

sudo ufw allow 655

Führe nun den folgenden ufw-Befehl aus, um die ufw-Firewall zu starten und zu aktivieren. Wenn du dazu aufgefordert wirst, gibst du zur Bestätigung y ein und drückst ENTER, um fortzufahren.

sudo ufw enable

Die Ausgabe„Firewall ist aktiv und wird beim Systemstart aktiviert“ bestätigt, dass die ufw-Firewall läuft und aktiviert ist, was bedeutet, dass ufw beim Systemstart automatisch gestartet wird.

Ausgabe:

ufw-Einrichtung

Überprüfe abschließend den Status der ufw-Firewall, indem du den folgenden Befehl eingibst. Die Ausgabe„Status: active“ bestätigt, dass die Firewall läuft. Außerdem ist jede Verbindung zu Port 655 erlaubt.

sudo ufw status

Ausgabe:

ufw verifizieren

Wenn tinc VPN installiert und die ufw-Firewall auf allen Servern aktiviert ist, kannst du das Peer-to-Peer-VPN zwischen diesen Servern einrichten und konfigurieren.

Tinc VPN Server konfigurieren

In diesem Schritt wirst du einen Peer-to-Peer-VPN-Server zwischen drei verschiedenen Ubuntu-Servern über tinc VPN einrichten.

Im Folgenden findest du eine Liste der Aufgaben, die du auf jedem Server durchführen musst:

  • Erstelle ein neues Verzeichnis, in dem die tinc VPN-Konfigurationen gespeichert werden, und ein neues Verzeichnis„hosts„, in dem die detaillierten Host-Konfigurationen gespeichert werden.
  • Erstelle die tinc VPN-Konfiguration„tinc.conf“ als Haupttinc-Konfiguration auf jedem Server.
  • Erstelle die Host-Konfiguration für jeden Server.
  • Erstelle die öffentlichen und privaten Schlüssel, die von tinc VPN verwendet werden sollen.
  • Erstelle einfache Bash-Skripte, mit denen du die VPN-Schnittstelle und das Netzwerk mit „tinc-up“ aktivierst oder mit „tinc-down“ deaktivierst. Außerdem musst du diese Skripte „tinc-up“ und „tinc-down“ ausführbar machen.

Mit diesem Wissen können wir nun mit der Konfiguration des tinc VPN-Servers beginnen.

Den ersten Server konfigurieren: tinc-ubuntu

Zunächst richtest du tinc auf dem ersten Knoten/Server„tinc-ubuntu“ ein.

Führe den folgenden Befehl aus, um ein neues VPN-Projektverzeichnis„/etc/tinc/testVPN/“ zu erstellen. Innerhalb des Verzeichnisses„/etc/tinc/testVPN/“ erstellst du außerdem das Verzeichnis„hosts„.

Im Verzeichnis „/etc/tinc/testVPN“ richtest du einen VPN-Server mit dem Namen„testVPN“ ein.

mkdir -p /etc/tinc/testVPN/hosts

Als Nächstes erstellst du eine neue tinc-VPN-Konfigurationsdatei „/etc/tinc/testVPN/tinc.conf“ mit dem folgenden Editor-Befehl nano.

nano /etc/tinc/testVPN/tinc.conf

Füge die folgenden Zeilen in die Datei ein. Mit diesen Konfigurationen benennst du diesen Server als„tinc_ubuntu“ und richtest die Schnittstelle für tinc VPN als„tun0“ ein und verwendest IPv4.

Außerdem musst du sicherstellen, dass der„Name“ des tinc VPN-Knotens kein „-“ oder Minus enthält. Du kannst das Minus ‚-‚ durch einen Unterstrich ‚_‘ ersetzen.

Name = tinc_ubuntu
AddressFamily = ipv4
Interface = tun0

Speichere und beende die Datei „/etc/tinc/testVPN/tinc.conf„, wenn du fertig bist.

Als Nächstes erstellst du mit dem folgenden nano-Editor-Befehl eine neue Host-Konfigurationsdatei„/etc/tinc/testVPN/hosts/tinc_ubuntu„. Du musst darauf achten, dass der Name der Hostkonfigurationsdatei mit dem „Namen“ des Hosts übereinstimmt, den du in der Datei„tinc.conf“ definiert hast.

nano /etc/tinc/testVPN/hosts/tinc_ubuntu

Füge die folgenden Zeilen in die Datei ein. Die„Adresse“ hier ist die externe IP-Adresse dieses Servers. Und das„Subnetz“ ist eine interne IP-Adresse, die für tinc VPN verwendet wird. Du kannst die Details der IP-Adresse in deiner Umgebung ändern und anpassen.

Address = 192.168.5.30
Subnet = 10.0.0.1/32

Speichere und schließe die Datei„/etc/tinc/testVPN/hosts/tinc_ubuntu“, wenn du fertig bist.

Als Nächstes führst du den folgenden„tincd„-Befehl aus, um den öffentlichen und privaten RSA-Schlüssel zu erzeugen. Der öffentliche RSA-Schlüssel wird automatisch in der Host-Konfigurationsdatei „/etc/tinc/testVPN/hosts/tinc_ubuntu“ gespeichert und der private RSA-Schlüssel in„/etc/tinc/testVPN/rsa_key.priv„.

sudo tincd -n testVPN -K4096

Ausgabe:

RSA-Schlüssel erzeugen

Nachdem der öffentliche und der private RSA-Schlüssel generiert wurden, erstellst du als Nächstes ein neues Bash-Skript, mit dem du das tinc-VPN-Netzwerk aktivieren und deaktivieren kannst.

Erstelle mit dem folgenden nano-Editor-Befehl ein neues Bash-Skript„/etc/tinc/testVPN/tinc-up„. Dieses Skript wird verwendet, um die tinc VPN-Netzwerkschnittstelle zu aktivieren.

sudo nano /etc/tinc/testVPN/tinc-up

Füge die folgenden Zeilen in die Datei ein. Achte darauf, dass du das Subnetz der IP-Adresse unten in der Datei „tinc.conf“ mit dem von dir definierten Subnetz des VPN-Netzwerks vergleichst.

#!/bin/sh
ip link set $INTERFACE up
ip addr add 10.0.0.1/32 dev $INTERFACE
ip route add 10.0.0.0/24 dev $INTERFACE

Speichere und schließe die Datei„/etc/tinc/testVPN/tinc-up“, wenn du fertig bist.

Erstelle nun ein neues Bash-Skript „/etc/tinc/testVPN/tinc-down“, das zum Deaktivieren der tinc-VPN-Netzwerkschnittstelle verwendet wird.

sudo nano /etc/tinc/testVPN/tinc-down

Füge die folgenden Zeilen in die Datei ein.

#!/bin/sh
ip route del 10.0.0.0/24 dev $INTERFACE
ip addr del 10.0.0.1/32 dev $INTERFACE
ip link set $INTERFACE down

Speichere und schließe die Datei „/etc/tinc/testVPN/tinc-down“, wenn du fertig bist.

Führe nun den Befehl chmod aus, um die beiden Bash-Skripte„/etc/tinc/testVPN/tinc-up“ und „/etc/tinc/testVPN/tinc-down“ ausführbar zu machen.

sudo chmod +x /etc/tinc/testVPN/tinc-*

Du kannst nun die Liste der Dateien im Verzeichnis „/etc/tinc/testVPN/“ mit dem unten stehenden Baumbefehl überprüfen.

tree /etc/tinc/testVPN/

Du solltest eine Ausgabe wie diese erhalten:

Dateien auflisten tinc-ubuntu

Damit hast du die tinc-VPN-Konfiguration auf dem ersten Server „tinc-ubuntu“ abgeschlossen. Als nächstes richtest du tinc VPN auf den Servern„client1“ und„client2“ ein.

Zweiten Server konfigurieren: client1

Führe den folgenden Befehl aus, um ein neues VPN-Projektverzeichnis„/etc/tinc/testVPN/“ zu erstellen. Innerhalb des Verzeichnisses „/etc/tinc/testVPN/“ erstellst du außerdem das Verzeichnis„hosts„.

Im Verzeichnis „/etc/tinc/testVPN“ richtest du einen VPN-Server mit dem Namen„testVPN“ ein.

mkdir -p /etc/tinc/testVPN/hosts

Als Nächstes erstellst du eine neue tinc-VPN-Konfigurationsdatei „/etc/tinc/testVPN/tinc.conf“ mit dem folgenden Editor-Befehl nano.

nano /etc/tinc/testVPN/tinc.conf

Füge die folgenden Zeilen in die Datei ein. Mit diesen Konfigurationen benennst du den Server als„client1„, richtest die Schnittstelle für tinc VPN als„tun0“ ein und verwendest IPv4. Außerdem erlaubst du tinc VPN„client1„, sich mit tinc VPN„tinc_ubuntu“ und„client2“ zu verbinden.

Name = client1
AddressFamily = ipv4
Interface = tun0

ConnectTo = tinc_ubuntu
ConnectTo = client2

Speichere und beende die Datei „/etc/tinc/testVPN/tinc.conf“, wenn du fertig bist.

Als Nächstes erstellst du mit dem folgenden nano-Editor-Befehl eine neue Host-Konfiguration„/etc/tinc/testVPN/hosts/client1„. Du musst darauf achten, dass der Name der Hostkonfigurationsdatei mit dem „Namen“ des Hosts übereinstimmt, den du in der Datei„tinc.conf“ definiert hast.

sudo nano /etc/tinc/testVPN/hosts/client1

Füge die folgenden Zeilen in die Datei ein. Die„Adresse“ hier ist die externe IP-Adresse dieses Servers. Und das„Subnetz“ ist eine interne IP-Adresse, die für tinc VPN verwendet wird. Du kannst die Details der IP-Adresse in deiner Umgebung ändern und anpassen.

Address = 192.168.5.120
Subnet = 10.0.0.2/32

Speichere und schließe die Datei „/etc/tinc/testVPN/hosts/client1„, wenn du fertig bist.

Als Nächstes führst du den folgenden „tincd“-Befehl aus, um den öffentlichen und privaten RSA-Schlüssel zu erzeugen. Der öffentliche RSA-Schlüssel wird automatisch in der Host-Konfigurationsdatei „/etc/tinc/testVPN/hosts/client1“ gespeichert und der private RSA-Schlüssel in „/etc/tinc/testVPN/rsa_key.priv„.

sudo tincd -n testVPN -K4096

Ausgabe:

rsa-Schlüssel erzeugen client1

Nachdem der öffentliche und der private RSA-Schlüssel generiert wurden, erstellst du als Nächstes ein neues Bash-Skript, mit dem du das tinc-VPN-Netzwerk aktivieren und deaktivieren kannst.

Erstelle mit dem folgenden nano-Editor-Befehl ein neues Bash-Skript „/etc/tinc/testVPN/tinc-up„. Dieses Skript wird verwendet, um die tinc VPN-Netzwerkschnittstelle zu aktivieren.

sudo nano /etc/tinc/testVPN/tinc-up

Füge die folgenden Zeilen in die Datei ein. Achte darauf, dass du das Subnetz der IP-Adresse in der Datei„tinc.conf“ mit dem Subnetz deines VPN-Netzwerks abgleichst.

#!/bin/sh
ip link set $INTERFACE up
ip addr add 10.0.0.2/32 dev $INTERFACE
ip route add 10.0.0.0/24 dev $INTERFACE

Speichere und schließe die Datei „/etc/tinc/testVPN/tinc-up“, wenn du fertig bist.

Erstelle nun ein neues Bash-Skript„/etc/tinc/testVPN/tinc-down„, das zum Deaktivieren der tinc-VPN-Netzwerkschnittstelle verwendet wird.

sudo nano /etc/tinc/testVPN/tinc-down

Füge die folgenden Zeilen in die Datei ein.

#!/bin/sh
ip route del 10.0.0.0/24 dev $INTERFACE
ip addr del 10.0.0.2/32 dev $INTERFACE
ip link set $INTERFACE down

Speichere und schließe die Datei „/etc/tinc/testVPN/tinc-down“, wenn du fertig bist.

Führe nun den Befehl chmod aus, um die beiden Bash-Skripte „/etc/tinc/testVPN/tinc-up“ und „/etc/tinc/testVPN/tinc-down“ ausführbar zu machen.

sudo chmod +x /etc/tinc/testVPN/tinc-*

Jetzt kannst du die Liste der Dateien im Verzeichnis„/etc/tinc/testVPN/“ auf dem Knoten„client1“ mit dem unten stehenden Baumbefehl überprüfen.

tree /etc/tinc/testVPN/

Du solltest eine Ausgabe wie diese erhalten:

Dateien auflisten

Damit hast du die tinc VPN-Konfiguration auf dem zweiten Server„client1“ abgeschlossen. Als Nächstes richtest du tinc VPN auf dem Server‚client2‚ ein.

Konfiguration des dritten Servers: client2

Führe den folgenden Befehl aus, um ein neues VPN-Projektverzeichnis „/etc/tinc/testVPN/“ zu erstellen. Innerhalb des Verzeichnisses „/etc/tinc/testVPN/“ erstellst du außerdem das Verzeichnis„hosts„.

Im Verzeichnis„/etc/tinc/testVPN“ richtest du einen VPN-Server mit dem Namen„testVPN“ ein.

mkdir -p /etc/tinc/testVPN/hosts

Als Nächstes erstellst du eine neue tinc-VPN-Konfigurationsdatei „/etc/tinc/testVPN/tinc.conf“ mit dem folgenden Editor-Befehl nano.

nano /etc/tinc/testVPN/tinc.conf

Füge die folgenden Zeilen in die Datei ein. Mit diesen Konfigurationen benennst du den Server als„client2„, richtest die Schnittstelle für tinc VPN als„tun0“ ein und verwendest IPv4. Außerdem erlaubst du tinc VPN„client2„, sich mit tinc VPN„tinc_ubuntu“ und„client1“ zu verbinden.

Name = client2
AddressFamily = ipv4
Interface = tun0

ConnectTo = tinc_ubuntu
ConnectTo = client1

Speichere und beende die Datei „/etc/tinc/testVPN/tinc.conf“, wenn du fertig bist.

Als Nächstes erstellst du mit dem folgenden nano-Editor-Befehl eine neue Host-Konfiguration„/etc/tinc/testVPN/hosts/client2„. Du musst darauf achten, dass der Name der Hostkonfigurationsdatei mit dem „Namen“ des Hosts übereinstimmt, den du in der Datei „tinc.conf“ definiert hast.

sudo nano /etc/tinc/testVPN/hosts/client2

Füge die folgenden Zeilen in die Datei ein. Die„Adresse“ hier ist die externe IP-Adresse dieses Servers. Und das„Subnetz“ ist eine interne IP-Adresse, die für tinc VPN verwendet wird. Du kannst die Details der IP-Adresse in deiner Umgebung ändern und anpassen.

Address = 192.168.5.122
Subnet = 10.0.0.3/32

Speichere und schließe die Datei „/etc/tinc/testVPN/hosts/client2“, wenn du fertig bist.

Als Nächstes führst du den folgenden „tincd“-Befehl aus, um den öffentlichen und privaten RSA-Schlüssel zu erzeugen. Der öffentliche RSA-Schlüssel wird automatisch in der Host-Konfigurationsdatei„/etc/tinc/testVPN/hosts/client2“ gespeichert und der private RSA-Schlüssel in „/etc/tinc/testVPN/rsa_key.priv„.

sudo tincd -n testVPN -K4096

Ausgabe:

rsa-Schlüssel erzeugen

Nachdem der öffentliche und der private RSA-Schlüssel generiert wurden, erstellst du als Nächstes ein neues Bash-Skript, mit dem du das tinc-VPN-Netzwerk aktivieren und deaktivieren kannst.

Erstelle mit dem folgenden nano-Editor-Befehl ein neues Bash-Skript„/etc/tinc/testVPN/tinc-up„. Dieses Skript wird verwendet, um die tinc VPN-Netzwerkschnittstelle zu aktivieren.

sudo nano /etc/tinc/testVPN/tinc-up

Füge die folgenden Zeilen in die Datei ein. Achte darauf, dass du das Subnetz der IP-Adresse unten in der Datei„tinc.conf“ mit dem von dir definierten Subnetz des VPN-Netzwerks vergleichst.

#!/bin/sh
ip link set $INTERFACE up
ip addr add 10.0.0.3/32 dev $INTERFACE
ip route add 10.0.0.0/24 dev $INTERFACE

Speichere und schließe die Datei „/etc/tinc/testVPN/tinc-up“, wenn du fertig bist.

Erstelle nun ein neues Bash-Skript „/etc/tinc/testVPN/tinc-down“, das zum Deaktivieren der tinc-VPN-Netzwerkschnittstelle verwendet wird.

sudo nano /etc/tinc/testVPN/tinc-down

Füge die folgenden Zeilen in die Datei ein.

#!/bin/sh
ip route del 10.0.0.0/24 dev $INTERFACE
ip addr del 10.0.0.3/32 dev $INTERFACE
ip link set $INTERFACE down

Speichere und schließe die Datei „/etc/tinc/testVPN/tinc-down„, wenn du fertig bist.

Führe nun den Befehl chmod aus, um die beiden Bash-Skripte „/etc/tinc/testVPN/tinc-up“ und„/etc/tinc/testVPN/tinc-down“ ausführbar zu machen.

sudo chmod +x /etc/tinc/testVPN/tinc-*

Du kannst nun die Liste der Dateien im Verzeichnis „/etc/tinc/testVPN/“ auf dem Knoten„client2“ mit dem unten stehenden Baumbefehl überprüfen.

tree /etc/tinc/testVPN/

Du solltest eine Ausgabe wie diese erhalten:

list files client2

Damit hast du die tinc-VPN-Konfiguration auf allen deinen Ubuntu-Servern abgeschlossen. Im nächsten Schritt tauschst du den öffentlichen RSA-Schlüssel, der in der Hostkonfiguration gespeichert ist, über scp (secure copy via SSH) mit jedem Server aus.

Schlüsselaustausch zwischen Hosts/Servern

In diesem Schritt kopierst du die Hostkonfigurationsdatei auf jedem Server per SCP auf den jeweils anderen. Dazu gehört auch der öffentliche RSA-Schlüssel, der in der Host-Konfigurationsdatei gespeichert ist.

Im Folgenden findest du die Details zur Hostdatei, die du kopieren musst:

  • Kopiere die Hostdatei vom Server „tinc-ubuntu“ auf die Server client1 und client2.
  • Kopiere die Hostdatei vom Server„client1“ auf die Server „ tinc-ubuntu“ und „client2“.
  • Kopiere die Host-Datei vom„client2„-Server auf den tinc-ubuntu- und client1-Server.

Das war’s.

Führe auf dem„tinc-ubuntu“ -Server den folgenden scp-Befehl aus, um die Host-Datei„/etc/tinc/testVPN/hosts/tinc_ubuntu“ auf die beiden Server client1 und client2 zu kopieren. Das Zielverzeichnis muss das Verzeichnis „/etc/tinc/testVPN/hosts/“ sein.

scp /etc/tinc/testVPN/hosts/tinc_ubuntu root@192.168.5.120:/etc/tinc/testVPN/hosts/
scp /etc/tinc/testVPN/hosts/tinc_ubuntu root@192.168.5.122:/etc/tinc/testVPN/hosts/

Ausgabe:

scp tinc-ubuntu

Führe auf dem„client1„-Server den folgenden scp-Befehl aus, um die Host-Datei „/etc/tinc/testVPN/hosts/client1“ auf die beiden Server tinc-ubuntu und client2 zu kopieren. Das Zielverzeichnis muss das Verzeichnis„/etc/tinc/testVPN/hosts/“ sein.

scp /etc/tinc/testVPN/hosts/client1 root@192.168.5.45:/etc/tinc/testVPN/hosts/
scp /etc/tinc/testVPN/hosts/client1 root@192.168.5.122:/etc/tinc/testVPN/hosts/

Ausgabe:

scp client1

Führe auf dem„client2„-Server den folgenden scp-Befehl aus, um die Host-Datei „/etc/tinc/testVPN/hosts/client2“ sowohl auf den tinc-ubuntu- als auch auf den client2-Server zu kopieren. Das Zielverzeichnis muss das Verzeichnis „/etc/tinc/testVPN/hosts/“ sein.

scp /etc/tinc/testVPN/hosts/client2 root@192.168.5.45:/etc/tinc/testVPN/hosts/
scp /etc/tinc/testVPN/hosts/client2 root@192.168.5.120:/etc/tinc/testVPN/hosts/

Ausgabe:

scp client2

Jetzt siehst du drei Hostdateien im Verzeichnis „/etc/tinc/testVPN/hosts/“ auf jedem Server. Überprüfe die Liste der Dateien im Verzeichnis‚/etc/tinc/testVPN/hosts/‘ mit dem folgenden Baumbefehl.

tree /etc/tinc/testVPN/hosts/

Ausgabe – Du solltest die Hostdateien„tinc_ubuntu„,„client1“ und„client2“ auf jedem Server sehen.

Hostdateien auflisten

Jetzt hast du tinc VPN auf allen Servern konfiguriert und die Hostdatei und den öffentlichen RSA-Schlüssel auf alle Server kopiert. Damit bist du bereit, die tinc VPN-Installation für Peer-to-Peer-Verbindungen zwischen mehreren Knoten/Servern zu überprüfen.

Peer-to-Peer-VPN-Server testen

In diesem Schritt überprüfst du die tinc VPN-Installation, indem du tinc manuell über einen Befehl ausführst und einen Ping von einem Server zum anderen mit der lokalen IP-Adresse der tun0-Schnittstelle des tinc VPN-Servers ausführst.

Starte den tinc VPN Server auf jedem Server mit dem folgenden Befehl.

sudo tincd -n testVPN -D -d3

Unten siehst du die detaillierte Ausgabe der drei Ubuntu-Server tinc-ubuntu, client1 und client2.

tinc peer-to-peer vpn testen

Als Nächstes öffnest du eine neue Terminalsitzung und verbindest dich mit dem „tinc-ubuntu“-Server. Führe dann den Ping-Befehl an die interne IP-Adresse von client1 „10.0.0.2“ und client2 „10.0.0.3“ aus.

ping 10.0.0.1 -c3
ping 10.0.0.2 -c3

Wenn du erfolgreich bist, solltest du von jedem Server eine Antwort erhalten.

tinc-ubuntu anpingen

Öffne nun eine neue Terminalsitzung und verbinde dich mit dem Server „client1“. Führe dann den Ping-Befehl an die interne IP-Adresse von tinc-ubuntu „10.0.0.1“ und client2 „10.0.0.3“ aus.

ping 10.0.0.1 -c3
ping 10.0.0.3 -c3

Wenn du erfolgreich bist, solltest du von jedem Server eine Antwort erhalten.

Client1 anpingen

Öffne abschließend wieder eine neue Terminalsitzung und verbinde dich mit dem Server „client2“. Führe dann den Ping-Befehl an die interne IP-Adresse von tinc-ubuntu „10.0.0.1“ und client1 „10.0.0.2“ aus .

ping 10.0.0.1 -c3
ping 10.0.0.2 -c3

Wenn du erfolgreich bist, solltest du von jedem Server eine Antwort erhalten.

Client2 anpingen

Jetzt kann sich jeder Server über eine interne IP-Adresse von tinc VPN mit dem anderen verbinden. Das bedeutet, dass die Einrichtung von tinc VPN zur Erstellung eines Peer-to-Peer-VPN-Servers abgeschlossen und erfolgreich ist.

Gehe zurück zu jeder Terminalsitzung und drücke „Strg + \“ im Terminal für den tinc VPN-Prozess. Im nächsten Schritt wirst du tinc VPN als systemd-Dienst starten und aktivieren.

Starten und Aktivieren des Tinc VPN-Dienstes

Führe den folgenden systemctl-Befehl aus, um den tinc VPN-Dienst zu starten und zu aktivieren. Achte darauf, dass du diesen Befehl auf allen deinen Ubuntu-Servern ausführst. In diesem Beispiel lautet der VPN-Name„testVPN„. Du kannst diesen Namen mit deinem Wunschnamen ändern.

Damit sollte der tinc VPN-Server im Hintergrund laufen und wird beim Systemstart automatisch gestartet.

sudo systemctl start tinc@testVPN
sudo systemctl enable tinc@testVPN

Überprüfe den tinc VPN-Dienst, indem du den systemctl-Befehl eingibst.

sudo systemctl status tinc@testVPN

Du solltest eine Ausgabe wie diese erhalten – Die Ausgabe„active (running)“ bestätigt, dass tinc VPN läuft, während die Ausgabe „…; enabled;…“ bestätigt, dass tinc VPN aktiviert ist und beim Systemstart automatisch gestartet wird.

tinc vpn Dienst starten

Du kannst auch die Schnittstelle tun0 überprüfen, die vom tinc VPN-Server erstellt wird. Gib auf jedem Server den folgenden ip-Befehl ein, um die Details der tun0-Schnittstelle zu überprüfen.

ip addr show tun0

Auf dem„tinc-ubuntu“ -Server solltest du die tun0-Schnittstelle mit der IP-Adresse 10.0.0.1 sehen. Auf dem Rechner„client1“ solltest du die tun0-Schnittstelle mit der IP-Adresse 10. 0.0.2 sehen. Auf dem Rechner ‚ client2 ‚ schließlich solltest du die tun0-Schnittstelle mit der IP-Adresse 10. 0.0.3 erhalten.

Fazit

In diesem Tutorial hast du gelernt, wie du ein Peer-to-Peer-VPN mit dem tinc VPN-Server auf Ubuntu 22.04-Servern erstellst und einrichtest. Du hast gelernt, wie du tinc VPN mit einer aktivierten Firewall auf mehreren Ubuntu-Servern einrichtest.

Tinc ist eine einfache, aber leistungsstarke VPN-Server-Software, die auf mehreren Betriebssystemen installiert werden kann. Du kannst weitere Server/Knoten zu deiner aktuellen tinc VPN-Installation hinzufügen. Außerdem kannst du ein Mesh-VPN aufbauen, ohne dich auf einen zentralen Knotenpunkt verlassen zu müssen.

Erfahre mehr über den tinc VPN-Server in der offiziellen tinc-Dokumentation.

Das könnte dich auch interessieren …