SSL VPN
Tunnel Mode Deployment
Existem dois modos de deployment de uma VPN SSL; tunnel e web mode.
No modo tunnel o acesso é realizado através do Forticlient. O Forticlient cria uma interface virtual de rede identificada como fortissl na máquina do cliente. Uma vez o túnel estabelecido:
- O Fortigate designa um IP para o cliente a partir de uma IP Pool de endereços reservados
- Todo o tráfego é encapsulado usando SSL/TLS
- Qualquer aplicação que usa o protocolo IP pode enviar o seu tráfego através desse mesmo túnel.
No modo web, é possível fechar a conexão usando somente o seu web browser; esse modo, porém é limitado aos protocolos FTP, SSH, HTTP/S, RDP, Telnet, VNC e Ping.
Split Tunneling
O Split Tunneling é uma forma de fazer com que o tráfego do cliente de uma VPN SSL seja segregado entre o tráfego interessante para o túnel VPN e o tráfego externo (como o da internet). Desabilitar o split tunneling faz com que todo o tráfego de rede de um cliente passe pelo Fortigate pois ele se tornará o seu default gateway. Desabilitar o split tunneling é útil quando necessário aplicar regras de segurança dentro do tráfego dos clientes para a internet. Isso, porém, adiciona mais uso de banda e aumenta consideravelmente a latência.
Configurando SSL VPNs
A configuração se dá nos seguintes passos:
Crie os usuários e grupos que farão uso da SSL VPN.
Menu: User & Authentication
É possível usar os métodos de autenticação já disponíveis no Fortigate como FSSO, TACACS+, LDAP e RADIUS.
Configure um portal SSL VPN
Menu: SSL VPN Portals
Um portal SSL contém ferramentas e links para os usuários que o acessam possam usar. Idealmente, cada portal é feito para diferentes grupos de acesso.
No modo tunnel é possível configurar o split tunneling baseado no destino da firewall policy ou em trusted destinations. Habilitar o split tunneling based on Policy Destination faz com que o tráfego que passe pelo túnel seja apenas o que for especificado pela firewall policy criada para aquele túnel SSL VPN.
Ainda no modo túnel, é preciso especificar uma IP Pool para que seja designada aos clientes uma vez conectados na VPN.
Configure as opções do túnel SSL VPN
Menu: SSL VPN Settings
Na sessão Connecting Settings:
- Em qual Interface irá morar o SSL VPN Portal.
- Listening port (default 443)
- Redirect HTTP to SSL-VPN faz com que o tráfego que chegue na porta 80 seja direcionado para a porta 443.
- Idle logout define o tempo em que uma desconexão acontecerá. O valor default é 5 minutos (300 segundos).
- Require Client Certificate apresenta opções de subir um certificado conhecido por uma CA para evitar avisos de certificados não confiados no browser. Por default, um certificado Fortinet é usado para o SSL VPN portal e se esse certificado não estiver instalado no browser do usuário, o aviso aparecerá.
- Defina o range de IPs usado pela VPN SSL. Há um range default que será usado se não for especificado nenhum.
- Configure DNS; útil apenas quando split tunneling estiver desabilitado.
Crie uma política de firewall vindo e saindo pela interface SSL VPN
A interface virtual da SSL VPN é representada por ssl.<vdom>. Se nenhuma VDOM estiver habilitada no seu Fortigate, apenas a interface ssl.root será apresentada (VDOM Root). Para que o portal funcione, é preciso criar uma firewall policy especificando o tráfego vindo dessa interface para a interface onde moram os recursos que a VPN precisa acessar. Esse tráfego passará para a Outgoing Interface decifrado. Se houver recursos morando em mais interfaces, mais firewall policies precisarão ser criadas para atender todo o tráfego.
O Source dessa policy precisa ser os endereços participantes da SSL VPN. Além disso, é possível especificar Users e Groups para segregar ainda mais o nível de acesso. Sem uma policy, nenhum portal será apresentado aos usuários.
Política de Acesso à Internet
edit 10
set srcintf ssl.root
set dstintf port1
set srcaddr SSLVPN_TUNNEL_ADDR1
set dstaddr all
set users Accountants Teachers
Política de acesso a um banco de dados
edit 11
set srcintf ssl.root
set dstintf internal
set srcaddr SSLVPN_TUNNEL_ADDR1
set dstaddr Database
set users Accountants
Política de acesso a um servidor de e-mails
edit 12
set srcintf ssl.root
set dstintf dmz
set srcaddr SSLVPN_TUNNEL_ADDR
set dstaddr Mail Server
set users Teachers
Nas políticas acima, estamos com o split tunneling desabilitado e pela policy id 10, permitimos o acesso dos usuários pertencentes aos grupos Accountants e Teachers à internet. Na policy id 11, habilitamos somente os users do grupo Accountants a acessar o banco de dados na interface internal e na policy id 12, somente Teachers a acessar na dmz o Mail Server.
SSL VPN entre Fortigates
Útil quando VPNs IPSec não são uma opção:
- Pacotes ESP estão sendo bloqueados
- Portas UDP 500 e UDP 4500 bloqueadas
- Fragmentos de pacotes sendo dropados, causando falha na negociação IKE.
Isso funciona da seguinte forma: 4. Os usuários atrás do Fortigate SSL VPN client conseguem acessar de forma transparente os recursos atrás do Fortigate SSL VPN server.
- Fortigate SSL VPN client inicia a conexão com o Fortigate SSL VPN server.
- Fortigate SSL VPN client usa Pre-shared Key (PSK, no formato de uma conta de usuário local) e uma PKI para autenticar. Uma PKI é como um usuário SSL que precisa de um certificado válido para ser autenticado com sucesso.
- A interface virtual SSL VPN (ssl.root) cria o túnel
- O endereço IP é designado pelo Fortigate SSL VPN server.
- A rota é adicionada ao Fortigate SSL VPN client para acessar as subnets disponíveis no Fortigate SSL VPN server.
No Fortigate cliente, configure o usuário local esperado a chegar no Fortigate servidor. Configure também o PKI, com o certificado esperado na outra ponta. Crie a interface virtual do tipo SSL VPN e aponte para a porta por onde o tráfego irá chegar ao Fortigate servidor.
No Fortigate servidor, crie o usuário local e o PKI com o certificado desejado. Além disso, crie uma firewall policy para aceitar o tráfego advindo do Fortigate cliente na interface de escuta do tráfego SSL VPN.
Monitorando SSL VPNs
GUIs úteis.
Monitorar quais/quantos usuários estão conectados
Dashboard > Network > SSL VPN
Nesse dashboard também é possível derrubar uma sessão de VPN estabelecida.
VPN Logs
Log & Report > System Events
Nessa view, possível ver se o túnel foi estabelecido ou fechado, se a autenticação foi realizada pelo usuário e as conexões em um túnel com Forticlient.
Idle timeout vs Authentication Session
Uma vez que a VPN é desconectada, seja por idle ou pelo próprio usuário, as sessões associadas ao túnel são expurgadas da session table. Isso previne a reutilização de uma sessão de usuário por outros clientes.
O idle setting não é associado com o tempo de timeout da autenticação com o firewall. São idle timers separados. Um usuário remoto é considerado idle quando não há pacotes trafegando pelo túnel VPN.
Clientes de alta latência
Em casos de clientes com alta latência, é possível que a conexão seja terminada antes do processo completo de autenticação completar, como resolução do DNS ou tempo de inserção de um token MFA. Para sanar esses problemas, aumente o tempo de timeout de login usando config vpn ssl settings > set login-timeout <10-180>; o default dessa configuração é 30 segundos.
Preservando sessões
config system interface
edit port 1
set preserve-session-route enable
end
Útil no caso de múltiplos links WAN em um mesmo escritório para redundância. Essa configuração é útil para manter a sessão de VPN durante uma troca de links.
Melhores práticas
Em modo túnel:
- Verifique se a versão do Forticlient é compatível com a versão do FortiOS no Fortigate.
- Split tunneling habilitado para permitir acesso à internet sem onerar recursos.
- Splut tunneling desabilitado com uma firewall policy de egress para sessões de VPN.