Conexión site to site por protocolo IPSEC
- El objetivo de este tipo de VPN es conectar permanentemente la
red privada del cliente con la red virtual de los servidores
Cloud-Bricks.
- Este tipo de conexiones puede ser configurada en el sistema de
Cloud en la sección Conectividad>Redes
VPN del menú de la izquierda.
- Sirve para interconectar una red privada externa con una VLAN
dentro del Cloud utilizando un túnel IPSEC.
- Se debe utilizar enrutador con soporte IPSEC en salida de la
red del cliente para que sea posible acceder transparentemente a
los servidores del Cloud.
- El acceso es restringido unicamente a la dirección IP del
cliente, por lo tanto debe contar con una IP pública fija.
- La autenticación se realiza a través de un "Shared Key" de
IPSEC.
- Cuando una red externa es conectada en una VLAN por el sistema
IPSEC, la dirección IP pública de la red remota no puede ser
usada por ninguna otra conexión VPN.
Topología de Red
Una conexión VPN entre la red cliente y la red Cloud se visualiza
así:
Configuración en el Cloud
Para iniciar la configuración se requiere de la siguiente
información:
- Dirección IP pública usado por el enrutador del cliente.
- Dirección IP y máscara de la red privada del cliente
- Si el enrutador está atrás de una conexión NAT, también
requiere la dirección IP privada del enrutador.
En el sistema de Cloud, dar clic en la sección
Conectividad>Redes VPN, luego
dar clic en el botón
Nueva Red
VPN... e ingresar los datos de la configuración.
- Nombre de la VPN.
- Shared Key: Es una
contraseña para proteger el acceso a la VLAN.
- Dirección IP pública: Es la IP utilizada
por el enrutador para conectarse a Internet.
- Dirección IP privada:
Si su enrutador estuviera atrás de una conexión NAT, tiene que
especificar la dirección IP privada del enrutador,
Si este no fuera el caso, puede dejar este campo en blanco.
- Red privada: IP y
máscara de la red privada del cliente. (Ejemplo: 192.168.1.0/24
o 172.30.11.0/255.255.255.0).
- VLAN del cloud a la cual se le
está configurando el acceso.
- Botón Aceptar, Acepta
los cambios realizados.
- Botón Cancelar,
cancela todos las operaciones realizadas.
El sistema puede rechazar su red privada sí:
- Ya existe otra conexión VPN utilizando una red privada
parecida que pueda generar conflictos de enrutamiento.
- La red privada del cliente entra en conflicto con alguna de
las VLANs configuradas en el servidor de Cloud.
Otras restricciones:
- Solamente son permitidas redes privadas IPv4 (IPv6 aún no es
soportada en este tipo de conexiones).
- Las direcciones IP de redes privadas deben pertenecer a las
redes 10.X.X.X/16 o /24, 192.168.X.X/16 o 172.16.0.0/12.
- Direcciones IP privadas de la red 196.254.X.X/26 no deben ser
utilizadas.
Después dar clic en el botón de Aplicar cambios, el sistema
estará listo para recibir conexiones IPSEC, ahora es necesario
configurar el enrutador del lado del cliente.
IMPORTANTE:
- Los servidores virtuales de la VALN del Cloud que va a ser
accesada, tienen que ser apagados y luego encendidos de nuevo (No reiniciar) para
que el sistema de Cloud pueda configurar el enrutamiento
necesario para acceder a la red del cliente.
- La red VLAN del cloud que va a ser accesada normalmente tienen
una dirección 10.80.XX.0/24 (Donde XX es el número de la VLAN).
Conexión por enrutador Linux (CentOS/RedHat/Fedora)
Una máquina con sistema Linux puede ser configurada como
enrutador IPSEC.
Estas instrucciones son hechas en distribuciones basadas en
RedHat (CentOS, Fedora, etc), pero pueden funcionar como guía en
otras distribuciones.
Instalar el paquete openswan:
#yum install openswan
Editar el archivo /etc/ipsec.secrets
dejando solamente una línea con lo siguiente:
<IP_RUTEADOR> <IP_CLOUD>: PSK “<SHARED_KEY>”
IP_RUTEADOR: Es la IP de su enrutador, sí estuviera atrás de
una conexión NAT, tiene que especificar la dirección IP privada del
enrutador, caso contrario la IP pública.
IP_CLOUD: DIrección IP de su servidor físico de cloud.
SHARED KEY: Contraseña que fue configurada dentro del sistema
cloud en la sección de Redes VPN.
Ejemplo:
192.168.0.250
74.50.112.156: PSK "rKtllZXP....."
Editar el archivo /etc/ipsec.conf
así: (los espacios al inicio de las líneas son muy importantes!)
version 2 # conforms to second version of ipsec.conf specification
config setup
dumpdir=/var/run/pluto/
nat_traversal=yes
virtual_private=%v4:0.0.0.0/0
protostack=netkey
force_keepalive=yes
keep_alive=60
conn MY_VPN
authby=secret
pfs=yes
auto=start
keyingtries=3
ikelifetime=8h
keylife=1h
type=tunnel
#Direccion IP publica de su enrutador
#(si estuviera atras de una NAT, usar la IP privada)
left=192.168.0.250
#La red privada del cliente en formato IP/mask
leftsubnet=192.168.0.0/24
## IP privada del enrutador:
leftsourceip=192.168.0.250
#Direccion IP publica de su servidor fisico de cloud
right=74.50.112.156
#IP/mask de la VLAN destino en el sistema de cloud
rightsubnet=10.80.45.0/24
dpddelay=10
dpdtimeout=20
dpdaction=clear
Ejecutar los siguientes comando, y configurarlos
en un script para que sean ejecutados cada vez que el sistema es
reiniciado:
#Evitar ICMP redirects
for vpn in /proc/sys/net/ipv4/conf/*; do
echo 0 > $vpn/accept_redirects; echo 0 > $vpn/send_redirects;
done
El enrutador debe estar configurado como default gateway en la red
del cliente:
- Si el enrutador hace NAT por IPTABLES para compartir la
dirección IP con los otros computadores de la red, es muy
importante que la regla de NAT de IPTABLES no intente alterar (Hacer
NAT) los paquetes con destino a la VLAN del Cloud:
Ejemplo 1: Si su
regla de NAT utiliza el comando de SNAT así:
iptables -t NAT -A POSTROUTING -s <rede_privada/mask> -j SNAT –to <IP_PUBLICO>
Entonces una regla debe
ignorar la red VLAN del Cloud, así:
iptables -t NAT -A POSTROUTING -s <rede_privada/mask> ! -d <red_vlan/24> -j SNAT –to <IP_PUBLICO>
Ejemplo 2: Si su
regla de NAT utiliza el comando MASQUERADE así:
iptables -t NAT -A POSTROUTING -o <interface> -j MASQUERADE
Entonces una regla debe
ignorar la red VLAN del cloud, así:
iptables -t NAT -A POSTROUTING -o <interface> ! -d <rede_vlan/24> -j MASQUERADE
Reiniciar el servicio de IPSEC para iniciar la conexión:
#service ipsec start
Monitoree el log
/var/log/secure para ver si el proceso de conexión fue
exitoso, buscar el mensaje “IPsec SA established tunnel mode”.
Si la conexión fue exitosa, Openswan debe crear las rutas necesarias
para acceder a la VLAN del cloud, es posible verificar la tabla de
enrutamiento de Linux con el comando:
#netstat -nr
Ahora debe ser posible hacer ping desde la red del cliente a los
servidores virtuales del Cloud y en el sentido contrario. (Recordar
siempre usar las direcciones IP privadas de ambas redes).
Conexión con enrutador Mikrotik (RouterOS)
Un enrutador Mikrotik o un computador con sistema
operativo RouterOS, puede ser usado como enrutador IPSEC para
conectarse al servicio de VPN de Cloud-Bricks.
Este ejemplo usaremos el software WinBox para
configurar el sistema Mikrotik:
En el menú seleccionar “IP → IPSEC”.
En la ventana de IPSEC, dar clic en el ícono "+", aparece la ventana
de “New IPSEC Policy”.
Ingresar la siguiente información:
- Src Address: IP/mask de la red privada del cliente.
- Dst Address: IP/mask de la VLAN de sistema de Cloud.
Dar clic en la pestaña “Action” dentro de la misma ventana “New
IPSec Policy”. Ingresar los siguientes datos:
- Activar el checkbox “Tunnel.
- SA Src Address: IP del enrutador (utilizar la IP
privada si está atrás de un NAT)
- SA Dst Address: Dirección IP de su servidor físico del
Cloud.
Dar clic en OK. Derspués, dar clic en la pestaña “Peers” y oprimir
el ícono “+”.
En la ventana de “New IPSEC Peer” ingresar los siguientes datos:
- Address: Dirección IP pública de su servidor de Cloud.
- Auth Method: Seleccionar "pre shared key".
- Secret: Shared Key (contraseña) generada en el sistema
de Cloud cuando la Red VPN fue configurada.
- Exchange mode: Seleccionar "main".
- Activar el checkbox: “Send Initial Contact”.
- Si su enrutador estuviera atrás de una NAT, activar el
checkbox “NAT Traversal”.
Clic en OK.
- Si el enrutador hace NAT por IPTABLES para compartir la
dirección IP con los otros computadores de la red, es muy
importante que la regla de NAT de IPTABLES no intente alterar (Hacer
NAT) los paquetes con destino a la VLAN del Cloud, es
decir, la VLAN tiene que ser ignorada por las reglas de NAT y
MASQUERADE.
La configuración está lista, para que el Mikrotik
pueda conectarse con el servicio de Cloud, se requiere generar
tráfico de datos con destino a los servidores de Cloud. Un ping
será suficiente.
También debe ser posible hacer un ping desde los servidores
virtuales a las máquinas de la red privada del cliente. cliente.
Conexión por enrutador Juniper (ScreenOS)
En este ejemplo mostraremos como utilizar un dispositivo Juniper
con capacidad de VPN para conectar al servicio de Redes VPN del
Cloud.
Recomendamos la configuración Policy-Based Site-toSite VPN
AutoKey IKE
Se asume que el dispositivo de seguridad ya tiene configuradas
las zonas trust (red privada) y untrust (red pública) con
enrutamiento y NAT funcionando apropiadamente.
Configurar direcciones en el Address Book
Aquí debemos configurar la red privada del lado del cliente,
utilizaremos 192.168.0.0/24 como ejemplo
Policy > Policy Elements > Addresses > List > New
Address Name: Trust_LAN
IP Address/Domain Name:
IP/Netmask: (select), 192.168.0.0/24
Zone: Trust
Y otra entrada en el address book para referenciar la VLAN remota en
el Cloud:
Policy > Policy Elements > Addresses > List > New
Address Name: CLOUD-BRICKS-VLAN
IP Address/Domain Name:
IP/Netmask: (select), 10.80.
X.0/24
(reemplazar X con el número de la VLAN)
Zone: Untrust
Configuración de VPN
Vamos a indicar la IP remota del cloud como destino de la VPN,
(DIrección IP de su servidor físico de cloud), en este ejemplo
llamaremos al gateway TO_WEBLINK
VPNs > AutoKey Advanced > Gateway > New
Hacer clic en "Advanced", en el campo "Preshared Key" colocar la
clave configurada en el administrador de Cloud-Bricks (Shared Key)
cuando se configuró la Red VPN. Asegúrese de seleccionar "UNTRUST"
como la interface de salida. (Outgoing Interface)
Luego hacer clic en "Return" y luego en "OK".
Ahora navegar hacia VPNs > AutoKey IKE > New
Tenemos que referenciar el Gateway remoto creado en el punto
anterior, en este ejemplo llamaremos a la VPN "WEBLINK_TUNNEL".
Hacer clic en "Advanced" para configurar los siguientes parámetros:
Hacer clic en "Return" y luego "OK"
Creación del Policy
Para finalizar, enlazamos los elementos creados anteriormente a
través de un Policy, por favor navegue hacia:
Policies > (From: Trust, To: Untrust) New
En este ejemplo llamaremos al policy WEBLINK_VPN
Las nuevas policies deben quedar en el primer lugar de la lista,
antes de cualquier otra política.
Después de hacer clic en "OK" la configuración está lista, sin
embargo el dispositivo solamente iniciará la conexión cuando vea que
hay tráfico entre la red local y la VLAN remota en Cloud-Bricks.
Para generar dicho tráfico, sugerimos hacer un ping desde su red
local hacia cualquiera de las direcciones IP de alguna de las
máquinas virtuales que se encuentren en la VLAN configurada
(10.80.X.Y, donde X corresponde al número de su VLAN).