Tema anterior: VPN: dispositivo de red virtual privada.

Tema siguiente: Genérico


Secreto compartido de IPSec

Este modo es compatible con un escenario de servidor único y varios clientes, por lo que se puede acceder al servidor VPN desde diversas ubicaciones. Se requiere un almacén de datos (o un volumen de datos o un dispositivo NAS conectado al terminal fs). Este modo funciona solamente en IPv4.

Durante el inicio, el dispositivo de servidor extrae la primera línea del archivo especificada por la propiedad auth_path y la utiliza como una clave compartida. Este archivo debe estar presente en las dos partes. Antes de configurar cualquier cliente VPN, este archivo de secreto compartido se deberá copiar al almacén de datos en el subdirectorio /client/.

En el dispositivo VPN de servidor, se descifra el tráfico recibido en la interfaz externa, se filtra mediante las propiedades tcp_ports, udp_ports y aux_protocols y se reenvía a la interfaz de srv.

En el dispositivo VPN de cliente, todo el tráfico recibido en la interfaz clt se encripta y se reenvía al servidor VPN remoto, especificado en la propiedad remote_host.

Propiedades que se deberán configurar en el lado del servidor: ip_addr, netmask, gateway (o las propiedades que correspondan a IPv6), mode, tunnel, allowed_hosts, tcp_ports, udp_ports y aux_protocols.

Propiedades que se deberán configurar en el lado del cliente: ip_addr, netmask, gateway (o las propiedades que correspondan a IPv6), mode, tunnel, remote_host y auth_path.

Acceso remoto a un servicio exterior

El diagrama siguiente ilustra un ejemplo de cómo configurar el acceso remoto a un servicio exterior:

Ejemplo: un dispositivo Web, que se ejecuta en el grid A, accede a una base de datos MySQL remota que se ejecuta en el grid B a través de un túnel VPN seguro

En este ejemplo un dispositivo Web, que se ejecuta en el grid A, accede a una base de datos MySQL remota que se ejecuta en el grid B a través de un túnel VPN seguro.

vpn1 en el grid A se configura para conectarse a la dirección IP asignada a vpn2 en el grid B. El terminal srv de vpn1 y el terminal clt de vpn2 se dejan sin conectar. Las interfaces externas de vpn1 y vpn2 se configuran con las direcciones IP enrutables correspondientes.

Ejemplo de configuración de las propiedades:

vpn1:

Nombre de la propiedad

Valor

Notes

ip_addr

25.74.63.87

IP externa utilizada para vpn1.

netmask

255.255.255.0

netmask

gateway

25.74.63.1

gateway

mode

client

Modo de operación del cliente.

tunnel

ipsec certificate

El tráfico se encripta mediante IPSec.

auth_path

client-7575

Nombre de la pareja de archivos certificado/clave.

remote_host

12.12.12.12

IP externa asignada a la interfaz externa de vpn2.

vpn2:

Nombre de la propiedad

Valor

Notes

ip_addr

12.12.12.12

IP externa utilizado para vpn2.

netmask

255.255.255.0

netmask

gateway

12.12.12.1

gateway

mode

Servidor

Modo de operación del servidor.

tunnel

ipsec certificate

El tráfico se encripta mediante IPSec.

allowed_hosts

25.74.63.87

Solamente permite conexiones de vpn1.

tcp_ports

3306

Puerto predeterminado para servidor MySQL.

Acceso remoto a dispositivos de CA AppLogic internos

El diagrama siguiente ilustra un ejemplo de cómo configurar el acceso remoto a los dispositivos internos de CA AppLogic:

Ejemplo: un usuario necesita acceder a varios dispositivos desde su equipo a través de una conexión VPN segura mediante el cliente OpenVPN

En este ejemplo un usuario necesita acceder a varios dispositivos desde su equipo a través de una conexión VPN segura mediante el cliente OpenVPN. Se utiliza OpenVPN para conectarse a la dirección IP asignada a vpn. Vpn establece un túnel VPN con el equipo del usuario y reenvía todo el tráfico entrante al conmutador de puerto sw, que está configurado para distribuir el tráfico a cuatro dispositivos diferentes dentro de la aplicación.

