Home Programación Túneles VPN con OpenVPN

Por David Castañón, @the_preack

Las conexiones VPN son un medio para enlazar dos puntos remotos entre sí, como principal característica se tiene que el flujo de datos va de forma cifrada. Existen diversos medios para crear tuneles VPN, software privativo bastante costosos, hardware especializado, etc.

En este caso vamos a hablar sobre OpenVPN, un Software Open Source bastante potente y con muchas funcionalidades.

Aunque OpenVPN esta disponible para GNU/Linux y Windows, nos enfocaremos al primero, todo esto en un Centos 6.3 como servidor. Open VPN no está disponible en los repositorios por default de Centos, por lo que se debe de instalar los repositorios de rpmforge:

Cómo root se ejecuta:

rpm -Uvh http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

yum install openvpn

Esto instalará OpenVPN con sus dependencias necesarias.

Nos cambiamos a la ruta /etc/openvpn

Primero hay que crear un archivo llave, el cual tanto el servidor como el cliente deben de tener y se usa para la autentificación de pares.

Creamos la llave:

/usr/sbin/openvpn –genkey –secret tallerweb_openvpn.key

Una vez que tengamos la llave hay que crear el archivo de configuración del servidor.

vim tallwerweb_openvpn.conf

float

dev tun

proto udp

comp-lzo

port 1194

ifconfig 10.8.0.1 10.8.0.2

route 10.8.0.0/24 255.255.255.0 10.8.0.1

cipher AES-128-CBC

persist-tun

persist-key

log /var/log/openvpn.log

secret tallerweb_openvpn.key

verb 4

mute 10

float: Indica que los clientes se conectarán desde una IP no fija.

dev tun: La interfaz de red que creará OpenVPN.

proto udp: Se utilizarán paquetes tipo UDP

comp-lzo: Tipo de compresión LZO

port 1194: El puerto en el que se establecerá el tunel.

ifconfig 10.8.0.2 10.8.0.2: La asignación de IP’s, la primera corresponde al servidor y la segunda al cliente.

route 10.8.0.0/24 255.255.255.0 10.8.0.1: Estableceremos la ruta para las direcciones del segmento 10.8.0.0 (tomará como salida la interfaz con la dirección 10.8.0.1).

cipher AES-128-CBC: El tipo de cifrado, AES de 128 bits

persist-tun: La interfaz será persistente.

persist-key: La llave será persistente.

log /var/log/openvpn.log: La ruta y el archivo donde se guardarán los logs.

secret tallerweb_openvpn.key: La ruta y nombre de la llave, si están al mismo nivel se omite ruta.

verb 4: Nivel de información que se grabará en el archivo log.

mute 10: Graba a lo mas 10 mensajes de la misma categoría en el log.

Con esto podemos iniciar el servicio.

service openvpn start

Nos debe de salir [ OK ]

Esto quiere decir que el servidor está arriba y esperando conexiones de clientes. Podemos verificar que la interfaz tun está arriba.

La instalación del lado del cliente es exactamente igual, el archivo llave debe ser el mismo que se creó anteriormente lo puedes descargar de tu servidor con un SCP.

Configurando del lado del cliente:

remote xxx.xxx.xxx.xxx

port 1194

dev tun

comp-lzo

ifconfig 10.8.0.2 10.8.0.1

route 10.8.0.0/24 255.255.255.0 10.8.0.2

secret eltallerweb_openvpn.key

cipher AES-128-CBC

persist-tun

persist-key

verb 4

mute 10

log /var/log/openvpn.log

Exactamente lo mismo, sólo cambia lo siguiente:

remote xxx.xxx.xxx.xxx: la direccion ip del servidor, donde xxx.xxx.xxx.xxx es la ip destino

ifconfig 10.8.0.2 10.8.0.1: las IP’s están en orden inverso con respecto a la configuración del servidor, ya que el cliente tomará la IP 10.8.0.2 y el remoto es 10.8.0.1

Iniciamos el servicio:

service openvpn start

y comprobamos que todo funcione:

Como se puede observar el servidor nos responde el ping.

Generalidades:

  • Debes de abrir el puerto que vayas a usar en iptables.
  • Si deseas que el servicio arranque al inicio del sistema deberás ejecutar chkconfig openvpn on.
  • Estos túneles te permiten realizar conexiones lan to lan o lan to road warrior.
  • OpenVPN tiene configuraciones más avanzadas, se pueden encontrar en la red sin ningún problema.
  • Ésta configuración te permite opciones avanzadas, como: ruteo, forwarding, dns, nat, etc.

Enlaces:

http://openvpn.net/

http://www.alcancelibre.org/

http://www.pello.info/filez/firewall/iptables.html

(Gracias por el conocimiento que otros me han aportado)

Similar articles

Leave a Reply