IPSec Troubleshooting

Aus Securepoint Wiki
Version vom 18. April 2017, 16:50 Uhr von Pascalm (Diskussion | Beiträge) (Logmeldung Redirector)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu:Navigation, Suche

Informationen

Letze Anpassung zur Version: 11.7
Bemerkung:

  • Update von Strongswan 4.6.4 auf 5.3.5
  • Aus Pluto wird Charon (IKEv1)
  • Geänderte Logmeldungen

Vorherige Versionen: 11.6.12

IKEv1 Troubleshooting

Der Aufbau einer IPSec-Verbindung unter Verwendung von IKEv1 erfolgt in zwei Phasen. In der Phase 1 erfolgt die Authentifizierung beider Gateways gegeneinander. Dies kann auf zwei verschiedene Arten erfolgen: Dem „Agressive Mode“ oder dem „Main Mode“. Der Agressive Mode verschlüsselt den Pre Shared Key (PSK) über einen einfachen HashAlgorithmus. Außer diesem PSK sind keine weiteren Identifikationen vorgesehen. Daraus ergeben sich folgende Nachteile:

  • Bei Anbindung von mehreren Gegenstellen können diese in der Phase 1 nicht voneinander unterschieden werden. Deshalb muss in allen Verbindungen der gleiche PSK verwendet werden. Die Wahrscheinlichkeit der Kompromittierung steigt mit der Anzahl der Gegenstellen.
  • Die einfache Hash-Verschlüsselung des PSK macht ihn gegen Wörterbuch-Attacken verwundbar, und zwar umso mehr, je einfacher dieser ist. Da außer dem PSK kein weiteres Identifikationsmerkmal vorgesehen ist, können solche Attacken von jedem beliebigen Rechner mit Internetzugang durchgeführt werden.

Aus diesen Gründen findet der Agressive Mode von IPSec keine Verwendung in Verbindung mit Securepoint NextGen UTM. Es wird ausschließlich der sichere Main Mode eingesetzt. Dieser fordert außer dem PSK noch ein weiteres Identifikationsmerkmal, die sog. ID. Zudem wird die Übertragung des PSK durch das Diffie-Hellman-Schlüsselaustauschverfahren abgesichert. Dieses macht, mathematisch bewiesen, das Abhören eines übertragenen Schlüssels unmöglich. Weiterhin gestattet der Main Main Mode außer PSKs auch RSA-Schlüssel oder X.509-Zertifikate zur Authentifizierung.

Ipsec troubleshooting01.png

Phase 1: Der normale Verbindungsaufbau

Ipsec troubleshooting02.png

Kommt es in der Phase 1 zu keinem Fehler, ist dies durch einen Eintrag im LiveLog zu erkennen, der die erfolgreiche Etablierung einer IKE_SA meldet. Findet sich dieser Eintrag sowohl im Log des Initiators als auch in dem des Responders, ist die Phase 1 fehlerfrei konfiguriert und ein eventueller Konfigurationsfehler in der Phase 2 zu suchen.

Logmeldung

IKE_SA Standort_1_2[1] established between 198.51.100.75[198.51.100.75]...198.51.100.1[198.51.100.1]

Phase 1: Falsches Proposal

Ipsec troubleshooting03.png

Können sich beide Seiten nicht auf für beide Seiten annehmbare Verschlüsselungsparameter einigen, dann meldet dies der Responder in seinem Livelog. Der Initiator bekommt die Meldung „NO_PROPOSAL_CHOSEN“.

Logmeldung Initiator

received NO_PROPOSAL_CHOSEN notify error

Logmeldungen Responder

selecting proposal:
no acceptable ENCRYPTION_ALGORITHM found
received proposals: IKE:BLOWFISH_CBC_256/HMAC_SHA2_512_256/PRF_HMAC_SHA2_512/MODP_8192
configured proposals:IKE:AES_CBC_128/HMAC_SHA2_256_128/PRF_HMAC_SHA2_256/MODP_2048,IKE:AES_CBC_128/AES_CBC_192/AES_CBC_256/3DES_CBC/CAMELLIA_CBC_128/CAMELLIA_CBC_192/CAMELLIA_CBC_256/AES_CTR_128/AES_CTR_192/AES_CTR_256/CAMELLIA_CTR_128/CAMELLIA_CTR_192/CAMELLIA_CTR_256/HMAC_MD5_96/HMAC_SHA1_96/HMAC_SHA2_256_128/HMAC_SHA2_384_192/HMAC_SHA2_512/AES_XCBC_96/AES_CMAC_96/PRF_HMAC_MD5/PRF_HMAC_SHA1/PRF_HMAC_SHA2_256/PRF_HMAC_SHA2_512/256/AES_XCBC_96/AES_CMAC_96/PRF_AES128_CMAC/MODP_2048/MODP_2048_224/MODP_2048_256/MODP_1536/MODP_3072/MODP_4096/MODP_8192/MODP_1024/MODP_1024_160/ECP_256/ECP_384/ECP_512/ECP_224/ECP_192/ECP_224_BP/ECP_256_BP/ECP_384_BP_ECP_512_BP,IKE:AES_GCM_8_128/AES_GCM_8_192/AES_GCM_8_256/AES_GCM_12_128/AES_GCM_12_192/AES_GCM_12_256/AES_GCM_16_128/AES_GCM_16_192/AES_GCM_16_256/PRF_HMAC_MD5/PRF_HMAC_SHA1/PRF_HMAC_SHA2_256/PRF_HMAC_SHA2_384/PRF_HMAC_SHA2_512/PRF_AES128_XCBC/PRF_AES128_CMAC/MODP_2048/MODP_2048_224/MODP_2048_256/MODP_1536/MODP_3072/MODP_4096/MODP_8192/MODP_1024/MODP_1024_160/ECP_256/ECP_384/ECP__521/ECP_224/ECP_192/ECP_224_BP/ECP_256_BP/ECP_384_BP/ECP_512_BP
received proposals inacceptable

Phase 1: Falsche Remote-Gateway-Adresse

Ipsec troubleshooting04.png

Versucht der Initiator den Verbindungsaufbau von einer anderen als der auf Seiten des Responders konfigurierten Gateway-Adresse, kann der Responder diese Verbindung nicht zuordnen. Dies wird entsprechend im LiveLog gemeldet. Der Initiator bekommt die Meldung NO_PROPOSAL_CHOSEN.

Phase 1: Falsche ID Initiator

Ipsec troubleshooting05.png

Meldet sich der Initiator mit einem anderen Identifikator (ID) als in der Konfiguration des Responders hinterlegt, kann dieser keine PSK-Konfiguration für diesen Verbindungsversuch feststellen und meldet dies entsprechend im LiveLog. Der Initiator erhält die Fehlermeldung AUTHENTICATION_FAILED.

Logmeldung Initiator

received AUTHENTICATION_FAILED error notify

Logmeldung Responder

looking for pre-shared key peer configs matching 198.51.100.75...198.51.100.1[blubb]
no peer config found

Phase 1: Falsche ID Responder

Ipsec troubleshooting06.png

Meldet sich der Responder mit einer anderen ID als in der Konfiguration des Initiators, dann wird dies im Log des Initiators entsprechend gemeldet.

Logmeldung Initiator

IDir 'blubb' does not match to '198.51.100.75'

Phase 1: Falscher PSK

Ipsec troubleshooting07.png

Im Gegensatz zu älteren Software-Versionen findet sich bei nicht übereinstimmenden PSKs bei Verwendung von IKEv1 kein klar lesbarer Hinweis im Log. Indirekt weist der Hinweis auf „deformierte“ Pakete auf diesen Fehler hin.

Logmeldung Initiator

message parsing failed
ignore malformed INFORMATIONAL request
INFORMATIONAL_V1 request with message ID 1054289493 processing failed

