Estoy tratando de configurar una conexión VPN IPSec entre nuestra red corporativa y la Nube privada virtual de Amazon, utilizando su sistema VPN y un servidor Linux. Desafortunadamente, la única guía que he encontrado discute cómo configurar el túnel usando una máquina Linux host y hacer que esa máquina Linux acceda a instancias VPC, pero no hay discusión que pueda encontrar en línea sobre cómo hacer que la instancia acceda a la red corporativa (o el resto de Internet a través de esa red).
Información de red
Local subnet: 10.3.0.0/25
Remote subnet: 10.4.0.0/16
Tunnel 1:
Outside IP Addresses:
- Customer Gateway: : 199.167.xxx.xxx
- VPN Gateway : 205.251.233.121
Inside IP Addresses
- Customer Gateway : 169.254.249.2/30
- VPN Gateway : 169.254.249.1/30
Tunnel 2:
Outside IP Addresses:
- Customer Gateway: : 199.167.xxx.xxx
- VPN Gateway : 205.251.233.122
Inside IP Addresses
- Customer Gateway : 169.254.249.6/30
- VPN Gateway : 169.254.249.5/30
Aquí está mi /etc/ipsec-tools.conf:
flush;
spdflush;
spdadd 169.254.249.2/30 169.254.249.1/30 any -P out ipsec
esp/tunnel/199.167.xxx.xxx-205.251.233.121/require;
spdadd 169.254.249.1/30 169.254.249.2/30 any -P in ipsec
esp/tunnel/205.251.233.121-199.167.xxx.xxx/require;
spdadd 169.254.249.6/30 169.254.249.5/30 any -P out ipsec
esp/tunnel/199.167.xxx.xxx-205.251.233.122/require;
spdadd 169.254.249.5/30 169.254.249.6/30 any -P in ipsec
esp/tunnel/205.251.233.122-199.167.xxx.xxx/require;
spdadd 169.254.249.2/30 10.4.0.0/16 any -P out ipsec
esp/tunnel/199.167.xxx.xxx-205.251.233.121/require;
spdadd 10.4.0.0/16 169.254.249.2/30 any -P in ipsec
esp/tunnel/205.251.233.121-199.167.xxx.xxx/require;
spdadd 169.254.249.6/30 10.4.0.0/16 any -P out ipsec
esp/tunnel/199.167.xxx.xxx-205.251.233.122/require;
spdadd 10.4.0.0/16 169.254.249.6/30 any -P in ipsec
esp/tunnel/205.251.233.122-199.167.xxx.xxx/require;
Aquí está mi /etc/racoon/racoon.conf:
remote 205.251.233.122 {
exchange_mode main;
lifetime time 28800 seconds;
proposal {
encryption_algorithm aes128;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2;
}
generate_policy off;
}
remote 205.251.233.121 {
exchange_mode main;
lifetime time 28800 seconds;
proposal {
encryption_algorithm aes128;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2;
}
generate_policy off;
}
sainfo address 169.254.249.2/30 any address 169.254.249.1/30 any {
pfs_group 2;
lifetime time 3600 seconds;
encryption_algorithm aes128;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
}
sainfo address 169.254.249.6/30 any address 169.254.249.5/30 any {
pfs_group 2;
lifetime time 3600 seconds;
encryption_algorithm aes128;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
}
BGP funciona bien, así que no voy a publicar esas configuraciones.
Esto es lo que funciona.
- Desde el cuadro de Linux, puedo hacer ping a los puntos finales locales (169.254.249.2/169.254.249.6) y sus equivalentes remotos (169.254.249.1/169.254.249.5).
- También puedo hacer ping a las instancias en VPC, SSH, etc.
- Desde las instancias remotas en VPC, también puedo hacer ping a los puntos finales locales y remotos
- No puedo hacer ping a los servidores locales en la subred 10.3.0.0/25
Supongo que me falta algo simple, pero he intentado agregar entradas a ipsec-tools.conf para reflejar el {punto final local} <-> {subred remota}, usando {subred local} <-> {punto final remoto}, Pero no parecía funcionar.
Cuando hago ping desde {instancia remota} a {servidor local}, se agota el tiempo de espera. Los paquetes son visibles en la interfaz eth0 (aunque la red local esté en eth1).
Google ha sido de poca ayuda; muestra solo a personas que intentan usar OpenSwan, o que tienen problemas similares pero con enrutadores de hardware, o que usan herramientas más antiguas.
fuente
Respuestas:
Bueno, hice trampa :) Instalé la puerta de enlace Astaro que es oficialmente compatible con Amazon y luego la usé para modelar la mía. Puede simplemente SSH en la unidad Astaro y ver cómo configuran todo. Por supuesto, puede quedarse con la unidad Astaro si tiene ganas de pagarla.
fuente
Lo averigué. Tuve que cambiar mi ipsec-tools.conf a esto:
Y cambie mi mapache.conf a esto:
Sin embargo, esta configuración, según tengo entendido, solo enrutará el tráfico entre 10.3.0.0/25 y 10.4.0.0/16 a través del primer túnel (a través de xxx121). Actualizaré la respuesta cuando descubra eso.
fuente
¿Conoces la razón para usar "require" en lugar de "use" para la configuración setkey? ¿Sabes también si importa en qué orden coloco las declaraciones dentro de las secciones remotas y sainfo y duplico por error ciertas declaraciones? Por ejemplo:
vs
¿También descubriste cómo hacer que el tráfico fluya en ambos túneles?
Gracias por cualquier orientación
fuente