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
sudolocais 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
- Abrir o VPN Portal do Sophos Firewall no browser.
- Iniciar sessão com o utilizador VPN.
- Em VPN > VPN configuration, clicar em Download configuration for Windows, macOS, Linux.
- Descarregar o ficheiro
.ovpne 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
- Abrir as definições de rede.
- Adicionar uma nova ligação VPN e escolher Import from file.
- Selecionar o ficheiro
.ovpndescarregado. - Guardar o nome de utilizador se isso for adequado ao modelo operacional.
- 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
VPNcom 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
VPNpara 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
VPNpara a Internet, as policies de proteção necessárias e uma regra SNAT/masquerading para##ALL_SSLVPN_RWou##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.ovpnno 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
.ovpnantigo 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?
Que ficheiro deve ser descarregado no VPN Portal para Linux?
.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?
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?
.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.