squid autenticado com LDAP por grupo no AD

1. squid autenticado com LDAP por grupo no AD

Diogo Borges Oliveira
diogoborges

(usa Outra)

Enviado em 18/10/2011 - 09:29h

Olá! Pessoal gostaria da ajuda de vocês pois estou tendo dificuldades de utilizar o squid autenticando no AD por grupo via LDAP.

Bom meu cenário e o seguinte. Já consigo autenticar com usuário via LDAP só que eu preciso autenticar por grupo.

quando eu executo o squid_ldap_group dentro da pasta /usr/lib/squid/
./squid_ldap_group -b "dc=iito" -D "cn=squid,cn=Users,dc=iito" -w "123456" -h 10.25.2.4 -f "(&(objectClass=group)(cn=%a))" -F "(&(sAMAccountName=%s)(objectClass=User))" -d -v 3
coloco o usuário (diogo) e o grupo (internet) que ele pertence

ele me retorna

Connected OK
user filter '(&(sAMAccountName=diogo)(objectClass=User))', searchbase 'dc=iito'
group filter '(&(objectClass=group)(cn=internet))', searchbase 'dc=iito'
OK

caso eu coloco o grupo errado ele me retorna ERR. Agora porque que não funciona isso o bloqueio de paginas por grupo?



meu squid.conf


############################################
# #
# Diogo Borges Oliveira #
# [email protected] #
# #
############################################

##############DADOS DO SQUID###################
http_port 3128
dns_nameservers 10.25.2.4
visible_hostname Squid
unlinkd_program /usr/lib/squid/unlinkd
pid_filename /var/run/squid.pid

##############CONFIGURACAO DO CACHE###################
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
hierarchy_stoplist cgi-bin ?
cache_effective_user proxy
cache_effective_group proxy
cache_mem 256 mb
ipcache_size 3072
ipcache_low 90
ipcache_high 93
cache_swap_low 90
cache_swap_high 95
fqdncache_size 2048
maximum_object_size_in_memory 128 kb
maximum_object_size 64 mb
minimum_object_size 0 kb
cache_replacement_policy lru
memory_replacement_policy lru
cache_dir ufs /var/cache/squid/squid1 2000 16 256
cache_dir ufs /var/cache/squid/squid2 2000 16 256
cache_dir ufs /var/cache/squid/squid3 2000 16 256
cache_dir ufs /var/cache/squid/squid4 2000 16 256
cache_dir ufs /var/cache/squid/squid5 2000 16 256

##############LOGS DO SQUID###################
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log none

##############AUTENTICACAO COM AD###################
auth_param basic program /usr/lib/squid/squid_ldap_auth -R -b "dc=iito" -D "cn=squid,cn=Users,dc=iito" -w "123456" -f sAMAccountName=%s -h 10.25.2.4

auth_param basic realm Este acesso sera registrado Digite sua chave e senha
auth_param basic children 5
auth_param basic credentialsttl 30 minutes

external_acl_type ldap_group children=30 %LOGIN /usr/lib/squid/squid_ldap_group -b "dc=iito" -D "cn=squid,cn=Users,dc=iito" -w "123456" -h 10.25.2.4 -f "(&(objectClass=group)(cn=%a))" -F "(&(sAMAccountName=%s)(objectClass=User))" -d -v3

##############ATUALIZACAO DO CACHE###################
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern (cgi-bin|\?) 0 0% 0
refresh_pattern . 0 20% 4320

##############ACL's PADRAO###################
acl all src 0
acl rede src 10.25.2.0/255.255.255.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 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
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 CONNECT method CONNECT
acl autentica proxy_auth REQUIRED
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports

##############CACHE DOS UPDATES###################
refresh_pattern au.download.windowsupdate.com/.*.(cab|exe|msi) 10080 100% 43200 reload-into-ims
refresh_pattern download.microsoft.com/.*.(cab|exe|msi) 10080 100% 43200 reload-into-ims
refresh_pattern msgruser.dlservice.microsoft.com/.*.(cab|exe|msi) 10080 100% 43200 reload-into-ims
refresh_pattern windowsupdate.com/.*.(cab|exe|msi) 10080 100% 43200 reload-into-ims
refresh_pattern www.microsoft.com/.*.(cab|exe|msi) 10080 100% 43200 reload-into-ims
refresh_pattern personal.avira-update.com/.*.(cab|exe|dll|msi|gz) 10080 100% 43200 reload-into-ims
refresh_pattern avast.com/.*\.(def|vpu|vpaa|stamp|cgi) 43200 100% 43200 override-lastmod reload-into-ims

##############NAO FAZ CACHE###################
acl nocache dstdomain .gov.br
no_cache deny nocache
always_direct allow nocache

##############LISTAS DE ACESSOS – ACL’S##################
acl autentica proxy_auth REQUIRED
acl bloqueio_palavra url_regex -i "/etc/squid/regras/bloqueado_palavra.txt"
acl bloqueio_dominio dstdomain "/etc/squid/regras/bloqueado_dominio.txt"
acl dominios_permitido dstdomain "/etc/squid/regras/dominios_permitido.txt"
acl avast dstdomain .avast.com
acl ips_atendimento src 10.25.2.58 10.25.2.59 10.25.2.60 10.25.2.61 10.25.2.65
acl blockpropagandas dstdom_regex -i "/etc/squid/regras/blockpropagandas.txt"

#===============ACLs_ACTIVE_DIRECTORY=======================
acl ldapAcessoPadrao external ldap_group AcessoPadrao
acl ldapAcessoTotal external ldap_group AcessoTotal
acl ldapAcessoDownload external ldap_group AcessoDownload
acl ldapinternet external ldap_group internet

#### TESTE ####
http_access allow ldapinternet
http_access deny ldapAcessoPadrao

##############TAMANHO MAXIMO DE DOWNLOAD PERMITIDO 25MB###################
reply_body_max_size 25971520 deny all !ldapAcessoTotal !ldapAcessoDownload

##############BLOQUEANDO EXTENCOES###################
acl extencoes url_regex -i "/etc/squid/regras/extencoes.txt"
http_access deny extencoes !ldapAcessoTotal !ldapAcessoDownload

###############LIBERANDO ACESSOS################
http_access allow ldapAcessoTotal
http_access allow avast
http_access allow dominios_permitido
http_access deny blockpropagandas
http_access deny bloqueio_palavra
http_access deny bloqueio_dominio
http_access allow ldapAcessoPadrao

##############OUTRAS CONF###################
detect_broken_pconn on
pipeline_prefetch on
error_directory /usr/share/squid/errors/Portuguese

##############CONFIGURACOES FINAIS##################
http_access allow autentica
http_access allow rede
http_access deny all
http_reply_access allow rede
icp_access allow rede




  


2. Re: squid autenticado com LDAP por grupo no AD

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/10/2011 - 10:17h

olá.
Você está fazendo via squid_ldap_auth. Nesse metodo, a criação/obtenção de grupos via external acls costuma dar muitos problemas mesmo.
O que eu te aconselho é o seguinte:
Se você conseguir implementar o squid_ldap_auth quer dizer que você é capaz de fazer um ldapsearch tranquilamente.
Monte scripts, usando o ldapsearh para pegar usuários de grupos especificos no AD e bote no cron. É o que eu faço com o meu;

Ex:
Faças as substituições de acordo com o que precisa.
user: usuário com permissão de consulta no AD.
Tecnologia: Organization Unit onde estão meus usuários;

Chamei esse script de acha_InternetLiberado

No meu AD existem vários usuários. Os usuários que estiverem no grupo InternetLiberado, devem ter acesso total a internet.
Então, eu pesquiso e mando o resultado para um arquivo, esse arquivo eu uso no meu squid.

#!/bin/bash

/usr/bin/ldapsearch -h 192.168.0.18 -p 3268 -x -b "dc=domain,dc=com,dc=br" -D "cn=user,ou=Tecnologia,dc=domain,dc=com,dc=br" -w senha "(memberOf=CN=InternetLiberado,OU=Tecnologia,DC=user,DC=com,DC=br)" sAMAccountName | grep -v requesting | grep sAMAccountName | awk -F "sAMAccountName: " '{print $2}' > /etc/squid/UsuarioInternetLiberado.aux

if ! /usr/bin/diff /etc/squid/UsuarioInternetLiberado.aux /etc/squid/UsuarioInternetLiberado > /dev/null 2>&1 ; then
cp -f /etc/squid/UsuarioInternetLiberado.aux /etc/squid/UsuarioInternetLiberado
/etc/init.d/squid reload > /dev/null 2>&1
DATA=`/bin/date +%d/%m/%Y-%H:%M:%S`
echo "$DATA - alteracao usuario liberado" >> /var/log/UsuarioInternetLiberado.log
fi


Atenciosamente
Saul Figueiredo
www.pinguimteajuda.com.br


3. auth

yros aguiar
yros

(usa Slackware)

Enviado em 18/10/2011 - 10:59h

Os nomes dos grupos no squid estao iguais ao do AD, pois eh case sensitive.




4.

Diogo Borges Oliveira
diogoborges

(usa Outra)

Enviado em 18/10/2011 - 12:14h

Olá! saulfelipe Bom achei sua ideia como uma boa alternativa mas vai funcionar automaticamente, no instante que eu alterar no ad ele já vai ter suas devidas liberações ou bloqueios?

Caro yros o modo como ta o meu AD
Tenho uma OU chamada ( Internet ) e dentro dela tenho 4 grupos
AcessoDownload, AcessoPadrao, AcessoTotal internet
Como tinha dito eu consigo utilizar o squid_ldap_group apenas executando ele via terminal.
Ele me retorna se eu inserir o usuário e grupo correto
Connected OK
user filter '(&(sAMAccountName=diogo)(objectClass=User))', searchbase 'dc=iito'
group filter '(&(objectClass=group)(cn=internet))', searchbase 'dc=iito'
OK
Caso eu insira usuário correto e grupo errado ele retorna
ele me retorna

Connected OK
user filter '(&(sAMAccountName=diogo)(objectClass=User))', searchbase 'dc=iito'
group filter '(&(objectClass=group)(cn=internet))', searchbase 'dc=iito'
ERR




5. Re: squid autenticado com LDAP por grupo no AD

yros aguiar
yros

(usa Slackware)

Enviado em 18/10/2011 - 13:15h

Eu utilizo a algum tempo, e varios clientes, o unico problema eh que na hora que vc adiciona o usuario ao grupo no AD, vc tem q restartar o servico do squid, para atualizar a base, voce fez isso ?


6. auth

Diogo Borges Oliveira
diogoborges

(usa Outra)

Enviado em 18/10/2011 - 15:35h

isso e porque você não autentica no AD você autentica no próprio squid, ou seja seu caso ao meu ver está funcionando da seguinte maneira ( seu squid puxa todos os usuários do ad e faz as autenticações na própria maquina ) já meu caso ( os usuários são autenticados diretamente no AD, ou seja, se eu cabei de criar um usuário posso já navegar com ele sem ter que carregar o squid novamente (reiniciar squid)).


Bom e isso ae!

volto novamente a pedir ajuda pois não consigo fazer bloqueios por grupos do AD. Agradeço qualquer ajuda.


7. Autentica no AD

yros aguiar
yros

(usa Slackware)

Enviado em 18/10/2011 - 16:19h

Eu acredito que autentica no AD (pois no ps mostra diversos chamadas ao ldap_group), o reinicio eu nao sei por que é necessário.

Porem o que voce está falando tem lógica, pois se fosse direto no AD nao precisaria reiniciar. Eu não estou mais neste ambiente que fiz a configuração, então não posso colaborar muito, mas o que eu puder ajudar estou a disposição.

Eu fiz como está no artigo que escrevi:


http://www.vivaolinux.com.br/artigo/Squid-com-autenticacao-e-ACLs-apartir-do-grupos-do-Active-Direto...









8. LDAP AD

Diogo Borges Oliveira
diogoborges

(usa Outra)

Enviado em 18/10/2011 - 18:49h

Yros percebi uma coisa gostaria que você me ajudasse. Seguinte tua conf ta diferente o parâmetro -D porque? acho q deveria ser isso ou algum detalhe de parâmetro errado. Veja abaixo sua conf

auth_param basic program /usr/lib64/squid/squid_ldap_auth -R -b "dc=nomedosubdominio,dc=dominio" -D "CN=usuariodepesquisaldap,OU=Unidadeorganizancionaldousuario,DC=nomedodominio,DC=dominio" -w "senha" -f sAMAccountName=%s -h 172.16.1.1

external_acl_type internet %LOGIN /usr/lib64/squid/squid_ldap_group -R -b "dc=nomedosubdominio,dc=dominio" -D "CN=usuariodepesquisaldap,OU=Unidadeorganizacionaldousuario,DC=apscoordenacao,DC=local" -w "hsm123" -f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=%a,OU=unidadeoriganizacional,DC=nomedosubdomino,DC=dominio))" -h 172.16.1.1

compare com a minha.


auth_param basic program /usr/lib/squid/squid_ldap_auth -R -b "dc=iito" -D "cn=squid,cn=Users,dc=iito" -w "123456" -f sAMAccountName=%s -h 10.25.2.4

external_acl_type ldap_group children=30 %LOGIN /usr/lib/squid/squid_ldap_group -b "dc=iito" -D "cn=squid,cn=Users,dc=iito" -w "123456" -h 10.25.2.4 -f "(&(objectClass=group)(cn=%a))" -F "(&(sAMAccountName=%s)(objectClass=User))" -d -v3


já ta no fim de expediente vou dar uma analisada amanha e volto a postar aqui caso eu tiver sucesso.



9. Deu certo

yros aguiar
yros

(usa Slackware)

Enviado em 19/10/2011 - 22:09h

Eae brother deu certo, ou voce continua com o problema?


10. Re: squid autenticado com LDAP por grupo no AD

Ronaldo Czelusniak
ronaldocz

(usa Suse)

Enviado em 20/10/2011 - 10:27h

Nos meus clientes funciona bem autenticando direto no AD

Tente modificar suas 2 linhas nesse estilo.

auth_param basic program /usr/local/libexec/squid/squid_ldap_auth -R -b dc=ogmo,dc=local -f sAMAccountName=%s -h 172.17.255.22:389 -D cn=squid,cn=users,dc=ogmo,dc=local -w [email protected]

external_acl_type ldap_group %LOGIN /usr/local/libexec/squid/squid_ldap_group -R -b "dc=ogmo,dc=local" -D cn=squid,cn=users,dc=ogmo,dc=local -w [email protected] -f "(&(objectclass=person)(sAMAccountName=%v)(memberof=cn=%a,ou=usuarios,ou=ogmo,dc=ogmo,dc=local))" -h 172.17.255.22:389"




11. Mesmo erro do diogoborges

Paulo Henrique
cardoso_ph

(usa Ubuntu)

Enviado em 04/11/2011 - 16:17h

diogoborges estou exatamente com a mesma situação que você consigo autenticar, mas não consigo fazer os filtros por grupos do AD.

Meu Ad é um 2008

Efetuei os passos do ronaldocz e deu o mesmo problema. Não filtra pelos Grupos.

Conto com a colaboração de todos.


12. Re: squid autenticado com LDAP por grupo no AD

yros aguiar
yros

(usa Slackware)

Enviado em 04/11/2011 - 17:51h

http://www.vivaolinux.com.br/artigo/Squid-com-autenticacao-e-ACLs-apartir-do-grupos-do-Active-Direto...


Eu fiz e funciona perfeitamente com Windows Server 2008.



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts