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.
No modelo a seguir fiz a instalação dos pacotes usando a distribuição LinuxDebian 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
[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:
[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.
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?
[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.
[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