Se debe instalar OpenVPN en el equipo del usuario antes de acceder a una aplicación de CA AppLogic que usa el dispositivo de VPN tal y como se describe en este ejemplo. Los siguientes pasos describen cómo está configurada la aplicación y qué debe hacer el usuario para acceder a la aplicación a través de un túnel VPN seguro:

  1. El usuario debe instalar OpenVPN en el equipo. Se puede obtener OpenVPN de aquí o aquí (ha habido informes de OpenVPN que no funcionan en Windows Vista). Después de la instalación, hay que crear un archivo de configuración aparte que defina las propiedades del túnel OpenVPN que el usuario utilizará para acceder a la aplicación CA AppLogic. Los siguientes pasos describen cómo hacer esto.
  2. Se recomienda encarecidamente utilizar el modo de secreto compartido de funcionamiento del dispositivo VPN. Configure vpn de la siguiente forma:

vpn:

Nombre de la propiedad

Valor

Notes

ip_addr

28.36.85.21

Dirección IP asignada al dispositivo VPN.

mode

Servidor

Modo de operación del servidor.

tunnel

shared secret

Mediante archivo de secreto compartido.

allowed_hosts

26.42.56.72

Dirección IP del equipo de cliente.

tcp_ports

0

Se permite el uso de todos los puertos.

udp_ports

0

Se permite el uso de todos los puertos.

3. Asigne los protocolos y puertos que necesiten reenviarse a través del dispositivo sw. En este caso los 4 puertos (122,422,522,822) se reenvían a los puertos ssh de los dispositivos conectados a sw:

Nombre de la propiedad

Valor

Notes

out1_protocol

tcp

Protocolo TCP

out1_in_port

122

Puerto entrante 122

out1_out_port

22

Puerto saliente 22

out4_protocol

tcp

Protocolo TCP

out4_in_port

422

Puerto entrante 422

out4_out_port

22

Puerto saliente 22

out5_protocol

tcp

Protocolo TCP

out5_in_port

522

Puerto entrante 522

out5_out_port

22

Puerto saliente 22

out8_protocol

tcp

Protocolo TCP

out8_in_port

822

Puerto entrante 822

out8_out_port

22

Puerto saliente 22

4. Inicie la aplicación. Después de que la aplicación se ha iniciado, extraiga el archivo de secreto compartido del dispositivo vpn:

grid> comp ssh APPLICATION:main.VPN
vpn> cat /mnt/data/server/secret.key
#
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
431e845f2ca67f2a31649b20e3ba3291
...
fe991cdbfe82525a9367b9afbfd0f922
-----END OpenVPN Static key V1-----

5. Pegue el anterior contenido de secret.key en un nuevo archivo del equipo del usuario y guarde el archivo. Esto es un archivo de secreto compartido que se utiliza para la autenticación.

6. Prepare un archivo de configuración de OpenVPN de cliente. Copie las líneas siguientes en un nuevo archivo en el equipo del usuario (un archivo diferente del paso 5):

dev tun
proto udp
resolv-retry infinite
persist-key
persist-tun
cipher AES-128-CBC
comp-lzo
keepalive 10 120
remote 11.22.33.44 1194
secret "C:\\Program Files\\OpenVPN\\sample-config\\secret.key"
nobind
ifconfig 169.254.215.101 169.254.215.102

Las direcciones IP de la línea ifconfig pueden ser cualquieras, siempre que sean: a) del bloque de red 169.254.0.0/16; b) de la misma subred /30; c) ni las primeras ni las últimas direcciones de la subred /30. B y C son las limitaciones del cliente de OpenVPN que se ejecuta en una plataforma de Windows.

7. Sustituya la dirección IP remota por la dirección IP que se asigna al dispositivo vpn. Sustituya la ruta al archivo de secreto compartido de la línea secret por la ruta al archivo de clave creado en el paso 5. Si está utilizando un sistema operativo de Microsoft Windows en el equipo de usuario donde se instaló OpenVPN, entrecomille todas las líneas y sustituya todas las barras diagonales por una barra diagonal doble.

8. Inicie el cliente de OpenVPN:

c:\program files\OpenVPN\bin\openvpn.exe --config "c:\client.ovpn"

Nota: Sustituya "c:\client.ovpn" por la ruta al archivo de configuración creado en el paso 6.

9. Después de unos pocos segundos, verá el mensaje siguiente de OpenVPN:

Wed Jul 01 09:41:12 2009 Peer Connection Initiated with XX.XX.XX.XX:1194
Wed Jul 01 09:41:12 2009 Initialization Sequence Completed

Ahora puede acceder a los dispositivos de la aplicación de CA AppLogic mediante la dirección IP definida en el archivo de configuración (169.254.215.102 en este caso). El puerto 169.254.215.102:122 se reenvía por sw al puerto 22 del dispositivo srv1; asimismo el puerto 169.254.215.102:422 se reenvía al dispositivo srv4 y así sucesivamente. Por ejemplo, ejecute

ssh -p 122 root@169.254.215.102

