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