mesh1

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:

  1. O Fortigate designa um IP para o cliente a partir de uma IP Pool de endereços reservados
  2. Todo o tráfego é encapsulado usando SSL/TLS
  3. 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:

  1. Em qual Interface irá morar o SSL VPN Portal.
  2. Listening port (default 443)
  3. Redirect HTTP to SSL-VPN faz com que o tráfego que chegue na porta 80 seja direcionado para a porta 443.
  4. Idle logout define o tempo em que uma desconexão acontecerá. O valor default é 5 minutos (300 segundos).
  5. 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á.
  6. Defina o range de IPs usado pela VPN SSL. Há um range default que será usado se não for especificado nenhum.
  7. 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:

  1. Pacotes ESP estão sendo bloqueados
  2. Portas UDP 500 e UDP 4500 bloqueadas
  3. 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.

  1. Fortigate SSL VPN client inicia a conexão com o Fortigate SSL VPN server.
  2. 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.
  3. A interface virtual SSL VPN (ssl.root) cria o túnel

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:

  1. Verifique se a versão do Forticlient é compatível com a versão do FortiOS no Fortigate.
  2. Split tunneling habilitado para permitir acesso à internet sem onerar recursos.
  3. Splut tunneling desabilitado com uma firewall policy de egress para sessões de VPN.