Filtro de DNS - NXFilter
Há diversas alternativas para filtrar a navegação de internet dos usuários. Apesar de não ser oficial, disponibilizamos aqui o procedimento para instalar o NXFilter no Firewall OPNsense.
Introdução
O NXFilter é uma solução de Filtro DNS compatível com plataformas Windows, Linux e FreeBSD.
Compartilhamos aqui este procedimento como uma alternativa ao filtro de websites com Proxy ou Zenarmor.
Por não ser oficial, a administração (telas) do NXFilter é fora da WebGui do firewall, e requer um login+senha próprio.
Além disso é importante notar que o NXFilter é um servidor DNS, e você deve desativar o DNS (Unbound) do OPNsense para conseguir usar o NXFilter. Neste exemplo, nós não iremos desativar o Unbound, mas sim trocar a porta dele e configurar para o NXFilter usá-lo como upstream (encaminhador). Assim teremos o NXFilter fazendo bloqueios e o Unbound fazendo cache/recursão - que é o melhor dos mundos.
Atenção: Este procedimento é para o uso do NXFilter sozinho, ou seja, SEM INTEGRAÇÃO COM O PROXY.
Se você está buscando a configuração do NXFilter para integração com o Proxy, veja a página Web com Proxy Squid.
Limitações
- Para que sejam aplicados os bloqueios/liberações, as máquinas da rede precisam usar o Firewall como servidor DNS;
- A licença Gratuita da lista de bloqueios avançada permite até 30 usuários simultâneos. Mais do que isso é necessário adquirir licenças direto do site;
- O Agente de Integração com Active Directory não funciona em servidores de domínio Linux.
- Importante: Para o firewall usar o NXFilter local como servidor DNS, será necessário desabilitar o IPv6.
Pré-Requisitos
- O firewall NÃO pode estar estar instalado com BIOS e sistema de arquivos ZFS em simultâneo!
- Verificar se está instalado em BIOS com o comando:
sysctl machdep.bootmethod - verificar se está com zfs com o comando:
gpart list | grep -E '\stype'
- Verificar se está instalado em BIOS com o comando:
Recapitulando:
| BOOT | FILESYSTEM | PODE OU NÃO INSTALAR |
|---|---|---|
| UEFI | ZFS | PODE |
| UEFI | UFS | PODE |
| BIOS | UFS | PODE |
| BIOS | ZFS | NÃO PODE INSTALAR |
Instalação
- Acesse o firewall via SSH com o usuário root.
-
Baixar o script instalador para freebsd
-
Editar o arquivo de script substituindo as ocorrências de "pcregrep" por "pcre2grep".
-
Executar o script instalador
-
Alterar a configuração do NXFilter
-
Volte na interface web do firewall e acesse o menu Services → Unbound DNS → General.
- Altere o campo Listen Port de 53 para 5353 e clique em Apply.
-
Iniciar o NXFilter na linha de comandos.
-
Acesse o painel de administração do Web do NXFilter
http://ip-do-firewall:9080/admin. - Faça login usando login e senha “admin” e “admin”.
- Acesse o menu System → Admin.
- Clique na guia “ADMIN PASSWORD”.
- Preencha o campo Current Password com “admin”.
- Insira uma nova senha no campo New Password e repita no campo Confirm Password.
- Clique em Submit.
- Acesse o menu DNS → Setup.
- Preencha o campo Upstream DNS Server #1 com o endereço:
127.0.0.1:5353 - Preencha o campo Upstream DNS Server #2 com o endereço:
1.1.1.3 - Preencha o campo Upstream DNS Server #3 com o endereço:
1.0.0.3 - Clique no botão Submit ao final da Página.
- Acesse o menu Interfaces → Settings. Desmarque a opção “Allow IPv6” e clique em Save ao final da página.
-
Acesse o menu Interfaces → WAN. Desabilite o endereçamento IPv6 da interface e clique em Save ao final da página, e depois em Apply Changes.
📌 Repita a etapa acima para cada link de internet adicional.
-
Acesse o menu System → Settings → General e preencha o primeiro endereço como 127.0.0.1 e clique em Save ao final da página.
- Certifique-se de que na configuração do Serviço DHCP o endereço de servidor DNS está preenchido manualmente. Pode apontar para o servidor AD ou para o IP do firewall.
- Reinicie o Firewall.
Criando um Bloqueio Geral
- Acesse o menu Policy → Policy.
- Clique no ícone para editar a política padrão.
- Clique na guia “Blocked Categories”.
- Selecione as seguintes categorias para serem bloqueadas para todos os usuários:
- Gambling
- Phishing/Malware
- Warez/Torrent
- Drugs
- Game
- Porn
- Dating
- Hacking
- Proxy/Anonymizer
- Suspicious
- Clique no botão Submit ao final da página.
- Tente navegar em algum website e confirme que foi bloqueado o acesso.
- Confirme que o acesso foi bloqueado devidamente.
Habilitando a Mensagem de Bloqueio
A este ponto, estamos assumindo que você já trocou a porta de administração do firewall (WebGui) e também já desabilitou o redirecionamento da porta 80 padrão.
Caso esteja usando a porta 80 para o serviço do NGINX com o WPAD, e queira exibir a tela de bloqueios do NXFilter, haverá um conflito.
Para resolver, você tem 2 alternativas:
- Trocar a porta 80 do WPAD/Nginx para 8080 e usar o NXFilter na porta 80 que ficou livre; ou
- Cadastrar um novo Location no Nginx fazendo apontamento para o servidor web interno do NXFilter.
Para estar de acordo com as configurações anteriormente definidas, iremos cadastrar um novo Location no Nginx para as páginas de bloqueio do NXFilter.
- Acesse o menu Services → Nginx → Configuration.
- Acesse a guia Upstream → Upstream Server.
- Clique no botão “+ Add” para adicionar um novo Upstream Server da seguinte forma:
- Description: NXFilter
- Server: 127.0.0.1
- Port: 9080
- Server Priority: 1
- Clique em Save.
- Acesse a guia Upstream → Upstream.
- Clique no botão “+ Add” para adicionar um novo Upstream da seguinte forma:
- Description: NXFilter
- Server Entries: NXFilter
- Clique em Save
- Acesse o menu Services → Nginx → Configuration.
- Acesse a guia HTTP(S) → Location.
- Clique no botão “+ Add” para adicionar um novo Location com os seguintes dados:
- Description: NXFilter
- URL Pattern: /
- Upstream Servers: NXFilter
- Clique em Save.
- Acesse a guia HTTP(S) → HTTP Server.
- Edite o HTTP Server já existente da porta 80.
- No campo Locations selecione também o NXFilter.
- Clique em Save.
- Clique no botão de seta circular no canto inferior direito da tela para aplicar.
- Volte no Computador e teste novamente o acesso a algum website bloqueado.
Próximos Passos
- Configure o Serviço de DHCP para enviar para as máquinas o IP do próprio firewall como DNS.
- Configure a Integração com o Active Directory usando os métodos de Autenticação: https://www.nxfilter.org/tutorial/c-single-sign-on-methods.php.
- Explore os Relatórios (Logging → DNS Requests e Report → Daily) no NXFilter.
- Explorar a possibilidade de licenciamento do NXFilter para redes com mais de 30 usuários - https://nxfilter.org/p4/license-shop/.