![VPN de sitio a sitio y VPN de acceso remoto con Strongswan](https://rvso.com/image/776325/VPN%20de%20sitio%20a%20sitio%20y%20VPN%20de%20acceso%20remoto%20con%20Strongswan.png)
Recientemente implementé una VPN de acceso remoto IKEv2 de Strongswan en dos sitios diferentes con dos servidores ubuntu diferentes. Todo funciona muy bien, pero ahora quiero "fusionar" los dos sitios con una VPN de sitio a sitio, para poder dejar solo una VPN de acceso remoto y acceder a ambas subredes. La cuestión es ¿cómo hacerlo? Mi idea era un túnel IPSec que utilizara Strongswan entre los dos sitios y enrutamiento estático en los enrutadores de ambos sitios para administrar el tráfico.
Los sitios están configurados de la siguiente manera:
A)
Only One Public IP : x.x.x.x
Subnet : 10.5.5.0/24
B)
One Usable Public IP : x.x.x.x
Subnet : 192.168.5.0/24
Las preguntas son:
- ¿Puedo ejecutar los dos servicios (acceso remoto IKEv2 y túnel IPSec) en la misma instancia de strongswan? Mi respuesta a esto sería NO, y si este es el caso, estoy listo para agregar una nueva instancia de strongswan usando otros dos servidores Ubuntu como puerta de enlace.
- Pero si estoy usando dos servidores diferentes en los sitios, surge otro problema, los sitios solo tienen una IP pública cada uno, ¿cómo puedo eliminar el conflicto entre IPSec e IKEv2 ya que ambos deberían usar los mismos puertos? ¿Puedo cambiar los puertos utilizados por el túnel IPSec? ¿O tal vez no necesito el reenvío de puertos para el túnel IPSec?
Esta es mi referencia para el Túnel IPSec. https://www.tecmint.com/setup-ipsec-vpn-with-strongswan-on-debian-ubuntu/
¿Alguna idea sobre cómo hacer que este lío funcione? ¿SIEMPRE necesito dos direcciones IP diferentes para ejecutar dos servidores VPN? ¿Podría ayudar OpenSource DMVPN?
Gracias de antemano.
Respuesta1
Para responder tu pregunta
- Sí, puede ejecutar Acceso remoto (también conocido como Roadwarrior) y Túnel de sitio a sitio en la misma instancia de StrongSwan.
- Puede diferenciar la conexión de sitio a sitio y las conexiones de acceso remoto por el método de autenticación.
Aquí hay una configuración funcional.
connections {
site {
pools = ipv4, ipv6
local {
auth = pubkey
certs = site1.example.com.pem
id = site1.example.com
}
remote {
auth = pubkey
cacerts = MyCA.cer
id = "CN=site2.example.com"
}
children {
site {
local_ts = 10.218.2.0/24, ::/0
remote_ts = 10.218.1.0/24, 2001:470:ffff::/64
}
}
}
win {
pools = ipv4, ipv6
local {
auth = pubkey
certs = site1.example.com.pem
id = site1.example.com
}
remote {
auth = pubkey
cacerts = LloydsCertificateAuthorityG2.cer
}
children {
win {
local_ts = 0.0.0.0/0, ::/0, 10.218.1.0/24, 2001:470:ffff::/64
}
}
}
}
pools {
ipv4 {
addrs = 10.218.2.3-10.218.2.254
dns = 10.218.1.99
netmask = 255.255.255.0
subnet = 10.218.2.0/24,10.218.1.0/24
}
ipv6 {
addrs = 2001:470:ffff:2::3-2001:470:ffff:2::ffff
dns = 2001:470:ffff::99/64
subnet = 2001:470:ffff:2::/64,2001:470:ffff::/64
}
}
El sitio 2 se conecta con el protocolo IKEv2 y el certificado de máquina CN=site2.example.com
Los certificados se almacenan en el sitio 1 en
/etc/swanctl/rsa/site1.example.com.pem (private key)
/etc/swanctl/x509/site1.example.com.pem (public key)
/etc/swanctl/x509ca/MyCa.cer (Root CA)
Recargar la configuración conswanctl --load-all
Para habilitar NAT para clientes de acceso remoto
iptables -t nat -A POSTROUTING -s 10.218.2.0/24,10.218.1.0/24 -o eth0 -m policy --dir out --pol ipsec -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.218.2.0/24,10.218.1.0/24 -o eth0 -j MASQUERADE