Pesquisar este blog

quarta-feira, 23 de outubro de 2019

PFSense Firewall com Squid e SquidGuard

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.

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.

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.
Clique no botão "Save", que se encontra no final da página.
É 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.
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:
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:
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:
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:
As regras do Firewall devem ficar da seguinte forma:
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.


Referência: https://www.vivaolinux.com.br/artigo/PFSense-Firewall-com-Squid-e-SquidGuard?pagina=3
Retirado em: 23/10/2019