PFSense Firewall com Squid e SquidGuard

O presente documento visa instruir e informar o leitor, a forma de configurar um Firewall PFSense para controle de internet. Para configuração do controle de acesso serão utilizados os pacotes Squid e SquidGuard, para configuração automática nos terminais clientes, computadores e dispositivos moveis, serão mostradas como utilizar o protocolo WPAD (Web Proxy Auto Discovery) e o arquivo PAC (Proxy Auto configuration).

[ Hits: 83.587 ]

Por: Willian Mendonça em 06/11/2017


Metodologia (passo a passo)



Para a realização das configurações e testes do Firewall PFsense é necessário o Software Oracle Virtual Box versão 5.1.22 ou superior, já com as máquinas virtuais criadas, uma delas rodando o PFSense e a outra um sistema operacional cliente, a escolha do usuário. A primeira, rodando o Firewall configurada com duas placas de rede, a primeira conectada à internet e a segunda conectada à rede interna local.

A versão do PFSense instalada deve ser a 2.4 ou superior. Não serão abordadas configurações como alteração de nome de máquina e domínio, senha de acesso e configurações irrelevantes ao propósito desse documento. É necessário que o usuário possua esse conhecimento e já tenha feitos as configurações iniciais previamente.

Utilizando a máquina com o sistema operacional cliente, acesse a interface de configuração WEB do PFSense. Para que tudo transcorra corretamente, é necessário desabilitar o acesso SSL na interface WEB de configuração do PFSense, apesar de ser uma falha de segurança e não recomendado, é necessário, pelo menos inicialmente.

Essa configuração não se tornará um grande problema, desde que não exista acesso externo ao PFSense, ou que o mesmo seja feito através de uma conexão VPN. Para realizar esses procedimentos, o caminho a ser acessado é "System → Advanced".

A opção a ser alterada está na figura 2.
Linux: Configuração PFSense Firewall com Squid e SquidGuard
Figura 2: Opção a ser selecionada
Realizado esse procedimento, é necessário iniciar a instalação dos pacotes necessários para o funcionamento do Firewall. O primeiro a ser instalado é o Squid, para isso, o caminho acessado é "System → Package Manager". A guia deve ser selecionada conforme a figura 3. Nesse momento, o pacote SquidGuard também pode ser instalado para dar agilidade aos procedimentos de configuração.
Linux: PFSense Firewall com Squid e SquidGuard - Configuração
Figura 3: No campo Search Term procure Squid e instale o pacote
Após a realização da instalação, é necessário configurar o cache local do Squid e iniciar o serviço, os passos necessários encontram-se nas figuras de 4 a 10. Primeiro, acesse "Services → Squid Proxy Server" e siga os passos contidos nas figuras.
Linux: Configuração PFSense Firewall com Squid e SquidGuard
Linux: Configuração PFSense Firewall com Squid e SquidGuard
Clique no botão "Save", que se encontra no final da página.
Linux: Configuração PFSense Firewall com Squid e SquidGuard
Linux: Configuração PFSense Firewall com Squid e SquidGuard
Linux: Configuração PFSense Firewall com Squid e SquidGuard
Linux: Configuração PFSense Firewall com Squid e SquidGuard
Linux: Configuração PFSense Firewall com Squid e SquidGuard
É necessário salvar as configurações com o botão "Save" localizado no final da página. O Proxy Squid, nesse momento, já está funcionando, é necessário configurar os arquivos de autoconfiguração do PAC para isso navegue até o menu "Diagnostics → Command Prompt" e execute o comando conforme a figura 11.
Linux: Configuração PFSense Firewall com Squid e SquidGuard
O botão "Execute" deve ser acionado para concluir a execução do comando. Feito isso, é necessário navegar até o arquivo, sempre utilizando a interface de configuração WEB, siga o caminho "Diagnostics → Edit File" e selecione o botão "Browse" e navegue até o caminho /usr/local/www/ e localize o arquivo "proxy.pac", edite-o e coloque as seguintes informações no mesmo, alterando somente o nome do domínio na última linha do arquivo, mantendo o wpad:

function FindProxyForURL(url, host){
   var hostIP = dnsResolve(host);
   return "PROXY wpad.seudominio:3128"
}

Retorne ao executor de comandos do PFSense e execute os seguintes comandos:

# ln -s /usr/local/www/proxy.pac /usr/local/www/wpad.dat
# ln -s /usr/local/www/proxy.pac /usr/local/www/wpad.da


Esses comandos irão criar links simbólicos aos outros dois arquivos, informando ao sistema que os três têm o mesmo conteúdo. Tendo realizados com sucesso os passos anteriores, é necessário que os seguintes arquivos "mime.types" e "mime.types-dist" sejam alterados. Eles estão contidos no seguinte caminho /usr/local/etc/nginx, utilize o procedimento anteriormente explicado para acessar os arquivos e incluir, em ambos, as seguintes linhas:

application/x-ns-proxy-autoconfig      pac;
application/x-ns-proxy-autoconfig      dat;
application/x-ns-proxy-autoconfig      da;

É extremamente importante que as configurações estejam exatamente conforme citadas, visto que qualquer erro pode interromper o funcionamento tanto do NGinx, que é o servidor WEB do PFSense, quanto do Firewall e Proxy. Tendo escolhidos já o nome da máquina e domínio em que a mesma se encontra, deve ser criado um apontamento no servidor DNS para "wpad.seudominio".

O procedimento está descrito nas imagens a seguir, navegue até "Services → DNS Resolver", navegue até o fim da página e selecione "Host Overrides → add", preencha as informações conforme a figura:
Linux: Configuração PFSense Firewall com Squid e SquidGuard
O próximo passo é definir como o DHCP vai distribuir as informações, navegue até "Services → DHCP Server", navegue até o fim da página e quando encontrar a opção "Additional BOOTP/DHCP Options", clique em "Display Advanced" e adicione as opções conforme a figura:
Linux: Configuração PFSense Firewall com Squid e SquidGuard
As opções ficarão conforme a tabela abaixo:
252	String	http://wpad.seudominio/proxy.pac
252	String	http://wpad.seudominio/wpad.dat
252	String	http://wpad.seudominio/wpad.da

Já estará tudo funcionando, o necessário agora é somente criar regras no Firewall que impeça o acesso à internet sem passar pelo Proxy. Para isso, acesse "Firewall → Rules" e exclua todas as regras já existentes; e inclua, com o botão "ADD" duas novas, preenchendo-as da seguinte forma:

A primeira regra, permite acesso ao DNS, deve permitir passagem pela porta 53 do Firewall, segue abaixo as configurações já preenchidas:
Linux: Configuração PFSense Firewall com Squid e SquidGuard
Linux: Configuração PFSense Firewall com Squid e SquidGuard
Linux: Configuração PFSense Firewall com Squid e SquidGuard
Clique em "Save" no final da página, a próxima regra permite acesso ao servidor de Proxy, que fará a comunicação com a internet. O procedimento de criação da regra é exatamente o mesmo, o que muda são as informações preenchidas, segue as imagens com as informações que devem ser inclusas na regra:
Linux: Configuração PFSense Firewall com Squid e SquidGuard
Linux: Configuração PFSense Firewall com Squid e SquidGuard
Linux: Configuração PFSense Firewall com Squid e SquidGuard
As regras do Firewall devem ficar da seguinte forma:
Linux: Configuração PFSense Firewall com Squid e SquidGuard
Feitas essas configurações, é necessário acessar diretamente o PFSense e em sua interface de linha de comando escolher a opção 11, que reiniciará o servidor WEB para que as configurações feitas entrem em ação. Depois disso, deve-se reiniciar a máquina PFSense e também a máquina cliente.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Embasamento teórico
   3. Metodologia (passo a passo)
   4. SquidGuard
   5. Resultados e discussões
Outros artigos deste autor

O Modelo de Referência OSI

OCS-NG Inventory no Debian 8 (Jessie) - Instalação e Configuração

Leitura recomendada

Implementando prioridade nos serviços com TOS no Iptables

Iptables detalhado

Arno Iptables Firewall (poderoso e simples)

Configurando firewall básico para compartilhar internet

Iptables em modo gráfico

  
Comentários
[1] Comentário enviado por willian.firmino em 08/11/2017 - 00:08h

Utilizando o DNS Forwarder muda alguma coisa no proxy.pac e nas configuraçoes? tenho esse cenário e nao ta funcionando o wpad de jeito nenhum.

[2] Comentário enviado por mendoncawillian em 08/11/2017 - 13:53h

o registro do wpad.seudominio está feito no DNS Forwarder?
--
Atenciosamente
Willian Mendonça
Administrador de Redes
Bacharelando em Engenharia da Computação
willian.ricardo.mendonca@gmail.com
Não esqueça de avaliar a melhor resposta

[3] Comentário enviado por willian.firmino em 10/11/2017 - 12:43h


[2] Comentário enviado por mendoncawillian em 08/11/2017 - 13:53h

o registro do wpad.seudominio está feito no DNS Forwarder?
--
Atenciosamente
Willian Mendonça
Administrador de Redes
Bacharelando em Engenharia da Computação
willian.ricardo.mendonca@gmail.com
Não esqueça de avaliar a melhor resposta


Sim, esta sim.

[4] Comentário enviado por geovane.barreto em 15/12/2017 - 16:26h

Em pesquisa, encontrei que o PFSense está fora ou saindo de linha e que o sucessor é o OPNsense...
Sabe informar se isto é correto ??

[5] Comentário enviado por mendoncawillian em 15/12/2017 - 23:33h

