Autenticando Squid 3 no Active Directory do Windows Server 2008 64 bits

Publicado por Claudir Pereira dos Santos em 25/01/2011

[ Hits: 20.229 ]

 


Autenticando Squid 3 no Active Directory do Windows Server 2008 64 bits



Essas configurações foram aplicadas em uma máquina rodando o openSUSE 11.3 64 bits. O Active Directory é mantido pelo Windows Server 2008 64 bits em uma máquina com IP 192.168.0.1. O Squid usado foi o 3.0.STABLE25. O domínio usado para fins didáticos é dominio.com. O usuário do Active Directory foi o Administrador e senha 123456.

Muita atenção, deve ser usado o cn do usuário e não o nome de login. Sugiro usar o Navegador LDAP que está o yast para verificar as informações corretamente. Outro ponto que deve ser ressaltado que você deve identificar corretamente os parâmetros da linha de autenticação, não tome os valores do exemplo como absoluto.

Verifique na sua base LDAP se a informação que vocês está inserindo é realmente uma "ou" ou um "cn". Se essas informações não estiverem corretas o processo simplesmente não funcionará. Mais uma vez sugiro o navegador LDAP do YaST, ele ajuda muito nesses casos.

Caso tenha problemas, verifique sempre o arquivo de log /var/log/squid/cache.log, ele tem informações úteis sobre todo o processo.

Para iniciar o processo, primeiramente deve se instalar o Squid. Isso pode ser feito pelo comando abaixo:

# zypper install squid3

Ao final do processo de instalação, faça uma cópia do arquivo /etc/squid/squid.conf com o seguinte comando:

# cp /etc/squid/squid.conf /etc/squid/squid.comentado

Dessa forma é possível preservar o arquivo que é praticamente um manual do Squid. Agora remova os comentários do arquivo original com o seguinte comando:

# cat /etc/squid/squid.conf |grep -v "#" > /etc/squid/squid.temp

Depois remova as linhas em branco com esse comando:

# egrep -v "^>|^$" /etc/squid/squid.temp > /etc/squid/squid.conf

Para esse teste, foi criado na base do Active Directory um grupo com nome de SquidAcessoRestrito do qual farão parte usuários da rede que só podem acessar determinados sites corporativos. O que vai acontecer é que esses usuários ao tentar acessar, por exemplo, o google.com.br, Ele será solicitado infinitamente a informar usuário e senha e não conseguira fazer acesso. Já os sites liberados serão acessados sem solicitação de usuário e senha em toda a rede.

Seguem abaixo as configurações do Squid:

#Servidores DNS
dns_nameservers 192.168.0.1

#CONFIGURAÇÕES GERAIS
http_port 3128
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
minimum_object_size 0 KB
maximum_object_size 4096 KB
cache_swap_low 90
cache_swap_high 95
fqdncache_size 1024
log_fqdn off
cache_replacement_policy lru
memory_replacement_policy lru
cache_dir ufs /var/cache/squid 100 16 256
cache_access_log /var/log/squid/access.log
cache_store_log /var/log/squid/store.log
logfile_rotate 9

#AUTENTICAÇÃO DO DOMINIO
#Atenção! A linha de autenticação começa aqui
auth_param basic program /usr/sbin/squid_ldap_auth -R -b "dc=dominio,dc=com" -D "cn=Administrador,cn=Users,dc=dominio,dc=com" -w "123456" -f sAMAccountName=%s -h 192.168.0.1:389
#Atenção! Aqui termina a linha de autenticação

auth_param basic realm ATENCAO! Este acesso sera registrado. Digite seu usuario e senha.
auth_param basic children 5
auth_param basic casesensitive off
auth_param basic credentialsttl 1 minutes
emulate_httpd_log off
mime_table /etc/squid/mime.conf
pid_filename /var/run/squid.pid
ftp_passive on
unlinkd_program /usr/sbin/unlinkd

#ACLS EXTERNA PARA AUTENTICACAO NAS BASES LDAP DO PDC
#Atenção! A linha de verificação dos grupos começa aqui.
external_acl_type ldap_group %LOGIN /usr/sbin/squid_ldap_group -R -b "dc=dominio,dc=com" -D "cn=Administrador,cn=Users,dc=dominio,dc=com" -w "123456" -f "(&(objectclass=person) (sAMAccountName=%v)(memberof=cn=%a,ou=UsuLocais,dc=dominio,dc=com))" -h 192.168.0.1
#Atenção! A linha de verificação dos grupos termina aqui.

#ACLS
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 192.168.0.0/24 # que vem da rede local
acl to_localnet dst 192.168.0.0/24 #que vão para a rede local
acl SSL_ports port 443
acl Safe_ports port 21 22 70 80 210 289 443 488 591 777 1025-65535

acl CONNECT method CONNECT

acl liberados url_regex -i unimedmedianeira hilum hospitalpadretezza
acl DomBloq dstdomain -i .xpto.com.br
acl DomLibe dstdomain -i.vivaolinux.com.br
acl ExtBloq url_regex -i .mp3$ .zip$
acl ldapAcessoRestrito external ldap_group SquidAcessoRestrito
acl SolicitarAutenticacao proxy_auth REQUIRED

#CONTROLES DE ACESSO HTTP

#Libera acessos a alguns sites sem autenticação para todos
http_access allow liberados

#Solicita autenticação. Se não autenticar, bloqueia conexão.
http_access deny !SolicitarAutenticacao

#Libera acesso a sites ou serviços http na rede interna
http_access allow to_localnet

#Bloqueia acesso aos usuários registrados no grupo SquidAcessoRestrito do Active Directory
http_access deny ldapAcessoRestrito
http_access allow DomLibe
http_access deny DomBloq
http_access deny ExtBloq
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow all
cache_effective_user nobody
cache_effective_group nobody
visible_hostname proxy_openSUSE113
unique_hostname proxy_openSUSE113

#CONTROLES DE ACESSO ICP
icp_access allow localnet
icp_access allow all

#CONTROLES DE ACESSO HTCP
htcp_access allow localnet
htcp_access deny all

#GRAVAÇÃO DE LOGS
cache_log /var/log/squid/cache.log

#REFRESHS
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

icp_port 3130

#CONFIGURAÇÕES DE CACHE
cache_mem 64 MB
maximum_object_size_in_memory 32 KB
cache_mgr webmaster@hospitalpadretezza.com.br
mail_program mail

#OUTRAS CONFIGURAÇÕES
coredump_dir /var/cache/squid
connect_timeout 1 minutes
client_lifetime 5 minutes #days
icon_directory /usr/share/squid/icons
error_directory /usr/share/squid/errors/Portuguese

Feito isso basta iniciar o Squid com o seguinte comando:

# /etc/init.d/squid start

Caso faça alguma alteração posterior para aplicar basta executar este comando:

# squid -k reconfigure

Para ver o status do Squid digite:

# rcsquid status

Seria isso, com essas configurações já é para o Squid estar funcionando corretamente.

Claudir Pereira dos Santos
Matelândia - PR

Referência:

BATISTA, L. C. Squid autenticando em base Active Directory. Disponível em: <www.vivaolinux.com.br>. Acesso em: 08 dez. 2010.

Outras dicas deste autor

Shell script no logon do openSUSE 11.3 para definir profile com configurações do wine e atalhos

Adicionando máquina com openSUSE 11.3 a domínio com Active Directory Windows Server 2008

Montar automaticamente uma pasta de um domínio do Windows Server 2008 64 bits no openSUSE 11.3 64 bits

Umask, dmask e fmask - qual a diferença entre esses parâmetros?

Instalando o LiveCD openSUSE 11.3 32 bits de um pendrive

Leitura recomendada

Consertando [HOME] e [END] no Aterm

Gravando ajuste de volume de forma definitiva

Personalizando o terminal do Gnome + teclas de atalho

Resolvendo o problema de autenticação no wvdial

Rodando jogos do Windows no Linux

  

Comentários
[1] Comentário enviado por removido em 26/01/2011 - 04:30h

Ótima dica ! Parabéns ...



Abraço.

[2] Comentário enviado por claupers em 26/01/2011 - 09:51h

Valeu. Costumo usar o VOL para documentar as configurações no GNU/Linux. Dessa forma tenho salvo os procedimentos realizados e contribuo para a comunidade GNU/Linux.
Estamos ai.

Cordialmente;

[3] Comentário enviado por andre_ramos em 29/07/2011 - 18:44h

Blz!

Parabéns pelo tutorial!!!

Estou seguindo o seu tutorial, estou com a mesma estrutura do seu ambiente.

iniciei o squid com sucesso.

Mas quando abro a internet pedi o usuario e senha.
coloco de um usuario que esta dentro do grupo AcessoRestrito mas não libera a internet.



Tem como vc me explicar melhor estas regras de autenticação para eu ver se estou errando em alguma coisa?


meu email e : info@toctao.com.br

se tiver como em enviar uma explicação agradeço.

[4] Comentário enviado por claupers em 30/07/2011 - 09:37h

Bom dia.
São muitas as variáveis envolvidas, mas em minha implantação tive muitos problemas com as definições das OU e CN. Use o cliente LDAP para verificar se os dados estão corretos. Se está autenticando corretamente, verifica a ordem de suas ACLs, isso é de grande relevância no SQUID.

Cordialmente;


Claudir



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts