En este tutorial de configuración de Vyatta tenemos un paso a paso para llevar a cabo la configuración de túneles o VPNs 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 que harán de túnel y encriptarán todo el tráfico que circule por el permitiendo establecer conexiones remotas seguras. Nos basaremos en la topología de ejemplo de configuración de Vyatta y explicaremos los pasos para configurar las VPNs de acceso remoto o remote access (RA) en Vyatta mediante OpenVPN para poder conectar de forma remota y segura a las oficinas desde cualquier equipo conectado a Internet y que hayamos configurado para tal efecto.



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, creamos la primera VPN de acceso remoto que será para el acceso de gerencia y en este ejemplo la crearemos como la interfaz vtun0 y crearemos para ella la subred 192.168.2.0/29:

openredes@openredesR1:~$ configure
openredes@openredesR1:# edit interfaces openvpn vtun0
[edit]
openredes@openredesR1:# set description VPN-Acceso-Remoto-Gerencia
[edit interfaces openvpn vtun0]
openredes@openredesR1:# set local-host 192.0.2.10
[edit interfaces openvpn vtun0]
openredes@openredesR1:# set local-port 1195
[edit interfaces openvpn vtun0]
openredes@openredesR1:# set mode server
[edit interfaces openvpn vtun0]
openredes@openredesR1:# set openvpn-option "--comp-lzo --dev-type tun --plugin /usr/lib/openvpn/openvpn-auth-pam.so openvpn --push route 192.168.0.0 255.255.255.0 --push route 192.168.1.0 255.255.255.0 --remote-cert-tls client --script-security 2"
[edit interfaces openvpn vtun0]
openredes@openredesR1:# set server client ra-jefe1 ip 192.168.2.2
[edit interfaces openvpn vtun0]
openredes@openredesR1:# set server client ra-jefe2 ip 192.168.2.3
[edit interfaces openvpn vtun0]
openredes@openredesR1:# set server client ra-jefe3 ip 192.168.2.4
[edit interfaces openvpn vtun0]
openredes@openredesR1:# set server client ra-jefe4 ip 192.168.2.5
[edit interfaces openvpn vtun0]
openredes@openredesR1:# set server client ra-jefe5 ip 192.168.2.6
[edit interfaces openvpn vtun0]
openredes@openredesR1:# set server subnet 192.168.2.0/29
[edit interfaces openvpn vtun0]
openredes@openredesR1:# set tls ca-cert-file /openvpn/keys/ra/ca.crt
[edit interfaces openvpn vtun0]
openredes@openredesR1:# set tls cert-file /openvpn/keys/ra/empresaR1.crt
[edit interfaces openvpn vtun0]
openredes@openredesR1:# set tls dh-file /openvpn/keys/ra/dh1024.pem
[edit interfaces openvpn vtun0]
openredes@openredesR1:# set tls key-file /openvpn/keys/ra/empresaR1.key
[edit interfaces openvpn vtun0]
openredes@openredesR1:# commit
[edit interfaces openvpn vtun0]
openredes@openredesR1:# show
   description VPN-Acceso-Remoto-Gerencia
   encryption bf128
   hash sha1
   local-host 192.0.2.10
   local-port 1195
   mode server
   openvpn-option "--comp-lzo --dev-type tun --plugin /usr/lib/openvpn/openvpn-auth-pam.so openvpn --push route 192.168.0.0 255.255.255.0 --push route 192.168.1.0 255.255.255.0 --remote-cert-tls client --script-security 2"
   server {
       client ra-jefe1 {
           ip 192.168.2.2
       }
       client ra-jefe2 {
           ip 192.168.2.3
       }
       client ra-jefe3 {
           ip 192.168.2.4
       }
       client ra-jefe4 {
           ip 192.168.2.5
       }
       client ra-jefe5 {
           ip 192.168.2.6
       }
       subnet 192.168.2.0/29
   }
   tls {
       ca-cert-file /openvpn/keys/ra/ca.crt
       cert-file /openvpn/keys/ra/empresaR1.crt
       dh-file /openvpn/keys/ra/dh1024.pem
       key-file /openvpn/keys/ra/empresaR1.key
   }
[edit interfaces openvpn vtun0]
openredes@openredesR1:# top
[edit]
openredes@openredesR1:#



