2013/12/13

OpenVPN

Introducion:

Configurar el servicio de OpenVPN en nuestro equipo, para saltar los bloqueos geograficos de algunos servicios en Interntet (Netflix, Google Play Store), seguridad o por simple curiosidad de ver como funciona una VPN.

Existen varias opciones para VPN, puede ver una comparacion muy buena donde se ve claramente que OpenVPN es la mejor PPTP vs L2TP vs OpenVPN.

24/04/2014: Se actualizan los archivos de configuracion debido a un comunicado oficial de OpenVPN referente al "Heartbleed bug" https://medium.com/p/686bb0851387, tambien ya hay dos archivos para usar indistintamente.

Requerimientos:

* Comprar el servicio de VPN en blackVPN (que funciona con tun)
* Un equipo con algun Sistema Operativo compatible (Android, FreeBSD, GNU/Linux, OS X y Windows)
* Leer este manual

Manuales consultados:

http://openvpn.net/index.php/open-source/documentation/manuals.html
https://www.blackvpn.com/howto/save-username-and-password-in-openvpn
http://code.google.com/p/tunnelblick/wiki/UsingTunnelblick

El proceso:

Comprar el servicio de VPN de blackVPN, un magnifico proveedor que encontre, con un muy buen precio, sin limites en el trafico (muy importante si queremos ver contenidos multimedia de por ejemplo Netflix) y que funciona sin tener que hacer ajustes complicados (por que en Android usar tap es un problema y la mayoria de servicios de VPN requieren tab).

Entrar a blackVPN y comprar el servicio llamado 'SINGLE SERVER', que consiste en poder conectar solo a uno de los servidores y que es suficiente, en nuestro ejemplo usare el de USA (US), yo compre '1 Mont 5 USA USA TV/audio'.

Al terminar de hacer la compra, recibiremos los datos de usuario y clave, guardarlos bien ya que son los datos que pondremos en auth.txt.

Descargar los archivos de configuracion de VPN de blackVPN
Entramos a *SUPPORT/HELP y Downloads.

En este lugar buscamos el archivo en la seccion 'Separate country files for OpenVPN by ARNE SCHWABE on Android 4.x' llamado US – USA:     blackvpn_usa.ovpn, lo descargamos en nuestro equipo. 

En mi caso le hice algunos ajustes, basicamente actualizacion de algunas lineas que daban 'Warning' o que estaban 'Deprecated' y le agregue la linea a un archivo llamado 'auth.txt' donde meto el login y password.

Ejemplo archivo .ovpn para Android con la autenticacion mediante el archivo 'auth.txt':

#------------------------------contenido archivo .ovpn inicio------------------------------

# Activar solo una de las siguientes lineas!
#auth-user-pass
#auth-user-pass auth.txt
auth-user-pass /sdcard/BlackVPN/auth.txt
#auth-user-pass "C:\\Archivos de programa\\OpenVPN\\config\\auth.txt"
#auth-user-pass "C:\\Program Files\\OpenVPN\\config\\auth.txt"
#auth-user-pass "C:\\Archivos de programa (x86)\\OpenVPN\\config\\auth.txt"
#auth-user-pass "C:\\Program Files (x86)\\OpenVPN\\config\\auth.txt"
remote westcoast.vpn.blackvpn.com 443 udp
client
dev tun
fast-io
persist-key
persist-tun
nobind
pull
comp-lzo
tls-client
key-method 2
#tls-remote usa
ns-cert-type server
<ca>
-----BEGIN CERTIFICATE-----
                                            <- Aqui falta el contenido CERTIFICATE
-----END CERTIFICATE-----
</ca>
key-direction 1
<tls-auth>
-----BEGIN OpenVPN Static key V1-----
                                            <- Aqui falta el contenido KEY
-----END OpenVPN Static key V1-----
</tls-auth>
cipher AES-256-CBC
#txqueuelen 486
sndbuf size 1655368
rcvbuf size 1655368
auth SHA512
hand-window 37
mssfix 1400
verb 3
mute 10

# Nota:
# Si usa Windows para crear el archivo auth.txt, use el WORDPAD en lugar del NOTEPAD!

#------------------------------contenido archivo .ovpn fin------------------------------

Descargue el archivo completo (que incluye el contenido CERTIFICATE y KEY, que no puse en el .ovpn de ejemplo) de Google Drive

Archivo 'auth.txt':
Este archivo contiene en la primera linea el usuario y en la segunda la clave (he notado que si se crea en Windows usando el NOTEPAD queda malo, si usa Windows use el WORDPAD), ejemplo

b1234567 <- primera linea el usuario
xYz1234   <- segunda linea la clave

Equipos con Android, usando un explorador de archivos como 'ES File Explorer File Manager' de ESS APP Group, creamos la carpeta BlackVPN en /sdcard y metemos el archivo blackvpn_usa.ovpn y auth.txt en ese lugar, la ruta al archivo auth.txt se especifica asi:

#auth-user-pass
auth-user-pass /sdcard/BlackVPN/auth.txt

Equipos con sistemas tipo Unix, como FreeBSD o GNU/Linux, la ruta al archivo auth.txt se especifica asi:

#auth-user-pass
auth-user-pass auth.txt

Meta ambos archivos blackvpn_usa.ovpn y auth.txt en la carpeta del programa openvpn, por ejemplo en el caso de FreeBSD la ruta es /usr/local/etc/openvpn/

En OS X actualmente el cliente Tunnelblick 3.3 (build 3518) no puede leer usuario y clave desde un archivo auth.txt

Equipos con Windows (ajuste la ruta segun el idioma y si es a 64-bit o 32-bit), la ruta al archivo auth.txt se especifica asi:

#auth-user-pass
auth-user-pass "C:\\Program Files (x86)\\OpenVPN\\config\\auth.txt"

Por favor mire que tenemos que usar " " y \\ para la ruta en Windows!
Tambien hay que activar la linea

dev-node openvpn

Descargar el programa VPN para nuestro equipo segun el Sistema Operativo que tenga

- Android (ver instruccion)
  Use 'OpenVPN for Android' de Arne Schwabe mediante la Google Play Store

- FreeBSD (ver instruccion)
  Use 'OpenVPN' mediante el port /usr/ports/security/openvpn

- GNU/Linux (ver instruccion)
  Use 'OpenVPN' mediante el sistema de paquetes que tenga su distribucion (RPM, APT, YasT)

- Mac OS X (ver instruccion)
  Use 'Tunnelblick'

- Windows (ver instruccion)
  Use 'OpenVPN'

Instrucciones:
  • Instruccion Android
Para configurar
Abrir OpenVPN for Android
Usando el icono de la carpeta, entre a sdcard / BlackVPN
Toque el archivo blackvpn_usa.ovpn
Select
Click en el diskette para guardar
Para conectar
Abrir OpenVPN for Android
En la pestaƱa Profile seleccione blackvpn_USA
* I trust this application.
OK
  • Instruccion FreeBSD
Para configurar
# portsnap update
# make -C /usr/ports/security/openvpn config
   [x] PW_SAVE   Interactive passwords may be read from a file
# cd /usr/ports/security/openvpn && make install clean
# echo '# OpenVPN' >> /etc/rc.conf
# echo 'openvpn_enable="YES"' >> /etc/rc.conf
# echo 'openvpn_if="tun"' >> /etc/rc.conf
# echo 'openvpn_flags=""' >> /etc/rc.conf
# echo 'openvpn_configfile="/usr/local/etc/openvpn/blackvpn_usa.ovpn"' >> /etc/rc.conf
# echo 'openvpn_dir="/usr/local/etc/openvpn"' >> /etc/rc.conf
# kldload if_tap
# echo '# OpenVPN' >> /boot/loader.conf
# echo 'if_tap_load="YES"' >> /boot/loader.conf
# touch /var/log/openvpn-status.log
# chmod 0777 /var/log/openvpn-status.log
# mkdir /usr/local/etc/openvpn
# edit /usr/local/etc/openvpn/blackvpn_usa.ovpn
   pegamos el contenido del archivo .ovpn, salimos del editor y guardamos (Esc a a)
# echo 'status /var/log/openvpn-status.log' >> /usr/local/etc/openvpn/blackvpn_usa.ovpn
# touch /usr/local/etc/openvpn/auth.txt
# echo 'b1234567' >> /usr/local/etc/openvpn/auth.txt
# echo 'xYz1234' >> /usr/local/etc/openvpn/auth.txt
Para depurar errores usar
# tail -f /var/log/messages
# tail -f /var/log/openvpn-status.log
Para conectar
# /usr/local/etc/rc.d/openvpn start|stop
  • Instruccion GNU/Linux
PENDIENTE
  • Instruccion OS X
Para configurar
Finder / Applications / Utilities / Terminal
$ mkdir -p ~/Library/Application\ Support/Tunnelblick/Configurations/blackvpn.tblk/Contents/Resources/
$ touch ~/Library/Application\ Support/Tunnelblick/Configurations/blackvpn.tblk/Contents/Resources/config.ovpn
$ vi ~/Library/Application\ Support/Tunnelblick/Configurations/blackvpn.tblk/Contents/Resources/config.ovpn
  tecla i para poder editar
  pegar el contenido del archivo .ovpn
  salir del editor vi (Esc :wq)
Para conectar
Finder / Application / Tunnelblick
esto pone un icono en la parte superior derecha (junto a la hora), dar click
Connect blackvpn

  • Instruccion Windows
Para configurar
Al instalar OpenVPN en Windows, busque en conexiones de red una conexion nueva llamada 'Conexion de area local N' que debemos renombrar a 'openvpn', para identificarla mire la que en sus propiedades dice Conectar usando: 'TAP-Windows Adapter V9' 
Meta ambos archivos blackvpn_usa.ovpn y auth.txt en la carpeta del programa openvpn, por ejemplo en el caso de Windows 7 a 64-bit la ruta es C:\Program Files (x86)\OpenVPN\config\
En el archivo blackvpn_usa.ovpn verifique la ruta al archivo auth.txt
auth-user-pass "C:\\Program Files (x86)\\OpenVPN\\config\\auth.txt"
Para conectar
Inicio / Todos los programas / OpenVPN / OpenVPN GUI
esto pone un icono en la parte inferior derecha (junto a la hora), dar click derecho en el y conectar