Proxy transparente (http e https) no pfSense com Captive Portal
|Este tutorial vai explicar, de forma prática, a configurar o pfSense para atender aos requisitos de proxy transparente para os protocolos http/https e autenticação de usuário integrada ao Captive Portal.
Utilizamos aqui o pfSense 2.1.5 e o pacote adicional squid3-dev versão 3.3.10 pkg 2.2.6.
Instale este pacote do squid a partir do menu System -> Packages.
Após instalado o pacote do squid vamos iniciar sua configuração. Acesse o menu Services -> Proxy Server e ajuste as opções conforme segue:
Clique sobre a aba General 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
Salve as configurações clicando sobre o botão Save.
Clique agora sobre a aba Authentication.
Authentication method: Captive Portal Clique sobre o botão Save.
A parte de configuração do proxy está pronta, siga os passos a seguir para ativar o Captive Portal.
Clique sobre o menu Services -> Captive Portal.
Adicione uma Zona de autenticação para o Captive Portal clicando sobre o botão + e configure conforme segue:
Aba Captive Portal Enable captive portal: marcado Interfaces: LAN Logout popup window: marcado Authentication: Local User Manager / Vouchers Clique sobre o botão Save
O Próximo passo será configurar as regras de firewall, para isto siga os passos descritos a seguir:
Clique sobre o menu Firewall -> NAT
Vamos adicionar duas regras na aba Port Forward, uma que faz o redirecionamento do protocolo http e outra para o protocolo https para que eles sejam encaminhados ao proxy obrigatoriamente.
Clique sobre o botão + para adicionar uma nova regra e configure conforme segue para o protocolo http:
Interface: LAN Protocol: TCP Destination: not LAN Address Destination port range: from http to http Redirect target IP: 127.0.0.1 Redirect target port: 3128 Clique sobre o botão Save
Clique agora sobre o botão + novamente para adicionar uma nova regra para o protocolo https e configure conforme segue:
Interface: LAN Protocol: TCP Destination: not LAN Address Destination port range: from https to https Redirect target IP: 127.0.0.1 Redirect target port: 3129 Clique sobre o botão Save
Pronto, as configurações estão prontas.
O protocolo https transparente tem um problema de operação com o certificado quando se utiliza um certificado auto assinado, como é o caso em praticamente todas as configurações como esta que fizemos. Toda vez que um usuário for acessar um site seguro será solicitado que aceite o certificado do pfSense pois o mesmo faz o processo de descriptografia e criptografia do acesso para poder aplicar os filtros de url definidos.
Para resolver esta questão o certificado existente no pfSense deve ser baixado para o computador do usuario final e instalado no navegador como Autoridade Certificadora.
Para baixar o certificado do pfSense utilize algum cliente ssh/scp. O caminho completo do arquivo para baixar é:
/usr/pbi/squid-i386/etc/squid/serverkey.pem
Os usuários para autenticação no Captive Portal devem ser criados em System -> User Manager.
A solução descrita aqui ainda pode ser incrementada com a utilização dos pacotes sarg (para geração de relatórios) e squidguard/dansguard (para implementar filtros de urls por usuário/ip)
mas tem o problema dos dispositivos moveis, ja que celulares android ficaria complicado usar o proxy desta forma.
Olá, estou levando uma surra monstruosa do pfSense, já li tudo o que é post nacional e internacional, mas não consegui resolver.
Habilitei o Squid3, criei o certificado CA e importei na estação com Windows 7, no Squid3 habilitei a inspeção https/ssl na porta 3129.
Tanto com proxy transparente, como com proxy manual a navegação fica fica muito lenta, ou alguns sites não carregam e ainda mostram erros de certificado, como no caso de facebook e gmail, isso sem ter instalado o Squidguard ainda e se instalar fica pior, enfim, muito instável.
Enfim, já li bastante coisa, fiz e refiz muitas vezes, testei na estação com Firefox e Chrome, proxy manual e transparente.
Pode me dar um help, desde já eu agradeço a ajuda.
Olá, tenho configurado o proxy transparente também bloqueando somente os http só que em todas as maquinas tive que fazer a configuração do proxy no navegador para que funciona-se, que nem disse o Alvaro e os dispositivos celulares como importa isso para que funcione também?
Pode me ajudar com esse problema. Desde já agradeço sua ajuda.
Ivanildo, não sou especialista em Squid ou pfSense, mas estou homologando aqui na empresa uma solução com estes pacotes. Não tive qualquer tipo de problema até agora e, estou com tudo configurado em uma máquina virtual.
Sugiro que você faça uma nova instalação do pfSense e faça os testes de funcionamento, item a item, validando o funcionamento antes de passar para o próximo item. Somente assim você vai conseguir identificar a origem do seu problema. Verifique também se esta lentidão não está relacionada a erros na rede. Isto pode ser facilmente verificado nas interfaces Lan e Wan da máquina.