Logmeldung Responder

message parsing failed
ID_PROT request with message ID 0 processing failed

Phase 1: Falscher RSA-Key Initiator

Ipsec troubleshooting17.png

Verwendet der Initiator der Verbindung einen anderen RSA-Key wie in der Konfiguration des Responders eingestellt, kann keine Authentifizierung erfolgen. Der Initiator erhält die Fehlermeldung „AUTHENTICATION_FAILED“.

Logmeldung Initiator

authentication of 'Filiale' (myself) succesful
received AUTHENTICATION_FAILED error notify

Logmeldung Responder

looking for RSA signature peer configs matching 198.51.100.75...198.51.100.1[Filiale]
candidate "Standort1_4", match: 1/20/28 (me/other/ike)
selected peer config "Standort1_4"
using trusted certificate "Filiale"
signature validation failed, looking for another key
no trusted RSA public key found for 'Filiale'

Phase 1: Falscher RSA-Key Responder

Ipsec troubleshooting18.png

Verwendet der Responder einen anderen RSA-Schlüssel als in der Konfiguration des Initiators angegeben, dann schlägt wiederum auf Seiten des Initiators die Authentifizierung fehl. Der Responder, der bereits eine IKE_SA etabliert hat, wird angewiesen, diese wieder zu löschen.

Logmeldung Initiator

authentication of 'Filiale' (myself) succesful
using trusted certificate "Zentrale"
signature validation failed, looking for another key
no trusted RSA public key found for 'Zentrale'

Logmeldung Responder

looking for RSA signature peer configs matching 198.51.100.75...198.51.100.1[Filiale]
candidate "Standort1_4", match: 1/20/28 (me/other/ike)
selected peer config "Standort1_4"
using trusted certificate "Filiale"
authentication of 'Filiale' with RSA succesful
authentication of 'Zentrale' (myself) succesful
IKE_SA Standort1_4[1] established between 198.51.100.75[Zentrale]...198.51.100.1[Filiale]
scheduling reauthentication in 2593s
maximum IKE_SA lifetime 3133s
received DELETE for IKE_SA Standort_4[1]

Phase 2: Der normale Verbindungsaufbau

Ipsec troubleshooting08.png

Ist auch die Phase 2 korrekt konfiguriert, wird der erfolgreiche Aufbau einer CHILD_SA im Livelog beider Seiten dokumentiert.

Logmeldung

CHILD_SA Zentrale_2{1} established with SPIs ca7520e3_i c562f9d6_o and T S 10.1.0.0/24 === 10.0.0.0/24

Phase 2: Falsche Subnetzkonfiguration

Ipsec troubleshooting09.png

Stimmen die konfigurierten Subnetze (die sogenannten Traffic-Selektoren) in der Phase 2 von Initiator und Responder nicht überein, kann auf der zuvor etablierten IKE_SA kein Tunnel aufgesetzt werden, d.h. es wird keine CHILD_SA etabliert. Dieser Hinweis findet sich im Livelog des Responders.

Logmeldung Initiator

proposing traffic selectors for us:
10.1.0.0/24
proposing traffic selectors for other:
11.0.0.0/24
received INVALID_ID_INFORMATION error notify

Logmeldung Responder

looking for a child config for 11.0.0.0/24 === 10.1.0.0/24
proposing traffic selectors for us:
10.0.0.0/24
proposing traffic selectors for other:
10.1.0.0/24
no matching CHILD_SA config found

IKEv2 Troubleshooting

Der Aufbau der Verbindung mit IKEv2 ist im Vergleich zu IKEv1 massiv vereinfacht worden. Er wird nun nicht mehr aufgeteilt in Phase 1 (Authentifizierung) und Phase 2 (Tunnelaufbau), vielmehr werden mit jeweils einem Nachrichtenpaar zunächst Proposals und DH-Schlüssel und anschließend die Authentifizierung und die Traffic-Selektoren (Subnetze) ausgetauscht. Das macht den Verbindungsaufbau einfacher und weniger störanfällig.

