La aventura del EdgeMax en el mundo del IPSec Site to Site


Hola amigows, oigan, quieren que les cuente la historia de cuando conecté las sucursales de una empresa cliente a su planta principal? A que suena como toda una aventura.
En la publicación pasada implementábamos nuestra pequeña arquitectura para correr Odoo en la intranet, es hora de compartirla entre sucursales :D
IP Dinámica a Estática (Saltar si ya tienes IP Estática)
Primer reto a resolver, en todos los sitios tenemos IP’s dinámicas ya que es una PyME, con más P que ME, entonces usamos internet de Telmex, ese de 300 pesos, lo bueno que existe www.DuckDNS.org, el cual nos ayudará a tener nuestra IP estática para una conexión sin interrupciones cada que se valla la luz o se reinicie el router. [Pueden pagar NoIP, DynDNS, etc.]
Creamos nuestra cuenta de DuckDNS, y creamos nuestro primer sub-dominio
Mi consejo es, PRIVACIDAD ante todo, no pongan EmpresaSucursalA, recuerden que es un servicio que usará su IP publica real, mi consejo, usen un hash, por ejemplo 3d244f40a6b.duckdns.org; aqui ocuparan tantos subdominios como sucursales quieran conectar, para este ejercicio solo dos.
Sucursal A IP: 3d244f40a6b.duckdns.org
Sucursal B IP: 3a5c4bede38.duckdns.org
Creamos nuestros sub dominios y después, en el menú de arriba de la pagina seleccionamos “Install”, debajo del patito, en la sección Routers elegimos “EdgeRouter”, después, donde dice “First step …” seleccionan su primer dominio, y con letras verdes les pondrá los datos:
Guarden bien esos datos, en su EdgeRouter, en la configuración van a la sección Services → DNS y colocan la información del modo siguiente y dan guardar:
Obviamente lo llenan con su dominio y su token; dejan el Web, Login y Server como en la imagen de arriba y dan clic en guardar. Repetir esto cada sucursal o router donde sea necesario para hacer la conexión.
Pueden probar haciendo ping y debería responder con su IP publica.
ping 3d244f40a6b.duckdns.org
Otro metodo es usar la terminal CLI o si saben hacerlo conectarse por SSH a su router EdgeMax
Conectar Sucursales
Primero la A 🎶, esta es nuestra sucursal Matriz: la chida, la mamá de los pollitos, aquí estarán las bases de datos que queramos compartir, servicios web, VMs, lo que quieras!
En este caso la sucursal A usa un EdgeRouter 4 de Ubiquiti.
Nos dirigimos a: https://tu_router_ip/#Vpn/IPSec y veremos el siguiente cuadro:
SUCURSAL A
En Peer o Remote Gateway (1) ponen la IP publica o DNS dinámico de la sucursal que quieren conectar, en este caso la B. Aquí pondremos tantos peer’s (sucursales o routers) como queramos conectar. En nuestro caso será el sub dominio:
Peer = Sucursal B, IP: 3a5c4bede38.duckdns.org
En Description (2) pondré algo tipo connection A to B.
Local IP ó Local WAN IP (3) es la dirección LOCAL o Privada del router, por ejemplo 192.168.1.1.
Pre-shared secret (4) es con lo que se encriptará nuestra VPN, asegúrate de usar algo robusto y seguro; SHA256 por ejemplo. fd889c28184cbcbac87e31e53a5060a046a23ed1445c45fa3da12715e52f8767
Local Subnet (5) es donde estarán nuestros servicios en la red LOCAL, por ejemplo, un servidor de archivos en 192.168.1.100, o un servidor web en 192.168.1.200, ustedes entienden, colocaremos aquí el segmento, por ejemplo 192.168.1.0/24 pero pueden usar solo un rango pre establecido.
Remote Subnet (6) es la IP LOCAL REMOTA. Para este caso 192.168.2.1, ese router se encuentra en 192.168.2.1.
~ Local y Remote subnet deben ser diferentes. Por ejemplo NO 192.168.1.0/24 en ambas.
En Peer va la IP publica, todo lo demás es la configuración local. Ya a partir de ahi pueden organizar su red como prefieran.
SUCURSAL B
La sucursal B será similar a la sucursal B solo con cambios bastante intuitivos.
El Peer (1) será la IP publica de la sucursal A. En nuestro caso:
Sucursal A IP: 3d244f40a6b.duckdns.org
Description (2) es igual, algo bastante claro, connection B to A.
Local IP (3) es la dirección local de tu router B, en este caso 192.168.2.1
Pre-shared secret (4) es el mismo en todos los routers que queramos unir: 101fbc01574f380f8590f5e3e08cac86f14998da
Local Subnet (5) sera nuestro segmento de red local, en este caso 192.168.2.0/24
Remote Subnet (6) es 192.168.1.0/24 que es la de la sucursal a donde nos queremos conectar.
Casi terminamos, debemos permitir el tráfico a través de los puertos y el protocolo usado por IPSec en todos los routers que queramos unir a nuestra VPN: puertos 500 y 4500 UDP, y el protocolo ESP. Lo pueden hacer de forma visual desde la GUI, o abrir la herramienta CLI o conectarse por SSH. Los comandos son los siguientes ya en la terminal:
configure
# Permitir UDP 500 (IKE)
set firewall name WAN_LOCAL rule 10 action accept
set firewall name WAN_LOCAL rule 10 description 'Allow IKE'
set firewall name WAN_LOCAL rule 10 protocol udp
set firewall name WAN_LOCAL rule 10 destination port 500
# Permitir UDP 4500 (NAT-T)
set firewall name WAN_LOCAL rule 20 action accept
set firewall name WAN_LOCAL rule 20 description 'Allow NAT-T'
set firewall name WAN_LOCAL rule 20 protocol udp
set firewall name WAN_LOCAL rule 20 destination port 4500
# Permitir ESP (IPSec protocol 50)
set firewall name WAN_LOCAL rule 30 action accept
set firewall name WAN_LOCAL rule 30 description 'Allow ESP'
set firewall name WAN_LOCAL rule 30 protocol esp
commit
save
exit
~ Recuerden que si tienen un módem de su proveedor de internet, deben colocarlo en modo puente, o abrir esos puertos y protocolos también, o colocar la dirección de su router EdgeMAX en modo DMZ.
Finalmente si siguieron los pasos, dentro de la terminal de su router escriben:
show ip route # En A te mostrara algo como 192.168.2.0/24 via vpn ...
show vpn ipsec sa # Asociaciones de seguridad, si ves algo como INSTALLED y paqutes conectados el tunel esta funcionando.
… y desde B [192.168.2.0/24] ya podrías hacer algo como \\192.168.1.100 [Recurso compartido de A]. Hacer pings entre sucursales, verificando que los puertos ICMPv4 y eso estén abiertos tanto en el firewall de los routers como de los servidores, etc.
Espero que esta información les sea de utilidad. Se ha simplificado para cubrir los aspectos básicos. 😁
Subscribe to my newsletter
Read articles from Rigel Carbajal directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Rigel Carbajal
Rigel Carbajal
¡Hola! Soy Rigel, ingeniero en sistemas, amante de la tecnología, los datos y un buen café. 🚀 Siempre aprendiendo y listo para el próximo reto. 🤓