Sei sulla pagina 1di 15

OpenVPN Configuracin VPN Road Warrior (Host to LAN)

Fig. 1. VPN Road Warrior

1. Preparando el Servidor VPN (1) Se debe tener instalado los siguientes paquetes: pam, openssl, lzo, openvpn.
# rpm -q pam # rpm -q openssl # rpm -q lzo

Paquetes necesarios para la compilacin del OpenVPN


# # # # rpm rpm rpm rpm -q q q q lzo-devel openssl-devel make gcc

(2) De faltar algn paquete hay que instalarlo:


Agregamos el repositorio rpmforge
rpm -Uhv http://apt.sw.be/redhat/el5/en/i386/rpmforge/RPMS/rpmforge-release-0.3.61.el5.rf.i386.rpm

Instalamos el paquete:
# yum install lzo

(3) Descargamos el paquete fuente de Openvpn:


http://openvpn.net/index.php/open-source/downloads.html (3.1) Copiamos el paquete openvpn-2.0.9.tar.gz al directorio /usr/local y luego se descomprime y desempaqueta:
# tar -zxvf openvpn-2.0.9.tar.gz

(3.2) Ingresamos a la carpeta openvpn-2.0.9


# cd /usr/local/openvpn-2.0.9/

(3.3) Empezamos el proceso de instalacin de OpenVPN


# # # # ./configure make make install make check

(4) Comprobamos el funcionamiento de Openvpn


# openvpn --genkey --secret key # openvpn --test-crypto --secret key

Fig. 2. Verificando el correcto funcionamiento de Openvpn

Los pasos 1, 2, 3 y 4 se deben repetir exactamente igual en el equipo del cliente Linux

(5) Revisemos las direcciones IP pblica y privada:


# ifconfig eth0 Link encap:Ethernet HWaddr 00:0F:3D:CB:7B:74 inet addr:172.17.67.75 Bcast:172.17.67.255 Mask:255.255.255.0 inet6 addr: fe80::20f:3dff:fecb:7b74/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:2764 errors:0 dropped:0 overruns:0 frame:0 TX packets:682 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1362998 (1.2 Mb) TX bytes:100959 (98.5 Kb) Interrupt:185 Base address:0xb800 eth1 Link encap:Ethernet HWaddr 00:15:E9:B0:22:7C inet addr:192.168.2.1 Bcast:192.168.2.255 Mask:255.255.255.0 inet6 addr: fe80::215:e9ff:feb0:227c/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:330 errors:0 dropped:0 overruns:0 frame:0 TX packets:20 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:33440 (32.6 Kb) TX bytes:1822 (1.7 Kb) Interrupt:169 Base address:0xb400 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:322 errors:0 dropped:0 overruns:0 frame:0 TX packets:322 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:23316 (22.7 Kb) TX bytes:23316 (22.7 Kb)

1.1. Configuracin del Servidor VPN (1) (2) (3) (4) (5)
Creamos el directorio /etc/openvpn/ Copiar el directorio /usr/local/openvpn-2.2.0/easy-rsa/ hacia /etc/openvpn/ Trasladarse al directorio /etc/openvpn/easy-rsa/2.0/ Definimos permisos de ejecucin en los scripts. Inicializamos las variables para poder trabajar con los scripts para la generacin de las variables. (6) Inicializamos el directorio de las claves.

Fig. 3. Configurar CA

(7) Procedemos a generar el certificado CA. Se nos pedir una serie de informacin sobre
nuestra red/empresa que debemos llenar lo ms fielmente posible.
# sh build-ca

La variable que debemos explcitamente llenar es: Common Name.

Fig. 4. Generacin del certificado CA

(8) Generacin del certificado y de la clave de encriptacin para el servidor.


En ste paso, tambin se nos pedir nuevamente informacin sobre el certificado propio del servidor. Ingresar en Common Name un nombre diferente al anteriormente escogido. En este ejercicio: server
# sh build-key-server server

Fig. 5. Generacin del certificado de servidor.

