Configuración de VPNs punto a punto o site-to-site (STS) en Vyatta con OpenVPN
Seguimos con la sección de tutoriales/manuales de configuración de Vyatta, en esta publicación tenemos un paso a paso para llevar a cabo la configuración de túneles o VPNs punto a punto o site-to-site (STS) en Vyatta mediante la integración que Vyatta ofrece con OpenVPN, con lo que generaremos nuevas interfaces virtuales (llamadas vtun) en nuestras máquinas Vyatta sobre las que se levantará nuestro túnel y por el que se encriptará todo el tráfico que circule por él.
Nos basaremos una vez más en la topología de ejemplo de configuración de Vyatta y antes de crear la VPN site-to-site o punto a punto tenemos que generar los certificados y gestionarlos correctamente.
Y tras la ardua tarea de creación y colocación de certificados podemos llevar a cabo la configuración de las VPNs que necesita nuestra empresa ficticia.
Empezamos con openredesR1 y vamos a configurar la VPN STS para la que actuara como servidor, como su nombre indica (extremo a extremo), en este tipo de VPN solo van a intervenir dos equipos y será una conexión punto a punto, uno de ellos será el servidor o extremo pasivo (recibe las peticiones) y el otro extremo será el cliente o extremo activo (enviara peticiones de conexión). En este caso vamos a usar interfaz conectada a la red pública para configurar la VPN que se levantará sobre la nueva interfaz virtual vtun10 y estará en la subred 192.168.2.32/30:
openredes@openredesR1:# edit interfaces openvpn vtun10
[edit]
openredes@openredesR1:# set description VPN-Inter-Sede
[edit interfaces openvpn vtun10]
openredes@openredesR1:# set local-address 192.168.2.33
[edit interfaces openvpn vtun10]
openredes@openredesR1:# set local-host 192.0.2.10
[edit interfaces openvpn vtun10]
openredes@openredesR1:# set local-port 1194
[edit interfaces openvpn vtun10]
openredes@openredesR1:# set mode site-to-site
[edit interfaces openvpn vtun10]
openredes@openredesR1:# set openvpn-option "--comp-lzo --push keepalive 10 120 --persist-tun --persist-key --persist-local-ip --persist-remote-ip --reneg-sec 86400 --remote-cert-tls client --script-security 2"
[edit interfaces openvpn vtun10]
openredes@openredesR1:# set remote-address 192.168.2.34
[edit interfaces openvpn vtun10]
openredes@openredesR1:# set remote-host 192.0.2.20
[edit interfaces openvpn vtun10]
openredes@openredesR1:# set remote-port 1194
[edit interfaces openvpn vtun10]
openredes@openredesR1:# set tls ca-cert-file /openvpn/keys/sts/ca.crt
[edit interfaces openvpn vtun10]
openredes@openredesR1:# set tls cert-file /openvpn/keys/sts/empresaR1.crt
[edit interfaces openvpn vtun10]
openredes@openredesR1:# set tls dh-file /openvpn/keys/sts/dh1024.pem
[edit interfaces openvpn vtun10]
openredes@openredesR1:# set tls key-file /openvpn/keys/sts/empresaR1.key
[edit interfaces openvpn vtun10]
openredes@openredesR1:# set tls role pasive
[edit interfaces openvpn vtun10]
openredes@openredesR1:# commit
[edit interfaces openvpn vtun10]
openredes@openredesR1:# show
description VPN-Inter-Sede
encryption bf128
hash sha1
local-address 192.168.2.33
local-host 192.0.2.10
local-port 1194
mode site-to-site
openvpn-option "--comp-lzo --push keepalive 10 120 --persist-tun --persist-key --persist-local-ip --persist-remote-ip --reneg-sec 86400 --remote-cert-tls client --script-security 2"
remote-address 192.168.2.34
remote-host 192.0.2.20
remote-port 1194
tls {
ca-cert-file /openvpn/keys/sts/ca.crt
cert-file /openvpn/keys/sts/empresaR1.crt
dh-file /openvpn/keys/sts/dh1024.pem
key-file /openvpn/keys/sts/empresaR1.key
role pasive
}
[edit interfaces openvpn vtun10]
openredes@openredesR1:# top
[edit]
openredes@openredesR1:# save
Saving configuration to '/opt/vyatta/etc/config/config.boot'...
Done
[edit]
openredes@openredesR1:#
Con esto terminamos la configuración de openredesR1 y ya está preparado para dar de alta en la red una máquina configurada como extremo activo que será openredesR2, pasamos ahora a configurar el otro extremo de la conexión STS que nos habilitará la interconexión entre ambas sedes remotas como si trabajasen físicamente juntas, lo haremos creando en openredesR2 una interfaz virtual llamada vtun10 (no tiene que llamarse igual que el extremo opuesto) que haga peticiones al puerto 1194 de la máquina servidor:
openredes@openredesR2:# edit interfaces openvpn vtun10
[edit]
openredes@openredesR2:# set description VPN-Inter-Sede
[edit interfaces openvpn vtun10]
openredes@openredesR2:# set local-address 192.168.2.34
[edit interfaces openvpn vtun10]
openredes@openredesR2:# set local-host 192.0.2.20
[edit interfaces openvpn vtun10]
openredes@openredesR2:# set local-port 1194
[edit interfaces openvpn vtun10]
openredes@openredesR2:# set mode site-to-site
[edit interfaces openvpn vtun10]
openredes@openredesR2:# set openvpn-option "--comp-lzo --push keepalive 10 120 --persist-tun --persist-key --persist-local-ip --persist-remote-ip --reneg-sec 0 --explicit-exit-notify 2 --remote-cert-tls client --script-security 2"
[edit interfaces openvpn vtun10]
openredes@openredesR2:# set remote-address 192.168.2.33
[edit interfaces openvpn vtun10]
openredes@openredesR2:# set remote-host 192.0.2.10
[edit interfaces openvpn vtun10]
openredes@openredesR2:# set remote-port 1194
[edit interfaces openvpn vtun10]
openredes@openredesR2:# set tls ca-cert-file /openvpn/keys/sts/ca.crt
[edit interfaces openvpn vtun10]
openredes@openredesR2:# set tls cert-file /openvpn/keys/sts/stsempresaR2.crt
[edit interfaces openvpn vtun10]
openredes@openredesR2:# set tls key-file /openvpn/keys/sts/stsempresaR2.key
[edit interfaces openvpn vtun10]
openredes@openredesR2:# set tls role active
[edit interfaces openvpn vtun10]
openredes@openredesR2:# commit
[edit interfaces openvpn vtun10]
openredes@openredesR2:# show
description VPN-Inter-Sede
encryption bf128
hash sha1
local-address 192.168.2.34
local-host 192.0.2.20
local-port 1194
mode site-to-site
openvpn-option "--comp-lzo --push keepalive 10 120 --persist-tun --persist-key --persist-local-ip --persist-remote-ip --reneg-sec 0 --explicit-exit-notify 2 --remote-cert-tls client --script-security 2"
remote-address 192.168.2.33
remote-host 192.0.2.10
remote-port 1194
tls {
ca-cert-file /openvpn/keys/sts/ca.crt
cert-file /openvpn/keys/sts/stsempresaR2.crt
key-file /openvpn/keys/sts/stsempresaR2.key
role active
}
[edit interfaces openvpn vtun10]
openredes@openredesR2:# top
[edit]
openredes@openredesR2:# save
Saving configuration to '/opt/vyatta/etc/config/config.boot'...
Done
[edit]
openredes@openredesR2:# ping 192.168.2.33
PING 192.168.2.33 (192.168.2.33) 56(84) bytes of data.
64 bytes from 192.168.2.33: icmp_req=1 ttl=64 time=0.817 ms
64 bytes from 192.168.2.33: icmp_req=2 ttl=64 time=0.579 ms
64 bytes from 192.168.2.33: icmp_req=3 ttl=64 time=0.455 ms
64 bytes from 192.168.2.33: icmp_req=4 ttl=64 time=0.342 ms
^C
--- 192.168.2.33 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 0.342/0.548/0.817/0.177 ms
[edit]
openredes@openredesR2:#
Y ya tenemos nuestras dos sedes remotas conectadas de forma totalmente segura, pero… si tratas de hacer ping desde una máquina de la subred DMZ hacia una máquina que está en la VLAN de desarrollo (en la otra sede) o incluso desde openredesR1 a cualquiera de las otras interfaces de openredesR2… no funciona, que pasa? no está bien configurada la VPN? si si, tranquilo, no es eso, el problema es que nuestras máquinas Vyatta aún no conocen de la existencia de otras redes o subredes distintas a las que tienen conectadas directamente y el tráfico se escapa por la ruta por defecto (192.0.2.1 en este caso).
Como lo solucionamos? bueno, tenemos varias posibilidades, añadir rutas persistentes a todos los equipos de la empresa (bufff, quita quita), añadir rutas estáticas a nuestras dos máquinas Vyatta para que sepan las subredes que hay en el extremo opuesto o incluso configurar algún protocolo de routing (rip, ospf…)













Pingback: Configuración de rutas estáticas en Vyatta | openredes - Networking Open Source
Pingback: Autenticacion local en Vyatta tras inicio de conexion VPN de acceso remoto con OpenVPN usando el plugin openvpn-auth-pam.so | openredes - Networking Open Source
Pingback: Configuración avanzada de parámetros del modulo OpenVPN en Vyatta | openredes - Networking Open Source
Pingback: Configuración avanzada de rutas con el protocolo de routing dinámico OSPF en Vyatta | openredes - Networking Open Source
Pingback: Configuración del módulo firewall de Vyatta. Parte 1 - Consideraciones previas y establecimiento de políticas | openredes - Networking Open Source
Pingback: Vyatta en español | openredes - Networking Open Source
Pingback: Actualización de Vyatta, uso de comillas dobles y nuevos parámetros OpenVPN en Vyatta VC6.3 Napa | openredes - Networking Open Source