Desculpe, mas IPsec
não funciona dessa maneira.
Não há criptografia dupla ou ...
Explicação muito, muito curta e simples de como IPsec
work é algo como
-
IPsec
primeiro comIKE Police
se comunica com o extremo - Negocie sobre
Authorization algorithm
,Encryption algorithm
,Perfect Forward Secrecy
eIKE version
- Depois disso, envie
key
akapassword
Se está tudo bem, vá para a fase 2
-
IPsec
police começará - Neogoitate sobre
Encryption algorithm
,Perfect Forward Secrecy
,Transform Protocol
Se isso ocorrer, combine routes
aka access list
aka interesting traffic
Se tudo estiver bem, suba o túnel.
Exemplos de configuração de wiki
Edite o arquivo /etc/ipsec-tools.conf
. Este arquivo deve ser da forma geral:
# Configuration for 192.168.1.100
# Flush the SAD and SPD
flush;
spdflush;
# Attention: Use this keys only for testing purposes!
# Generate your own keys!
# AH SAs using 128 bit long keys
add 192.168.1.100 192.168.2.100 ah 0x200 -A hmac-md5
0xc0291ff014dccdd03874d9e8e4cdf3e6;
add 192.168.2.100 192.168.1.100 ah 0x300 -A hmac-md5
0x96358c90783bbfa3d7b196ceabe0536b;
# ESP SAs using 192 bit long keys (168 + 24 parity)
add 192.168.1.100 192.168.2.100 esp 0x201 -E 3des-cbc
0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831;
add 192.168.2.100 192.168.1.100 esp 0x301 -E 3des-cbc
0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df;
# Security policies
spdadd 192.168.1.100 192.168.2.100 any -P out ipsec
esp/transport//require
ah/transport//require;
spdadd 192.168.2.100 192.168.1.100 any -P in ipsec
esp/transport//require
ah/transport//require;
É importante entender isso, então deixe-me dividi-lo:
# AH SAs using 128 bit long keys
add 192.168.1.100 192.168.2.100 ah 0x200 -A hmac-md5
0xc0291ff014dccdd03874d9e8e4cdf3e6;
add 192.168.2.100 192.168.1.100 ah 0x300 -A hmac-md5
0x96358c90783bbfa3d7b196ceabe0536b;
Esta seção lista as chaves 128 bit
da conexão 192.168.2.100
e 192.168.1.100
. Cada par IP possui 2 chaves - uma para cada direção (entrada e saída). Cada par de máquinas precisa conhecer essa informação. Então, isso significa que, para cada par de IPs, você precisa gerar uma nova chave (por isso, isso funciona para redes pequenas, mas qualquer coisa importante provavelmente quer que um daemon manipule isso. Talvez, se eu me sentir ambicioso, até usá-lo e atualizá-lo com essa informação).
Além disso, observe o número logo após o ah
para cada uma dessas chaves. Esse número precisa ser exclusivo para cada instrução add
. Essas chaves são geradas da seguinte forma:
dd if=/dev/random count=16 bs=1| xxd -ps
Não se esqueça de adicionar o 0x
na frente dele.
Similarmente, esta seção:
# ESP SAs using 192 bit long keys (168 + 24 parity)
add 192.168.1.100 192.168.2.100 esp 0x201 -E 3des-cbc
0x7aeaca3f87d060a12f4a4487d5a5c3355920fae69a96c831;
add 192.168.2.100 192.168.1.100 esp 0x301 -E 3des-cbc
0xf6ddb555acfd9d77b03ea3843f2653255afe8eb5573965df;
Isso funciona exatamente como o AH keys
, exceto pelo fato de serem mais longos. Novamente, o número após esp
deve ser exclusivo. Essas chaves são geradas da seguinte forma:
dd if=/dev/random count=24 bs=1| xxd -ps
Novamente, não se esqueça de adicionar o 0x
na frente dele.
Portanto, essas duas principais seções devem listar chaves para todos os endereços IP com os quais a máquina se preocupa. Essas seções não são alteradas ao mover o arquivo entre máquinas em ambos os lados de uma conexão. Isso nos leva à próxima seção:
# Security policies
spdadd 192.168.1.100 192.168.2.100 any -P out ipsec
esp/transport//require
ah/transport//require;
spdadd 192.168.2.100 192.168.1.100 any -P in ipsec
esp/transport//require
ah/transport//require;
Isso configura as políticas para comunicações de entrada e saída. Portanto, a versão acima funcionará para 192.168.1.100
, porque toda a comunicação de saída para 192.168.2.100
e todas as comunicações de entrada de 192.168.2.100
serão criptografadas. Para usar isso na outra máquina ( 192.168.2.100
), inverta as diretivas de entrada e saída, da seguinte maneira:
# Security policies
spdadd 192.168.1.100 192.168.2.100 any -P in ipsec
esp/transport//require
ah/transport//require;
spdadd 192.168.2.100 192.168.1.100 any -P out ipsec
esp/transport//require
ah/transport//require;
Torne o arquivo conf não legível para o mundo:
sudo chmod 750 ipsec-tools.conf
Ok, os dois lados da conexão têm um ipsec-tools.conf
? Todo mundo definido? Bom, agora fica fácil.
Ele será iniciado na inicialização por padrão nos sistemas, então você não precisa se preocupar com isso.
Além disso, iniciar também não faria mal (certifique-se de fazer isso nos dois lados da conexão antes de tentar fazer com que eles conversem entre si; você também pode reinicializar):
sudo /etc/init.d/setkey start