Búsqueda de sitios web

Cómo instalar y configurar el cliente Tailscale en OPNsense


El cliente Tailscale es una aplicación de software que se puede instalar en su sistema operativo, como Linux, Windows, macOS, Android, iOS y muchos otros. Se utiliza para conectar dispositivos a una red de malla Tailscale segura. En el núcleo de Tailscale se encuentra el protocolo WireGuard que garantiza que exista una comunicación segura entre los dispositivos en la red que crea.

En este artículo veremos la instalación, configuración y cómo unir OPNsense a la red Tailscale o Headscale. Al final, su OPNsense y opcionalmente sus rutas formarán parte de la red privada de Tailscale. Las ventajas de utilizar Tailscale sobre la configuración tradicional del servidor WireGuard es que Tailscale no requiere reenvío de puertos para funcionar. Entonces empecemos.

1. Configurar el servidor SSH

Realizaremos la instalación del cliente Tailscale en OPNsense desde una interfaz de línea de comandos. Esto dicta la configuración del servidor SSH en OPNsense, que se puede realizar siguiendo el artículo siguiente.

  • Cómo habilitar e iniciar el servidor SSH en OPNsense

Con el servicio SSH activo, inicie sesión en su consola OPNsense utilizando el cliente ssh.

$ ssh [email 
Warning: Permanently added '192.168.1.1' (ED25519) to the list of known hosts.
Last login: Thu Jan 25 01:05:07 2024 from 192.168.1.151
----------------------------------------------
|      Hello, this is OPNsense 23.7          |         @@@@@@@@@@@@@@@
|                                            |        @@@@         @@@@
| Website:	https://opnsense.org/        |         @@@"   ///@@@
| Handbook:	https://docs.opnsense.org/   |       ))))))))   ((((((((
| Forums:	https://forum.opnsense.org/  |         @@@///   "@@@
| Code:		https://github.com/opnsense  |        @@@@         @@@@
| Twitter:	https://twitter.com/opnsense |         @@@@@@@@@@@@@@@
----------------------------------------------

*** fw01.example.io: OPNsense 23.7.12 ***

 GuestWifi (vlan020) -> v4: 172.20.40.1/24
 IoTDevices (vlan021) -> v4: 172.20.41.1/24
 LAN (igb1)      -> v4: 192.168.1.1/24
 PrivateServers (vlan030) -> v4: 172.20.30.1/24
 WAN (igb0)      -> v4: a.b.c.d/24

 HTTPS: SHA256 66 1B 87 B8 43 2C 15 45 05 57 05 1E 5E FF BB BD
               AC A6 DF 50 C9 73 FC A6 D5 88 29 10 A4 16 7B 29
 SSH:   SHA256 lmQRFUxZjpwargrS5JII5m57XW04q8gE4ZHIrO3Ub0I (ECDSA)
 SSH:   SHA256 H3emXepr/oufi2zVoVRBWCt5iJM+JTVjtReBpBOlPUc (ED25519)
 SSH:   SHA256 +vgBRjGF6QyimDHDr9Dcq7aZqxuZGUlEdi//XEVLy8E (RSA)

  0) Logout                              7) Ping host
  1) Assign interfaces                   8) Shell
  2) Set interface IP address            9) pfTop
  3) Reset the root password            10) Firewall log
  4) Reset to factory defaults          11) Reload all services
  5) Power off system                   12) Update from console
  6) Reboot system                      13) Restore a backup

Enter an option:

2. Cree el cliente Tailscale en OPNsense

El método de instalación utilizado en esta guía es la construcción desde el código fuente. Abrir shell con la opción 8

Enter an option: 8

root@fw01:~ #

Luego ejecute la utilidad de código OPNsense para actualizar el árbol de puertos.

opnsense-code ports

Si no hay ninguna actualización, verá el mensaje a continuación.

Already up to date.
ABI 23.7 is no longer supported
Already up to date.

Cambie su directorio de trabajo a /usr/ports/security/tailscale.

cd /usr/ports/security/tailscale

