Configuração Squid · 8 min read · Nov 06, 2025
Debian Squeeze, Squid, Autenticação Kerberos/LDAP, Integração com Active Directory e Cyfin Reporter - Página 2
Configurar Squid
Para usar nosso acesso e autorizações LDAP redundantes via Grupos de Segurança no Active Directory, precisamos criar uma conta com permissão para consultar atributos do Active Directory. O Squid usará essa conta para fornecer acesso aos usuários.
No Active Directory, crie um usuário chamado “Squid Proxy” com o nome de login [email protected] e anote a senha, substituindo a palavra “squidpass” abaixo pela sua senha.
Certifique-se de que o seguinte seja verdadeiro ao criar a conta.
- O usuário deve alterar a senha no próximo login Desmarcado
- O usuário não pode alterar a senha Marcado
- A senha nunca expira Marcado
- A conta está desativada Desmarcado
Por padrão, a conta squid não poderá consultar o atributo “memberOf” no AD. Selecione o nível superior do seu domínio do Active Directory em Usuários e Computadores do Active Directory, clique com o botão direito nele e escolha propriedades, aba Segurança, adicione o usuário squid e dê a ele permissões de leitura (deve acontecer por padrão) e permita que ele leia “Este Objeto e todos os objetos filhos” acessando as opções Avançadas.
Crie os seguintes Grupos de Segurança com descrições no Active Directory e adicione usuários aos grupos relevantes - se um usuário não fizer parte de um grupo, ele só poderá acessar sites na ACL whitelistsites.
Os membros de Internet Users não poderão acessar sites na ACL blocksites.
- Internet Users | Descrição: Membros deste grupo podem acessar a Internet. O acesso é registrado com restrições de site
- Internet Users Full Log | Descrição: Membros deste grupo podem acessar a Internet. O acesso é registrado com acesso completo ao site
- Internet Users Full NoLog | Descrição: Membros deste grupo podem acessar a Internet. O acesso não é registrado com acesso completo ao site
Em seguida, configuramos o squid e seus arquivos de configuração associados.
Inicialização do squid
Adicione a seguinte configuração a /etc/default/squid3 (este arquivo não existe por padrão).
vi /etc/default/squid3KRB5_KTNAME=/etc/squid3/PROXY.keytab
export KRB5_KTNAMEsquid.conf
cp /etc/squid3/squid.conf /etc/squid3/squid.conf.default
cat /dev/null > /etc/squid3/squid.conf
vi /etc/squid3/squid.conf
Atualize a variável do gerente de cache com o endereço de e-mail da pessoa responsável pelo proxy.
Estude e atualize o seguinte texto cuidadosamente, substituindo o conteúdo de exemplo (destacado) pela configuração da sua rede - se você errar algo, seu proxy não funcionará.
####### /etc/squid3/squid.conf Arquivo de Configuração #######
####### gerente de cache
cache_mgr [email protected]
####### autenticação kerberos
auth_param negotiate program /usr/lib/squid3/squid_kerb_auth -d -s HTTP/squidproxy.example.local
auth_param negotiate children 10
auth_param negotiate keep_alive on
####### fornecer acesso via ldap para clientes não autenticados via kerberos
auth_param basic program /usr/lib/squid3/squid_ldap_auth -R \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f sAMAccountName=%s \
-h domaincontroller1.example.local
auth_param basic children 10
auth_param basic realm Internet Proxy
auth_param basic credentialsttl 1 minute
####### autorizações ldap
# acesso restrito ao proxy registrado
external_acl_type internet_users %LOGIN /usr/lib/squid3/squid_ldap_group -R -K \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users,ou=Security Groups,ou=MyBusiness,dc=example,dc=local))" \
-h domaincontroller1.example.local
# acesso total ao proxy sem registro
external_acl_type internet_users_full_nolog %LOGIN /usr/lib/squid3/squid_ldap_group -R -K \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users Full NoLog,ou=Security Groups,ou=MyBusiness,dc=example,dc=local))" \
-h domaincontroller1.example.local
# acesso total ao proxy registrado
external_acl_type internet_users_full_log %LOGIN /usr/lib/squid3/squid_ldap_group -R -K \
-b "dc=example,dc=local" \
-D [email protected] \
-w "squidpass" \
-f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=Internet Users Full Log,ou=Security Groups,ou=MyBusiness,dc=example,dc=local))" \
-h domaincontroller1.example.local
####### acl para autenticação do proxy e autorizações ldap
acl auth proxy_auth REQUIRED
# formato "acl, aclname, acltype, acltypename, activedirectorygroup"
acl RestrictedAccessLog external internet_users Internet\ Users
acl FullAccessNoLog external internet_users_full_nolog Internet\ Users\ Full\ NoLog
acl FullAccessLog external internet_users_full_log Internet\ Users\ Full\ Log
acl whitelistsites url_regex -i "/etc/squid3/whitelistsites.txt"
acl blockedsites url_regex -i "/etc/squid3/blockedsites.txt"
####### padrões do squid
acl manager proto cache_object
acl localhost src 127.0.0.1/32 ::1
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
acl SSL_ports port 443
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 # https
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 1025-65535 # portas não registradas
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # http multilingue
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
####### impor regras de autenticação: a ordem das regras é importante para os níveis de autorização
no_cache deny whitelistsites
http_access allow whitelistsites
http_access allow FullAccessNoLog auth
http_access allow FullAccessLog auth
http_access deny blockedsites
http_access allow RestrictedAccessLog auth
####### registro
# não registre whitelistsites, FullAccessNoLog
access_log /var/log/squid3/access.log squid !whitelistsites !FullAccessNoLog
####### padrões do squid
http_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
coredump_dir /var/spool/squid3
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
touch /etc/squid3/whitelistsites.txt
touch /etc/squid3/blockedsites.txt
invoke-rc.d squid3 restart
Configuração Automática do Proxy
Instale o Apache2:
apt-get install apache2Adicione uma configuração ao Apache2 para identificar o formato do arquivo do script de configuração do proxy.
vi /etc/apache2/conf.d/wpad.datAddType application/x-ns-proxy-autoconfig .datCrie nosso arquivo wpad.dat usado pelos navegadores da web para configuração:
vi /var/www/wpad.datAltere a linha que começa com $proxy para o FQDN do seu proxy (texto destacado).
function FindProxyForURL(url, host)
{
$proxy = "PROXY squidproxy.example.local:3128";
// URLs dentro desta rede são acessadas diretamente
if (isInNet(host, "192.168.0.0", "255.255.0.0")) {return "DIRECT";}
if (isInNet(host, "172.16.0.0", "255.240.0.0")) {return "DIRECT";}
if (isInNet(host, "10.0.0.0", "255.0.0.0")) {return "DIRECT";}
if (isInNet(host, "127.0.0.0", "255.0.0.0")) {return "DIRECT";}
//Retornar proxy para TUDO o mais
else return $proxy;
}
Reinicie o Apache2:
invoke-rc.d apache2 restartEntradas DNS WPAD
Aviso: Uma vez que você adicionar a seguinte entrada DNS, o proxy se tornará ativo. Pare neste ponto e verifique.
- Que os navegadores dos clientes estão usando Autenticação Integrada do Windows
- Que você adicionou todos os usuários aos grupos de segurança relevantes de Internet Users no AD
- Que todos os navegadores dos clientes estão configurados para detectar automaticamente as configurações do proxy para acesso à internet. Usar política de grupo é uma opção sensata aqui ou talvez restringir o acesso HTTP de saída no seu firewall para eliminar usuários sem configuração de auto-detecção.
Teste o acesso com o Internet Explorer marcando “Usar script de configuração automática” e insira http://squidproxy.example.local/wpad.dat (mude o FQDN do proxy para o seu, claro) no campo de endereço e, em seguida, acesse qualquer site. Boa sorte, espero que funcione! Pare aqui e faça a solução de problemas se não estiver funcionando ou você acabará com muitos usuários irritados!
Adicione um registro CNAME no DNS para apontar wpad.example.local para squidproxy.example.local
Nota: O servidor 2008 vem com uma medida de segurança que bloqueia wpad, eu também vi isso no servidor 2003
Para remover a restrição DNS wpad, mas deixar a lista de bloqueio habilitada, execute o Regedit e abra o seguinte local.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters\GlobalQueryBlockList
O servidor 2008 provavelmente terá as entradas de WPAD e ISATAP. Remova a entrada WPAD e reinicie o serviço DNS para que ele recarregue a lista de bloqueio. Você deve então ser capaz de resolver wpad.example.local
Em seguida, configure seu navegador para usar a configuração automática do proxy. Todos os navegadores modernos seguem o padrão wpad e tentarão procurar http://wpad.example.local/wpad.dat para suas informações de configuração.
Mais informações sobre WPAD podem ser encontradas aqui: http://wiki.squid-cache.org/Technology/WPAD/DNS
Verifique seus logs do squid para ver se os navegadores estão usando o proxy.
Opcional: Instalar Cyphin Reporter
Com os proxies que operamos, precisamos de relatórios decentes. Programas como sarg, mysar etc. não estavam atendendo como opções de relatórios decentes para monitorar o uso da internet pelos usuários. O Cyfin Reporter da Wavecrest provou ser um sistema de relatórios muito capaz e intuitivo, com muitos recursos.
É assim que configurar e instalar o Cyfin Reporter com squid no Debian Squeeze.
A versão mais recente do Cyfin Reporter no momento da escrita é a versão 8.5. Verifique os seguintes locais dependendo da sua arquitetura antes de baixar e atualizar os seguintes comandos onde necessário.
http://downloads.wavecrest.net/release/cyfin/linux32/
http://downloads.wavecrest.net/release/cyfin/linux64/
Então sua instalação pode parecer algo assim…
cd /usr/local/src/
wget “http://downloads.wavecrest.net/release/cyfin/linux32/v850/c850linux32.bin.gz”
gunzip c850linux32.bin.gz
chmod +x c850linux32.bin
N.B O programa Install Anywhere interfere com PS1, então mudar isso para o shell atual resolve o problema.
export PS1=”>”
./c850linux32.bin
Quando solicitado sobre o caminho de instalação, insira-o como
* DIGITE UM CAMINHO ABSOLUTO, OU PRESSIONE PARA ACEITAR O PADRÃO
: /opt/wavecrest/cyfin*Aceite o restante como padrão.
Precisamos criar um script de inicialização para iniciar e parar o cyfin da maneira Debian.
vi /etc/init.d/cyfin#! /bin/sh
### BEGIN INIT INFO
# Provides: cyfin
# Required-Start: $network $remote_fs
# Required-Stop: $network $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: script de inicialização do cyfin reporter
### END INIT INFO
NAME=cyfin
SCRIPTNAME=/etc/init.d/$NAME
# Carregar a configuração VERBOSE e outras variáveis rcS
. /lib/init/vars.sh
# Definir funções de log_* do LSB.
# Depender do lsb-base (>= 3.2-14) para garantir que este arquivo esteja presente
# e status_of_proc esteja funcionando.
. /lib/lsb/init-functions
case "$1" in
start) sh /opt/wavecrest/cyfin/cyfin start
;;
stop) sh /opt/wavecrest/cyfin/cyfin stop
;;
status) sh /opt/wavecrest/cyfin/cyfin start
;;
restart) sh /opt/wavecrest/cyfin/cyfin restart
;;
*) echo "Uso: $SCRIPTNAME {start|stop|status|restart}" >&2
exit 3
;;
esac
:chmod +x /etc/init.d/cyfin
update-rc.d cyfin defaults
Configurar o Cyfin Reporter exigiria um novo tutorial, então aqui estão os básicos.
Acesse a GUI de configuração via http://squidproxy.example.local:7999. O login por padrão é “admin” para o nome de usuário e senha.
- Use a ajuda na GUI, pois a documentação é muito boa.
- Verifique as FAQs em http://www.wavecrest.net/support/cyfin/reporter/faqs.html
- Use o menu Início Rápido para configurar o básico, que é bastante simples.
- Ative o Gerenciador de Dados para importar arquivos de log e configurar uma programação de importação de arquivos de log.
- use a integração com o Active Directory, você pode usar a conta squid criada para autenticação LDAP para também extrair informações do Active Directory.
- Configure uma programação para importar listas de usuários do Active Directory.
- Você deve garantir que seus usuários façam parte de um grupo de segurança ou grupo de distribuição no Active Directory e adicionar esses grupos ao Cyfin Reporter.
- Atribua o gerente dos departamentos como o destinatário dos relatórios por e-mail.
- Configure contas de acesso para funcionários com permissão para visualizar os logs.
Se você usar o Cyfin Reporter, precisará contabilizar o uso adicional de memória, então certifique-se de alocar recursos suficientes para executá-lo.
Isso conclui o tutorial. Espero que ajude.
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.