Configuración de VPNs de acceso remoto RA en Vyatta con OpenVPN
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










Hola openredes, tengo un problemilla con el OpenVPN, y es el siguiente: cuando los clientes de openVPN se conectan a la VPN se conectan sin problemas, tengo asignadas las IP igual que tú por nombre de certificado, no tengo ningún tipo de firewall activado en la interface vtun, así como ninguna ruta, por lo que veo en tu tutorial no hay que añadir ninguna ruta para que los usuarios se vean entre sí, lo único que yo quiero para estos usuarios es que sean visibles entre sí en la subnet que he creado para ellos en la VPN, ya que tienen que acceder a un servidor web que también es conectado por VPN, te dejo un sample de mi configuración.
Los clientes se validan sin problema y sin ningún error, sólo warnings que te dejaré más abajo
PD: no son ni capaces de ver la interficie openvpn que es la 192.168.10.1/24
Config Vyatta:
CONFIG USUARIOS VPN; CLIENTE OPENVPN GUI
ERROR LOG OPENVPN GUI
Tue Jun 28 00:55:09 2011 OpenVPN 2.2.0 Win32-MSVC++ [SSL] [LZO2] built on Apr 26 2011
Tue Jun 28 00:55:09 2011 IMPORTANT: OpenVPN’s default port number is now 1194, based on an official port number assignment by IANA. OpenVPN 2.0-beta16 and earlier used 5000 as the default port.
Tue Jun 28 00:55:09 2011 WARNING: using –pull/–client and –ifconfig together is probably not what you want
Tue Jun 28 00:55:09 2011 WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info.
Tue Jun 28 00:55:09 2011 NOTE: OpenVPN 2.1 requires ‘–script-security 2′ or higher to call user-defined scripts or executables
Tue Jun 28 00:55:10 2011 UDPv4 link local (bound): [undef]:1194
Tue Jun 28 00:55:10 2011 UDPv4 link remote: 80.102.151.202:1194
Tue Jun 28 00:55:10 2011 WARNING: ‘dev-type’ is used inconsistently, local=’dev-type tap’, remote=’dev-type tun’
Tue Jun 28 00:55:10 2011 WARNING: ‘link-mtu’ is used inconsistently, local=’link-mtu 1573′, remote=’link-mtu 1541′
Tue Jun 28 00:55:10 2011 WARNING: ‘tun-mtu’ is used inconsistently, local=’tun-mtu 1532′, remote=’tun-mtu 1500′
Tue Jun 28 00:55:10 2011 [VyattaSRV] Peer Connection Initiated with 80.102.151.202:1194
Tue Jun 28 00:55:12 2011 TAP-WIN32 device [Local Area Connection 3] opened: \\.\Global\{6046743C-F6A3-42B7-8EB4-616ECD5F8764}.tap
Tue Jun 28 00:55:12 2011 Notified TAP-Win32 driver to set a DHCP IP/netmask of 192.168.10.2/255.255.255.0 on interface {6046743C-F6A3-42B7-8EB4-616ECD5F8764} [DHCP-serv: 192.168.10.0, lease-time: 31536000]
Tue Jun 28 00:55:12 2011 Successful ARP Flush on interface [27] {6046743C-F6A3-42B7-8EB4-616ECD5F8764}
Tue Jun 28 00:55:17 2011 Initialization Sequence Completed
Tue Jun 28 01:55:10 2011 WARNING: ‘dev-type’ is used inconsistently, local=’dev-type tap’, remote=’dev-type tun’
Tue Jun 28 01:55:10 2011 WARNING: ‘link-mtu’ is used inconsistently, local=’link-mtu 1573′, remote=’link-mtu 1541′
Tue Jun 28 01:55:10 2011 WARNING: ‘tun-mtu’ is used inconsistently, local=’tun-mtu 1532′, remote=’tun-mtu 1500′
Tue Jun 28 02:31:57 2011 SIGTERM[hard,] received, process exiting
Saludos y espero respuesta!