Configurar Sophos Firewall Remote Access en Linux
Para Sophos Firewall Remote Access en Linux, la forma más sencilla es utilizar SSL VPN con el cliente OpenVPN normal. Sophos Connect no está disponible para Linux. El archivo .ovpn se descarga desde el VPN Portal y se utiliza en el terminal o mediante NetworkManager.
La alternativa IPsec con NetworkManager-strongSwan, mencionada con frecuencia hasta ahora, no es compatible con la configuración actual de Sophos Firewall: Remote access VPN > IPsec solo acepta perfiles IKEv1 en SFOS 22, mientras que el plugin NetworkManager-strongSwan admite exclusivamente IKEv2.
⚠️ No se debe instalar ningún «Sophos Connect para Linux» no oficial ni cambiar el perfil de Remote Access de SFOS a IKEv2 para seguir estas instrucciones. El procedimiento con OpenVPN que se describe a continuación es la vía para Linux documentada por Sophos.
Hay instrucciones independientes para otros dispositivos: Sophos Connect en Windows y Sophos Connect en macOS, así como SSL VPN en iPhone y iPad y SSL VPN en Android.
Requisitos
- En Sophos Firewall hay configurada una política de Remote Access SSL VPN en Remote access VPN > SSL VPN.
- El usuario o su grupo está asignado a esta política.
- Una regla de firewall adecuada permite el tráfico necesario desde la zona
VPN. - En Administration > Device access, VPN portal está permitido para la zona necesaria. Para acceder desde Internet se trata de la zona
WAN; como esto aumenta la exposición, solo debe permitirse cuando sea necesario y protegerse frente a intentos de inicio de sesión repetidos. - El usuario puede acceder al VPN Portal e iniciar sesión. Su puerto predeterminado es 443; el puerto realmente configurado aparece en Administration > Admin and user settings.
- En el sistema Linux se dispone de permisos locales de
sudopara instalar el paquete e iniciar OpenVPN. - Si MFA está activado, el inicio de sesión funciona incluido el código de verificación.
La configuración en el firewall se describe en Configurar Sophos Firewall SSL VPN Remote Access. Si más adelante el .ovpn no aparece en VPN Portal, tiene 0 bytes o solo contiene un mensaje de error, Sophos Firewall: falta el .ovpn o tiene 0 bytes guía la comprobación de la policy, el usuario, el certificado y el sistema.
Configurar SSL VPN con OpenVPN
1. Instalar OpenVPN
Los siguientes comandos de paquetes se ejecutan en un terminal local de Debian o Ubuntu. La primera consulta es de solo lectura, no requiere privilegios elevados y muestra si el paquete ya estaba instalado. Conviene anotar este estado inicial antes de realizar cambios:
dpkg-query -W -f='${Status}\n' openvpn 2>/dev/null
La salida install ok installed indica que OpenVPN ya está presente. Si no hay salida, normalmente el paquete no está instalado. apt instala después el cliente y las dependencias necesarias desde los repositorios configurados; requiere permisos locales de sudo y metadatos de paquetes actualizados:
sudo apt install openvpn
Como usuario normal, openvpn --version comprueba que el programa está disponible. La primera línea debe indicar la versión de OpenVPN instalada:
openvpn --version
Si el paquete no estaba instalado, la reversión directa es sudo apt remove openvpn. El comando elimina el paquete, pero normalmente conserva los archivos de configuración; antes hay que desconectar cualquier túnel activo y revisar el estado inicial anotado. Si OpenVPN ya estaba instalado, no hay nada que revertir. Se repite la consulta dpkg-query, de solo lectura, para validar la eliminación.
Otras distribuciones también ofrecen el paquete mediante su gestor; el nombre y la sintaxis deben comprobarse en su documentación. Para la administración gráfica en GNOME se puede instalar además el plugin OpenVPN para NetworkManager. Primero se anota su estado anterior con dpkg-query -W -f='${Status}\n' network-manager-openvpn-gnome 2>/dev/null. El siguiente comando de Debian/Ubuntu requiere sudo e instala el plugin y las dependencias que falten:
sudo apt install network-manager-openvpn-gnome
Tras la instalación, dpkg-query -W -f='${Status}\n' network-manager-openvpn-gnome debe mostrar install ok installed; quizá sea necesario cerrar y volver a abrir la sesión para que la interfaz gráfica ofrezca el plugin. Si antes no estaba instalado, sudo apt remove network-manager-openvpn-gnome lo elimina. Primero se desconecta cualquier VPN administrada por NetworkManager y después se repite la consulta de solo lectura para confirmar el estado ausente anterior. Este plugin no debe confundirse con network-manager-strongswan: importa el archivo .ovpn y utiliza OpenVPN.
2. Descargar la configuración de OpenVPN
- Abrir en el navegador el VPN Portal de Sophos Firewall.
- Iniciar sesión con el usuario VPN.
- En VPN > VPN configuration, hacer clic en Download configuration for Windows, macOS, Linux.
- Descargar el archivo
.ovpny guardarlo de forma segura.
El archivo puede contener certificados integrados, una clave privada y datos de conexión específicos del usuario. No debe enviarse por correo electrónico sin cifrar ni almacenarse en ubicaciones públicas. Si queda expuesto, un administrador debe revocarlo o sustituir las credenciales afectadas; eliminar la copia local no es suficiente.
3. Iniciar la conexión desde el terminal
Los siguientes comandos se ejecutan en un terminal Linux local. Se sustituye <linux-user> por el nombre del usuario local y se adapta la ruta al archivo descargado. Primero, stat lee sin privilegios elevados el modo numérico actual del archivo. Hay que anotar este valor para poder deshacer el cambio de permisos:
stat -c '%a %n' "/home/<linux-user>/Downloads/sophos-vpn.ovpn"
chmod 600 "/home/<linux-user>/Downloads/sophos-vpn.ovpn"
stat -c '%a %n' "/home/<linux-user>/Downloads/sophos-vpn.ovpn"
chmod 600 reserva la lectura y escritura al propietario; la segunda consulta debe mostrar el modo 600. No requiere sudo si el usuario conectado es propietario del archivo. Para revertirlo, se ejecuta chmod <modo-anterior> "/home/<linux-user>/Downloads/sophos-vpn.ovpn", sustituyendo <modo-anterior> por el valor anotado, y se valida con stat. Solo deben restaurarse permisos más amplios si son necesarios de forma consciente.
El siguiente comando inicia OpenVPN con privilegios elevados porque el cliente crea una interfaz de túnel y rutas temporales. En Linux, el proceso OpenVPN directo no aplica por sí solo los servidores DNS ofrecidos; el perfil necesita un script up/down adecuado o una integración con el sistema. NetworkManager puede proporcionar esta integración de DNS:
sudo openvpn --config "/home/<linux-user>/Downloads/sophos-vpn.ovpn"
OpenVPN solicita primero la contraseña local de sudo y después las credenciales de VPN. Con MFA debe utilizarse el formato indicado por el administrador; según la autenticación, el código de un solo uso se combina con la contraseña o se solicita por separado. El mensaje Initialization Sequence Completed y la presencia de una interfaz de túnel son los criterios de éxito. La conexión se ejecuta en primer plano. Ctrl+C detiene OpenVPN y también revierte la conexión: el cliente elimina la interfaz de túnel temporal y las rutas que instaló; cualquier integración de DNS realmente configurada también debe restaurar sus valores DNS temporales. Después se utilizan las comprobaciones siguientes para confirmar que la interfaz y la ruta VPN han desaparecido y que vuelve a aplicarse la resolución de nombres normal.
4. Importar la conexión en NetworkManager
- Abrir la configuración de red.
- Añadir una nueva conexión VPN y seleccionar Import from file.
- Seleccionar el archivo
.ovpndescargado. - Guardar el nombre de usuario si esto se ajusta al modelo operativo.
- Iniciar la conexión e introducir las credenciales VPN en el formato MFA indicado por el administrador.
La importación crea un perfil de conexión independiente en NetworkManager y puede copiar claves o certificados integrados en el archivo. Por tanto, eliminar el .ovpn descargado no elimina el perfil importado. No se debe guardar la contraseña en el perfil salvo que el modelo operativo disponga expresamente de un almacenamiento protegido. Para revertir la importación, se desconecta la VPN, se elimina el perfil importado en la configuración de red y se comprueba que ya no aparece en la lista de conexiones.
NetworkManager resulta más cómodo para el uso diario que mantener un terminal abierto. Sin embargo, con un inicio de sesión interactivo o MFA, el inicio desatendido no queda habilitado automáticamente. Las credenciales no deben guardarse en un archivo sin proteger únicamente para permitir el inicio automático.
Por qué NetworkManager-strongSwan no es compatible aquí
En SFOS 22, Sophos solo permite perfiles IKEv1 para Remote access VPN > IPsec cuando Dead Peer Detection está desactivado o configurado como Disconnect. En cambio, el plugin NetworkManager-strongSwan solo establece conexiones IKEv2. Por lo tanto, ambos extremos no pueden negociar un túnel con el procedimiento descrito anteriormente.
El propio software strongSwan sigue teniendo funciones IKEv1, pero no se trata de la misma vía gráfica que ofrece el plugin de NetworkManager. Una configuración manual de IKEv1 requiere parámetros, autenticación, Traffic Selector y una configuración de cliente probada que sean adecuados. Sin una configuración de destino fiable, no se debe adoptar un ejemplo genérico de Internet.
Sophos menciona como posibilidad para IPsec en Linux un cliente de terceros compatible. Sin embargo, el archivo .tgb exportado no contiene todos los ajustes avanzados de la configuración de Sophos Connect y no se puede importar simplemente en NetworkManager como perfil IKEv2. Si IPsec es imprescindible, el cliente elegido debe admitir expresamente la configuración IKEv1 del firewall y probarse en el entorno correspondiente. Para elegir la solución adecuada, resulta útil Sophos Connect o SSL VPN: ¿qué solución de Remote Access conviene?.
Comprobar la conexión
Después de establecer la conexión no basta con comprobar el estado del cliente. Lo importante es que la ruta, el DNS y la regla de firewall se ajusten al destino deseado.
Estos comandos se ejecutan como usuario normal en un terminal Linux local y son de solo lectura; no requieren sudo ni reversión. Se sustituye la dirección privada de ejemplo 10.20.30.40 por un destino interno permitido y el nombre reservado intranet.example.net por un FQDN interno que el DNS de la VPN deba resolver:
ip addr show
ip route get 10.20.30.40
getent hosts intranet.example.net
Resultados esperados:
- OpenVPN indica una conexión correcta y existe una interfaz de túnel.
- La comprobación de ruta muestra para el destino interno la ruta VPN en lugar de la puerta de enlace normal de Internet.
- La comprobación de DNS devuelve la dirección interna si se han distribuido servidores DNS internos y el cliente Linux elegido los ha integrado.
- Se puede acceder a un servicio interno permitido, mientras que un destino bloqueado de forma intencionada sigue sin estar accesible.
- En el Log Viewer del firewall aparece el tráfico de prueba procedente de la zona
VPNcon la regla esperada. - Tras un nuevo inicio de sesión, la autenticación vuelve a exigir la verificación MFA prevista.
Si el túnel está establecido pero no circula tráfico, resulta útil Probar una regla de firewall con Log Viewer, Policy Test y Packet Capture.
Errores habituales
- No hay configuración para Linux en el VPN Portal: el usuario o el grupo no está asignado a ninguna política de Remote Access SSL VPN. Comprobar la política y el inicio de sesión en el portal.
- OpenVPN informa de un error de autenticación: comprobar el nombre de usuario, la contraseña, el procedimiento de MFA, la pertenencia al grupo y el método de autenticación seleccionado.
- El túnel está establecido, pero los destinos internos siguen sin estar accesibles: comprobar las redes permitidas de la política SSL VPN, la regla de firewall desde
VPNhacia la zona de destino y la ruta a la red interna. - Falta la ruta VPN o apunta al Wi-Fi local: la red de concesión SSL VPN y los destinos internos no deben solaparse con redes locales o subredes domésticas habituales. Comprobar los rangos en SSL VPN global settings y, después de corregirlos, desconectar y volver a conectar el túnel.
- Las direcciones IP funcionan, pero los nombres internos no: comprobar los servidores DNS distribuidos, el dominio de búsqueda y la disponibilidad del servidor DNS interno.
- El Full Tunnel conecta, pero se pierde Internet: con Use as default gateway, comprobar también la regla de firewall de
VPNa Internet, las políticas de protección necesarias y una regla SNAT/masquerading para##ALL_SSLVPN_RWo##ALL_SSLVPN_RW6. - Se ha cerrado el terminal y se ha perdido la conexión: es normal al ejecutar directamente
openvpn --config. Para la administración gráfica, importar el archivo.ovpnen NetworkManager. - NetworkManager no ofrece la importación de archivos: falta el plugin OpenVPN de NetworkManager o el servicio NetworkManager todavía no ha cargado el plugin recién instalado.
- El archivo
.ovpnantiguo ya no funciona: volver a descargarlo después de cambiar el protocolo SSL VPN, el certificado del servidor SSL o la CA, Override hostname o el puerto SSL VPN. - NetworkManager-strongSwan no conecta: no cambiar a IKEv2. El plugin no es compatible con el perfil IKEv1 de Remote Access de Sophos Firewall.
- Se ha encontrado un supuesto cliente Sophos Connect para Linux: no instalarlo sin comprobarlo. Sophos no proporciona ningún cliente oficial para Linux.
FAQ
¿Existe un cliente oficial de Sophos Connect para Linux?
¿Qué archivo debe descargarse del VPN Portal para Linux?
.ovpn solo aparece si se ha asignado al usuario una política de Remote Access SSL VPN.¿Por qué se desconecta la conexión VPN al cerrar el terminal?
sudo openvpn --config se mantiene en primer plano en el terminal. Para una conexión administrada gráficamente, el archivo .ovpn se puede importar en NetworkManager.¿Se puede utilizar NetworkManager para Sophos Firewall Remote Access?
.ovpn. Sin embargo, el plugin NetworkManager-strongSwan solo admite IKEv2 y no es compatible con el perfil IKEv1 de Remote Access IPsec de SFOS 22.