Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?
25-03-2017, 18:28 (S?bado)
Inicio Ayuda Reglas Buscar Ingresar Registrarse
Noticias:
Liberada wifislax64-1.0 version final para descargar



+  Seguridad Wireless - Wifi
|-+  Equipos y materiales
| |-+  Puntos de acceso, routers, switchs y bridges
| | |-+  Openwrt (Moderadores: jar229, Noltari, Pteridium, Tki2000)
| | | |-+  [Mini guía] fácil para conectar openwrt a un servidor vpn externo.
0 Usuarios y 1 Visitante están viendo este tema. « anterior próximo »
Páginas: [1] Ir Abajo Imprimir
Autor Tema: [Mini guía] fácil para conectar openwrt a un servidor vpn externo.  (Leído 179 veces)
peperfus
****
Desconectado Desconectado

Mensajes: 78


Ver Perfil WWW
« : 21-03-2017, 12:22 (Martes) »

TUTORIAL de novato a novato  Grin

Objetivo: Conectar nuestro router openwrt en modo cliente a un servidor externo de una empresa de servicios vpn en Internet (normalmente de pago) y conseguir que los cacharros conectados a él naveguen a través de vpn de forma transparente.

Pongo la guía de cómo lo he conseguido; con la configuración manual mínima (usando el archivo de config proporcionado por el servidor). Esta guía usa tanto ssh como luci.

Desde SSH: (O bien desde luci, system, software . . .)
1) Instalar openvpn-openssl:
Código:
opkg update
opkg install openvpn-openssl
2) Solicitar y/o descargar los archivos de autenticación (normalmente creo que son el ca.crt (Autoridad Certificadora), la key y (en su caso), una key nuestra que también nos dará la empresa vpn). Yo en mi caso uso los archivos "ca.crt", "Wdc.key" y "userpass.txt" donde van mi login y password en texto plano; y también el archivo de configuración de conexión, donde están los parámetros de configuración que necesita nuestro cliente openvpn para conectarse a su servidor: por ejemplo: "Spain-tcp.ovpn". Pues bien:
Copiar dichos archivos de autenticación y configuración proporcionados por la empresa del vpn a /etc/openvpn. Esto se puede hacer fácilmente usando por ejemplo winscp desde windows o bien con el comando scp de linux.
3) Modificar el archivo de configuración .ovpn (si es necesario) para pequeños ajustes. Yo por ejemplo, tuve que indicarle el nombre del archivo de user y password. Además, también le puse verb 3 y log /tmp/vpn.log.
Mi archivo .ovpn:
Código:
client
dev tun
proto tcp
remote <servidorvpn> <puerto>
persist-key
persist-tun
ca ca.crt
tls-auth Wdc.key 1
cipher AES-256-CBC
comp-lzo
verb 3
log /tmp/vpn.log
mute 20
route-method exe
route-delay 2
route 0.0.0.0 0.0.0.0
float
auth-user-pass userpass.txt <-- Esto lo añadí. Depende del tipo de autenticación
auth-retry interact
ifconfig-nowarn

Ahora nos vamos a LUCI para configurar el firewall de la vpn. Esto es MUY IMPORTANTE, para evitar ataques desde la vpn. Copio y pego un cacho de otro tuto que me ayudó bastante, aunque está en inglés pero se entiende bien:
4) Go to Network → Interfaces, and click Add new interface…
     Enter the following data:

Name of the new interface: VPN
Protocol of the new interface: Unmanaged
Cover the following interface: Custom Interface: tun0

and click Submit.

Navigate to the Advanced Settings tab. Enable the checkbox for Bring up on boot, and disable it for Use built-in IPv6-management.

Click Save.

Navigate to the Firewall Settings tab.

In the Create / Assign firewall-zone - unspecified -or- create: field, type the zone name – VPN_FW.

Click Save & Apply.

Go to Network → Firewall, and click Edit to the right of VPN_FW.

In the General Settings tab, select the following settings:

Input: reject
Output: accept
Forward: reject
Masquerading – checked
MSS clamping – checked <-- (esto no sé qué es)
Covered networks – checked VPN

In the Inter-Zone Forwarding section, set the checkbox for Allow forward from source zones: lan.

Click Save & Apply.

OJO: Fijarse bien en que el dev de conexión (tun) debe coincidir con el interfaz del firewall. (Creo que tun equivale a tun0). Si el archivo ovpn especifica otro tun (por ejemplo tun3), modificarlo a tun para que use el del firewall, de lo contrario, estaremos desprotegidos. (¿Puede alguien confirmar esto?)

Ahora volvemos al SSH, vamos a hacer unos scripts para conectar, desconectar y ver el estado (log):
5) Todos ellos, ponerlos en el directorio /root/vpn (o donde queráis...).
Script conectar.sh:
Código:
/root/vpn/desconectar.sh
touch  /tmp/vpn.log
openvpn --cd /etc/openvpn  --daemon --config /etc/openvpn/Spain-tcp.ovpn
  <-- (obviamente, sustituir por tu archivo ovpn)
Script desconectar.sh:
Código:
pkill -SIGTERM -f 'openvpn --cd /etc/openvpn --daemon --config /etc/openvpn/Spain-tcp.ovpn' -c
(la opción -c nos dice el número de procesos matados con ese nombre).
Nota: El comando pkill no viene de serie. Hay que instalarlo con opkg install procps-ng-pkill (ssh), o bien desde luci (System --> Software ....)
Script estado.sh:
Código:
if [ -f /tmp/vpn.log ]; then
  cat /tmp/vpn.log
fi

Una vez que tenemos hecho esto, queda probarlo.
Damos permisos de ejecución:
Código:
chmod 740 *.sh
Y ejecutar:
Código:
./conectar.sh
Esperar 10 segundos y comprobar el log:
Código:
./estado.sh

Configuración ahora de un cacharro: Ponerle la ip de la puerta de enlace, en vez del router principal de casa, la del router openwrt. Y la DNS también, al mismo router openwrt que se conecta a vpn, o bien dejarlas estáticas a algún buen servidor dns conocido.
Y con eso ya debería ser suficiente. Por lo menos a mí me funciona así.

Bueno, un saludo y espero que esto le sirva a alguien tanto como me ha servido a mí, o al menos ayude en algo.

PD: Si alguien que entienda más y mejor ve algún fallo, etc.... comentar.

En construcción...
« Última modificación: Hoy a las 00:39 por peperfus » En línea
drvalium
Moderador Global
*
Desconectado Desconectado

Mensajes: 16874


Misántropo


Ver Perfil
« Respuesta #1 : 21-03-2017, 12:23 (Martes) »

hi

Gracias por compartir la solución Wink
En línea
peperfus
****
Desconectado Desconectado

Mensajes: 78


Ver Perfil WWW
« Respuesta #2 : 21-03-2017, 13:08 (Martes) »

Un placer

A ver si alguien más lo prueba y puede comprobar que le funciona ok también.
En línea
Páginas: [1] Ir Arriba Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines
SMFAds for Free Forums