Ipsec troubleshooting10.png

IKEv2: Verbindung kommt zustande

Ipsec troubleshooting11.png

Einen erfolgreichen Verbindungsaufbau erkennt man an einer Meldung im Livelog, die die erfolgreiche Etablierung einer CHILD_SA dokumentiert.

Logmeldung

selected proposal_ ESP_AES_CBC_128/HMAC_SHA2_256_128/NO_EXT_SEQ
selecting traffic selectors for us:
config: 10.1.0.0/24, received: 10.1.0.0/24 => match: 10.1.0.0/24
selecting traffic selectors for ther:
config: 10.0.0.0/24, received: 10.0.0.0/24 0> match: 10.0.0.0/24
CHILD_SA Zentrale_3{2} established with SPIs c24bb346_i c8e52c94_o and T S 10.1.0.0/24 === 10.0.0.0/24

IKEv2: Falsche Remote-Gateway-Adresse

Ipsec troubleshooting12.png

Stimmen die Gateway-Adresse des Initiators und die in der Konfiguration des Responders angegebene Remote-Gateway-Adresse nicht überein, kann der Verbindungsversuch nicht zugeordnet werden. Dies wird so im Log des Responders gemeldet. Der Initiator erhält die Fehlermeldung „NO_PROPOSAL_CHOSEN“.

Logmeldung Responder

looking for an ike config fo 198.51.100.75...198.51.100.1
no IKE config for 198.51.100.75...198.51.100.1, sending NO_PROPOSAL_CHOSEN

IKEv2: Falsche ID Initiator

Ipsec troubleshooting13.png

Stimmt die konfigurierte Remote ID nicht mit der ID überein, die der Initiator meldet, dann kann auch hier der Verbindungsversuch nicht zugeordnet werden und dies im Responder-Log dokumentiert. Der Initiator bekommt die Fehlermeldung AUTHENTICATION_FAILED.

Logmeldung Initiator

received AUTHENTICATION_FAILED error notify

Logmeldung Responder

looking for pre-shared key peer configs matching 198.51.100.75...198.51.100.1[blubb]
no peer config found

IKEv2 Falsche ID Responder

Ipsec troubleshooting14.png

Umgekehrt wird eine andere als die beim Initiator konfigurierte Responder-ID entsprechend im Log des Initiators gemeldet.

Logmeldung Initiator

IDir 'blubb' does not match to '198.51.100.75'

IKEv2: Falscher PSK

Ipsec troubleshooting15.png

Stimmt der PSK nicht überein, meldet der Responder, dass der MAC (Message Authentication Code) nicht übereinstimmt. Der Initiator bekommt die Fehlermeldung „AUTHENTICATION_FAILED“

Logmeldung Initiator

received AUTHENTICATION_FAILED notify error

Logmeldung Responder

tried 2 shared keys for '198.51.100.75' - '198.51.100.1', but MAC mismatched

IKEv2: Falsche Subnetzkonfiguration

Ipsec troubleshooting16.png

Stimmen die konfigurierten Subnetze (die sogenannten Traffic-Selektoren) in der Phase 2 von Initiator und Responder nicht überein, kann auf der zuvor etablierten IKE_SA kein Tunnel aufgesetzt werden, d.h. es wird keine CHILD_SA etabliert. Dieser Hinweis findet sich im Livelog des Responders.

Logmeldung Initiator

received T S_UNACCEPTABLE notify, no CHILD_SA built
failed to establish CHILD_SA, keeping IKE_SA

Logmeldung Responder

looking for a child config for 10.0.0.0/24 === 11.1.0.0/24
proposing traffic selectors for us: 
10.0.0.0/24
proposing traffic selectors for other:
10.1.0.0/24
traffic selectors 10.0.0.0/24 === 11.1.0.0/24 inacceptable
failed to establish CHILD_SA, keeping IKE_SA