Ubuntu 24.04: Wie man SoftEther VPN Server einrichtet

SoftEther VPN ist eine vielseitige Open-Source-VPN-Lösung, die verschiedene Protokolle unterstützt und auf mehreren Plattformen läuft, darunter Linux, Windows und macOS. In diesem Artikel zeige ich dir, wie du einen SoftEther VPN Server auf einem Ubuntu 24.04 System einrichtest.

Diese Anleitung führt dich Schritt für Schritt durch den Prozess.

Grundvoraussetzungen

Bevor du mit der Installation beginnst, stelle sicher, dass folgende Voraussetzungen erfüllt sind:

  • Ein Ubuntu 24.04 Server mit Root-Zugriff oder einem Benutzer mit sudo-Rechten
  • Mindestens 1 GB RAM und 10 GB freier Festplattenspeicher
  • Eine stabile Internetverbindung
  • Grundlegende Kenntnisse in der Linux-Kommandozeile

System aktualisieren

Beginne damit, dein Ubuntu-System auf den neuesten Stand zu bringen:

ShellScript
sudo apt update
sudo apt upgrade -y

Abhängigkeiten installieren

SoftEther VPN benötigt einige Entwicklungswerkzeuge und Bibliotheken. Installiere diese mit folgendem Befehl:

ShellScript
sudo apt install build-essential libssl-dev libncurses5-dev libreadline-dev zlib1g-dev -y

SoftEther VPN herunterladen

Lade die neueste Version von SoftEther VPN herunter. Besuche dazu die offizielle Download-Seite und kopiere den Link für die Linux x64-Version. Führe dann folgende Befehle aus:

ShellScript
cd /tmp
ShellScript
wget https://www.softether-download.com/files/softether/v4.42-9798-rtm-2024.03.15-tree/Linux/SoftEther_VPN_Server/64bit_-_Intel_x64_or_AMD64/softether-vpnserver-v4.42-9798-rtm-2024.03.15-linux-x64-64bit.tar.gz

Hinweis: Überprüfe den Link auf der offiziellen Webseite, da er sich möglicherweise geändert hat.

SoftEther VPN entpacken und installieren

ShellScript
tar xzvf softether-vpnserver-v4.42-9798-rtm-2024.03.15-linux-x64-64bit.tar.gz
ShellScript
cd vpnserver

Kompiliere nun den SoftEther VPN-Server:

ShellScript
make

Dieser Vorgang kann einige Minuten dauern. Bestätige die Lizenzvereinbarung, indem du dreimal ‚1‘ eingibst.

SoftEther VPN-Server installieren

Verschiebe die kompilierten Dateien in das /usr/local-Verzeichnis:

ShellScript
sudo mv vpnserver /usr/local
cd /usr/local/vpnserver/
sudo chmod 600 *
sudo chmod 700 vpnserver vpncmd

Systemd-Service erstellen

Erstelle eine Systemd-Service-Datei für SoftEther VPN:

ShellScript
sudo nano /etc/systemd/system/softether-vpnserver.service

Füge folgenden Inhalt in die Datei ein:

ShellScript
[Unit]
Description=SoftEther VPN Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/vpnserver/vpnserver start
ExecStop=/usr/local/vpnserver/vpnserver stop
Restart=on-failure

[Install]
WantedBy=multi-user.target

Speichere die Datei und beende den Editor (STRG+X, dann Y und Enter).

SoftEther VPN-Server starten

ShellScript
sudo systemctl enable softether-vpnserver
sudo systemctl start softether-vpnserver

Überprüfe den Status des Dienstes:

ShellScript
sudo systemctl status softether-vpnserver

Firewall konfigurieren

Wenn du UFW als Firewall verwendest, öffne die erforderlichen Ports:

ShellScript
sudo ufw allow 443/tcp
sudo ufw allow 992/tcp
sudo ufw allow 1194/udp
sudo ufw allow 5555/tcp

Für eine fortgeschrittene Firewall-Konfiguration mit iptables, führe folgende Befehle aus:

ShellScript
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 992 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 1194 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 5555 -j ACCEPT
sudo iptables -A FORWARD -j ACCEPT
sudo iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE

SoftEther VPN-Server konfigurieren