Amigo desconheço qualquer informação sobre a descontinuação do PFSense! Ainda não utilizei o OPNSense, mais qualquer informação que eu conseguir, posto aqui imediatamente. Mais creio que são projetos paralelos, apesar de que desconheço também o OPNSense pois nunca utilizei esse software.

Sobre o amigo acima e o problema do DNSForwarder, por qual motivo está utilizando o DNSForwarder? Pode me detalhar melhor sua topologia?
--
Atenciosamente
Willian Mendonça
Administrador de Redes
Bacharelando em Engenharia da Computação
willian.ricardo.mendonca@gmail.com
Não esqueça de avaliar a melhor resposta

[6] Comentário enviado por MarcelloMiX em 05/01/2018 - 16:12h

Willian,

Excelente artigo, me ajudou a entender um pouco mais sobre o PFSense.
Aqui na empresa temos o PFSense, mas eu apanho muito dele. (Peguei o bonde andando - Já estava configurado e rodando).
Você poderia me indicar onde encontro bons artigos sobre manutenção, liberação de sites, bloqueio entre outros?

Gostaria de bloquear serviços como o spotify, deezer...
Outro problema que estou tendo é que se você deixar de setar o proxy na máquina da pessoa, ele consegue navegar na internet (com velocidade bem reduzida). Não queria de forma alguma que isso ocorresse.

[7] Comentário enviado por mendoncawillian em 05/01/2018 - 19:43h


[6] Comentário enviado por MarcelloMiX em 05/01/2018 - 16:12h

Willian,

Excelente artigo, me ajudou a entender um pouco mais sobre o PFSense.
Aqui na empresa temos o PFSense, mas eu apanho muito dele. (Peguei o bonde andando - Já estava configurado e rodando).
Você poderia me indicar onde encontro bons artigos sobre manutenção, liberação de sites, bloqueio entre outros?

Gostaria de bloquear serviços como o spotify, deezer...
Outro problema que estou tendo é que se você deixar de setar o proxy na máquina da pessoa, ele consegue navegar na internet (com velocidade bem reduzida). Não queria de forma alguma que isso ocorresse.



Marcello,

Sobre ter pego o bonde andando no PFSense, realmente é uma situação complicada ainda mais quando não tem documentação. Eu recomendaria refazer, porém é mais facil falar do que realmente fazer né. Enfim, sobre navegar na internet sem o proxy o navegador, no artigo eu citei uma regra de firewall que resolve isso. Sobre artigos eu desconheço, o que sei aprendi lendo a documentação e alguns canais no youtube por exemplo um canal chamado Cavalcante Treinamentos, tem bastante conteudo sobre o PFSense, e é excelente.

Sobre os bloqueios, é necessário descobrir uma forma de bloquear os acessos entendendo como o serviço funciona, por exemplo, qual acesso o spotify faz para iniciar o streaming e ai no firewall você faz esse bloqueio. Mais se tratando de bloqueios cada caso é um caso.

Se precisar de alguma coisa pode me mandar e-mail e vamos conversando, eu te ajudo no que puder e souber.

[8] Comentário enviado por kram3r em 12/01/2018 - 10:34h


[4] Comentário enviado por geovane.barreto em 15/12/2017 - 16:26h

Em pesquisa, encontrei que o PFSense está fora ou saindo de linha e que o sucessor é o OPNsense...
Sabe informar se isto é correto ??


O OPNsense é um fork do pfSense! para de andar com a pessoa que te falou que o pfSense está morrendo :) ou tira o site do seu bookmarks
para maiores informações, https://docs.opnsense.org/fork/thefork.html

[9] Comentário enviado por brunoras em 11/04/2018 - 01:08h

Willian,
Muito bom o artigo, sou iniciante na área de redes, estou tentando implementar um firewall aqui na minha rede local mais para estudos. Segui o passo a passo pela maquina virtual, mas o cliente windows não está acessando a internet. Consigo logar normalmente no pfsense pelo navegador do cliente, está pegando o ip do dhcp. Tens como dar um help?

Atenciosamente,
Bruno

[10] Comentário enviado por small em 15/07/2019 - 17:44h

Boa tarde.
Sei que o post é antigo, mas foi muito bom.

Configurei o pfsense, squid e squid guard.
Estou usando proxy transparente.
No squid guard eu configurei minha blacklist

Se tento acessar http://dominio-blockeado.com.br ele bloqueia, porém no https ele acessa.

A solução que encontrei era ativar na configuração do SQUID para filtrar https, porém teria que importar o certificado configurado em cada cliente (e isso não é viável pra mim), tem alguma outra solução?

Obrigado antecipadamente.

[11] Comentário enviado por FernandoHS99 em 27/07/2019 - 18:55h

Boa noite, após realizar a configuração e reiniciar o pfsense eu perdi o acesso pela Web, tem alguma dica do que pode ser ?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts