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; sstpc reicht die Optionen nach dem Servernamen direkt an pppd durch.

Verwandte Grundlagen: SSTP, L2TP-Befehle, PPTP-Befehle, IP-Tunnel, VPN-Grundlagen, VPN.