Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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:
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:
../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:
./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:
Lo ideal es usar un canal seguro, yo prefiero scp con autenticacin RSA (tema para otro artculo), ejecutando algo como esto en el cliente:
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:
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).