para acceder al primer dispositivo.

Provisión de túneles VPN seguros para la replicación MySQL

El diagrama siguiente ilustra un ejemplo de cómo ofrecer túneles VPN seguros para la replicación MySQL:

Ejemplo: dos aplicaciones que se ejecutan en grids diferentes, grid A y grid B, donde las dos aplicaciones utilizan la misma base de datos MySQL que se replica a través de un túnel VPN seguro

En este ejemplo se ejecutan dos aplicaciones en grids diferentes, grid A y grid B, donde las dos aplicaciones utilizan la misma base de datos MySQL que se replica a través de un túnel VPN seguro.

vpn1 y vpn2 se configuran con una dirección IP enrutable en las interfaces externas. vpn1 se configura para establecer un túnel a vpn2, y viceversa.

db1 del grid A envía tráfico a vpn1 para propósitos de replicación, donde se encripta y se transmite a vpn2, que es donde se desencripta el tráfico y se envía al terminal rin de db2 en el grid B. Asimismo, la replicación desde db2 en el grid B hasta db1 en el grid A se comporta de la misma manera.

vpn1:

Nombre de la propiedad

Valor

Notes

ip_addr

82.56.42.25

Dirección asignada a la interfaz externa.

mode

both

Modo de operación del servidor.

tunnel

ssh key

Mediante archivos de clave de SSH.

auth_path

"/keys/vpn21.ssh.key"

Ruta al archivo de clave de SSH.

remote_host

92.72.57.95

Dirección asignada a la interfaz externa de vpn2.

tcp_ports

3306,22

Puerto predeterminado para el servidor MySQL y SSH.

ssh_ports

3306,22

Puerto predeterminado para el servidor MySQL y SSH.

vpn2:

Nombre de la propiedad

Valor

Notes

ip_addr

92.72.57.95

Dirección asignada a la interfaz externa.

mode

both

Modo de operación del servidor.

tunnel

ssh key

Mediante archivos de clave de SSH.

auth_path

"/keys/vpn21.ssh.key"

Ruta al archivo de clave de SSH.

remote_host

82.56.42.25

Dirección asignada a la interfaz externa de vpn1.

tcp_ports

3306,22

Puerto predeterminado para el servidor MySQL y SSH.

ssh_ports

3306,22

Puerto predeterminado para el servidor MySQL y SSH.

vpn1:

Nombre de la propiedad

Valor

Notes

ip_addr

82.56.42.25

Dirección asignada a la interfaz externa.

mode

both

Actúa como servidor y cliente; permite la replicación en dos direcciones.

tunnel

ipsec shared secret

Tráfico encriptado con IPSec.

auth_path

"/keys/ipsec.key"

Ruta al archivo de secreto compartido de ipsec.

remote_host

92.72.57.95

Dirección asignada a la interfaz externa de vpn2.

tcp_ports

3306,22

Puerto predeterminado para el servidor MySQL y SSH.

vpn2:

Nombre de la propiedad

Valor

Notes

ip_addr

92.72.57.95

Dirección asignada a la interfaz externa.

mode

both

Actúa como servidor y cliente; permite la replicación en dos direcciones.

tunnel

ipsec shared secret

Tráfico encriptado con IPSec.

auth_path

"/keys/server/ipsec.key"

Ruta al archivo de secreto compartido de ipsec.

remote_host

82.56.42.25

Dirección asignada a la interfaz externa de vpn1.

tcp_ports

3306,22

Puerto predeterminado para el servidor MySQL y SSH.

Notes

Se deberá utilizar OpenVPN en el equipo del cliente para acceder a un túnel VPN seguro expuesto por el dispositivo VPN.

Software de fuente abierta y de terceros utilizado dentro del dispositivo

VPN utiliza los siguientes paquetes de fuente abierta de terceros, además de los paquetes de fuente abierta de terceros que utiliza su clase base LUX5.

Software

Versión

Modificado

Licencia

Notes

IPsec-Tools

0.6.5-13.el5_3.1

No

BSD

Página principal

iptables

1.3.5-5.3.el5_4.1

No

GPLv2

N/A

iptables-ipv6

1.3.5-5.3.el5_4.1

No

GPLv2

N/A

LZO

2.03

No

GPLv2

Página principal

OpenVPN

2.1.4

No

GPLv2

Página principal

samba-client

3.0.33-3.15.el5_4

No

GPLv2

N/A

samba-common

3.0.33-3.15.el5_4

No

GPLv2

N/A

iproute2

2.6.29-1

No

GPLv2

Página principal

autossh

1.4b

No

BSD

Página principal