Equipos y materiales > Openwrt & LEDE

ZeroTier en OpenWrt (VPN + SD-WAN)

<< < (2/7) > >>

raphik:

--- Cita de: peperfus en 15-03-2021, 19:11 (Lunes) ---En el router ZT de la casa1, no hice la parte de añadir la interfaz desde luci. No sabía que había que hacerlo. En el tutorial que vi por ahí, no lo hacía. Lo probaré un día de estos.

EDITO:
De hecho, creo que la parte realmente importante (que tampoco hice) es la de firewall.

--- Fin de la cita ---

Efectivamente, podrías saltarte lo de añadir la interfaz, pero es imprescindible definir las políticas de entrada/salida/reenvío entre las redes LAN y ZeroTier. Al no haberse generado la interfaz, la red cubierta por la nueva zona del cortafuegos se designa por el nombre del dispositivo, a secas.

peperfus:
Hola !

He conseguido que me funcione.
Sin embargo, lo he configurado algo distinto.
En mi caso, también he omitido la parte de zona y de firewall ....; ya que la interfaz lan también la tengo fuera de zonas y fuera de la config de firewall. Al asignar la interfaz de ZT a ninguna zona, he conseguido la conectividad.
Lo que no termino de entender es ....  ^-^
(Vuelvo en un par de pruebas....)

EDITO:
Prueba: desactivar el firewall.
Resultado: se puede acceder. El firewall no es imprescindible para la conectividad.

Prueba: borro la interfaz ZT ... (en sección networks, en luci)
Resultado: se puede acceder.

A todo esto, tengo que decir que las pruebas las estoy haciendo ahora mismo en CASA1, y estoy accediendo desde mi móvil (red móvil).
No sé por qué no podía acceder en CASA2, desde el PC. Algo debí tocar para que no funcionara. Cuando vuelva a CASA2 volveré a intentar conectarme, ahora que sé que en CASA1 no está el problema.
Estas pruebas las he hecho después de añadir la interfaz en luci -> networks.
¿Al haber añadido la interfaz en luci -> networks, ha cambiado algo el archivo de configuración .... que ha hecho que me funcionara?
(Aquí echo en falta un smiley pensativo)

raphik:
@peperfus

He repetido tu configuración: router recién flasheado, ZT instalado (compruebo que se genera el dispositivo virtual ztxxxxxxxx), NO le añado interfaz, NO le asigno zona en el firewall, lo autorizo en ZeroTier Central y... ¡funciona!

En cuanto a seguridad, no sabría decir si es peligroso dejar un dispositivo sin interfaz y sin cortafuegos.

raphik:
=========================== ADVERTENCIA DE RIESGO ===========================
Buena parte de la información que aparece en este artículo la he recopilado
de distintos sitios de Internet. A pesar de las minuciosas coprobaciones pre-
vias a su publicación, no puedo garantizar su veracidad, exactitud, actuali-
dad, fiabilidad e integridad. Por lo tanto, el presente artículo no debe ser
considerado como un consejo de uso. Usted es responsable de cualquier uso que
haga de la información aquí contenida.
=============================================================================


Punto de acceso a la red privada virtual (masquerading)


El router OpenWrt comparte con sus hosts el acceso a la VPN sin que haya que instalarles ZT a cada uno de ellos. Los hosts tienen una IP ajena a la VPN, por lo que no son direccionables (pueden navegar por la VPN, pero no son manejables mediante escritorio remoto).


0) Planteamiento

Router proveedor de Intenet
WAN IP: 192.168.1.1

Router OpenWrt (bridged AP)
WAN IP: 192.168.1.x (la que le asigne el servidor DHCP)
LAN IP: 192.168.1.3 (IP estática)
Puerta de enlace: 192.168.1.1 (WAN)
Servidor DNS: 1.1.1.1, 1.0.0.1
VPN IP: 192.168.100.3

SWITCH
Bocas 1, 2 y 3 : LAN
Boca 4: WAN

Red ZeroTier (VPN)
Rango: 192.168.100.0/24 (Asignado por el usuario al registrar la red.)
Network ID: ID_DE_RED (El Network ID es un número hexadecimal único de 16 dígitos generado automáticamente por la capa VL2 de ZeroTier.)


