FortiClient ssl-vpn Failed

Failed to establish the VPN connection. This may be caused by a mismatch in the TLS version. Please check the TLS version settings in the Advanced of the Internet options. (-5029)

Beim FortiClient kann der aufbau einer SSL-VPN Verbindung zur FortiGate folgende Warnung ausgeben.

Symptom

Failed to establish the VPN connection. This may be caused by a mismatch in the TLS version. Please check the TLS version settings in the Advanced of the Internet options.

Ursache

Das mittlerweile veraltete kryptografische Protokoll TLS 1.0 ist ab FortiOS 6.0 per default nicht mehr aktiviert. Es wird empfohlen mindestens TLS 1.1 (Cipher Suites) für Authentifizierung und Datenverschlüsselung zu verwenden. Wir sind derzeit bei TLS 1.3, das von der IETF (Internet Engineering Task Force) genehmigt wurde.

Lösung

Möchte man ältere Clients weiter verwenden, die man im Verlauf einer Migration über Update Rollout erst später mit TLS 1.2 oder höher einsatzbereit hat, kann auf der FortiGate das TLS 1.0 aktiviert werden.

Überprüfen der aktuellen TLS Einstellung, aus der FortiGate Console mit CLI Command:

FG60E # get vpn ssl settings | grep tls
tlsv1-0             : disable
tlsv1-1             : enable
tlsv1-2             : enable
dtls-hello-timeout  : 10
dtls-tunnel         : enable

Im CLI die Cipher Suite TLS 1.0 aktivieren.

config vpn ssl settings
set tlsv1-0 enable

Auch kann beim Client die TLS Version aus dem Microsoft Windows Snapin (inetcpl.cpl) Internetoptionen angepasst werden.

Windows-Logo + R

Win + R und der Eingabe von inetcpl.cpl

inetcpl.cpl ausführen

Bei Internetoptionen im Registerabschnitt Erweitert die TLS Version 1.0 aktivieren.

Internetoptionen Erweitert TLS 1.0 verwenden

Weitere Problemlösungen

Bei älteren Windows Versionen, oder bei Router mit PPPoE Internet Anbindung, können Fehler beim aufbau von SSL-VPN Verbindungen wie folgt behoben werden.

Es erscheint im FortiClient die Fehlermeldung:

Unable to establish the VPN connection. The VPN server may be unreachable (-5)

Dazu überprüft man die MTU grösse der Netzwerkschnittstellen, mit folgendem Befehl aus einer geöffneten Eingabeaufforderung

netsh interface ipv4 show subinterface

Die Ausgabe kann in etwa wie folgt aussehen:

C:\> netsh interface ipv4 show subinterface

   MTU  Medienerkennungsstatus   Bytes eingehend  Bytes ausgehend  Schnittstelle
------  ---------------  ---------  ---------  -------------
  1500                5          0          0  Ethernet
  1500                1  598892209   19487894  WiFi
  1500                5          0          0  Mobilfunk
  1500                1       5248     144442  VMware Network Adapter VMnet1
  1500                5          0          0  LAN-Verbindung* 1
  1500                1          0     134436  VMware Network Adapter VMnet8
  1500                5          0          0  LAN-Verbindung* 5
4294967295                1          0      67869  Loopback Pseudo-Interface 1
  1500                5          0          0  Bluetooth-Netzwerkverbindung
  1500                5          0          0  Ethernet 3

Die MTU Size überprüfen und ggf. auf 1400 anpassen. In einer als Administrator geöffneten Eingabeaufforderung, mit ausführen von netsh.

netsh interface ip4 set subinterface Ethernet mtu=1400 store=persistent

Alternativ dazu Regedit aufrufen und zu folgendem Schlüssel navigieren.

Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces

unter dem entsprechenden Interface mit der passenden IP Adresse, hier {222e135b-d09c-47a3-9236-63a041a02ea6} den Schlüssel MTU mit Wert 578 Hexadecimal ändern.

Regedit Interface mit der passenden IP Adresse

Nach einem Computer neustart kann die SSL-VPN Verbindung aufgebaut werden.

Meine IP Adresse abfragen

Die globale Internet IP Adresse im Terminal abfragen, lokale IPv4 und IPv6 Adressen im Command Prompt abfragen

Meine IP Adresse abfragen in LinuxDie globale IP abfragen mit dieser man im Internet surft, in CLI für Windows, Linux und macOS

IP Adresse in Linux

Mit ausführen folgender Zeile im Linux Terminal, die öffentliche Globale IP Adresse abfragen:

$ curl echo.ipline.ch

Die lokale private IP Adresse mit folgender Zeile ermitteln:

$ /sbin/ifconfig ens192 | grep 'inet' | cut -d: -f2 | awk '{print $2}'

Für in deutscher Sprache installierte Linux Betriebssysteme:

$ /sbin/ifconfig ens192 | grep 'inet Adresse' | cut -d: -f2 | awk '{print $2}'

Hinweis: ipconfig ist veraltet, bei den aktuellen Distributionen, Debian, Ubuntu und Fedora, ist der Befehl ip enthalten, die folgende Zeile gibt die IPv4 Adressen aus.

$ ip -4 addr

Die etwas übersichtlicher Version wie folgt:

$ ip -4 addr | grep -oP '(?<=inet\s)\d+(\.\d+){3}'

Sollen nur IPv6 Adressen ausgegeben werden:

$ ip -6 addr | grep -oP '(?<=inet6\s)[\da-f:]+'

Auch kann der Befehl „hostname“ nützliche Werte liefern:

$ hostname -i | awk '{print $3}'

IP Abfrage in macOS

Meine IP Adresse abfragen in macOS


macOS liefert mit folgendem Befehl die IP Adresse aus dem Terminal

$ /sbin/ifconfig en0 | awk '/inet /{print $2}'

Und auch der Befehl hostname steht bei macOS zur Verfügung:

$ hostname -I

ipconfig in Windows

Meine IP Adresse abfragen in Windows

Windows gibt mit ipconfig die Ausgabe der IP Adressen

C:\> ipconfig /all

Auch nur IPv4 Adressen können abgefragt werden:

C:\> ipconfig | findstr /i "ipv4"

Um den Wust an Informationen zu reduzieren, die ipconfig erzeugt, kann das Command wmic dazu helfen.

C:\> wmic NICCONFIG GET IPAddress

Diese Abfrage gibt ebefalls die IP Adresse jeder Schnittstelle aus.

C:\> netsh interface ipv4 show address

IP Adressen in der PowerShell mit Get-NetIPAddress anzeigen

PS C:\> Get-NetIPAddress | ft

Auch hier können nur IPv4 Adressen abgefragt werden:

PS C:\> Get-NetIPAddress –AddressFamily IPv4 | ft

Mit der Eingabe von Get-NetIPAddress -? werden alle Parameter zum cmdlet ausgegeben.

Öffentliche IP Adresse und lokale private IP Adresse in der PowerShell anzeigen

$GlobalIP = Invoke-RestMethod -Uri http://echo.ipline.ch
$PrivatIP = $(Get-NetIPAddress -InterfaceIndex 11 -AddressFamily IPv4).IPAddress
Write-Host "Meine öffentliche IPv4 Adresse ist:" $GlobalIP
Write-Host "Meine private IPv4 Adresse ist:" $PrivatIP