Está en la página 1de 3

Instalacin Primero definamos algunos puntos: Servidor: es el equipo que aceptar las conexiones de los clientes a travs de la VPN.

En mi ejemplo usar el IP x.y.z.w (reemplaza por el IP pblico de tu servidor) y tiene como nombre servo. Cliente: el equipo que se conectar al servidor a travs de la VPN. Lo llamaremos cliento. Red privada: la red que definiremos en nuestra VPN, usaremos 10.8.0.0 por lo que tendremos IP's como 10.8.0.1, 10.8.0.2, etc. Todos los comandos deben ser ejecutados por root o travs de sudo. Los comandos que debes escribir estn en negrita. Para comentar una lnea en openvpn.conf usa # al inicio de la lnea. Lo primero es instalar OpenVPN:

sudo apt-get install openvpn


OpenVPN se instala tanto en el cliente como en el servidor, el archivo de configuracin que usaremos al iniciar OpenVPN ms adelante definir el rol de cada equipo. Ahora comenta todas las lneas en /etc/default/openvpn y aade:

AUTOSTART="openvpn"
Esto le dice a OpenVPN cul archivo de configuracin predeterminado utilizar al iniciar el servicio. Los archivos de configuracin se guardan en /etc/openvpn y usan la extensin .conf por lo que la instruccin de arriba le dice a OpenVPN que use /etc/openvpn/openvpn.conf, es un archivo que an no existe y que crearemos en un momento. Ahora el servicio OpenVPN puede ser iniciado, detenido o reiniciado en la forma usual, veamos: Iniciar OpenVPN:

/etc/init.d/openvpn start
Detener OpenVPN:

/etc/init.d/openvpn stop
Reiniciar OpenVPN:

/etc/init.d/openvpn restart
Cada vez que se cambian parmetros en /etc/openvpn/openvpn.conf se debe reiniciar OpenVPN. Crear claves y certificados Pero antes de continuar crearemos los certificados y claves de seguridad. Todo esto se hace en el servidor como root. Ejecuta:

cd /etc/openvpn/
Y ahora copia el directorio easy-rsa a /etc/openvpn:

cp -r /usr/share/doc/openvpn/examples/easy-rsa/ .
Recuerda que seguimos en el directorio /etc/openvpn. Ahora editar el archivo vars con nuestro editor favorito (reemplaza vi con el que t prefieras):

vi easy-rsa/vars
Comenta esta lnea:

#export D=`pwd`
Aade esta:

export D=/etc/openvpn/easy-rsa
Y modifica los siguientes parmetros:

export export export export export

KEY_COUNTRY=PE KEY_PROVINCE=LI KEY_CITY=Lima KEY_ORG="Nombre-OpenVPN" KEY_EMAIL="tu-nombre@example.com"

Graba y cierra el archivo. Ahora ejecuta:

../vars

Importante, eso es un punto, un espacio y luego otro punto y seguido por /vars. Muchos lo olvidan. A continuacin:

./clean-all
El siguiente comando crea la autoridad de certificados (CA) usando los parmetros arriba definidos, solo debers aadir Common Name, yo us OpenVPN-CA. Este paso usa OpenSSL y si no lo tenas en tu servidor debers instalarlo primero con:

sudo apt-get install openssl


Ahora s:

./build-ca
Ahora creamos las claves, primero para el servidor:

./build-key-server server
Esta parte es muy importante. Cuando build-key-server te solicite Common Name escribe server, el mismo parmetro que le diste al comando. Hay dos preguntas ms: Sign the certificate? [y/n] y 1 out of 1 certificate requests certified, commit? [y/n], responde afirmativamente en ambos casos. Y ahora la clave para el cliente:

./build-key client1
Recuerda usar client1 como Common Name, al igual que el parmetro que usaste para build-key. Si vas a tener ms clientes puedes repetir este ltimo paso para client2, client3, etc. Ahora genera parmetros Diffie Hellman:

./build-dh
Ahora debes tener un nuevo directorio con claves y certificados en tu servidor: /etc/openvpn/easy-rsa/keys. Para configurar tu primer cliente copia los siguientes archivos de servidor a cliente:

ca.crt client1.crt client1.key

Lo ideal es usar un canal seguro, yo prefiero scp con autenticacin RSA (tema para otro artculo), ejecutando algo como esto en el cliente:

scp alexis@servo:ca.crt . scp alexis@servo:client1.crt . scp alexis@servo:client1.key .


Estos comandos asumen que copiaste los archivos al directorio personal del usuario alexis en el servidor y les asignaste permisos de lectura. Luego debes moverlos a /etc/openvpn en el cliente. Los archivos de configuracin: openvpn.conf An en el cliente crea un archivo llamado openvpn.conf en /etc/openvpn y escribe lo siguiente en l:

dev tun client proto tcp remote x.y.z.w 1194 resolv-retry infinite nobind user nobody group nogroup # Try to preserve some state across restarts. persist-key persist-tun ca ca.crt cert client1.crt key client1.key comp-lzo # Set log file verbosity. verb 3 No olvides reemplazar x.y.z.w por el IP pblico de tu servidor.

Ahora en el servidor crea un archivo openvpn.conf en /etc/openvpn y escribe lo siguiente en l: dev tun proto tcp port 1194 ca /etc/openvpn/easy-rsa/keys/ca.crt cert /etc/openvpn/easy-rsa/keys/server.crt key /etc/openvpn/easy-rsa/keys/server.key dh /etc/openvpn/easy-rsa/keys/dh1024.pem user nobody group nogroup server 10.8.0.0 255.255.255.0 persist-key persist-tun #status openvpn-status.log #verb 3 client-to-client push "redirect-gateway def1" #log-append /var/log/openvpn comp-lzo
En mi primeras pruebas tuve conexiones muy lentas y me ayud desactivar la compresin en cliente y servidor comentando esta lnea:

#comp-lzo
Y finalmente configura IP forwarding e iptables para NAT en el servidor:

echo 1 > /proc/sys/net/ipv4/ip_forward sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Puedes verificar que la regla fue escrita correctamente con un listado:

sudo iptables -L -t nat


Si tienes un Firewall debers desactivarlo para probar y luego crear reglas que permitan que el trfico de tu VPN pase. Si quieres remover todas las reglas si cometiste un error con:

sudo iptables -F -t nat


Reiniciar OpenVPN en ambos equipos, cliente y servidor, y deberas estar listo. Si ahora ejecutas ifconfig y route -n deberas ver una nueva interfaz, tun0, en cliente y servidor. Puedes confirmar que hay conexon haciendo ping entre ambos usando los IP de las interfaces tun0, por ejemplo:

ping 10.8.0.1
Ahora tu cliente est conectado al servidor a travs de OpenVPN y puedes navegar en forma segura a travs del IP del servidor (y usar Hulu y Pandora).

También podría gustarte