SSTP (Secure Socket Tunneling Protocol) kapselt PPP in TLS über TCP-Port 443 und kommt damit durch nahezu jede Firewall. Auf Linux-Seite stellt sstp-client den Verbindungsaufbau bereit, als Server dient häufig SoftEther VPN oder ein Windows-RRAS-Host.
Linux-Client: sstp-client installieren und verbinden
sudo apt install sstp-client
sudo sstpc --save-password
--user alice --password geheim123
vpn.example.com usepeerdns require-mschap-v2
noauth refuse-eap nomppe
Die Verbindung erscheint danach als PPP-Interface:
ip addr show ppp0
ip route
Alternativ konfiguriert NetworkManager die Verbindung als SSTP-VPN:
nmcli connection add type vpn vpn-type sstp
con-name sstp-vpn ifname ppp0
vpn.data "gateway = vpn.example.com, user = alice"
nmcli connection up sstp-vpn
Server: SoftEther VPN mit SSTP-Listener
SoftEther aktiviert SSTP über die Verwaltungskonsole vpncmd:
sudo systemctl start vpnserver
sudo /usr/local/vpnserver/vpncmd
# 1) Server waehlen, 2) ServerPasswordSet setzen, dann:
ServerSstpEnable yes
ListenerCreate 443
SecureNatEnable
Für SSTP wird ein TLS-Zertifikat benötigt; SoftEther liefert ein Default-Zertifikat, das man für Tests nutzen oder durch ein eigenes ersetzen kann. Der Client muss dem Serverzertifikat vertrauen — bei selbstsignierten Zertifikaten schlägt die TLS-Prüfung sonst fehl.
Windows-Server (RRAS)
Auf Windows konfiguriert man SSTP über Routing und RAS beziehungsweise PowerShell:
Add-VpnConnection -Name "SSTP" -ServerAddress vpn.example.com -TunnelType Sstp
Hinweise
- SSTP läuft über TCP 443 — TCP-over-TCP kann bei Paketverlust zu Stocken führen (RTP-artige Stausymptome).
- Der Linux-Kernel braucht für den PPP-Teil ein funktionierendes
pppd;sstpcreicht die Optionen nach dem Servernamen direkt an pppd durch.
Verwandte Grundlagen: SSTP, L2TP-Befehle, PPTP-Befehle, IP-Tunnel, VPN-Grundlagen, VPN.