Este tutorial explica como configurar o Squid em um servidor Linux integrado ao Active Directory (AD), com autenticação por grupos de usuários e relatórios gerados pelo SARG.
Requisitos
Servidor Linux (Debian ou Ubuntu)
Servidor Active Directory (AD) funcional
Squid instalado
SARG para relatórios
Instalação de Pacotes Necessários
sudo apt update
sudo apt install squid winbind samba krb5-user libnss-winbind libpam-winbind ntp sarg apache2 -y
Durante a instalação do krb5-user
, informe o nome do seu realm (ex: AD.EMPRESA.LAB
).
Configuração do Kerberos
Edite /etc/krb5.conf
:
[libdefaults]
default_realm = AD.EMPRESA.LAB
dns_lookup_realm = false
dns_lookup_kdc = true
[realms]
AD.EMPRESA.LAB = {
kdc = ad.empresa.lab
admin_server = ad.empresa.lab
}
Teste:
kinit administrator
Configuração do Samba e Winbind
Edite /etc/samba/smb.conf
:
[global]
workgroup = ADMD
security = ads
realm = AD.EMPRESA.LAB
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
idmap config * : backend = tdb
idmap config * : range = 10000-20000
Reinicie os serviços:
systemctl restart smbd nmbd winbind
Ingressar no Domínio
net ads join -U administrator
Verifique:
wbinfo -u # Lista de usuários
wbinfo -g # Lista de grupos
Configuração do Squid
Edite /etc/squid/squid.conf
:
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 10
auth_param ntlm keep_alive on
acl autenticados proxy_auth REQUIRED
external_acl_type wbinfo_group_helper children-startup=1 children-max=10 %LOGIN /usr/lib/squid/ext_wbinfo_group_acl
acl grupo_bloqueado external wbinfo_group_helper ADMD\\bloqueado
acl grupo_restrito external wbinfo_group_helper ADMD\\restrito
acl grupo_diretoria external wbinfo_group_helper ADMD\\diretoria
acl url_liberados dstdomain "/etc/squid/url_liberados"
acl url_restrito dstdomain "/etc/squid/url_restrito"
acl url_liberados_geral dstdomain "/etc/squid/url_liberados_geral"
http_access allow url_liberados_geral
http_access deny grupo_bloqueado !url_liberados
http_access deny grupo_restrito url_restrito
http_access deny grupo_diretoria url_restrito
http_access allow autenticados
http_access deny all
access_log /var/log/squid/access.log squid
Reinicie:
systemctl restart squid
Crie as Listas de Domínios
sudo mkdir -p /etc/squid
sudo nano /etc/squid/url_liberados
sudo nano /etc/squid/url_restrito
sudo nano /etc/squid/url_liberados_geral
Instalação e Configuração do SARG
sudo apt install sarg apache2 -y
sudo mkdir -p /var/www/html/sarg
sudo chown -R www-data:www-data /var/www/html/sarg
Edite /etc/sarg/sarg.conf
:
access_log /var/log/squid/access.log
output_dir /var/www/html/sarg
overwrite_report yes
user_ip no
topsites_num 50
date_format e
Gere o relatório:
sudo LC_ALL=C sarg -d today
Acesse em: http://IP_DO_SERVIDOR/sarg
Protegendo o SARG com Senha
sudo htpasswd -c /etc/sarg/.htpasswd sargadmin
Crie /etc/apache2/conf-available/sarg.conf
:
<Directory /var/www/html/sarg>
AuthType Basic
AuthName "Relatório SARG Protegido"
AuthUserFile /etc/sarg/.htpasswd
Require valid-user
</Directory>
sudo a2enconf sarg
sudo systemctl restart apache2
Conclusão
Agora o Squid está:
Integrado ao AD
Autenticando por grupo de usuários
Gerando relatórios com o SARG
Protegido por senha
Ideal para ambientes corporativos que precisam de rastreabilidade e controle de acesso web.