Tutoriales Varios
Como montar una VPN con openvpn
En muchas ocasiones necesitamos utilizar conexiones más seguras de las que el propio protocolo que vamos a usar nos facilita. (Por ejemplo, para una red inalámbrica).
En este Artículo se describe brevemente como montar una VPN con openvpn en 2 minutos.
Son muchas las veces que nos encontramos en lugares de «riesgo» (una red pública o inalámbrica) y necesitamos transmitir una serie de datos, que por unos motivos o por otros pueden ser sniffeados por alguien.
Es recomendable utilizar siempre protocolos ya encriptados, ssh, pop3s, imaps, https … pero hay ocasiones en las que no podemos prescindir de ellos y lo que queremos es dotarles de una mayor privacidad
Con openvpn vamos a poder tunelizar y encriptar todas las conexiones de una sola tirada, e incluso vamos a poder comprimilas, lo que puede aumentar el rendimiento de una red. (y aumentar también el uso de CPU de los nodos, claro)
VPN significa Virtual Private Network y como ya he dicho antes sirve para crear una conexión independiente punto a punto y poderla cifrarla.
Para instalar openvpn podemos bajarnos los sources y compilarlos de aquí o podemos buscar en el gestor de paquetes de nuestra distribucion … en debian # apt-get install openvpn.
Lo primero que tenemos que hacer es generar la clave que vamos a utilizar para la VPN, para ello:
# openvpn –genkey –secret clave.key
Ahora tenemos que copiar esta clave a los nodos que van a formar la VPN, sería interesante pasarla por scp o algún otro protocolo que facilite cifrado … no sería muy lógico pasarla por ftp.
# scp clave.key root@ip_segundo_nodo:/etc/vpn/clave.key
Es nesario recompilar el kernel habilitando soporte para:
Universal TUN/TAP device driver support
en Device Drivers -> Networking support.
Procedemos a cargar el módulo:
modprobe tun
Comprobamos que tenemos /dev/net/tun, si no existe lo creamos con:
# mknod /dev/net/tun c 10 200
Llegamos a lo mas importante, configurar el tunel, para ello explicaré cual es mi configuración de red, y pondré unos ejemplos, luego cada uno que lo adapte a sus requerimientos …
Como dije anteriormente, yo utilizo el tunel entre mi portatil y el servidor que tengo haciendo las veces de router dentro de la red wireless.
En la red wireless tengo el rango de ips 10.0.0.0/24 y para el tunel utilizaré el rango 10.0.1.0/24.
La ip del portatil es: 10.0.0.1 (si usas dhcp asegurate de configuralo adecuadamente para que siempre asigne la misma ip)
La ip del servidor es: 10.0.0.254
Finalmente solo nos queda lanzar openvpn de la siguiente forma:
*En el primer nodo (servidor):
# openvpn –remote 10.0.0.1 –dev tun0 –ifconfig 10.0.1.254 10.0.1.1 –secret /etc/openvpn/clave.key –daemon –comp-lzo
Donde 10.0.0.1 es la ip del segundo nodo (el portatil este caso), 10.0.1.254 es la ip del primer nodo dentro de la VPN (el servidor en mi ejemplo) y 10.0.1.1 es la ip del segundo nodo dentro de la VPN (el portatil).
Con –daemon lo lanzamos en segundo plano y con –comp-lzo habilitamos el uso de compresión.
*En el segundo nodo (portatil):
# openvpn –remote 10.0.0.254 –dev tun0 –ifconfig 10.0.1.1 10.0.1.254 –secret /etc/openvpn/clave.key –daemon –comp-lzo
Y ya tendremos una bonita VPN, ahora todo el tráfico que vaya encaminado hacia 10.0.1.254 pasará por dentro de la VPN y si algún sniffer quiere hacer la gracia, solo verá muchos y bonitos paquetes UDP.
En mi caso, como usaba el servidor (10.0.0.254) como router tenia en el portatil como gateway 10.0.0.254, ahora quiero que utilice 10.0.1.254 que es más seguro, asi que:
# route del default gw 10.0.0.254
y
# route add default gw 10.0.1.254
Y con esto ya podemos preocuparnos algo menos de la privacidad de nuestras comunicaciones
Por Javier Gonzalez
(http://www.javier-gonzalez.com)