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.