Proxy transparente (http e https) no pfSense com Captive Portal

Este tutorial prático vai guiá-lo na configuração de um proxy transparente no pfSense, abrangendo tanto os protocolos HTTP quanto HTTPS, com autenticação de usuário integrada ao Captive Portal. Isso é especialmente útil para quem deseja monitorar e controlar o tráfego da rede sem exigir que os usuários configurem manualmente os proxies em seus dispositivos.

Pré-Requisitos

Neste exemplo, utilizaremos o pfSense na versão 2.1.5 juntamente com o pacote adicional squid3-dev, na versão 3.3.10 pkg 2.2.6. Certifique-se de ter essa configuração antes de iniciar o processo.

1: Instalação do Squid

Para começar, precisamos instalar o pacote Squid no pfSense. Isso pode ser feito acessando o menu System -> Packages e buscando o pacote squid3-dev. Após encontrá-lo, clique em instalar e aguarde a conclusão.

2: Configuração do Proxy Transparente

Com o pacote do Squid instalado, agora podemos proceder com a configuração do proxy transparente. Siga os passos abaixo:

  • Acesse o menu Services -> Proxy Server.
  • Na aba General, configure as opções conforme indicado:
    Proxy Interface(s): LAN
    Proxy Port: 3128
    Allow users on interface: marcado
    Patch captive portal: marcado
    Transparent HTTP Proxy: marcado
    Transparent Proxy Interface(s): LAN
    HTTPS/SSL interception: marcado
    SSL Intercept interface(s): LAN
    SSL Proxy Port: 3129
    Enable logging: marcado
    Log store directory: /var/squid/logs (sem a barra / no final)
    Integrations (caso use em conjunto com squidguard):redirect_program /usr/pbi/squidguard-squid3-i386/bin/squidGuard -c /usr/pbi/squidguard-squid3-i386/etc/squidGuard/squidGuard.conf;redirector_bypass off;url_rewrite_children 5
    Custom ACLS (Before_Auth): always_direct allow all
    ssl_bump server-first all
    • Clique em Save para salvar as configurações.

    3: Configuração de Autenticação com Captive Portal

    Após configurar o proxy, precisamos ativar e configurar o Captive Portal:

    • Vá ao menu Services -> Captive Portal.
    • Adicione uma nova Zona de Autenticação clicando no botão +.
    • Na aba Captive Portal, configure as seguintes opções:
      • Enable captive portal: Marque para habilitar o Captive Portal.
      • Interfaces: Selecione LAN.
      • Logout popup window: Marque para permitir que uma janela de logout seja aberta.
      • Authentication: Escolha Local User Manager / Vouchers para o método de autenticação.
    • Clique em Save para salvar as configurações.

    4: Configuração das Regras de Firewall

    Para garantir que o tráfego HTTP e HTTPS seja redirecionado através do proxy, precisamos adicionar regras de NAT:

    • Acesse o menu Firewall -> NAT.
    • Na aba Port Forward, clique em + para adicionar uma nova regra para o protocolo HTTP:
      • Interface: Selecione LAN.
      • Protocol: Escolha TCP.
      • Destination: Selecione not LAN Address.
      • Destination port range: Defina de http para http.
      • Redirect target IP: Insira 127.0.0.1.
      • Redirect target port: Defina como 3128.
    • Clique em Save para salvar a regra.
    • Agora, adicione uma nova regra para o protocolo HTTPS:
      • Interface: Selecione LAN.
      • Protocol: Escolha TCP.
      • Destination: Selecione not LAN Address.
      • Destination port range: Defina de https para https.
      • Redirect target IP: Insira 127.0.0.1.
      • Redirect target port: Defina como 3129.
    • Clique em Save para salvar a regra.

    Considerações sobre HTTPS e Certificados

    Uma limitação comum ao configurar proxies transparentes para HTTPS é o uso de certificados auto-assinados. Cada vez que um usuário tentar acessar um site seguro, o navegador solicitará a aceitação do certificado do pfSense, já que ele intercepta o tráfego para aplicar as regras de filtragem.

    Para evitar esses avisos, é recomendado que o certificado do pfSense seja instalado nos dispositivos dos usuários como uma Autoridade Certificadora (CA) confiável. Para isso, você pode baixar o certificado usando um cliente SSH/SCP. O caminho completo do arquivo é:

    /usr/pbi/squid-i386/etc/squid/serverkey.pem

    5: Gerenciamento de Usuários

    Os usuários que precisarão autenticar-se no Captive Portal podem ser criados diretamente no pfSense. Acesse System -> User Manager para adicionar e gerenciar contas de usuários.

    Conclusão e Recursos Adicionais

    Seguindo estes passos, você configurará um ambiente robusto para o controle e monitoramento de tráfego na sua rede. Além das configurações básicas, você pode incrementar essa solução utilizando pacotes como o Sarg para geração de relatórios, ou SquidGuard/DansGuardian para implementar filtros de URL por usuário ou IP.

    Com isso, concluímos a configuração de um proxy transparente no pfSense, oferecendo maior controle sobre o uso da rede e assegurando que os usuários sejam autenticados antes de acessar a Internet.

    Se você tiver mais perguntas sobre pfSense e Squid, sinta-se à vontade para entrar em contato.

    Referências

    https://docs.netgate.com/index.html
    https://www.squid-cache.org/Versions/v3/3.3/cfgman/

    Deixe um comentário

    O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

    Rolar para cima