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/