Estou usando o Debian Stretch, que é o release de teste atual. Algum tempo atrás eu configurei uma conexão VPN usando IPsec e funcionou corretamente. De repente parou.
É possível que, no meio tempo, alguns pacotes tenham sido atualizados ( openssl
ou strongswan
ou outro), mas não sei como fazer isso funcionar novamente.
A mensagem de erro é:
freyja@araguaney:~$ sudo ipsec up flow
initiating Main Mode IKE_SA flow[1] to XXX.XXX.XXX.XXX
generating ID_PROT request 0 [ SA V V V V ]
sending packet: from XXX.XXX.XXX.XXX[500] to XXX.XXX.XXX.XXX[500] (216 bytes)
received packet: from XXX.XXX.XXX.XXX[500] to XXX.XXX.XXX.XXX[500] (40 bytes)
parsed INFORMATIONAL_V1 request 1195290638 [ N(NO_PROP) ]
received NO_PROPOSAL_CHOSEN error notify
establishing connection 'flow' failed
Parece que meu cliente não consegue usar os algoritmos propostos (daí NO_PROPOSAL_CHOSEN
). Perguntei ao nosso administrador por um erro que aparece nos registros do servidor e diz:
IKE: Main Mode Failed to match proposal: Transform: AES-128, SHA1, Group
2 (1024 bit) Reason: unsupported hash algorithm -1
Ele também listou os algoritmos que o servidor fornece. Eu incluí o parâmetro ike
para forçar uma das combinações possíveis:
/etc/ipsec.conf:
conn flow
...
leftfirewall=yes
ike=aes128-sha1-modp1024
...
Quando eu uso, o log de conexão é mais longo, mas também termina com falha:.
...
reached self-signed root ca with a path length of 0
authentication of 'XXX.XXX.XXX.XXX' with RSA_EMSA_PKCS1_NULL successful
IKE_SA flow[1] established between XXX.XXX.XXX.XXX[O=csc..puejse, OU=users, CN=freyja]...XXX.XXX.XXX.XXX[XXX.XXX.XXX.XXX]
scheduling reauthentication in 3292s
maximum IKE_SA lifetime 3472s
generating TRANSACTION request 3626856411 [ HASH CPRQ(ADDR DNS) ]
sending packet: from XXX.XXX.XXX.XXX[4500] to XXX.XXX.XXX.XXX[4500] (76 bytes)
received packet: from XXX.XXX.XXX.XXX[4500] to XXX.XXX.XXX.XXX[4500] (92 bytes)
parsed TRANSACTION response 3626856411 [ HASH CPRP(ADDR DNS DNS) ]
installing DNS server XXX.XXX.XXX.XXX to /etc/resolv.conf
installing DNS server XXX.XXX.XXX.XXX to /etc/resolv.conf
installing new virtual IP XXX.XXX.XXX.XXX
generating QUICK_MODE request 2757640703 [ HASH SA No ID ID ]
sending packet: from XXX.XXX.XXX.XXX[4500] to XXX.XXX.XXX.XXX[4500] (204 bytes)
received packet: from XXX.XXX.XXX.XXX[4500] to XXX.XXX.XXX.XXX[4500] (252 bytes)
parsed INFORMATIONAL_V1 request 2437352460 [ HASH N(NO_PROP) ]
received NO_PROPOSAL_CHOSEN error notify
establishing connection 'flow' failed
Mais uma vez, há algumas informações sobre a função hash. Eu verifiquei usando ipsec listalgs
que as funções de hash propostas pelo servidor são suportadas. Então eu não sei como proceder com isso.
Eu tentei fazer downgrade do openssl, eu removi o pacote atual (1.0.2h) e instalei o Ubuntu um (1.0.2.d - a conexão funciona para o meu colega em seu Ubuntu que usa este pacote). Não ajudou.
Acho que há algo errado com os recursos SSL do meu sistema, porque também não consigo negociar com um servidor de e-mail que costumava funcionar. Mas eu não sei como depurar isso e restaurar esses recursos. (Estes são todos meus palpites selvagens, porque eu não sou um usuário avançado). Por favor ajude.