1) Configurar el router OpenWrt

Conectar el PC al zócalo LAN1 del router OpenWrt.

Configurar la interfaz LAN

--- Código: ---uci set dhcp.lan.ra_management='1'
uci del network.lan.ip6assign
uci set network.lan.ipaddr='192.168.1.3'
uci add_list network.lan.dns='1.1.1.1'
uci add_list network.lan.dns='1.0.0.1'
--- Fin del código ---


Configurar el SWITCH (conectores LAN1 a LAN4)

--- Código: ---puertoCPU=$(uci get network.@switch_vlan[0].ports | awk '{print $5}')
uci set network.@switch_vlan[0].ports='0 1 2 '$puertoCPU
uci add network switch_vlan
uci set network.@switch_vlan[-1].device='switch0'
uci set network.@switch_vlan[-1].vlan='2'
uci set network.@switch_vlan[-1].ports='3 '$puertoCPU
--- Fin del código ---


Configurar la interfaz WAN

--- Código: ---uci set network.wan=interface
uci set network.wan.ifname='eth0.2'
uci set network.wan.proto='dhcp'
--- Fin del código ---


Aplicar cambios y reiniciar

--- Código: ---uci commit
reboot
--- Fin del código ---

Conectar un cable ethernet entre el router ISP y el zócalo LAN4 del router OpenWrt.


2) Instalar y configurar ZeroTier

Actualizar lista de paquetes e instalar ZeroTier One

--- Código: ---opkg update
opkg install zerotier
--- Fin del código ---

Configurar ZeroTier. Sustituir 'ID_DE_RED' por la Network ID de la red ZeroTier.

--- Código: ---rm /etc/config/zerotier
touch /etc/config/zerotier
uci set zerotier.openwrt_network=zerotier
uci add_list zerotier.openwrt_network.join='ID_DE_RED'
uci set zerotier.openwrt_network.enabled='1'
uci commit zerotier
/etc/init.d/zerotier restart
/etc/init.d/firewall restart
--- Fin del código ---


ZeroTier se habrá instalado correctamente si existe un nuevo dispositivo ethernet virtual "ztxxxxxxxx".

--- Código: ---ifconfig | grep zt
ztxxxxxxxx Link encap:Ethernet  HWaddr 0E:F4:4C:xx:xx:xx
--- Fin del código ---

Además, se puede verificar que ZeroTier está ONLINE.

--- Código: ---zerotier-cli info
200 info 79aa2xxxxx 1.6.4 ONLINE
--- Fin del código ---
(El número hexadecimal "79aa2xxxxx" es el identificador de nodo generado por la capa VL1 de ZeroTier.)

Opcionalmente, se puede mejorar el rendimiento permitiendo las conexiones UDP entrantes por el puerto 9993.

Reiniciar el router. Algunas veces no es necesario.


--- Código: ---reboot
--- Fin del código ---


Definir una interfaz para el dispositivo virtual interfaz ztxxxxxxxx

--- Código: ---uci set network.ZeroTier=interface
uci set network.ZeroTier.ifname=$(ifconfig | grep zt | awk '{print $1}')
uci set network.ZeroTier.proto='none'
--- Fin del código ---


Configurar una nueva zona en el cortafuegos

--- Código: ---uci add firewall zone
uci set firewall.@zone[-1].name='vpn'
uci set firewall.@zone[-1].network='ZeroTier'
uci set firewall.@zone[-1].input='ACCEPT'
uci set firewall.@zone[-1].forward='ACCEPT'
uci set firewall.@zone[-1].masq='1'
uci set firewall.@zone[-1].output='ACCEPT'
uci add firewall forwarding
uci set firewall.@forwarding[-1].dest='lan'
uci set firewall.@forwarding[-1].src='vpn'
uci add firewall forwarding
uci set firewall.@forwarding[-1].dest='vpn'
uci set firewall.@forwarding[-1].src='lan'
--- Fin del código ---

Aplicar los cambios y reiniciar

--- Código: ---uci commit network
uci commit firewall
reboot
--- Fin del código ---


3) Autorizar al router OpenWrt a unirse a la red ZeroTier