(9) El paso anterior nos genero dos archivos en el directorio /etc/openvpn/easyrsa/2.0/keys/ que se copiarn dentro del mismo servidor hacia /etc/openvpn.

Fig. 6.

(10) Generando certificados y claves privadas para los clientes.


Cada cliente debe tener su propio certificado y clave de seguridad, para cada cliente que tengamos deberemos repetir el siguiente paso. Los archivos obtenidos debemos copiarlos hacia el directorio /etc/openvpn/ de los equipos cliente. En el caso de que nuestros clientes estn en Windows, debemos copiarlos hacia el directorio c:\program files\openvpn\ Para generar el certificado y claves privadas para el cliente, ejecutamos en nuestro servidor, dentro del directorio /etc/openvpn/easy-rsa/2.0/
# cd /etc/openvpn/easy-rsa/2.0/ # sh build-key cliente1

En el ejemplo anterior generamos la clave y el certificado para un cliente llamado cliente1. Debemos hacer notar que al ejecutar el programa sh build-key, le pasamos como parmetro el nombre del cliente (cliente1 en el ejemplo anterior) el cual debe ser diferente para cada cliente. En el commoName ponemos el nombre del cliente (cliente1 en ste ejemplo) tal y como le pasamos de parmetro.

(11) Se pueden generar tantas claves como sean necesarias, para cada cliente:
# sh build-key cliente2 # sh build-key cliente3

Esto nos generar dos claves y certificados ms, para cliente2 y cliente3, por favor, en Common Name debemos poner cliente2 cliente3 para cada caso.

Fig. 7. Generacin del certificado del cliente

(12) El parmetro de Diffie-Hellman debemos generarlo:


# sh build-dh

Fig. 8.

(13) Archivos a copiar al servidor VPN:


Hacia el directorio /etc/openvpn del servidor copiamos los siguientes archivos: ca.crt, ca.key y dh1024.pem estos archivos estn presentes en el siguiente directorio /etc/openvpn/easy-rsa/2.0/keys/
# cd /etc/openvpn/easy-rsa/2.0/keys/ # cp ca.crt ca.key dh1024.pem /etc/openvpn # ls /etc/openvpn/

Fig. 9.

(14) Archivo de configuracin del servidor.


Creamos el archivo /etc/openvpn/server.conf, debe quedar como se muestra:
#Puerto por defecto port 1194 #Protocolo por defecto proto udp # Tipo de dispositivo virtual a utilizar (roadwarrior usa tun) dev tun # Le dice que no reinicie la interfaz de red persist-tun # Le dice que no lea la llave ante un reinicio persist-key # Certificado Raz ca ca.crt # Certificado de Servidor cert server.crt # Llave privada del servidor key server.key # Llave Algoritmo DH dh dh1024.pem # Nombre de Red y mscara para la red VPN (El servidor por defecto es el .1) server 192.168.3.0 255.255.255.0 #Archivo donde guardar un cache con las direcciones IP de clientes ifconfig-pool-persist ipp.txt #Ruta para que los clientes alcancen la red local del server (2.0/24) push "route 192.168.2.0 255.255.255.0" #Mensajes para evitar cierre de conexin (Uno cada 10 segundos #y cierre de conexin luego de 120 segundos de inactividad) keepalive 10 120 # Modo de compresin comp-lzo user nobody group nobody

#Cantidad de informacin para guardar en el log (de 0 a 11) verb 4 #Archivo log status /var/log/openvpn-status.log

Como podemos ver, hay nuevos parmetros, los ms importantes son: push de la ruta hacia la red local interna del servidor. Es la ruta esttica permitir que el road warrior vea a las mquinas de la red interna. server: Indica el rango de direcciones que se asignar a los clientes que se conecten, deben ser direcciones no similares a las de la red local.

2. Preparando el cliente VPN (1)