Starte das Konfigurationsprogramm:
ShellScript
sudo /usr/local/vpnserver/vpncmd

Wähle Option 1, um den VPN-Server zu verwalten, und drücke Enter, um eine Verbindung zum lokalen Server herzustellen.

Setze ein Administratorpasswort:
ShellScript
ServerPasswordSet
Erstelle einen virtuellen Hub:
ShellScript
HubCreate myhub
Aktiviere SecureNAT für den Hub:
ShellScript
Hub myhub
SecureNatEnable
Erstelle einen Benutzer:
ShellScript
UserCreate myuser
Setze ein Passwort für den Benutzer:
ShellScript
UserPasswordSet myuser

L2TP/IPsec-Server konfigurieren (optional)

Wenn du L2TP/IPsec verwenden möchtest, aktiviere es mit folgenden Befehlen:

ShellScript
IPsecEnable

Setze ein vorgeteiltes Schlüsselwort (Pre-Shared Key):

ShellScript
IPsecSet

SSL-Zertifikate einrichten

Installiere Certbot für Let’s Encrypt-Zertifikate:

ShellScript
sudo apt install certbot -y

Beantrage ein Zertifikat für deine Domain:

ShellScript
sudo certbot certonly --standalone -d dein.domain.com

Kopiere die Zertifikate in das SoftEther VPN-Verzeichnis:

ShellScript
sudo cp /etc/letsencrypt/live/dein.domain.com/fullchain.pem /usr/local/vpnserver/
sudo cp /etc/letsencrypt/live/dein.domain.com/privkey.pem /usr/local/vpnserver/

Konfiguriere SoftEther VPN, um die Zertifikate zu verwenden:

ShellScript
sudo /usr/local/vpnserver/vpncmd
ServerCertSet /C=/usr/local/vpnserver/fullchain.pem /K=/usr/local/vpnserver/privkey.pem

Performance-Optimierung

Passe die Kernel-Parameter an, um die VPN-Performance zu verbessern:

ShellScript
sudo nano /etc/sysctl.conf

Füge folgende Zeilen hinzu:

ShellScript
net.ipv4.ip_forward = 1
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

Lade die Änderungen:

ShellScript
sudo sysctl -p

Server-Überwachung einrichten

Installiere Prometheus und Node Exporter:

ShellScript
sudo apt install prometheus node-exporter -y

Konfiguriere Prometheus, um den Node Exporter zu überwachen:

ShellScript
sudo nano /etc/prometheus/prometheus.yml

Füge folgende Konfiguration hinzu:

ShellScript
scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['localhost:9100']

Starte Prometheus neu:

ShellScript
sudo systemctl restart prometheus

Backup und Wiederherstellung

Erstelle ein Backup-Skript:

ShellScript
sudo nano /usr/local/bin/vpn-backup.sh

Füge folgenden Inhalt hinzu:

ShellScript
#!/bin/bash
BACKUP_DIR="/root/vpn-backups"
DATE=$(date +%Y-%m-%d)
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/vpnserver-$DATE.tar.gz /usr/local/vpnserver

Mache das Skript ausführbar:

ShellScript
sudo chmod +x /usr/local/bin/vpn-backup.sh

Füge einen Cron-Job für tägliche Backups hinzu:

ShellScript
sudo crontab -e

Füge folgende Zeile hinzu:

ShellScript
0 2 * * * /usr/local/bin/vpn-backup.sh

Multi-Faktor-Authentifizierung einrichten

Installiere das Google Authenticator PAM-Modul:

ShellScript
sudo apt install libpam-google-authenticator -y

Konfiguriere PAM für SSH:

ShellScript
sudo nano /etc/pam.d/sshd

Füge folgende Zeile hinzu:

ShellScript
auth required pam_google_authenticator.so

Aktiviere die Herausforderungs-Antwort-Authentifizierung in der SSH-Konfiguration:

ShellScript
sudo nano /etc/ssh/sshd_config

Ändere oder füge folgende Zeile hinzu:

ShellScript
ChallengeResponseAuthentication yes

Starte den SSH-Dienst neu:

ShellScript
sudo systemctl restart sshd

Client-Konfiguration

Windows-Client:
  1. Lade den SoftEther VPN Client für Windows herunter.
  2. Installiere den Client und starte ihn.
  3. Klicke auf „Add VPN Connection“.
  4. Gib die Serveradresse, den Benutzernamen und das Passwort ein.
  5. Klicke auf „Connect“.
macOS-Client:
  1. Lade den SoftEther VPN Client für macOS herunter.
  2. Installiere den Client und starte ihn.
  3. Klicke auf „Add VPN Connection“.
  4. Gib die Serveradresse, den Benutzernamen und das Passwort ein.
  5. Klicke auf „Connect“.
Linux-Client:

Lade den SoftEther VPN Client für Linux herunter.

Entpacke das Archiv und kompiliere den Client:

ShellScript
tar xzvf softether-vpnclient-v4.xx-xxxx-rtm-linux-x64-64bit.tar.gz
cd vpnclient
make

Starte den Client:

ShellScript
./vpnclient start

Konfiguriere die Verbindung:

ShellScript
./vpncmd

Wähle „2“ für neue VPN-Verbindung und folge den Anweisungen.

iOS-Client:
  1. Öffne die „Einstellungen“ App auf deinem iOS-Gerät.
  2. Tippe auf „Allgemein“ und dann auf „VPN & Geräteverwaltung“.
  3. Tippe auf „VPN“ und dann auf „VPN hinzufügen“.
  4. Wähle „L2TP“ als VPN-Typ aus.
  5. Gib folgende Informationen ein:
    • Beschreibung: Ein Name für deine VPN-Verbindung
    • Server: Die IP-Adresse oder der Hostname deines SoftEther VPN-Servers
    • Konto: Dein VPN-Benutzername
    • RSA SecurID: Lasse dies aus
    • Passwort: Dein VPN-Passwort
    • Geheimer Schlüssel: Der IPsec Pre-Shared Key, den du auf dem Server konfiguriert hast
  6. Tippe auf „Fertig“, um die Konfiguration zu speichern.
  7. Aktiviere den VPN-Schalter in den Einstellungen oder im Kontrollzentrum, um eine Verbindung herzustellen.
Android-Client:
  1. Öffne die „Einstellungen“ App auf deinem Android-Gerät.
  2. Tippe auf „Netzwerk & Internet“ und dann auf „VPN“.
  3. Tippe auf das „+“-Symbol, um ein neues VPN-Profil hinzuzufügen.
  4. Gib folgende Informationen ein:
    • Name: Ein Name für deine VPN-Verbindung
    • Typ: Wähle „L2TP/IPSec PSK“
    • Serveradresse: Die IP-Adresse oder der Hostname deines SoftEther VPN-Servers
    • L2TP-Geheimnis und IPSec-Kennung: Lasse diese Felder leer
    • IPSec-Schlüssel vorab: Gib den IPsec Pre-Shared Key ein, den du auf dem Server konfiguriert hast
  5. Tippe auf „Speichern“, um das Profil zu erstellen.
  6. Tippe auf das neu erstellte VPN-Profil.
  7. Gib deinen VPN-Benutzernamen und dein Passwort ein.
  8. Tippe auf „Verbinden“, um die VPN-Verbindung herzustellen.

Beachte, dass die genauen Schritte je nach Android-Version und Hersteller leicht variieren können.

Abschluss

Du hast nun erfolgreich einen umfassend konfigurierten SoftEther VPN-Server auf Ubuntu 24.04 eingerichtet. Der Server ist jetzt bereit, sichere VPN-Verbindungen von verschiedenen Clients anzunehmen, bietet erweiterte Sicherheitsfunktionen und ist für die Leistung optimiert.

Denke daran, regelmäßig Updates für dein System und den SoftEther VPN-Server durchzuführen, um die Sicherheit zu gewährleisten. Überwache die Leistung und die Logs des Servers mit den eingerichteten Monitoring-Tools, um potenzielle Probleme frühzeitig zu erkennen und zu beheben.

Die implementierte Backup-Strategie gewährleistet eine schnelle Wiederherstellung im Notfall, während die vorgenommenen Performance-Optimierungen eine reibungslose Nutzererfahrung sicherstellen.

Kommentar verfassen