En ZeroTier Central (https://my.zerotier.com), buscar el router (el identificador de nodo y la MAC ayudan) y marcar la casilla "Auth?". Cambiar la IP asignada automáticamente por la IP fija 192.168.100.3. Si se quiere, se le puede poner un nombre.




4) Esperar unos minutos a que se establezca la red ZeroTier.

El router está conectado a la red ZeroTier. Comparte su IP VPN (192.168.100.3) con sus hosts, que pueden navegar por la red virtual. Los hosts tienen una IP ajena a la VPN, por lo que no son direccionables.

peperfus:
Ok, raphik !!
Vuelvo con novedades y 4 comentarios:

1) Acabo de volver a CASA2 (ZeroTier en PC con Win7) y haciendo pruebas, investigando.... por lo visto alguna vez falla ZT aquí (no sé quién tendrá la culpa, pero hay varias quejas en algún que otro foro). He desinstalado ZT, vuelto a instalar ....; él me añade en dispositivos de red una tarjeta de red virtual nueva y un puerto virtual nuevo. Lo pruebo y OK. Ya funciona.

2) En cuanto al tema de seguridad, te cuento mi punto de vista. Según entiendo, el firewall tiene 2 funciones: una es la de seguridad y la otra la de enrutar conexiones de una zona a otra (función de router propiamente dicha, ya sea entre WAN y LAN, o la que sea). En cuanto a seguridad.... piensa que una red (zona) es como tu casa. Si confías en todos los miembros de la red, el firewall en principio no es necesario, pero claro, cuando dejas la puerta abierta (conectas con otra red), ahí el firewall ya tiene que vigilar quién puede entrar y quién no, etc (input/output/forward). Al usar este cacharro (llamado router, pero que no hace ninguna función de router, sino que simplemente es un miembro de la red), no necesito activarle el firewall, con lo que le mejoro el rendimiento. Otra cosa es que un día venga un Señor de Troya y me la líe parda, eso ya es responsabilidad mía (y la asumo). De todas formas, si tenemos el firewall por defecto con la zona LAN en verde, todo el input abierto y output abierto, de nada serviría a nivel local. Hay que ponerle una contraseña fuerte. Piensa también que al estar este cacharro ("router") dentro de la vpn, sólo los miembros de la vpn tienen acceso, que son de confianza. En el caso de la red vpn, tenemos conexión directa y no es necesario enrutar nada a nivel de firewall. Otra cosa será el enrutamiento interno que haga zerotier, que se encarga de configurar ruta estática diciéndole al cacharro: "todo lo que vaya a la red 192.168.192.0/24 (mi red IPv4 ZT), lánzalo por este dispositivo de red: ztxxxxxx5".
Así es como entiendo yo su funcionamiento.

3) Interesante todo esto, además de seguir aprendiendo y/o refrescando conocimientos de redes.
Este tema me ha recordado a otro que me picó en su día, sobre tener un openwrt WIFI cliente y CABLE cliente conectadas ambas al mismo tiempo a la misma red lógica. Algunos decían que era imposible, que no se podía o que no tenía sentido. No me rendí y lo conseguí. Tiene sentido porque al tener 2 interfaces conectadas, tenemos 2 posibilidades de acceso por si una de ellas cae. (Al fin y al cabo, esa filosofía fue uno de los pilares de la invención de arpanet, el "padre" de Internet, la red de redes.) En cierto sentido esto de la vpn es algo relativamente similar: una forma alternativa de acceso.

4) Ah, no. Eran sólo 3 comentarios. ( ;D)


Edito: estaría interesante conseguir que los PCs (ó hosts, vaya), naveguen de forma transparente por la vpn, conectados a través del router openwrt. No sé si es la idea que tienes para el próximo tuto que has dejado en pendiente (cuidado, no vaya a resbalar  ;D (perdón  ^-^)). En principio no lo veo muy difícil....
De hecho.... creo que sólo habría que indicarle las rutas estáticas.... manualmente una a una, o bien toda la red.
Es decir: decirle al router openwrt: "Las peticiones a la red ZT, lánzalas por la interfaz ZT"

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

[*] Página Anterior

Ir a la versión completa