Con esto ya tenemos configurada la VPN de Gerencia y ya podríamos instalarle a los jefes el OpenVPN GUI para que se conectaran con sus portátiles, luego veremos cómo hacerlo.
Seguimos con la configuración de la VPN de los comerciales, para lo que crearemos una interfaz llamada vtun1 perteneciente a la subred 192.168.2.8/29 y que usará los mismos certificados que vtun0 (Vyatta asignará una subred u otra dependiendo del certificado de cliente con el que se acceda y el puerto al que se haga la petición):

openredes@openredesR1:# edit interfaces openvpn vtun1
[edit]
openredes@openredesR1:# set description VPN-Acceso-Remoto-Comercial
[edit interfaces openvpn vtun1]
openredes@openredesR1:# set local-host 192.0.2.10
[edit interfaces openvpn vtun1]
openredes@openredesR1:# set local-port 1196
[edit interfaces openvpn vtun1]
openredes@openredesR1:# set mode server
[edit interfaces openvpn vtun1]
openredes@openredesR1:# set openvpn-option "--comp-lzo --dev-type tun --plugin /usr/lib/openvpn/openvpn-auth-pam.so openvpn --push route 192.168.0.0 255.255.255.0 --remote-cert-tls client --script-security 2"
[edit interfaces openvpn vtun1]
openredes@openredesR1:# set server client ra-cial1 ip 192.168.2.10
[edit interfaces openvpn vtun1]
openredes@openredesR1:# set server client ra-cial2 ip 192.168.2.11
[edit interfaces openvpn vtun1]
openredes@openredesR1:# set server client ra-cial3 ip 192.168.2.12
[edit interfaces openvpn vtun1]
openredes@openredesR1:# set server client ra-cial4 ip 192.168.2.13
[edit interfaces openvpn vtun1]
openredes@openredesR1:# set server client ra-cial5 ip 192.168.2.14
[edit interfaces openvpn vtun1]
openredes@openredesR1:# set server subnet 192.168.2.8/29
[edit interfaces openvpn vtun1]
openredes@openredesR1:# set tls ca-cert-file /openvpn/keys/ra/ca.crt
[edit interfaces openvpn vtun1]
openredes@openredesR1:# set tls cert-file /openvpn/keys/ra/empresaR1.crt
[edit interfaces openvpn vtun1]
openredes@openredesR1:# set tls dh-file /openvpn/keys/ra/dh1024.pem
[edit interfaces openvpn vtun1]
openredes@openredesR1:# set tls key-file /openvpn/keys/ra/empresaR1.key
[edit interfaces openvpn vtun1]
openredes@openredesR1:# commit
[edit interfaces openvpn vtun1]
openredes@openredesR1:# show
   description VPN-Acceso-Remoto-Comercial
   encryption bf128
   hash sha1
   local-host 192.0.2.10
   local-port 1196
   mode server
   openvpn-option "--comp-lzo --dev-type tun --plugin /usr/lib/openvpn/openvpn-auth-pam.so openvpn --push route 192.168.0.0 255.255.255.0 --remote-cert-tls client --script-security 2"
   server {
       client ra-cial1 {
           ip 192.168.2.10
       }
       client ra-cial2 {
           ip 192.168.2.11
       }
       client ra-cial3 {
           ip 192.168.2.12
       }
       client ra-cial4 {
           ip 192.168.2.13
       }
       client ra-cial5 {
           ip 192.168.2.14
       }
       subnet 192.168.2.8/29
   }
   tls {
       ca-cert-file /openvpn/keys/ra/ca.crt
       cert-file /openvpn/keys/ra/empresaR1.crt
       dh-file /openvpn/keys/ra/dh1024.pem
       key-file /openvpn/keys/ra/empresaR1.key
   }
[edit interfaces openvpn vtun1]
openredes@openredesR1:# top
[edit]
openredes@openredesR1:#



Como vemos, usamos la misma interfaz física (eth2, la interfaz conectada a la red pública) para las dos VPNs, la única diferencia es la necesidad de usar un puerto de escucha diferente para cada uno de los túneles, esto es necesario en caso de configurar más de una VPN en la misma interfaz física. También hemos de recordar el puerto que hemos configurado para después en la configuración de los equipos que se conectaran de forma remota como clientes hagamos la petición de conexión al puerto correspondiente.

Con esto terminamos la configuración de openredesR1 a nivel de VPNs, ya está preparado para dar de alta en la red clientes remotos





vyatta_ciscodome_large