Servidor proxy autenticado (Squid + DansGuardian + OpenLDAP)

Este artigo ensina a implementar um servidor proxy com autenticação LDAP no Linux. O Squid trabalhará propriamente com cache e autenticação, enquanto que a política de acesso será feita pelo DansGuardian.

[ Hits: 123.514 ]

Por: Gustavo Hendrigo Marcon em 24/10/2008


Instalação e configuração do Squid



No modelo a seguir fiz a instalação dos pacotes usando a distribuição Linux Debian 4.0.

Squid:

# apt-get install squid

Edite o arquivo squid.conf para que fique parecido com o seguinte:

# vim /etc/squid/squid.conf

#squid.conf
#Departamento de Informática - 2008

#Porta de acesso do proxy - Escuta do DansGuardian
http_port 127.0.0.1:3128

# Define o nome que aparecerá nas páginas de erro ou acesso do squid
visible_hostname Server - Servidor Proxy

# Não faz cache de dados de formulários html, nem de resultados de programas cgi
hierarchy_stoplist cgi-bin ?

# Cria uma access control list, baseando-se na url e utilizando exp. regulares
# nesta situação foi criado uma exp. regular para cgi e ?.
acl QUERY urlpath_regex cgi-bin \?

#Não faz cache da acl QUERY
cache deny QUERY

#apache
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache

#Tamanho máximo de memória para cache
cache_mem 512 MB

#Tamanho máximo de um objeto
maximum_object_size 40960 KB

#Tamanho máximo de um objeto na memória ram, caso o objeto seja
#maior que o valor estipulado ele será gravado direto no disco
maximum_object_size_in_memory 128 KB

#Define a localização do cache de disco, tamanho
#Quantidade de diretórios pai, e por fim a quantidade de diretórios filho
cache_dir ufs /var/spool/squid 2048 16 256

#Arquivo de Log
access_log /var/log/squid/access.log squid

#Arquivo que contém os nomes de máquinas
hosts_file /etc/hosts

#Autenticação no LDAP
#o ip a seguir representa seu servidor LDAP.
auth_param basic program /usr/lib/squid/ldap_auth -v 3 -b "dc=empresa,dc=com,dc=br" -f "uid=%s" -h serverldap.empresa.com.br
auth_param basic children 8
auth_param basic realm SUA EMPRESA WebProxy - Autenticação de usuários.
auth_param basic credentialsttl 20 minutes
acl usuarios proxy_auth REQUIRED

#Tempo de atualização dos objetos relacionados aos protocolos ftp, gopher e http.
#Default Sugerido:
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320

#Mínimo de Access Control List para o squid funcionar corretamente
#Não altere estas acls, pois você poderá travar o squid
#Configuração mínima
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
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 # unregistered ports
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 # multiling http
acl Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT

#ACLs
# limita conexões HTTP
acl connect_abertas maxconn 8

#Acessos
#Acessos dos usuários autenticados.
http_access allow usuarios

#Default
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

http_access allow localhost
http_access deny all
http_reply_access allow all
icp_access allow all
cache_effective_group proxy
coredump_dir /var/spool/squid

    Próxima página

Páginas do artigo
   1. Instalação e configuração do Squid
   2. Acertando a configuração com o LDAP
   3. Instalação e configuração do DansGuardian
   4. DansGuardian: Acertando e conhecendo mais arquivos de configuração
Outros artigos deste autor

Configuração: Servidor de nomes slave com Bind9 no Debian 4.0

DansGuardian versões 2.9.3.0 e superiores em Debian 5.01

Bind9 + Debian Linux 4.0: Configuração de um servidor de nomes interno

Adicionando baterias automotivas extras em nobreaks

PhpDansAdmin, protótipo de ferramenta web para administração do DansGuardian

Leitura recomendada

NFS sem segredos

Criando uma imagem de instalação do Ubuntu

Instalação LTSP5 no Ubuntu 10.04 Lucid

Ingressar desktop GNU/Linux no domínio Active Directory do Windows Server 2008

Configuração de Servidor Web no FreeBSD 9

  
Comentários
[1] Comentário enviado por removido em 24/10/2008 - 12:52h

Legal, bom ARTIGO!

flw

[2] Comentário enviado por valtinho em 24/10/2008 - 15:54h

Ai hendrigo, blz? Fiz os procedimentos mas quando vou reiniciar o serviço do dansguardia esta dando alguns erros que não sei o que eh:

Restarting DansGuardian: Restarting DansGuardian: :Error reading file (does it exist?): /etc/squid/dansguardian/languages/weightedphraselist.pornsites.portuguese
Error opening weightedphraselist
Error opening filter list:/etc/dansguardian/dansguardianf1.conf
Error reading filter group conf file(s).
Error parsing the dansguardian.conf file or other DansGuardian configuration files
failed!


Me desculpe a ignorancia mas eh que sou novato em linux... o que poderia ser?

[3] Comentário enviado por hendrigo em 24/10/2008 - 16:00h

Verifique se existe o arquivo:
/etc/squid/dansguardian/languages/weightedphraselist geralmente ele fica em /etc/dansguardian/languages/ se for no Debian por ex:

[4] Comentário enviado por valtinho em 24/10/2008 - 16:13h

Eu estou usando o Debian Sarg 4.0 e o arquivo esta em /etc/dansguardian/weightedphraselist

Descomentei as linhas

.Include</etc/squid/dansguardian/languages/weightedphraselist.pornsites.portuguese>
.Include</etc/squid/dansguardian/languages/weightedphraselist.pornwords.portuguese>

e funcionou...

Mas essas linhas é onde seta para as listas em portugues correto?

nao teria que ficar assim: .Include</etc/squid/dansguardian/languages/portuguese

?

[5] Comentário enviado por hendrigo em 24/10/2008 - 16:21h

No meu está assim: dentro de /etc/dansguardian/phraselists/pornography/weighted_portuguese fica as palavras que e suas pontuações.

.Include</etc/dansguardian/phraselists/pornography/weighted_portuguese>

não se esqueça para os outros bloqueios, baixar uma blacklist e descompactá-la dentro de /etc/dansguardian
http://urlblacklist.com/cgi-bin/commercialdownload.pl?type=download&file=bigblacklist

[6] Comentário enviado por comfaa em 28/10/2008 - 12:23h

boa dica

[7] Comentário enviado por nariz em 21/12/2008 - 00:14h

ótimo artigo hendrigo
parabéns

[8] Comentário enviado por elderjmp em 21/01/2009 - 08:55h

Gustavo... blz?
Estou tendo um problema com o squid autenticado... ele autentica no ldap somente se a senha estiver em texto plano. No meu ldap a senha está criptografada.

auth_param digest program /usr/lib/squid3/digest_ldap_auth -b "dc=empresa,dc=com,dc=br" -F "uid=%s" -e -A userPassword -D "cn=admin,dc=empresa,dc=com,dc=br" -w "senha" -p 389 -v 3 -h 192.168.0.107

Então estou usando ele para autenticar da seguinte forma:
auth_param basic program /usr/lib/squid3/smb_auth -W DOMINIO

O problema que tenho é que do navegador cliente até o squid a senha trafega em modo plano, podendo ser obtida farejando os pacotes na rede. Sabe de algum método para que essa senha seja enviada criptografada?

Valeu e parabéns pelo artigo

[9] Comentário enviado por hendrigo em 21/01/2009 - 13:51h

Olá, minha senha no ldap são criptografadas (ssha).
Mas no envio da senha não tinha nem testado que era enviada em modo texto.
Na verdade nem testei ainda... tenho que pesquisar.
Quando tiver a resposta posto aqui,
até mais.

vc usou SSL/TLS no ldap?
http://www.evertonmurilo.eti.br/node/41

[10] Comentário enviado por elderjmp em 20/02/2009 - 11:00h

Olá...
Minhas senhas no ldap também estão criptografadas.
Meu colega de serviço que testou e conseguiu pegar as senhas quando o proxy pede a autenticação. Então é do navegador para o proxy no momento da autenticação que isso acontece.
Iria testar o seguinte: http://wiki.squid-cache.org/KnowledgeBase/LdapBackedDigestAuthentication , mas teria que recuperar a senha de todos os usuários, e aqui é uma instituição de ensino, e todos os alunos tem senha.
Até mais e obrigado pela ajuda e atenção

[11] Comentário enviado por pelo em 07/07/2009 - 21:00h

Show...

Mas tu copiou do morimoto ou ele copiou de você?

Sérgio Abrantes
[]'s

[12] Comentário enviado por ghmarcheti em 14/07/2011 - 09:23h

Olá,

Alguem conseguiu uma solução qto a senha ser enviada em modo texto aberto entre o cliente e o servidor SQUID???


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts