Não é possível passar da “Fase 2 pendente” no OpenSWAN - VPN IPSec do ISA Server

6

O problema

Estou tendo dificuldade em configurar o OpenSWAN no meu servidor Linux (Ubuntu 12.04) para conectar-me a uma VPN IPSec do ISA Server 2004. Aparentemente, há algo errado na configuração que impede o funcionamento do túnel. Parece que alguns dos meus pacotes estão sendo descartados em algum lugar? Eu não tenho certeza realmente.

A outra parte diz que não há nada errado nos logs do lado deles. Eu não tenho firewall do meu lado. Aqui está a parte ofensiva em /var/log/auth.log (versão mais longa abaixo).

Jan 29 17:28:11 P-INV-SD07 pluto[5821]: "myconn" #1: transition from state STATE_MAIN_I2 to state STATE_MAIN_I3
Jan 29 17:28:11 P-INV-SD07 pluto[5821]: "myconn" #1: STATE_MAIN_I3: sent MI3, expecting MR3
Jan 29 17:28:12 P-INV-SD07 pluto[5821]: "myconn" #1: discarding duplicate packet; already STATE_MAIN_I3
Jan 29 17:28:34  pluto[5821]: last message repeated 3 times
Jan 29 17:28:42 P-INV-SD07 pluto[5821]: packet from <hispublicip>:500: Informational Exchange is for an unknown (expired?) SA with MSGID:0x8341092b
Jan 29 17:28:42 P-INV-SD07 pluto[5821]: "myconn" #1: discarding duplicate packet; already STATE_MAIN_I3

A seguir, informações detalhadas sobre a configuração, caso alguém possa ajudar :) Agradecemos antecipadamente!

A configuração atual

Eu configurei a conexão com os principais parâmetros padrão do nosso lado (tentei várias outras coisas, mas nada parece funcionar melhor do que isso):

conn myconn
    authby=secret
    type=tunnel
    left=<hispublic>
    leftsubnet=<hislanip>/32
    right=<mypublic>
    rightsubnet=<mylanip>/32
    auto=start

Saída de ipsec auto status :

000 "myconn": <mylanip>/32===<mypublicip><<mypublicip>>[+S=C]...<hispublicip>    <<hispublicip>>[+S=C]===<hislanip>/32; prospective erouted; eroute owner: #0
000 "myconn":     myip=unset; hisip=unset;
000 "myconn":   ike_life: 7200s; ipsec_life: 28800s; rekey_margin: 540s; rekey_fuzz:     100%; keyingtries: 0
000 "myconn":   policy: PSK+ENCRYPT+TUNNEL+PFS+UP+IKEv2ALLOW+SAREFTRACK+lKOD+rKOD;   prio:   32,32; interface: eth0;
000 "myconn":   newest ISAKMP SA: #0; newest IPsec SA: #0;
000
000 #2: "myconn":500 STATE_MAIN_I3 (sent MI3, expecting MR3); EVENT_RETRANSMIT in 18s;     nodpd; idle; import:admin initiate
000 #2: pending Phase 2 for "myconn" replacing #0

O trecho de /var/log/auth.log :

Jan 29 17:28:11 P-INV-SD07 pluto[5821]: loading secrets from "/etc/ipsec.secrets"
Jan 29 17:28:11 P-INV-SD07 pluto[5821]: "myconn" #1: initiating Main Mode
Jan 29 17:28:11 P-INV-SD07 pluto[5821]: "myconn" #1: ignoring Vendor ID payload [MS NT5 ISAKMPOAKLEY 00000004]
Jan 29 17:28:11 P-INV-SD07 pluto[5821]: "myconn" #1: ignoring Vendor ID payload [FRAGMENTATION]
Jan 29 17:28:11 P-INV-SD07 pluto[5821]: "myconn" #1: received Vendor ID payload [draft-ietf-ipsec-nat-t-ike-02_n] method set to=106
Jan 29 17:28:11 P-INV-SD07 pluto[5821]: "myconn" #1: enabling possible NAT-traversal     with method draft-ietf-ipsec-nat-t-ike-05
Jan 29 17:28:11 P-INV-SD07 pluto[5821]: "myconn" #1: transition from state STATE_MAIN_I1 to state STATE_MAIN_I2
Jan 29 17:28:11 P-INV-SD07 pluto[5821]: "myconn" #1: STATE_MAIN_I2: sent MI2, expecting    MR2
Jan 29 17:28:11 P-INV-SD07 pluto[5821]: "myconn" #1: NAT-Traversal: Result using draft-ietf-ipsec-nat-t-ike-02/03: no NAT detected
Jan 29 17:28:11 P-INV-SD07 pluto[5821]: "myconn" #1: transition from state STATE_MAIN_I2 to state STATE_MAIN_I3
Jan 29 17:28:11 P-INV-SD07 pluto[5821]: "myconn" #1: STATE_MAIN_I3: sent MI3, expecting MR3
Jan 29 17:28:12 P-INV-SD07 pluto[5821]: "myconn" #1: discarding duplicate packet; already STATE_MAIN_I3
Jan 29 17:28:34  pluto[5821]: last message repeated 3 times
Jan 29 17:28:42 P-INV-SD07 pluto[5821]: packet from <hispublicip>:500: Informational Exchange is for an unknown (expired?) SA with MSGID:0x8341092b
Jan 29 17:28:42 P-INV-SD07 pluto[5821]: "myconn" #1: discarding duplicate packet; already STATE_MAIN_I3

Aqui estão as opções de configuração usadas no ISA Server Side:

  • Fase 1
    • Criptografia: 3DES
    • Integridade: SHA1
    • Grupo DH: Grupo 2
  • Fase 2
    • Criptografia: 3DES
    • Integridade: SHA1
    • Gere uma nova chave a cada 86400 segundos
    • Use PFS: sim (Grupo DH 2)

Atualizar

Eu consegui um sniffer de pacotes em execução no lado do OpenSWAN, e o log Oakley ativado no ISA lado . O sniff é praticamente o que você espera: o terceiro pacote enviado do lado do OpenSWAN é rejeitado pelo servidor ISA, que continua enviando seu segundo pacote porque acha que não foi o ACK.

O erro no log da Oakley (ISA) diz:

Receive: (get) SA = 0x00108cf0 from 50.57.73.135.500
2-07: 14:44:25:250:44b24 ISAKMP Header: (V1.0), len = 68
2-07: 14:44:25:250:44b24   I-COOKIE 8802248fab719171
2-07: 14:44:25:250:44b24   R-COOKIE 296787dc0ec4227a
2-07: 14:44:25:250:44b24   exchange: Oakley Main Mode
2-07: 14:44:25:250:44b24   flags: 1 ( encrypted )
2-07: 14:44:25:250:44b24   next payload: ID
2-07: 14:44:25:250:44b24   message ID: 00000000
2-07: 14:44:25:250:44b24 invalid payload received
2-07: 14:44:25:250:44b24 Preshared key ID.  Peer IP Address: <mypublicip>
2-07: 14:44:25:250:44b24 Source IP Address <hispublicip>  Source IP Address Mask 255.255.255.255  Destination IP Address <mypublicip>  Destination IP Address Mask 255.255.255.255  Protocol 0  Source Port 0  Destination Port 0  IKE Local Addr <hispublicip>  IKE Peer Addr <mypublicip>  IKE Source Port 500  IKE Destination Port 500  Peer Private Addr
2-07: 14:44:25:250:44b24 GetPacket failed 3613

Então, basicamente, invalid payload received e, em seguida, GetPacket failed 3613 . Este último código de erro não rende muito em informações sobre o Google, incluindo pessoas dizendo que eles recebem isso o tempo todo e tudo funciona mesmo assim.

Eu desisti, estamos montando um servidor local, mas estou atualizando isso para referência futura, caso alguém tenha uma pista para o bem da Internet.

    
por GomoX 29.01.2013 / 19:13

1 resposta

2

Eu me deparei com essa situação nos últimos dias.

Foi devido a dois problemas.

  1. Firewall
  2. Encaminhamento de IP do Kernal desativado
  3. Incompatibilidade de chave pré-compartilhada

Para o firewall, a porta 500 e 4500 foram bloqueadas. Ao executar ipsec verify , você pode ver se 500 ou 4500 estão bloqueados.

Em /etc/sysctl.conf ,

altere net.ipv4.ip_forward para 1

anexe

net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0
net.ipv4.conf.lo.send_redirects = 0
net.ipv4.conf.em1.accept_redirects = 0
net.ipv4.conf.em1.send_redirects = 0

A em1 é a interface de rede, a sua talvez eth0 ou eth1

Por fim, no meu caso, a chave pré-compartilhada em /etc/ipsec.d/ipsec.secrets foi erroneamente anexada com aspas duplas " , o que resulta em incompatibilidade de chave pré-compartilhada.

Espero que ajude alguém.

    
por 01.04.2015 / 12:24