Configurando el Router WRT54GL con OpenVPN
Un lector del blog me ha pedido encarecidamente que pusiera los pasos para configurar OpenVPN en el router WRT54GL.
A continuación voy a poner una guía para hacerlo funcionar paso a paso. Para este tutorial me he basado el que ya existe en:
Lo bueno es que me podéis preguntar en castellano :-)
Primero un poco de teoría:
OpenVPN nos permite crear una conexión VPN usando certificados, esto es, un servidor OpenVPN tiene el certificado raíz, y tenemos que emitir una serie de certificados clientes que nos autoricen la conexión a la VPN. La gran ventaja es que todo el trafico viajará encriptado, haciendo que la conexión a nuestra casa sea realmente segura. Una de las cosas que más utilizo cuando viajo y quiero mirar cosas de mi banco online en una red abierta, es abrir mi tunel VPN y entonces se que nadie va a poder sacar nada de mi tráfico.
Por tanto los pasos a dar para tener configurado OpenVPN son:
1.- Instalar un Firmware al router que soporte OpenVPN, podéis elegir DDRT o Tomato VPN, este tutorial es para Tomato, pero hacerlo con DDRT es muy parecido:
Tomato VPN:
http://tomatovpn.keithmoyer.com/
2.- Para hacerlo funcionar tenemos que crear los certificados de los clientes y del servidor, para ello hay que bajarse el software desde OpenVPN para tener las herramientas que nos permitan crearlos.
Seleccionar el que corresponda a vuestra versión del PC.
3.- Instalarlo en el pc, si no vais a usar el cliente en el pc, podéis deshabilitar el "OpenVPN Service"
4.- Una vez instalado el software de OpenVPN, la herramienta que vamos a usar es easy-rsa.
4.- Una vez instalado el software de OpenVPN, la herramienta que vamos a usar es easy-rsa.
Abriros una linea de comando, como usuario administrador e ir a la siguiente dirección:
c:\Program Files (x86)\OpenVPN\easy-rsa
para windows 64 bit en inglés, en el caso de 32 bit ir a:
para windows 64 bit en inglés, en el caso de 32 bit ir a:
c:\program fles\OpenVPN\easy-rsa
Con esta utilidad crearemos tanto el certificado del servidor como los certificados de los clientes para conectarnos a la VPN.
5.- Ejecutamos init-config.bat
5.- Se inicializará el fichero de configuración VARS.BAT y lo tenemos que editar.
Primero, comprobar que el path al directorio es el correcto, y luego añadir la información de los campos al final.
Podemos poner los valores que queramos, ya que estos servirán para crear los cetificados
6.- Una vez editado el fichero lo ejecutamos(vars.bat), no saldrá nada por pantalla, pero habrá cargado las variables necesarias
7.-Ejecutamos clean-all.bat para asegurarnos que no hay basura de intentos anteriores
8.-Ahora creamos la autoridad certificadora (CA) con el siguiente comando:
build-ca.bat
Nos pedira que confirmemos los datos, como los hemos metido en el fichero vars, simplemente tenemos que dar a enter.
9.-Una vez creada la CA tenemos que crear el certificado del servidor, que es el que usaremos en el router.
Para ello ejecutar build-key-server.bat server
Nos pedirá que verifiquemos los datos, y además nos pedirá dos nuevos atributos, rellenarlos y creará el certificado para el router.
10.- Ahora toca crear los certificados cliente. Estos certificados son los que usaremos en los PCs o dispositivos que quieran conectarse a la VPN. Normalmente se crea uno por dispositivo, o puedes crear uno únicamente y usarlo en todos los dispositivos.
Para ello ejecutar: build-key.bat cliente1
Podemos crear tantas como queramos, en este caso se creará un certificado llamado "cliente1" pero puedes llamarlo como quieras. Eso si, no puedes hacer dos certificados iguales.
11.- Ahora queda crear el fichero diff-hellman, para ello ejecutar build-dh.bat
12.-Ahora ya tienes todos los ficheros, así que tienes que poner la inforamción en el router, para ello ve al apartado "VPN Tunneling"
Verás distintas opciones, las mas importantes son
- Start with WAN: Si quieres que cuando el router se reinicia, se active el servidor VPN cuando consiga conectar a internet
- Interface type: Hay dos opciones:
- TUN: Que el tunnel se estableza a una IP virtual en este caso en la red 10.8.0.0, de esta forma tienes acceso a toda la subred de tu casa
- TAP(NO RECOMENDADA): Que te de una IP de la misma subred, podrás ver el tráfico de broadcast, pero no podrás acceder directamente a las IPs de tu casa.
- Protocol: TCP o UDP, el recomendado es UDP
- Puerto: Por defecto es 1194, ya veremos más adelante que otros valores usar.
El resto dejarlo por defecto.
13.- Hay que configurar el apartado de "Advanced". Los puntos a tener en cuenta son:
- Push Lan to clients: Para configurar el interfaz de red cuando te conectas, dejarlo habilitado por defecto.
- Direct clients to redirect Internet Traffic: Esta es muy importante, si queremos redirecciónar TODO el tráfico por el tunnel activarlo, esto es muy util si nos vamos a conectar a un punto de acceso inseguro y queremos encryptar todo el trafico para que nuestra navegación sea segura.
- Respond to DNS: Para tunelar todas las peticiones DNS.
La moraleja es, si queremos redirigir todo el tráfico de o no cambiaremos estas opciones.
14.- Por último configuramos la pestaña de "Keys" usando los certificados que hemos generado previamente:
Ya podemos arrancar el servidor VPN, una vez arrancado, podemos usar la pestaña "status" para ver quien está conectado a la vpn y como funciona todo.
Ya tenemos el router configurado, ahora tenemos que configurar el cliente.
Para un PC, hay que descargar el cliente de openVPN e instalarlo.
Para Android podeis bajaros FeatVPN de la Play store para dispositivos no rooteados, y para rooteados hay un monton de apps gratuitas en la store.
Ok, ya tenemos el cliente instalado, ahora hay que crear el fichero de configuación para poder conectarse a la VPN.
Para ello:
1.- Ir al directorio de instalación del cliente OpenVPN, en este ejemplo está en
C:\Program Files (x86)\OpenVPN
2.- Ir a la carpeta Config.
3.- En la caperta config tenéis que copiar el certificado que generásteis para el cliente (Client1), os tenéis que copiar el fichero Client1.crt y Client1.key. Y además tenéis que copiar el fichero crt del servidor, este ejemplo server.crt
4.- Ahora tenéis que crear un fichero de configuración, encontraréis una serie de ejemplos, copiaros uno y renombrarlo a Casa.ovpn.
5.-Editar el fichero, principalmente los apartados:
- dev: este apartado tiene que coincidir con el tipo de interfaz del servidor (tun o tap)
- proto: este tiene que coincidir con el protocolo (UDP o TCP)
- remote: este tiene que ser la ip del router (en el caso que sea estática) o el hostname dinámico con el numero de puerto configurado (por defecto 1194)
- ca: tiene que ser el nombre del certificado del servidor (server.crt)
- cert: certificado del cliente (client1.crt)
- key: client1.key
Os paso un fichero ejemplo para esta configuación:
client
dev tun
# Windows needs the TAP-Win32 adapter name
# from the Network Connections panel
# if you have more than one. On XP SP2,
# you may need to disable the firewall
# for the TAP adapter.
;dev-node MyTap
# Are we connecting to a TCP or
# UDP server? Use the same setting as
# on the server.
;proto tcp
proto udp
# The hostname/IP and port of the server.
# You can have multiple remote entries
# to load balance between the servers.
remote my-server-2 1194
# Choose a random host from the remote
# list for load-balancing. Otherwise
# try hosts in the order specified.
;remote-random
# Keep trying indefinitely to resolve the
# host name of the OpenVPN server. Very useful
# on machines which are not permanently connected
# to the internet such as laptops.
resolv-retry infinite
# Most clients don't need to bind to
# a specific local port number.
nobind
# Downgrade privileges after initialization (non-Windows only)
;user nobody
;group nobody
# Try to preserve some state across restarts.
persist-key
persist-tun
# If you are connecting through an
# HTTP proxy to reach the actual OpenVPN
# server, put the proxy server/IP and
# port number here. See the man page
# if your proxy server requires
# authentication.
;http-proxy-retry # retry on connection failures
;http-proxy [proxy server] [proxy port #]
;dhcp-option DNS 192.168.2.1
# Wireless networks often produce a lot
# of duplicate packets. Set this flag
# to silence duplicate packet warnings.
;mute-replay-warnings
# SSL/TLS parms.
# See the server config file for more
# description. It's best to use
# a separate .crt/.key file pair
# for each client. A single ca
# file can be used for all clients.
ca server.crt
cert client1.crt
key client1.key
# Verify server certificate by checking
# that the certicate has the nsCertType
# field set to "server". This is an
# important precaution to protect against
# a potential attack discussed here:
# http://openvpn.net/howto.html#mitm
#
# To use this feature, you will need to generate
# your server certificates with the nsCertType
# field set to "server". The build-key-server
# script in the easy-rsa folder will do this.
ns-cert-type server
# If a tls-auth key is used on the server
# then every client must also have the key.
;tls-auth ta.key 1
# Select a cryptographic cipher.
# If the cipher option is used on the server
# then you must also specify it here.
;cipher x
# Enable compression on the VPN link.
# Don't enable this unless it is also
# enabled in the server config file.
comp-lzo
# Set log file verbosity.
verb 3
# Silence repeating messages
;mute 20
float
route-method exe
route-delay 5
ip-win32 netsh
Con esto ya podrias conectaros a vuesta vpn. Para ello lanzar el OpenVPN GUI y os aparecerá un icono en la zona de notificaciones, si hacéis boton derecho os aparecerá la lista de vpn disponibles y debería haber una que se llamara "Casa"
En los siguientes post os comentaré como configurar el OpenVPN para conectaros desde el trabajo, usando un proxy o desde redes de invitados sin conexión directa a internet.
Saludos!
Hola amigo intresante tu informacion una pregunta soi de Mexico y tengo android y tengo el Openvpn settings y el Openvpn installer ya tengo todo pero el problema es que el openvpn funcionaba con el puerto 53 ya no porque lo cerraron para internet gratis mi pregunta es aca esta funcionando un proxy que es favicon.ico.concealme.com donde lo puedo poner en Openvpn ? porque e buscado como y no encuentro tengo una carpeta que estan las configuraciones de Openvpn viene kbvpn-anycpu.deb, Kebrum.UDP.log, Kebrum.UDP.ovpn, pass.txt y una carpeta llamada ssl y adentro hay unos archivos que son los siguientes: ca.crt, client.crt, client.key y ta.key como puedo poner el proxy que te mencione?? sabes como hermano?? ese proxy esta funcionando con Opera Mini Handler pero como lei todo lo que publicaste y dijiste que se le puede agregar un proxy pense en que podria agregarlo pero tu diste las configuraciones para pc no se si se podra para android espero y me respondas a y ya me incribi en la pagina de Kebrum para que funcione el Openvpn ya hice todo ya pegue la contraseña y el usuario en pass.txt y el modulo para que funcione ya esta cargado por medio de Openvpn que es el Tun.ko estare al pendiente muy valiosa tu informacion saludos !
ResponderEliminarEste comentario ha sido eliminado por el autor.
EliminarHola Marco,
Eliminartienes que editar el fichero con la configuracion del tunnel, en tu caso Kebrum.UDP.ovpn.
En ese fichero tienes uqe tener una sección para el proxy, añade la siguiente linea:
http-proxy [PROXY] [PUERTOPROXY] [FICHERO TXT CON CREDENCIALES PROXY]
Por ejemplo:
http-proxy proxy1.com 8080 crednciales.txt
El fichero de credenciales tiene que ser algo así:
myusuario
mypassword
tiene que estar el fichero de credenciales en el mismo directorio que el de configuración (Kebrum.UDP.ovpn)
Saludos!