Saltar para o conteudo
Avanet

Configurar Remote Access do Sophos Firewall em Linux

Para o Sophos Firewall Remote Access em Linux, a forma mais simples é utilizar SSL VPN com o cliente OpenVPN normal. O Sophos Connect não está disponível para Linux. O ficheiro .ovpn é descarregado no VPN Portal e utilizado no terminal ou através do NetworkManager.

A alternativa IPsec muitas vezes mencionada anteriormente com NetworkManager-strongSwan não é compatível com a configuração atual do Sophos Firewall: Remote access VPN > IPsec aceita apenas perfis IKEv1 no SFOS 22, enquanto o plugin NetworkManager-strongSwan suporta exclusivamente IKEv2.

⚠️ Não instalar nenhum “Sophos Connect para Linux” não oficial nem mudar o perfil de Remote Access do SFOS para IKEv2 por causa desta instrução. O caminho OpenVPN descrito a seguir é o método para Linux documentado pela Sophos.

Existem instruções próprias para outros dispositivos: Sophos Connect no Windows e Sophos Connect no macOS, bem como SSL VPN no iPhone e iPad e SSL VPN no Android.

Pré-requisitos

  • Está configurada uma policy de Remote Access SSL VPN em Remote access VPN > SSL VPN no Sophos Firewall.
  • O utilizador ou o respetivo grupo está atribuído a esta policy.
  • Uma regra de firewall adequada permite o tráfego necessário a partir da zona VPN.
  • Em Administration > Device access, o VPN portal está permitido para a zona necessária. Para acesso a partir da Internet, trata-se da zona WAN; devido à exposição adicional, só deve ser permitido quando necessário e protegido contra tentativas repetidas de início de sessão.
  • O utilizador consegue aceder ao VPN Portal e iniciar sessão. A porta predefinida é 443; a porta efetivamente configurada encontra-se em Administration > Admin and user settings.
  • Existem permissões sudo locais no sistema Linux para instalar pacotes e iniciar o OpenVPN.
  • Se o MFA estiver ativo, o início de sessão funciona, incluindo o código de verificação.

A configuração no firewall é descrita em Configurar Sophos Firewall SSL VPN Remote Access. Se mais tarde o ficheiro .ovpn não aparecer no VPN Portal, tiver 0 bytes ou contiver apenas uma mensagem de erro, Sophos Firewall: ficheiro .ovpn ausente ou com 0 bytes conduz pela verificação da policy, do utilizador, do certificado e do sistema.

Configurar SSL VPN com OpenVPN

1. Instalar o OpenVPN

Os comandos de pacotes seguintes são executados num terminal local Debian ou Ubuntu. A primeira consulta é apenas de leitura, não requer privilégios elevados e mostra se o pacote já estava instalado. Deve anotar-se este estado inicial antes da alteração:

dpkg-query -W -f='${Status}\n' openvpn 2>/dev/null

A saída install ok installed significa que o OpenVPN já está presente. A ausência de saída significa normalmente que o pacote não está instalado. O apt instala então o cliente e as dependências necessárias a partir dos repositórios configurados; são necessários direitos sudo locais e metadados de pacotes atualizados:

sudo apt install openvpn

Como utilizador normal, openvpn --version verifica em seguida se o programa está disponível. A primeira linha deve indicar a versão do OpenVPN instalada:

openvpn --version

Se o pacote não existia antes, o rollback direto é sudo apt remove openvpn. O comando remove o pacote, mas normalmente mantém os ficheiros de configuração; deve desligar-se primeiro qualquer túnel ativo e confirmar o estado inicial anotado. Se o OpenVPN já estava instalado, não há nada a reverter. A remoção é validada repetindo a consulta dpkg-query, que é apenas de leitura.

Outras distribuições também disponibilizam o pacote pelo respetivo gestor; o nome e a sintaxe devem ser confirmados na documentação da distribuição. Para uma gestão gráfica no GNOME, pode instalar-se adicionalmente o plugin OpenVPN do NetworkManager. Primeiro deve anotar-se o estado anterior com dpkg-query -W -f='${Status}\n' network-manager-openvpn-gnome 2>/dev/null. O comando Debian/Ubuntu seguinte requer sudo e instala o plugin e as dependências em falta:

sudo apt install network-manager-openvpn-gnome

Após a instalação, dpkg-query -W -f='${Status}\n' network-manager-openvpn-gnome deve apresentar install ok installed; pode ser necessário terminar e voltar a iniciar a sessão para a interface gráfica disponibilizar o plugin. Se antes não existia, sudo apt remove network-manager-openvpn-gnome volta a removê-lo. Primeiro deve desligar-se qualquer VPN gerida pelo NetworkManager e depois repetir a consulta apenas de leitura para confirmar o estado anterior de ausência. Este plugin não deve ser confundido com network-manager-strongswan: importa o ficheiro .ovpn e utiliza OpenVPN.

2. Descarregar a configuração OpenVPN

  1. Abrir o VPN Portal do Sophos Firewall no browser.
  2. Iniciar sessão com o utilizador VPN.
  3. Em VPN > VPN configuration, clicar em Download configuration for Windows, macOS, Linux.
  4. Descarregar o ficheiro .ovpn e guardá-lo em local seguro.

O ficheiro pode conter certificados incorporados, uma chave privada e dados de ligação específicos do utilizador. Não deve ser distribuído por e-mail não encriptado nem através de repositórios públicos. Se ficar comprometido, um administrador deve revogá-lo ou substituir as credenciais afetadas; eliminar a cópia local não é suficiente.

3. Iniciar a ligação no terminal

Os comandos seguintes são executados num terminal Linux local. Deve substituir-se <linux-user> pelo nome do utilizador local e adaptar o caminho ao ficheiro descarregado. Primeiro, stat lê sem privilégios elevados o modo numérico atual do ficheiro. O valor deve ser anotado para permitir reverter a alteração das permissões:

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 concede leitura e escrita apenas ao proprietário; a segunda consulta deve mostrar o modo 600. Não é necessário sudo se o utilizador com sessão iniciada for o proprietário do ficheiro. Para reverter, executa-se chmod <modo-anterior> "/home/<linux-user>/Downloads/sophos-vpn.ovpn", substitui-se <modo-anterior> pelo valor anotado e valida-se com stat. Só se devem restaurar permissões mais amplas quando forem deliberadamente necessárias.

O comando seguinte inicia o OpenVPN com privilégios elevados, porque o cliente cria uma interface de túnel e rotas temporárias. Em Linux, o processo OpenVPN iniciado diretamente não aplica por si só os servidores DNS recebidos; o perfil requer um script up/down adequado ou uma integração de sistema. O NetworkManager pode fornecer esta integração de DNS:

sudo openvpn --config "/home/<linux-user>/Downloads/sophos-vpn.ovpn"

O OpenVPN pede primeiro a palavra-passe sudo local e depois as credenciais da VPN. Com MFA, deve usar-se o formato indicado pelo administrador; consoante a autenticação, o código de utilização única é combinado com a palavra-passe ou pedido separadamente. A mensagem Initialization Sequence Completed e a presença de uma interface de túnel são os critérios de êxito. A ligação é executada em primeiro plano. Ctrl+C termina o OpenVPN e também constitui o rollback: o cliente remove a interface de túnel temporária e as rotas que instalou; qualquer integração DNS efetivamente configurada também deve repor os respetivos valores DNS temporários. Depois, usam-se as verificações abaixo para confirmar que a interface e a rota VPN desapareceram e que a resolução normal de nomes voltou a aplicar-se.

4. Importar a ligação no NetworkManager

  1. Abrir as definições de rede.
  2. Adicionar uma nova ligação VPN e escolher Import from file.
  3. Selecionar o ficheiro .ovpn descarregado.
  4. Guardar o nome de utilizador se isso for adequado ao modelo operacional.
  5. Iniciar a ligação e introduzir as credenciais VPN no formato MFA indicado pelo administrador.

A importação cria um perfil de ligação NetworkManager separado e pode copiar chaves ou certificados incorporados no ficheiro. Por isso, eliminar o ficheiro .ovpn descarregado não remove o perfil importado. Não se deve guardar a palavra-passe no perfil, salvo se o modelo operacional previr expressamente um armazenamento protegido. Para reverter, deve desligar-se a VPN, eliminar o perfil importado nas definições de rede e confirmar que já não aparece na lista de ligações.

O NetworkManager é mais confortável no dia a dia do que manter um terminal permanentemente aberto. No entanto, um arranque automático não assistido não é automaticamente possível com início de sessão interativo ou MFA. As credenciais não devem ser guardadas num ficheiro desprotegido apenas para permitir o arranque automático.

Porque o NetworkManager-strongSwan não é compatível neste caso

No SFOS 22, a Sophos permite em Remote access VPN > IPsec apenas perfis IKEv1 nos quais o Dead Peer Detection está desativado ou definido como Disconnect. Em contrapartida, o plugin NetworkManager-strongSwan estabelece apenas ligações IKEv2. Por isso, com o procedimento anteriormente descrito, as duas extremidades não conseguem negociar um túnel.

O próprio software strongSwan continua a ter funções IKEv1, mas este não é o mesmo caminho gráfico que o plugin NetworkManager. Uma configuração IKEv1 manual requer parâmetros, autenticação, Traffic Selectors e uma configuração de cliente testada que sejam adequados. Sem uma configuração de destino fiável, não se deve utilizar um exemplo genérico da Internet.

A Sophos indica um cliente de terceiros compatível como possibilidade para IPsec em Linux. No entanto, o ficheiro .tgb exportado não contém todas as definições avançadas da configuração Sophos Connect e não pode ser simplesmente importado como perfil IKEv2 no NetworkManager. Se o IPsec for obrigatório, o cliente escolhido deve suportar explicitamente a configuração IKEv1 do firewall e ser testado no ambiente em causa. Para a escolha fundamental, consulte Sophos Connect ou SSL VPN: qual solução de Remote Access é a mais adequada?.

Verificar a ligação

Depois de estabelecer a ligação, não se deve verificar apenas o estado do cliente. O que importa é se a rota, o DNS e a regra de firewall correspondem ao destino pretendido.

Estes comandos são executados como utilizador normal num terminal Linux local e são apenas de leitura; não necessitam de sudo nem de rollback. Deve substituir-se o endereço privado de exemplo 10.20.30.40 por um destino interno permitido e o nome reservado intranet.example.net por um FQDN interno que o DNS da VPN deve resolver:

ip addr show
ip route get 10.20.30.40
getent hosts intranet.example.net

Resultados esperados:

  • O OpenVPN indica uma ligação bem-sucedida e existe uma interface de túnel.
  • A verificação da rota mostra o caminho VPN para o destino interno em vez do gateway normal da Internet.
  • A verificação de DNS devolve o endereço interno se os servidores DNS internos tiverem sido distribuídos e integrados pelo cliente Linux escolhido.
  • Um serviço interno permitido está acessível; um destino deliberadamente não permitido continua bloqueado.
  • No Log Viewer do firewall, o tráfego de teste aparece a partir da zona VPN com a regra esperada.
  • Após um novo início de sessão, a autenticação volta a exigir a verificação MFA prevista.

Se o túnel estiver estabelecido, mas não houver tráfego, consulte Testar regras de firewall com Log Viewer, Policy Test e Packet Capture.

Erros típicos

  • Não existe configuração Linux no VPN Portal: o utilizador ou grupo não está atribuído a uma policy de Remote Access SSL VPN. Verificar a policy e o início de sessão no portal.
  • O OpenVPN indica um erro de autenticação: verificar o nome de utilizador, a palavra-passe, o processo MFA, a associação ao grupo e o método de autenticação selecionado.
  • O túnel está estabelecido, mas os destinos internos continuam inacessíveis: verificar as redes permitidas da policy de SSL VPN, a regra de firewall da zona VPN para a zona de destino e a rota para a rede interna.
  • A rota VPN não existe ou aponta para o Wi-Fi local: a rede de concessão SSL VPN e os destinos internos não podem sobrepor-se a redes locais ou sub-redes domésticas comuns. Verificar os intervalos em SSL VPN global settings e, após a correção, desligar e voltar a ligar o túnel.
  • Os endereços IP funcionam, mas os nomes internos não: verificar os servidores DNS distribuídos, o domínio de pesquisa e a acessibilidade do servidor DNS interno.
  • O Full Tunnel liga, mas o acesso à Internet deixa de funcionar: com Use as default gateway, verificar também a regra de firewall de VPN para a Internet, as policies de proteção necessárias e uma regra SNAT/masquerading para ##ALL_SSLVPN_RW ou ##ALL_SSLVPN_RW6.
  • O terminal foi fechado e a ligação perdeu-se: isto é normal com a execução direta de openvpn --config. Para a gestão gráfica, importar o ficheiro .ovpn no NetworkManager.
  • O NetworkManager não oferece a importação de ficheiros: o plugin OpenVPN do NetworkManager está em falta ou o serviço NetworkManager ainda não carregou o plugin recém-instalado.
  • O ficheiro .ovpn antigo deixou de funcionar: depois de alterações ao protocolo SSL VPN, ao certificado de servidor SSL ou à CA, ao Override hostname ou à porta SSL VPN, descarregar novamente o ficheiro.
  • O NetworkManager-strongSwan não estabelece ligação: não mudar para IKEv2. O plugin não é compatível com o perfil IKEv1 de Remote Access do Sophos Firewall.
  • Foi encontrado um alegado cliente Sophos Connect para Linux: não o instalar sem verificação. A Sophos não disponibiliza um cliente Linux oficial.

FAQ

Existe um cliente Sophos Connect oficial para Linux?

Não. O Sophos Connect está disponível para Windows e macOS. Em Linux, SSL VPN com um cliente OpenVPN é o caminho documentado pela Sophos.

Que ficheiro deve ser descarregado no VPN Portal para Linux?

Em VPN > VPN configuration, utiliza-se Download configuration for Windows, macOS, Linux. O ficheiro .ovpn só aparece se estiver atribuída ao utilizador uma policy de Remote Access SSL VPN.

Porque é interrompida a ligação VPN ao fechar o terminal?

A execução direta de sudo openvpn --config corre em primeiro plano no terminal. Para uma ligação com gestão gráfica, o ficheiro .ovpn pode ser importado no NetworkManager.

É possível utilizar o NetworkManager para Sophos Firewall Remote Access?

Sim, com o plugin OpenVPN do NetworkManager e o ficheiro .ovpn. O plugin NetworkManager-strongSwan, por outro lado, suporta apenas IKEv2 e não é compatível com o perfil IPsec IKEv1 de Remote Access do SFOS 22.

É necessário descarregar novamente o ficheiro .ovpn depois de uma alteração no firewall?

Sim, se o protocolo SSL VPN, o certificado de servidor SSL ou a CA, o Override hostname ou a porta SSL VPN tiverem sido alterados. Caso contrário, um ficheiro antigo pode continuar a conter parâmetros de ligação desatualizados.