Luego cree e instale Tailscale Client en OPNsense.

make install

Una instalación exitosa tendrá un resultado similar al que se muestra a continuación.

....
gvisor.dev/gvisor/pkg/sleep
gvisor.dev/gvisor/pkg/tcpip/transport
gvisor.dev/gvisor/pkg/tcpip/ports
gvisor.dev/gvisor/pkg/tcpip/transport/tcpconntrack
tailscale.com/net/packet/checksum
gvisor.dev/gvisor/pkg/tcpip/network/hash
gvisor.dev/gvisor/pkg/tcpip/stack
github.com/pkg/sftp
gvisor.dev/gvisor/pkg/tcpip/transport/internal/noop
gvisor.dev/gvisor/pkg/tcpip/header/parse
gvisor.dev/gvisor/pkg/tcpip/transport/internal/network
tailscale.com/net/tstun
gvisor.dev/gvisor/pkg/tcpip/transport/packet
gvisor.dev/gvisor/pkg/tcpip/link/channel
gvisor.dev/gvisor/pkg/tcpip/network/internal/fragmentation
gvisor.dev/gvisor/pkg/tcpip/network/internal/ip
gvisor.dev/gvisor/pkg/tcpip/transport/raw
gvisor.dev/gvisor/pkg/tcpip/network/internal/multicast
tailscale.com/wgengine/magicsock
gvisor.dev/gvisor/pkg/tcpip/network/ipv4
gvisor.dev/gvisor/pkg/tcpip/network/ipv6
gvisor.dev/gvisor/pkg/tcpip/transport/tcp
gvisor.dev/gvisor/pkg/tcpip/transport/udp
gvisor.dev/gvisor/pkg/tcpip/transport/icmp
gvisor.dev/gvisor/pkg/tcpip/adapters/gonet
tailscale.com/wgengine
tailscale.com/tsd
tailscale.com/ipn/ipnlocal
tailscale.com/wgengine/netstack
tailscale.com/ipn/localapi
tailscale.com/ssh/tailssh
tailscale.com/ipn/ipnserver
tailscale.com/cmd/tailscaled
===>  Staging for tailscale-1.58.0
===>   tailscale-1.58.0 depends on package: ca_root_nss>0 - found
===>   Generating temporary packing list
for t in ./cmd/tailscale  ./cmd/tailscaled; do  dst=$(echo ${t} |  /usr/bin/sed -Ee 's/^[^:]*:([^:]+).*$/\1/' -e 's/^\.$/tailscale/');  src=$(/usr/bin/basename ${dst});  case ${dst} in  /*) dst=/usr/ports/security/tailscale/work/stage${dst}; /bin/mkdir -p $(/usr/bin/dirname ${dst}) ;;  *) dst=/usr/ports/security/tailscale/work/stage/usr/local/bin/${src} ;;  esac;  echo "===>  Installing ${src} as ${dst}";  install  -s -m 555 /usr/ports/security/tailscale/work/bin/${src} ${dst};  done
===>  Installing tailscale as /usr/ports/security/tailscale/work/stage/usr/local/bin/tailscale
===>  Installing tailscaled as /usr/ports/security/tailscale/work/stage/usr/local/bin/tailscaled
====> Compressing man pages (compress-man)
===> Staging rc.d startup script(s)
===>  Installing for tailscale-1.58.0
===>  Checking if tailscale is already installed
===>   Registering installation for tailscale-1.58.0
Installing tailscale-1.58.0...

3. Configurar el servicio de cliente Tailscale

Después de la instalación, habilite el servicio de cliente tailscale para que se inicie automáticamente.

# service tailscaled enable
tailscaled enabled in /etc/rc.conf

Inicie el servicio también.

service tailscaled start

Puede obtener la identificación del proceso verificando el estado del servicio.

# service tailscaled status
tailscaled is running as pid 72048.

4. Únase a OPNsense a la red Tailscale o Headscale

Siga los pasos proporcionados en esta sección para unirse a OPNsense a la red Tailscale o Headscale.

1) Generar claves de autenticación de Tailscale

Necesitamos claves de autenticación de Tailscale para inscribir OPNsense en la red Tailscale. Abra el panel de la interfaz de usuario de Tailscale y genere claves de autenticación navegando a Configuración Configuración personal > Claves > Claves de autenticación > Generar claves de autenticación.

Establezca las opciones requeridas para generar la clave.

Copie la clave generada en un buen lugar.

Usuarios de Headscale:

Si está utilizando la alternativa autohospedada de Tailscale: headscale, puede generar la clave desde CLI.

headscale --user <username> preauthkeys create --reusable --expiration 90d

2) Únase a OPNsense en la red Tailscale/headscale

Para unirse a la red Tailscale, ejecute el comando tailscale up. Las siguientes banderas están disponibles para su uso.

Ejemplo de comandos de unión de Tailscale: https://controlplane.tailscale.com

tailscale up --login-server https://controlplane.tailscale.com  \
--authkey <your_auth_key> \
--accept-routes \
--advertise-routes=192.168.1.0/24 \
--force-reauth

Ejemplo de comandos de unión de Headscale: https://controlplane.tailscale.com

tailscale up --login-server https://vpn.example.com  \
--authkey <your_auth_key> \
--accept-routes \
--advertise-routes=192.168.1.0/24 \
--force-reauth

Consulte nuestros artículos a continuación sobre cómo instalar el servidor Headscale:

  • Cómo ejecutar Headscale con UI en Docker Container
  • Instalar y configurar Headscale en Ubuntu

Si desea que el tráfico de los dispositivos en su red de malla se enrute a través del firewall OPNsense, incluya la marca --advertise-exit-node.

Confirme el estado después de ejecutar los comandos de inicio de sesión.

# tailscale status
100.85.221.75   fw01                 fw01.taila6df.ts.net freebsd -
100.99.203.103  desktop-irjpvj9      josphatkmutai@ windows -

Se crea una nueva interfaz de red en OPNsense. Inicie sesión para configurar la asignación de interfaz y habilitarla.

Esto se hace en Interfaces –> Asignaciones ==> “Asignar una nueva interfaz” –> “Elegir dispositivo” –> “tailscale0”.

Proporcione la descripción de la interfaz, por ejemplo, “Tailscale

Guarde, luego haga clic en la interfaz creada y marque las dos casillas para habilitar y bloquear la eliminación accidental.

Inicie sesión en la consola de administración de Tailscale https://login.tailscale.com/admin/ y confirme que el dispositivo esté conectado en la sección del menú "Máquinas".

5. Aprobación de rutas anunciadas por OPNsense

Si pasó las rutas que se anunciarán a otros nodos usando el indicador --advertise-routes, deberá aprobar las rutas para que sean efectivas.

Haga clic en Nombre de la máquina, haga clic en los tres puntos a la derecha y luego en "Editar configuración de ruta".

Seleccione las que desee aprobar o utilice "Aprobar todo" para marcar todas las rutas.

Confirme para guardar la configuración.

Si se usó la opción --advertise-exit-node mientras se ejecutaba el comando tailscale up, “Usar como nodo de salida ”no aparecerá atenuado.

Conclusión

Tanto OPNsense como Tailscale son poderosas herramientas y tecnologías de red que brindan grandes beneficios a los usuarios de la red. Al agregar OPNsense a una red privada de Tailscale o Headscale, podrá acceder no solo al dispositivo sino a todos los dispositivos de red disponibles en las rutas anunciadas. Todo esto es posible sin la necesidad de configurar manualmente el servidor OpenVPN o Wildcard. El proceso de configuración es sencillo y no requiere conocimientos avanzados de redes. Esperamos que nuestro artículo haya sido informativo y deseamos verte la próxima vez.

Más guías disponibles en este sitio web:

  • Cómo configurar el servidor OpenVPN en pfSense/OPNsense
  • Cómo instalar y configurar el firewall OPNSense
  • Cómo instalar netboot.xyz iPXE en Ubuntu/Debian

Artículos relacionados: