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.
El diagrama siguiente ilustra un ejemplo de cómo configurar el acceso remoto a un servicio exterior:

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. |
El diagrama siguiente ilustra un ejemplo de cómo configurar el acceso remoto a los dispositivos internos de CA AppLogic:

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:
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.
El diagrama siguiente ilustra un ejemplo de cómo ofrecer túneles VPN seguros para la replicación MySQL:

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. |
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 |
| Copyright © 2012 CA. Todos los derechos reservados. |
|