Anda di halaman 1dari 41

Troubleshooting VPN

IPSEC & SSL

CURSO INTERMEDIO
ING. EDDER HERNANDEZ
ING. VICTOR TOVAR
Métodos principales para implementar VPN
de acceso remoto

 Capa de sockets seguros (SSL)


 Seguridad IP (IPsec)
 SSL admite diversos algoritmos
criptográficos para las operaciones, como la
autenticación del servidor y el cliente entre
sí, la transmisión de certificados y el
establecimiento de claves de sesión.
(Secure Sockets Layer)

4
Creación de VPN por SSL
Definición de usuarios y grupos
SSL settings
Políticas de firewall

SSL (grupode usuarios) --> LAN


SSL --> WAN
Políticas de firewall
Políticas de firewall
Troubleshooting SSL
 Niveles de diagnostico con el comando
DIAGNOSE DEBUG APPLICATION SSLVPN # (nivel de debug):
 Nivel 1: Muestra solo errores de autenticación
 Nivel 2: Muestra errores de sesión (tiempo de espera/expirado/errores)
 Nivel 4 y 8: No muestran información relevante
 Nivel 16: Muestra la negociación SSL y la información de la sesión
 Nivel 32: Muestra la conexión exitosa, la política de firewall y las aplicaciones
a las que se conecta
 Nivel 64: Muestra la conversación HTTP del usuario remoto al servidor.
 Nivel 128: Muestra la negociación SSL del cliente hasta del Fortigate
 Nivel 255: Muestra todos lo niveles anteriores
 “diag debug application sslvpn 16”

SSL established: DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256) Mac=SHA1


[69:root]two factor check for Xtm_Stnd1_SSL: off
[69:root]rmt_websession.c:310 decode session id ok,
user=[Xtm_Stnd1_SSL],group=[SSL_Web_Access],host=[172.16.10.254],idx=0,auth=1,login=133414
7866
[69:root]rmt_websession.c:310 decode session id ok,
user=[Xtm_Stnd1_SSL],group=[SSL_Web_Access],host=[172.16.10.254],idx=0,auth=1,login=133
4147866
[69:root]SSL established: DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256)
Mac=SHA1
[69:root]SSL established: DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA Enc=AES(256)
Mac=SHA1
[69:root]rmt_websession.c:310 decode session id ok,
user=[Xtm_Stnd1_SSL],group=[SSL_Web_Access],host=[172.16.10.254],idx=0,auth=1,login=133414
7866
[69:root]rmt_websession.c:310 decode session id ok,
user=[Xtm_Stnd1_SSL],group=[SSL_Web_Access],host=[172.16.10.254],idx=0,auth=1,login=133414
7866
 “diag debug application sslvpn 32”
[69:root]SSLVPN login matched policy 2 (vd 0)
[69:root]Destroy sconn 0x41e8b800, connSize=5.
[69:root]Destroy sconn 0x41e8b400, connSize=5.
[69:root]Destroy sconn 0x41e8b000, connSize=4.
[69:root]Destroy sconn 0x41e8ac00, connSize=3.

Xtreme-Student-1 #
Xtreme-Student-1 #
Xtreme-Student-1 # [69:root]rmt_apsession.c:1940 checking web session
[69:root]rmt_apsession.c:1945 remote_ip=[172.16.10.254],
user=[Xtm_Stnd1_SSL], iif=6, auth=1, dsthost=[192.168.10.30],
dst=192.168.10.30, dport=80, service=[http]
[69:root]1 0x41e8a400,ssl=0x41c56200,(nil),connect to 192.168.10.30:80.
 “diag debug application sslvpn 64”
[69:root]proxy_http_state.c:517 no filtering for pol 2 group SSL_Web_Access
[69:root]0x41e8b000 doSSLConnect() cookie in:
SVPNCOOKIE=8ca5m9WCVIfw1tea7rM4HQbS2iFPlsL/4yzl8d0V+U9VGUvE5jDzvpFisO
qkoYk7%0axkPqjFLlFSlUFBtFCBrZ+2CAQziUZOLb2m8tsDZ7pRYeYZPWo+YlI1IN73aCh
HVh%0agTBXSyZzYbNnCHCWBSXywQ==%0a
[69:root]0x41e8b000 doSSLConnect() cookie out:
[69:root]0x41e8b000 proxyHttpSendHeader() send header:
GET / HTTP/1.1
Host: 192.168.10.30
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
If-Modified-Since: Mon, 09 Apr 2012 01:34:32 GMT
If-None-Match: "5cdd1eaf015cd1:0"
Referer: htt
 “diag debug application sslvpn 128”
[69:root]SSL state:warning close notify (172.16.10.254)
[69:root]SSL state:warning close notify (172.16.10.254)
[69:root]SSL state:warning close notify (172.16.10.254)
[69:root]SSL state:warning close notify (172.16.10.254)
[69:root]SSL state:before/accept initialization (172.16.10.254)
[69:root]SSL state:SSLv3 read client hello A (172.16.10.254)
[69:root]SSL state:SSLv3 write server hello A (172.16.10.254)
[69:root]SSL state:SSLv3 write change cipher spec A (172.16.10.254)
[69:root]SSL state:SSLv3 write finished B (172.16.10.254)
[69:root]SSL state:SSLv3 flush data (172.16.10.254)
[69:root]SSL state:SSLv3 read finished A (172.16.10.254)
[69:root]SSL state:SSL negotiation finished successfully (172.16.10.254)
 “diag debug application sslvpn 255”
[69:root]SSL state:before/accept initialization (172.16.10.254)
[69:root]SSL state:SSLv2/v3 read client hello A:system lib(172.16.10.254)
[69:root]SSL state:SSLv3 read client hello A (172.16.10.254)
[69:root]SSL state:SSLv3 write server hello A (172.16.10.254)
[69:root]SSL state:SSLv3 write certificate A (172.16.10.254)
[69:root]SSL state:SSLv3 write key exchange A (172.16.10.254)
[69:root]SSL state:SSLv3 write server done A (172.16.10.254)
[69:root]SSL state:SSLv3 flush data (172.16.10.254)
[69:root]SSL state:SSLv3 read client certificate A:system lib(172.16.10.254)
[69:root]SSL state:SSLv3 read client certificate A:system lib(172.16.10.254)
[69:root]SSL state:SSLv3 read client key exchange A (172.16.10.254)
[69:root]SSL state:SSLv3 read finished A (172.16.10.254)
[69:root]SSL state:SSLv3 write change cipher spec A (172.16.10.254)
[69:root]SSL state:SSLv3 write finished B (172.16.10.254)
[69:root]SSL state:SSLv3 flush data (172.16.10.254)
[69:root]SSL state:SSL negotiation finished successfully (172.16.10.254)
[69:root]SSL established: DHE-RSA-AES256-SHA SSLv3 Kx=DH Au=RSA
Enc=AES(256) Mac=SHA1
[69:root]two factor check for Xtm_Stnd1_SSL: off
[69:root]SSLVPN login matched policy 2 (vd 0)
[69:root]rmt_websession.c:310 decode session id ok,
user=[Xtm_Stnd1_SSL],group=[SSL_Web_Access],host=[172.16.10.254],idx=0,auth=1,lo
gin=1334150476
[69:root]rmt_websession.c:310 decode session id ok,
user=[Xtm_Stnd1_SSL],group=[SSL_Web_Access],host=[172.16.10.254],idx=0,auth=1,lo
gin=1334150476
[69:root]SSL state:before/accept initialization (172.16.10.254)
[69:root]SSL state:SSLv2/v3 read client hello A:system lib(172.16.10.254)
[69:root]SSL state:SSLv3 read client hello A (172.16.10.254)
[69:root]SSL state:SSLv3 write server hello A (172.16.10.254)
[69:root]SSL state:SSLv3 write certificate A (172.16.10.254)
[69:root]SSL state:SSLv3 write key exchange A (172.16.10.254)
[69:root]SSL state:SSLv3 write server done A (172.16.10.254)
[69:root]SSL state:SSLv3 flush data (172.16.10.254)
 Cuando el tunnel se encuentra abajo estos son los resultados que muestra
[69:root]ipcp: down ppp:0x41cde000 tun: 0x41c74050 ref 1
[69:root]sys-fortik.c:703 deassociate 192.16.210.100 to tun (22)
[69:root]tun: delete device: 0x41c74050

[69:root]tunnel_state.c,cliRead,770, read=0, tunnel finish.


[69:root]tunnel_state.c:tunnelStateCleanup:912 0x41df4800::0x41c56500
[69:root]Destroy sconn 0x41df4800, connSize=1.
[69:root]Destroy sconn 0x41df4400, connSize=0.
[69:root]Destroy sconn 0x41df4400, connSize=0.
IPSEC
 IPSec no se limita a ningún tipo específico
de cifrado, autenticación, algoritmo de
seguridad ni tecnología de creación de
claves.
IKE (Internet key exchange)

 IKE es un protocolo usado para establecer una


Asociación de Seguridad (SA) emplea un
intercambio secreto de claves de tipo Diffie-
Hellman para establecer el secreto compartido de
la sesión. Se suelen usar sistemas de clave pública
o clave pre-compartida.
Diffie-Hellman

 Seemplea generalmente como medio para


acordar claves simétricas que serán
empleadas para el cifrado de una sesión
 Suseguridad radica en la extrema
dificultad de calcular algoritmos de
comunicación.
DH Group
 Al
configurar una VPN IPSEC en
FortiOS, hay tres "pseudo" Pasos para
definir una conexión IPSec VPN:

 Fase 1
 Fase 2
 Políticas de firewall
Fase 1
 Enesta fase los compañeros utilizan la
clave precompartida o los certificados
para la autenticación. Después de esto
se crea un DES, 3DES o AES clave
simétrica para cifrar la comunicación.
Fase 2
 Una vez que la Fase 1 está terminado, la negociación se
inicia la fase 2.
En esta fase los gateway se autentican y se requiere
especificar la clave de cifrado que se va a utilizar para
establecer la asociación de seguridad que en realidad se
configura el túnel de comunicación seguro.
Una vez que se han puesto de acuerdo en la clave, los
compañeros envían las redes de origen y destino en que
se cifrará el tráfico.
VPN IPSEC DEBUGGING

 #diag debug enable


 Este commando habilita la salida del debug

 #diag debug disable


 Este commando deshabilita la salida del debug

 #diag vpn ike restart


 Este comando forzará el daemon IKE para reiniciar
VPN DEBUGGING
 Para habilitar la depuración en IKE se utiliza el siguiente comando

 #diag debug application ike <Number>

 El número que se establece aquí definirá el tipo de depuración utilizado


Usted puede utilizar el número “-1" o "255"
Niveles de debug
 Nivel 1: Errores: solo los errores mas importantes aparecen
 Nivel 2: Configuración: sólo cambios de configuración en cualquiera de los
túneles VPN.
 Nivel 4: Negociación: intenta negociar o establecer un túnel IPSec
 Nivel 8: Debugs: mostrará la verdadera negociación IKE entre los peers
 Nivel 16: NAT-T Keepalive: Si NAT-T está activada se mostrará su estatus
 Nivel 32: DPD: mostrará los paquetes perdidos, en caso de una pérdida de
conexión se produce
 Nivel 64: IKE and IPSEC: Una vez que las llaves establecen un túnel, las claves
de cifrado/descifrado se volcarán a la salida de depuración
 Nivel 128: IKE Packets: se mostrarán los paquetes cifrados/descifrados
DIAGRAMA DE RED
Ejemplos

 diag debug reset


 diag debug enable
 diag vpn ike filter clear
 diag vpn ike filter name <Phase1_Name>
 diag debug application ike 8
DEBUG IPSEC PHASE 1
ike 0: comes 172.16.10.254:500->172.16.10.1:500,ifindex=6....
ike 0: IKEv1 exchange=Aggressive id=9ac2d7f506cee72a/b397d91b0a236818 len=444
ike 0:Xtm_S2S_GW1:35: VID RFC 3947 4A131C81070358455C5728F20E95452F
ike 0:Xtm_S2S_GW1:35: VID DPD AFCAD71368A1F1C96B8696FC77570100
ike 0:Xtm_S2S_GW1:35: VID FORTIGATE 8299031757A36082C6A621DE00040209
ike 0:Xtm_S2S_GW1:35: peer is FortiGate/FortiOS (v4 b521)
ike 0:Xtm_S2S_GW1:35: negotiation result
ike 0:Xtm_S2S_GW1:35: proposal id = 1:
ike 0:Xtm_S2S_GW1:35: protocol id = ISAKMP:
ike 0:Xtm_S2S_GW1:35: trans_id = KEY_IKE.
ike 0:Xtm_S2S_GW1:35: encapsulation = IKE/none

ike 0:Xtm_S2S_GW1:35: type=OAKLEY_ENCRYPT_ALG, val=3DES_CBC.

ike 0:Xtm_S2S_GW1:35: type=OAKLEY_HASH_ALG, val=SHA.


ike 0:Xtm_S2S_GW1:35: type=AUTH_METHOD, val=PRESHARED_KEY.

ike 0:Xtm_S2S_GW1:35: type=OAKLEY_GROUP, val=1536.


DEBUG IPSEC PHASE 1
ike 0:Xtm_S2S_GW1:35: ISKAMP SA lifetime=28800

ike 0:Xtm_S2S_GW1:35: PSK authentication succeeded


DEBUG IPSEC PHASE 1

ike 0: comes 172.16.10.254:500->172.16.10.1:500,ifindex=6....


ike 0: IKEv1 exchange=Aggressive id=96428a912645cad8/436ab3211832b5fb len=132
ike 0:Xtm_S2S_GW1:36: received NAT-D payload type 20
ike 0:Xtm_S2S_GW1:36: received NAT-D payload type 20
ike 0:Xtm_S2S_GW1:36: received notify type 24578
ike 0:Xtm_S2S_GW1:36: PSK authentication succeeded
ike 0:Xtm_S2S_GW1:36: authentication OK
ike 0:Xtm_S2S_GW1:35: add INITIAL-CONTACT
ike 0:Xtm_S2S_GW1:35: sent IKE msg (agg_i2send): 172.16.10.1:500->172.16.10.254:500, len=132,
id=9ac2d7f506cee72a/b397d91b0a236818
ike 0:Xtm_S2S_GW1:35: established IKE SA 9ac2d7f506cee72a/b397d91b0a236818
ike 0:Xtm_S2S_GW1: schedule auto-negotiate
ike 0:Xtm_S2S_GW1:35: no pending Quick-Mode negotiations
ike 0:Xtm_S2S_GW1: carrier up
DEBUG IPSEC PHASE 2
ike 0:Xtm_S2S_GW1:Xtm_S2S_Tun1: IPsec SA connect 6 172.16.10.1-
>172.16.10.254:500
ike 0:Xtm_S2S_GW1:Xtm_S2S_Tun1: using existing connection
ike 0:Xtm_S2S_GW1:Xtm_S2S_Tun1: config found
ike 0:Xtm_S2S_GW1:Xtm_S2S_Tun1: IPsec SA connect 6 172.16.10.1-
>172.16.10.254:500 negotiating
ike 0:Xtm_S2S_GW1:55: cookie 9aa4acea534279b9/8d54cde80860e774:e02c2cfb
ike 0:Xtm_S2S_GW1:55:Xtm_S2S_Tun1:3972: initiator selectors 0
0:192.168.10.0/255.255.255.0:0:0->0:10.10.10.0/255.255.255.0:0:0
ike 0:Xtm_S2S_GW1:55: sent IKE msg (quick_i1send): 172.16.10.1:500-
>172.16.10.254:500, len=388,
id=9aa4acea534279b9/8d54cde80860e774:e02c2cfb
DEBUG IPSEC PHASE 2

ike 0: comes 172.16.10.254:500->172.16.10.1:500,ifindex=6....


ike 0: IKEv1 exchange=Quick id=9aa4acea534279b9/8d54cde80860e774:e02c2cfb len=356
ike 0:Xtm_S2S_GW1:55:Xtm_S2S_Tun1:3972: responder selectors 0:192.168.10.0/255.255.255.0:0->0:10.10.10.0/255.255.255.0:0
ike 0:Xtm_S2S_GW1:55:Xtm_S2S_Tun1:3972: my proposal:
ike 0:Xtm_S2S_GW1:55:Xtm_S2S_Tun1:3972: proposal id = 1:
ike 0:Xtm_S2S_GW1:55:Xtm_S2S_Tun1:3972: protocol id = IPSEC_ESP:
ike 0:Xtm_S2S_GW1:55:Xtm_S2S_Tun1:3972: PFS DH group = 5
ike 0:Xtm_S2S_GW1:55:Xtm_S2S_Tun1:3972: trans_id = ESP_3DES
ike 0:Xtm_S2S_GW1:55:Xtm_S2S_Tun1:3972: encapsulation = ENCAPSULATION_MODE_TUNNEL
ike 0:Xtm_S2S_GW1:55:Xtm_S2S_Tun1:3972: type = AUTH_ALG, val=SHA1

ike 0:Xtm_S2S_GW1:55:Xtm_S2S_Tun1:3972: trans_id = ESP_AES (key_len = 128)


ike 0:Xtm_S2S_GW1:55:Xtm_S2S_Tun1:3972: encapsulation = ENCAPSULATION_MODE_TUNNEL

ike 0:Xtm_S2S_GW1:55:Xtm_S2S_Tun1:3972: type = AUTH_ALG, val=SHA1


Phase 1 Parámetro no coincidente
ike 0:Xtm_S2S_GW1:65: incoming proposal:
ike 0:Xtm_S2S_GW1:65: proposal id = 0:
ike 0:Xtm_S2S_GW1:65: protocol id = ISAKMP:
ike 0:Xtm_S2S_GW1:65: trans_id = KEY_IKE.
ike 0:Xtm_S2S_GW1:65: encapsulation = IKE/none
ike 0:Xtm_S2S_GW1:65: type=OAKLEY_ENCRYPT_ALG, val=3DES_CBC.
ike 0:Xtm_S2S_GW1:65: type=OAKLEY_HASH_ALG, val=SHA.
ike 0:Xtm_S2S_GW1:65: type=AUTH_METHOD, val=PRESHARED_KEY.
ike 0:Xtm_S2S_GW1:65: type=OAKLEY_GROUP, val=768.
ike 0:Xtm_S2S_GW1:65: ISKAMP SA lifetime=28800
ike 0:Xtm_S2S_GW1:65: proposal id = 0:
ike 0:Xtm_S2S_GW1:65: protocol id = ISAKMP:
ike 0:Xtm_S2S_GW1:65: trans_id = KEY_IKE.
ike 0:Xtm_S2S_GW1:65: encapsulation = IKE/none
ike 0:Xtm_S2S_GW1:65: type=OAKLEY_ENCRYPT_ALG, val=AES_CBC.
ike 0:Xtm_S2S_GW1:65: type=OAKLEY_HASH_ALG, val=SHA.
ike 0:Xtm_S2S_GW1:65: type=AUTH_METHOD, val=PRESHARED_KEY.
ike 0:Xtm_S2S_GW1:65: type=OAKLEY_GROUP, val=768.
ike 0:Xtm_S2S_GW1:65: ISKAMP SA lifetime=28800
Phase 1 Parámetro no coincidente
ike 0:Xtm_S2S_GW1:65: my proposal:

ike 0:Xtm_S2S_GW1:65: proposal id = 1:

ike 0:Xtm_S2S_GW1:65: protocol id = ISAKMP:

ike 0:Xtm_S2S_GW1:65: trans_id = KEY_IKE.

ike 0:Xtm_S2S_GW1:65: encapsulation = IKE/none

ike 0:Xtm_S2S_GW1:65: type=OAKLEY_ENCRYPT_ALG, val=3DES_CBC.

ike 0:Xtm_S2S_GW1:65: type=OAKLEY_HASH_ALG, val=SHA.

ike 0:Xtm_S2S_GW1:65: type=AUTH_METHOD, val=PRESHARED_KEY.

ike 0:Xtm_S2S_GW1:65: type=OAKLEY_GROUP, val=1536.

ike 0:Xtm_S2S_GW1:65: ISKAMP SA lifetime=28800

ike 0:Xtm_S2S_GW1:65: proposal id = 1:

ike 0:Xtm_S2S_GW1:65: protocol id = ISAKMP:

ike 0:Xtm_S2S_GW1:65: trans_id = KEY_IKE.

ike 0:Xtm_S2S_GW1:65: encapsulation = IKE/none

ike 0:Xtm_S2S_GW1:65: type=OAKLEY_ENCRYPT_ALG, val=AES_CBC.

ike 0:Xtm_S2S_GW1:65: type=OAKLEY_HASH_ALG, val=SHA.

ike 0:Xtm_S2S_GW1:65: type=AUTH_METHOD, val=PRESHARED_KEY.

ike 0:Xtm_S2S_GW1:65: type=OAKLEY_GROUP, val=1536.

ike 0:Xtm_S2S_GW1:65: ISKAMP SA lifetime=28800

ike 0:Xtm_S2S_GW1:65: negotiation failure


ike 0:Xtm_S2S_GW1: schedule auto-negotiate
Phase 2 Parameter mismatch error.

 This assumes that the phase 1 negotiation was completed


 From the central gateway point of view, you’ll receive:
ike 0:Xtm_S2S_GW1:Xtm_S2S_Tun1: IPsec SA connect 6 172.16.10.1->172.16.10.254:500
ike 0:Xtm_S2S_GW1:Xtm_S2S_Tun1: using existing connection
ike 0:Xtm_S2S_GW1:Xtm_S2S_Tun1: config found
ike 0:Xtm_S2S_GW1:Xtm_S2S_Tun1: IPsec SA connect 6 172.16.10.1->172.16.10.254:500 negotiating
ike 0:Xtm_S2S_GW1:219: cookie 29fdf9d012c44976/4d134631d75c108e:5bb56b32
ike 0:Xtm_S2S_GW1:219:Xtm_S2S_Tun1:5386: initiator selectors 0 0:192.168.10.0/255.255.255.0:0:0-
>0:10.10.10.0/255.255.255.0:0:0
ike 0:Xtm_S2S_GW1:219: sent IKE msg (quick_i1send): 172.16.10.1:500->172.16.10.254:500, len=388,
id=29fdf9d012c44976/4d134631d75c108e:5bb56b32
ike 0: comes 172.16.10.254:500->172.16.10.1:500,ifindex=6....
ike 0: IKEv1 exchange=Informational id=29fdf9d012c44976/4d134631d75c108e:484b7522 len=68
ike 0:Xtm_S2S_GW1:219: notify msg received: NO-PROPOSAL-CHOSEN
Políticas de firewall y ruteo

 Uno de los errores mas comunes es cuando marca que


no hay una política de firewall configurada y se
muestra de la siguiente manera:

ike 0: comes 172.16.10.254:500->172.16.10.1:500,ifindex=6....


ike 0: IKEv1 exchange=Aggressive id=133f694ed86d838d/0000000000000000 len=508
ike 0: IKEv1 Aggressive, comes 172.16.10.254:500->172.16.10.1 6, peer-id=Remote_1.
ike 0:Xtm_S2S_GW1: ignoring IKE request, no policy configured
ike shrank heap by 131072 bytes
i

Anda mungkin juga menyukai