Guia de tecnologias

Configurar Squid e DansGuardian com NTLM e Webmin

7 min read Redes Atualizado 11 Oct 2025
Proxy Squid + DansGuardian com NTLM
Proxy Squid + DansGuardian com NTLM

Configuração passo a passo para integrar o proxy Squid com o filtro web DansGuardian, autenticação NTLM (via winbind/ntlm_auth), redirecionamento transparente com ipmasq e gestão pelo Webmin. Inclui scripts de permissão, exemplos de configuração, checklist de testes e dicas de segurança e privacidade.

Visão geral

Este guia descreve como configurar um proxy Squid em conjunto com o DansGuardian para filtragem de conteúdo, habilitar autenticação NTLM (para usuários de domínio) e usar ipmasq para proxy transparente. Também cobre ajustes de permissões do winbind e a instalação do módulo DansGuardian para Webmin.

Definição rápida: NTLM é um protocolo de autenticação usado em ambientes Windows para autenticar usuários do domínio; winbind integra Samba com o Kerberos/Active Directory.

Pré-requisitos

  • A máquina executa Linux (ex.: Ubuntu/Debian).
  • Squid, DansGuardian, Samba/winbind e Webmin instalados (ou disponíveis via apt).
  • A máquina está ingressada no domínio (opcional, mas necessário para autenticação automática NTLM).
  • Acesso root ou sudo.

Importante: faça backup dos arquivos de configuração antes de editar.

1) Configurar o servidor Squid

Faça um backup do arquivo de configuração e edite-o:

cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
nano -c /etc/squid/squid.conf

Altere as linhas indicadas (os números de linha são do exemplo original):

  • Linha 73: http_port 127.0.0.1:3128 transparent
  • Linha 74: http_port 8080
  • Linha 593: cache_peer 127.0.0.1 parent 8081 0 no-query login=*:nopassword

Descomente e atualize os auxiliares NTLM conforme indicado (linhas do exemplo):

  • Descomente as linhas 1791 até 1783 e substitua por /usr/bin/ntlm_auth –helper-protocol=squid-2.5-ntlmssp
  • Descomente as linhas 1800 até 1803 e substitua por /usr/bin/ntlm_auth –helper-protocol=squid-2.5-basic

Outras alterações descritas no arquivo:

  • Linha 2449: acl ntlm_auth proxy_auth REQUIRED
  • Linha 2579: http_access allow ntlm_auth
  • Linha 3161: forwarded_for off

Salve o arquivo.

Importante: a diretiva forwarded_for off evita que o Squid encaminhe o IP interno do cliente para os sites visitados. Se permanecer no padrão (on), seu IP interno poderá ser exposto a sites externos.

2) Ajuste de permissões do winbind (winbindd_privileged)

O Squid/ntlm_auth precisa acessar /var/run/samba/winbindd_privileged. Podemos ajustar permissões no boot com um simples script que define grupo e permissão para o usuário/proxy. Crie e edite /etc/init.d/winbind-ch.sh e cole o conteúdo abaixo:

#!/bin/sh
#set -x
WINBINDD_PRIVILEGED=/var/run/samba/winbindd_privileged
chmodgrp() {
chgrp proxy $WINBINDD_PRIVILEGED || return 1
chmod g+w $WINBINDD_PRIVILEGED || return 1
}
case "$1" in
start)
chmodgrp
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac
#EOF

Em seguida registre o script para executar no boot:

update-rc.d winbind-ch.sh start 21 2 3 4 5 .

Nota: as permissões podem ser resetadas após reboot se serviços reaplicarem políticas; esse script garante correção a cada inicialização.

3) Configurar o DansGuardian

Edite /etc/dansguardian/dansguardian.conf e comente a linha 3.
Vá até a linha 62 e altere a porta 8080 para 8081.
Altere filtergroups = 1 (linha 102) para filtergroups = 2 e crie o arquivo do segundo grupo:

cp /etc/dansguardian/dansguardianf1.conf /etc/dansguardian/dansguardianf2.conf
nano -c /etc/dansguardian/dansguardianf2.conf

No novo arquivo, vá até a linha 29 e altere para:

naughtynesslimit = 100

Importante: definições de antivírus (AV) frequentemente bloqueiam atualizações automáticas quando escaneadas. Exclua listas de definições AV das verificações do filtro para evitar falsos positivos.

Edite /etc/dansguardian/exceptionvirussitelist e adicione o host do servidor de atualizações do seu AV, por exemplo:

activeupdate.trendmicro.com

Você também pode adicionar o domínio à lista de exceções do site:

etc/dansguardian/exceptionsitelist (adicione: trendmicro.com)

Reinicie o DansGuardian:

/etc/init.d/dansguardian restart

4) Configurar firewall e proxy transparente com ipmasq

Instale o ipmasq:

apt-get install ipmasq -y

Para habilitar proxy transparente (redirecionar todo HTTP para a porta 8081 do DansGuardian), copie o exemplo de regra:

cp /usr/share/doc/ipmasq/examples/basics/I89tproxy.rul /etc/ipmasq/rules/I89tproxy.rul

Se precisar encaminhar portas para um servidor interno (DNAT), veja o exemplo:

/usr/share/doc/ipmasq/examples/dnat/C50dnat.rul

Dica: revise as regras geradas antes de ativar em produção. Faça testes em janela de manutenção.

5) Instalar módulo DansGuardian no Webmin

Abra o Webmin em: https://192.168.1.1:10000/ e entre como root. Navegue: Webmin > Webmin Configuration > Webmin Modules. Selecione “From ftp or http URL” e cole:

http://internap.dl.sourceforge.net/sourceforge/dgwebminmodule/dg-0.5.10-pr5.wbm

Clique em Install Module.

6) Testes finais e verificação

  1. Reinicie a máquina para aplicar o script de permissão e as configurações.
  2. Configure um navegador para usar o proxy no IP da máquina com porta 8080 (proxy HTTP).
  3. Se o computador estiver ingressado no domínio e NTLM funcionar, o login deve ocorrer automaticamente.
  4. Caso o NTLM falhe no Internet Explorer, insira domainname\username no prompt de autenticação.

Teste adicional: a partir de um computador que NÃO está no domínio e que não usa proxy, acesse um site e verifique os logs do DansGuardian via Webmin. O log deverá mostrar o usuário do computador do domínio e o site visitado.

Observação: se você observar que o IP do computador de domínio aparece como 127.0.0.1 nos logs de um cliente sem domínio, isso é esperado no desenho: o cliente de domínio passa por Squid → DansGuardian → Squid (loop local), enquanto o cliente não-domínio vai direto para DansGuardian → Squid.

Se algo falhar, verifique /var/log/syslog, /var/log/squid/cache.log e os logs do DansGuardian para entradas de erro.

Solução de problemas comum

  • ntlm_auth não encontrado: instale pacote winbind/samba e verifique caminho exato de ntlm_auth.
  • Permissões de /var/run/samba/winbindd_privileged: confira se o script em /etc/init.d é executado no boot e se o grupo “proxy” existe.
  • Proxy transparente não redireciona: reveja regras do iptables/ipmasq e confirme que tráfego HTTP está sendo capturado (porta 80).
  • Autenticação falhando em alguns navegadores: verifique políticas de segurança/IE e se a máquina cliente está no domínio.

Abordagens alternativas

  • Em vez de ipmasq, implemente regras iptables diretamente (mais controle, porém menos amigável para iniciantes).
  • Substituir DansGuardian por outro filtro (ex.: Squid:clamav/ufdbGuard, or commercial appliances) quando necessário suporte a HTTPS granular ou inspeção profunda.
  • Usar autenticação via Kerberos/SPNEGO para SSO completo em navegadores modernos (mais seguro que NTLM) — requer configuração adicional do KDC/SPNs.

Modelo mental (heurística)

Pense na cadeia de tráfego assim:

Cliente → (redir via ipmasq) → DansGuardian (porta 8081) → Squid (127.0.0.1:3128/8080) → Internet

  • Squid: cache e autenticação;
  • DansGuardian: filtragem de conteúdo;
  • winbind/ntlm_auth: valida credenciais do domínio.

Checklist por função

Administrador de rede:

  • Backup de /etc/squid/squid.conf
  • Ajustar linhas de porta e cache_peer
  • Verificar ntlm_auth e winbind
  • Registrar script de permissão e testar no boot
  • Aplicar regras ipmasq e validar redirecionamento

Helpdesk / Suporte:

  • Testar acesso web em máquina de domínio (SSO)
  • Testar acesso em máquina sem domínio (fluxo sem SSO)
  • Coletar logs (/var/log/syslog, DansGuardian e Squid)

Segurança / Compliance:

  • Confirmar forwarded_for off para não vazar IPs internos
  • Verificar listas de exceção para atualizações AV
  • Documentar policy de filtragem e lista de exceções

Playbook de implantação (passos rápidos)

  1. Fazer backup das configurações.
  2. Alterar Squid conforme instruções e testar config (squid -k parse quando aplicável).
  3. Implementar script winbind-ch.sh e registrar no init.
  4. Ajustar DansGuardian e criar grupos extras.
  5. Copiar regras ipmasq e ativar.
  6. Instalar módulo Webmin e testar interface.
  7. Reiniciar e executar testes de login e navegação.
  8. Coletar logs e ajustar regras/listas conforme necessário.

Segurança e privacidade

  • forwarded_for off reduz vazamento de IPs internos, mas não substitui controles de privacidade em nível de aplicação.
  • Registre apenas o necessário nos logs; aplique políticas de retenção e acesso controlado.
  • Se processar dados pessoais, avalie requisitos de privacidade/GDPR: registre base legal, prazo de retenção e controles de acesso.

Critérios de aceitação

  • Usuário de domínio consegue navegar com autenticação automática NTLM.
  • Máquina sem domínio navega via DansGuardian/Squid sem autenticação.
  • Atualizações de AV citadas nas exceções não são bloqueadas.
  • Logs não expõem IPs internos (forwarded_for off ativo).

Fatores de quando essa solução pode falhar

  • Ambientes onde o tráfego HTTPS precisa de inspeção de conteúdo e certificados de interceptação (MitM) — DansGuardian + Squid em HTTP não resolve inspeção HTTPS sem configuração adicional.
  • Políticas de segurança que proíbem NTLM ou exigem Kerberos/SPNEGO.
  • Infraestruturas cloud ou segmentadas onde redirecionamento transparente não é viável.

Caixa de referência rápida (portas e caminhos)

  • Squid: 3128 (loopback), 8080 (proxy externo)
  • DansGuardian: 8081 (porta de filtragem interna)
  • winbindd_privileged: /var/run/samba/winbindd_privileged
  • Script de permissão: /etc/init.d/winbind-ch.sh
  • Regras ipmasq: /etc/ipmasq/rules/I89tproxy.rul

Links úteis

Resumo

Siga os passos de backup, edição do Squid, ajuste de permissões do winbind, configuração do DansGuardian, aplicação de regras ipmasq e instalação do módulo Webmin. Teste com máquinas de domínio e não-domínio, verifique logs e ajuste listas de exceção para atualizações de AV. Mantenha políticas de retenção e segurança dos logs.

Autor
Edição

Materiais semelhantes

Chave de segurança Android para login Google no iOS
Segurança

Chave de segurança Android para login Google no iOS

Instalar ADB e Fastboot no Macbook
Tutoriais

Instalar ADB e Fastboot no Macbook

Corrigir reparação pendente no Windows
Windows

Corrigir reparação pendente no Windows

Criar app Android grátis sem programar
Desenvolvimento Mobile

Criar app Android grátis sem programar

Instalar barra lateral no Windows 11/10
Produtividade

Instalar barra lateral no Windows 11/10

Recuperar arquivos excluídos no Teams
Produtividade

Recuperar arquivos excluídos no Teams