Capítulo 35 – NXFilter para Integração com o Proxy Squid
Introdução
O NXFilter é uma poderosa solução de filtragem de conteúdo baseada em DNS, compatível com Windows, Linux e FreeBSD. Embora não seja um componente oficial do OPNsense, ele pode ser instalado e integrado ao Squid Web Proxy, permitindo que o proxy utilize o banco de dados de categorização de websites do NXFilter.
Essa integração amplia as capacidades do Squid, permitindo identificar e aplicar políticas de acesso baseadas em categorias de sites (como redes sociais, entretenimento, pornografia, etc.), sem depender de listas manuais.
Atenção
A administração do NXFilter ocorre fora da interface WebGUI do OPNsense, utilizando um painel web próprio, com usuário e senha independentes.
Licenciamento NXFilter
A categorização que usaremos aqui é fornecida por 30 dias como teste (trial) e após o vencimento deste período, será necessário licenciar o NXFilter para uso das categorias "Jahaslist", que além de contar com mais de 6 milhões de domínios pré-classificados, faz também a classificação de novos domínios à medida que são acessados.
Visão Geral do Processo
- Validar a compatibilidade do sistema (BIOS e filesystem).
- Baixar e preparar o instalador do NXFilter para FreeBSD.
- Executar a instalação e aplicar correções de compatibilidade.
- Configurar os parâmetros de rede e diretórios do NXFilter.
- Acessar o painel web de administração e ajustar as configurações iniciais.
- Definir servidores DNS upstream e credenciais de acesso administrativo.
Pré-Requisitos
Antes da instalação, é necessário verificar a compatibilidade do ambiente. O NXFilter não pode ser instalado em sistemas OPNsense que utilizem BIOS com ZFS simultaneamente.
Tabela de Compatibilidade
| Boot Mode | Filesystem | Pode Instalar NXFilter |
|---|---|---|
| UEFI | ZFS | ✅ Pode |
| UEFI | UFS | ✅ Pode |
| BIOS | UFS | ✅ Pode |
| BIOS | ZFS | ❌ Não pode instalar |
Verificando o Ambiente
Acesse o firewall via SSH (usuário root) e execute os comandos abaixo:
# Verifica se o sistema está em modo BIOS ou UEFI
sysctl machdep.bootmethod
# Verifica o tipo de filesystem utilizado
gpart list | grep -E '\stype'
Exemplo de saída aceitável:
Se o resultado indicar BIOS + UFS, UEFI + UFS ou UEFI + ZFS, o ambiente está apto para prosseguir.
Incompatibilidade
Caso o sistema utilize BIOS + ZFS, interrompa a instalação. O NXFilter não funcionará corretamente neste cenário.
Instalação do NXFilter
1. Acessar o Sistema via SSH
Conecte-se ao firewall utilizando o usuário root.
2. Baixar o Script Instalador
curl -L -O 'https://raw.githubusercontent.com/DeepWoods/nxfilter-pfsense/master/install-nxfilter.sh'
3. Corrigir o Script de Instalação
Edite o script substituindo todas as ocorrências de pcregrep por pcre2grep.
Motivo da Correção
As versões recentes do FreeBSD utilizam pcre2grep no lugar do antigo pcregrep, por isso é necessário o ajuste antes da execução.
4. Executar o Instalador
Quando o instalador solicitar confirmação da versão, pressione Enter para continuar. Aguarde até que a instalação seja concluída.
Configuração do NXFilter
1. Criar o Arquivo de Configuração
Após a instalação, execute o comando abaixo para gerar o conteúdo do arquivo de configuração (cfg.properties):
cat << EOF > /usr/local/nxfilter/conf/cfg.properties
listen_ip = 0.0.0.0
http_port = 9080
https_port = 9081
dns_port = 5353
start_tomcat = 1
cluster_mode = 0
master_ip =
slave_ip =
blacklist_type = 5
www_dir = guipack/sandwatch
EOF
2. Reiniciar o Firewall
Acessando o Painel Web do NXFilter
Após reiniciar o sistema:
-
Abra um navegador e acesse o endereço: http://IP-do-firewall:9080/admin
-
Faça login utilizando as credenciais padrão:
| Campo | Valor |
|---|---|
| Username | admin |
| Password | admin |
Importante
Caso não consiga acessar o painel do NXFilter, verifique pelos logs se o acesso na porta 9080 foi bloqueado, e faça a liberação caso tenha sido esse o caso.
Configuração Inicial do NXFilter
1. Alterar Senha do Administrador
- No painel, vá até System → Admin.
- Clique na aba ADMIN PASSWORD.
-
Preencha os campos:
-
Current Password:
admin - New Password: (defina uma nova senha segura)
- Confirm Password: (repita a nova senha)
- Clique em Submit para salvar.
2. Configurar Servidores DNS Upstream
- Acesse DNS → Setup.
-
Configure os seguintes valores:
Campo Valor Upstream DNS Server #2 1.1.1.3Upstream DNS Server #3 1.0.0.3 -
Clique em Submit ao final da página.
Esses servidores (Cloudflare Family) ajudam a filtrar malware e conteúdo adulto, complementando a proteção do NXFilter.
Integração com o Squid Proxy
Com o NXFilter ativo, o Squid pode ser configurado para consultar suas categorias de sites, permitindo a aplicação de políticas de bloqueio baseadas em classificação.
Em versões recentes do OPNsense:
- A integração é feita por meio do plugin os-proxy-user-acl, que será instalado no próximo passo.
- Basta selecionar a categoria desejada quando editar a Policy, tanto para liberação quanto para bloqueio dos acessos.
Importante
Essa integração amplia a precisão da filtragem, permitindo:
- Decisões automáticas por categoria e não mais por listas manuais ou desatualizadas
- Centralização das categorias de bloqueio
- Possibilidade de personalizar as categorias manualmente
- Mesmos bloqueios a nível DNS e também no Proxy
- O NXFilter também permite a integração com o Active Directory (windows) para autenticação transparente, sem solicitar login+senha ao usuário.
Conclusão
A instalação do NXFilter no OPNsense fornece um mecanismo adicional de categorização de conteúdo, fortalecendo a política de navegação e integrando-se de forma eficiente ao Squid Proxy.
Apesar de ser uma solução não oficial, sua adoção controlada em ambientes de teste ou em clientes que demandam filtragem mais granular pode agregar grande valor ao controle de acesso web.
Em conjunto, essas ferramentas proporcionam segurança, visibilidade e governança sobre o tráfego de Internet corporativo.