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/squid3
KRB5_KTNAME=/etc/squid3/PROXY.keytab
export KRB5_KTNAME

squid.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 apache2

Adicione uma configuração ao Apache2 para identificar o formato do arquivo do script de configuração do proxy.

vi /etc/apache2/conf.d/wpad.dat
AddType    application/x-ns-proxy-autoconfig .dat

Crie nosso arquivo wpad.dat usado pelos navegadores da web para configuração:

vi /var/www/wpad.dat

Altere 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 restart

Entradas DNS WPAD

Aviso: Uma vez que você adicionar a seguinte entrada DNS, o proxy se tornará ativo. Pare neste ponto e verifique.

  1. Que os navegadores dos clientes estão usando Autenticação Integrada do Windows
  2. Que você adicionou todos os usuários aos grupos de segurança relevantes de Internet Users no AD
  3. 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.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.