Archivos a copiar al equipo del cliente Hacia el directorio /etc/openvpn de cada cliente copiamos los siguientes archivos: ca.crt, clienteX.crt y clienteX.key Tenga en cuenta que X es un nmero que se corresponde con el cliente (para el cliente 2 sera: cliente2.crt y cliente2.key por ejemplo). Estos 3 archivos deben copiarse de forma segura hacia el cliente, quiz mediante scp o algn medio magntico seguro. No deben enviarse por mail puesto que contienen la clave (.key) de encriptacin del cliente. Estos archivos estn presentes en: /etc/openvpn/easy-rsa/2.0/keys del servidor. Este paso lo realizamos netamente desde el equipo del cliente:
# scp 172.17.67.75:/etc/openvpn/easy-rsa/2.0/keys/ca.crt /etc/openvpn The authenticity of host '190.12.79.79 (190.12.79.79)' can't be established. RSA key fingerprint is 8f:38:bb:2a:7b:74:02:71:6c:40:0f:b0:3d:a2:d1:b0. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '190.12.79.79' (RSA) to the list of known hosts. Password: ca.crt 100% 1265 1.2KB/s 00:00 # scp 172.17.67.75:/etc/openvpn/easy-rsa/2.0/keys/cliente1.crt /etc/openvpn Password: client1.crt 100% 3583 3.5KB/s 00:00 # scp 172.17.67.75:/etc/openvpn/easy-rsa/2.0/keys/cliente1.key /etc/openvpn Password: client1.key 100% 887 0.9KB/s 00:00

(2)

Configuracin en el equipo del cliente: En este caso, la configuracin es en el directorio /etc/openvpn/ del equipo cliente. Crearemos el archivo /etc/openvpn/cliente.conf, as quedara el archivo de configuracin:

# Somos cliente client # Protocolo por defecto dev tun # Tipo de dispositivo virtual a utilizar (roadwarrior usa tun) proto udp

# Direccin y puerto del servidor vpn remote 172.17.67.75 1194 # Si hay problemas de resolucin, intenta infinitamente resolv-retry infinite # No hace binding de un puerto local en particular (no sabemos cual est libre) nobind #Las dos siguientes opciones no van en windows user nobody group nobody # Le dice que no lea la llave ante un reinicio persist-key # Le dice que no reinicie la interfaz de red persist-tun # Certificado Raz (el que copiamos) ca ca.crt # Certificado cliente (el que copiamos) cert cliente1.crt # Llave cliente (el que copiamos) key cliente1.key # Modo de compresin comp-lzo #Cantidad de informacin para guardar en el log (de 0 a 11) verb 4 #Archivo log status /var/log/vpn.log

Las configuraciones ms interesantes son: client: indica que algunas configuraciones las tomar del servidor. nobind: que no acte como servidor, que solamente vaya como cliente. Recordar que cert y key deben ser nicas para cada cliente

3. Activando la red VPN (1)


Iniciamos el servicio openvpn en el lado del servidor
# cd /etc/openvpn/ # openvpn server.conf &

Fig. 10.

(2)

Revisemos la nueva direccin IP de la tarjeta tun0 del servidor VPN


# ifconfig tun0

Fig. 11.

(3)

Comprobar la tabla de rutas:

Fig. 12.

(4)

Ahora iniciamos el servicio openvpn en el equipo del cliente VPN


# cd /etc/openvpn/ # openvpn cliente.conf &

Fig. 13.

(5)

Revisemos la nueva direccin IP de la tarjeta tun0 del cliente VPN


# ifconfig tun0

Fig. 14.

(6)

Comprobar la tabla de rutas:

Fig. 15.

(7)

Del lado del equipo cliente realizo un ping a las direcciones IP del servidor VPN
# ping -c3 192.168.1.250 # ping -c3 192.168.3.1

Fig. 16.

4. Accediendo a la red VPN (1) En el servidor VPN activamos el reenvi de paquetes y el registro de paquetes:
# echo 1 > /proc/sys/net/ipv4/ip_forward # iptables -A FORWARD -j LOG

(2) Iniciamos el Servidor Web en el equipo 192.168.2.2


# /etc/init.d/httpd start

(3) En la barra de direcciones del navegador web en el equipo cliente ingreso la IP del
Servidor Web de la red interna.

Fig. 17

(4) En el servidor VPN podemos monitorear

Fig. 18.

Potrebbero piacerti anche