Bienvenido(a), Visitante. Por favor, ingresa o regístrate.
¿Perdiste tu email de activación?
17-10-2017, 05:48 (Martes)
Inicio Ayuda Reglas Buscar Ingresar Registrarse
Noticias:
Liberada wifislax64-1.1 version final para descargar

Videos Downloader




+  Seguridad Wireless - Wifi
|-+  Equipos y materiales
| |-+  Puntos de acceso, routers, switchs y bridges
| | |-+  Openwrt & LEDE (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 1406 veces)
peperfus
*****
Desconectado Desconectado

Mensajes: 196


Ver Perfil WWW
« : 21-03-2017, 13: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, aunque también los hay gratuitos por ahí (por ejemplo vpnbook)) 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 de la empresa del servicio vpn. Normalmente suelen ser:
  • El ca.crt (Autoridad Certificadora)
  • La key (clave pública del servidor vpn)
  • Y (en su caso), una key (clave privada) 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, ya que en vez de identificarme por archivo key, lo hago con user y password; 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 desde 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> <-- aquí va el servidor vpn al que conectaremos
persist-key
persist-tun
ca ca.crt <-- archivo ca
tls-auth Wdc.key 1 <-- archivo key (nos los da la empresa del servicio vpn)
cipher AES-256-CBC
comp-lzo
verb 3 <-- indica el nivel de log.
log /tmp/vpn.log <-- archivo donde guardamos el log, para comprobar estado de conexión o ver si hay algún problema
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, si usas user/password o archivo key
auth-retry interact
ifconfig-nowarn

¡¡Paciencia!!. NO conectar todavía.

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 tutorial que me ayudó bastante, aunque está en inglés pero se entiende bien:

OJO:
Asegurarse de que la interfaz (el "dev") configurado en el firewall sea EXACTAMENTE EL MISMO que el que usa el archivo .ovpn para conectar. Si no es el mismo, el firewall no tendrá efecto y estaremos expuestos a ataques de seguridad...

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
Covered networks – checked VPN

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

Click Save & Apply.

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

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. Admite un parámetro que sería el nombre del archivo .ovpn. Sin parámetros, muestra lista de archivos de conexión. Esto viene muy bien para usarlo con la extensión de luci "luci-app-commands"
Código:
if [ $# -ne 0 ]; then
  # Por si acaso se nos ha olvidado desconectar una conexion previa:
  pkill -SIGTERM -f 'openvpn'
  sleep 3
  touch  /tmp/vpn.log
  openvpn --cd /etc/openvpn --daemon --config /etc/openvpn/$1
else
  echo Requiere archivo de config .ovpn
  ls /etc/openvpn
fi
Script desconectar.sh:
Código:
# La opcion -c muestra el num de procesos matados con ese nombre. No deberia ser superior a 1.
pkill -SIGTERM -f 'openvpn' -c
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 a los scripts:
Código:
chmod 740 *.sh
Y ejecutar:
Código:
./conectar.sh <archivo.ovpn>
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í.

Como comprobar si estamos conectados...
3 formas:
  • Ejecutando el comando estado.sh: Si pone "Initialization Sequence Completed", lo estamos.
  • Desde luci, entrar en Network, Interfaces. Si los numeritos del tráfico de la interfaz vpn se mueven... es por algo
  • Desde un navegador web conectado al router (como gateway), entrar en showip.net

Consideraciones importantes de seguridad:
  • No olvidar configurar el firewall, además de comprobar y asegurarse de que la interfaz (device) usada por la vpn (normalmente tun, tun0, tun1, tun2...) debe ser la misma que la configurada en el firewall.
  • Asignar a la instancia de dropbear (el servidor ssh) de openwrt que sólo escuche por la interfaz lan. Esto se hace en luci --> System --> Administration.
  • Asignar la interfaz de escucha del servidor de luci, cambiarla de 0.0.0.0 a la ip de la interfaz lan, editando el archivo /etc/config/uhttpd, tal como explica en https://wiki.openwrt.org/doc/uci/uhttpd, sección "Securing uHTTPd"
  • Asignar DNS estáticas en los cacharros (hosts, clientes, o como queráis llamarlos) conectados a la vpn. Por ejemplo, yo suelo usar las de OpenDNS: 208.67.222.222 y 208.67.220.220

Otra cosa chula que se puede hacer es configurar algún led de status libre del router para que se encienda y se apague según conectamos y desconectamos a la vpn. Esto se puede hacer desde luci, en System -> LED Configuration. (Hay que estar conectado a la vpn para que nos deje seleccionar tun0) Mola Smiley.

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.

PD: Como curiosidad extraña, como efecto secundario, después de desconectar de la vpn, se me inutilizan los puertos 1 y 2 del switch. Ni idea del motivo. No queda más que reiniciar el router para arreglarlo. ¿Alguien más ha tenido este efecto secundario?

Nota: Este howto ha sido probado con éxito en LEDE 17.
En Chaos Calmer (15), hay ligeras variaciones, por ejemplo en el comando pkill (instalación y uso)

En construcción...
« Última modificación: 24-04-2017, 20:00 (Lunes) por peperfus » En línea
drvalium
Moderador Global
*
Desconectado Desconectado

Mensajes: 17517


Misántropo


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

hi

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

Mensajes: 196


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

Un placer

A ver si alguien más lo prueba y puede comprobar que le funciona ok también.
En línea
jar229
Moderador
*
Desconectado Desconectado

Mensajes: 4563



Ver Perfil
« Respuesta #3 : 26-03-2017, 00:41 (Domingo) »

Interesante  Angry Angry

Le pongo 'chicheta'  Wink
En línea

En venta:

Portátiles Dell Latitude E6420. i5 vPro con SSD

Intel Core i5-2520M vPro a 2.5 GHz (3.2 GHz en modo turbo)
Chipset Intel QM67 Express
RAM 4 GB DDR3
Disco SSD de 128 GB
Pantalla panorámica mate de 14 pulgadas 1366x768
Intel HD Graphics 3000
NVIDA NVS 4200M 512 MB DDR3
Sonido Stereo
DVDRW
Webcam
Bluetooth 3.0
Lan Gigabit
Wifi Intel Centrino Advanced-N 6205 a/g/n
1 x ExpressCard/54
3 x USB 2.0
1 x HDMI, VGA, USB 2.0/eSATA
Teclado RETROILUMINADO alemán convertido en español con vinilos de alta calidad
Batería de 6 celdas en buen estado
Cargador

Instalado Windows 10 Pro 64 original

Precio 210 € incluido envío
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

Las cookies de este sitio web se usan para personalizar el contenido y los anuncios, ofrecer funciones de redes sociales y analizar el tráfico. Además, compartimos información sobre el uso que haga del sitio web con nuestros partners de redes sociales, publicidad y análisis web, quienes pueden combinarla con otra información que les haya proporcionado o que hayan recopilado a partir del uso que haya hecho de sus servicios
Si continúa navegando consideramos que acepta su uso. OK Más información | Y más
Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines
SMFAds for Free Forums