Squid autenticado no Active Directory com Winbind

Tutorial resumido, que trata da instalação e configuração do Squid com autenticação no Active Directory usando o Samba e Winbind para a comunicação de dados entre os servidores.

[ Hits: 158.248 ]

Por: Anderson Leite em 30/08/2006


Preparação do ambiente



Instalar os pacotes necessários:

# apt-get install samba winbind krb5-clients krb5-user libpam-ccreds libpam-ldap nss-updatedb libnss-db libnss-mdns libnss-dev libnss3

Edição de parâmetros:

Adicionar uma entrada no /etc/hosts para o servidor do Active Directory:

<IP do servidor AD> SERVIDOR

Configurar o Samba, alterando/adicionando os parâmetros:

workgroup = GRUPO
password server = SERVIDOR
realm = DOMINIO.LOCAL.AD
security = ADS
netbios name = nomenetbios

# Definições do winbind
bind interfaces only = yes
winbind separator = /
winbind uid = 10000-20000
winbind gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes

log file = /var/log/samba/log.%m
log level = 2
max log size = 1000

Isso é o básico que precisamos no nosso Samba, após isto vamos alterar o arquivo /etc/nsswitch.conf para que possamos pegar a lista de usuários utilizando winbind.

Altere as linhas passwd e group.

De:
passwd:         compat
group:          compat
 
Para:

passwd:         compat winbind
group:          compat winbind

Após isto estamos quase prontos para começar, reinicie o Samba e o winbind.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Preparação do ambiente
   3. Adicionando o servidor no domínio
   4. Configuração do SQUID
   5. Considerações finais
Outros artigos deste autor

Servidor de e-mail completo

Instalando o asterisk no Debian GNU/Linux

Leitura recomendada

SQUID autenticado - Bloqueando o acesso dos usuários por grupos

Proxy Squid com autenticação + Sarg + Webmin

Liberando vídeos específicos do YouTube com e2guardian + Squid utilizando interceptação SSL

Corrigindo a falha "WARNING! Your cache is running out of filedescriptors" - Squid2.7STABLE9 Slackware 12

Administrando Squid pelo browser, bloquear e liberar máquinas por IP, login, palavras

  
Comentários
[1] Comentário enviado por leoberbert em 30/08/2006 - 13:55h

Porra cara!!! Seu artigo era oq eu estava procurando de VERDADE!!!

Valeu pelo excelente artigo!!!

[2] Comentário enviado por calvii em 30/08/2006 - 15:30h

Acho q ja foi publicado um artigo sobre este assunto...........

[3] Comentário enviado por rootkit em 03/09/2006 - 06:40h

Eu realmente não sei dizer calvii, toda documentação que eu achei ou cobria a instalação com samba 2.xx ou com LDAP, como não atendiam as minhas necessidades, fui fazendo a instalação com samba 3.xx e winbind e documentando-a, o que acabou gerando este artigo :)

[4] Comentário enviado por cesarmoura em 04/09/2006 - 23:35h

Cara, muito bom o artigo.
Esquece as críticas de quem nunca escreveu um artigo, não sabe o quanto é difícil e trabalhoso. É, é verdade nunca postei algum aqui no vivaolinux, mas também nunca critiquei algum com qualidade igual ao teu.
Realmente está muito bom.
[ ]´s

[5] Comentário enviado por leoberbert em 18/09/2006 - 12:29h

Amigo.. Qual o SOURCE.LIST que vc está usando pq eu naum consegui encontrar os pacotes:

libnss-mdns
libpam-ccreds

Fico no aguardo!


[6] Comentário enviado por leoberbert em 18/09/2006 - 12:55h

Se puder me dar seu MSN pra me dar um ajudinha ficaria grato.. um abraço!

[7] Comentário enviado por rootkit em 20/09/2006 - 07:17h

Opa Leo,

Para esse servidor específico eu tô usando o seguinte sources.list:

deb http://ftp.us.debian.org/debian/ unstable main
deb-src http://ftp.us.debian.org/debian/ unstable main

deb http://security.debian.org/ stable/updates main

O meu contato do MSN tô te passando por e-mail, mas estou de férias no Brasil até o dia 29, então você provavelmente não vá me encontrar online por muito tempo até essa data :)

[8] Comentário enviado por tiagonanuca em 06/01/2008 - 21:56h

opa...
Excelente artigo....

Mais isso funciona com proxy transparente?

Vlw/Flw

[9] Comentário enviado por rootkit em 07/01/2008 - 04:22h

tiagonanuca,

Autenticação e proxy transparente são feitos para funcionar de formas separadas, mas, se tens um Active Directory ativo na tua rede, aplicas uma GPO a todos os usuários, para configurar automaticamente o proxy, ou podes ainda entregar as configurações de proxy via WPAD ou DHCP (estou escrevendo um artigo a respeito destas configurações, que deve ser publicado em breve).

[10] Comentário enviado por leandromoreirati em 14/01/2008 - 16:58h

Caros,
Preciso fazer meu proxy autenticar no AD, mas quando o usuário logar na maquina esse login servir para a internet. É possivel fazer isso?

Att.

Leandro

[11] Comentário enviado por paulomcpimentel em 22/02/2008 - 10:22h

DICA PARA SQUID 2.6 (apenas):

Se forem utilizar o squid 2.6 na linha do tipo acl externa (external_acl_type) para grupos do AD removam a opção concurrency, pois ela mudou suas características para esta versão causando o funcionamento incorreto da external_acl_type.

Abaixo esta a versão que estou usando.

# Insira isto se você precisar que os usuários estejam contidos em #grupos
external_acl_type nt_group ttl=0 %LOGIN /usr/lib/squid/wbinfo_group.pl

[12] Comentário enviado por nitromind em 19/03/2008 - 16:01h

oi pessoal! seguinte fiz tudo correto o unico problema eh que quando abro o browser nao aparece a caixa de dialogo pedindo login e senha oq pode ser ?

[13] Comentário enviado por rootkit em 19/03/2008 - 19:18h

nitromind,

O que o log do squid diz ? com o getent passwd você consegue listar os usuários do seu Active Directory ?

[14] Comentário enviado por nitromind em 19/03/2008 - 22:05h

cara agora to em casa, eh la no meu trabalho isso, mas no log o squid levanta tudo ok, consigo listar os usuarios e o net ads testjoin ta ok
aparentemente esta tudo ok
segunda-feira posto mais informacoes
valeu!

[15] Comentário enviado por nitromind em 24/03/2008 - 14:08h

http_port 3128
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
cache_mem 16 MB
cache_swap_low 90
cache_swap_high 95
cache_dir ufs /var/spool/squid 512 16 256
access_log /var/log/squid/access.log squid
hosts_file /etc/hosts
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320

auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm children 5
auth_param basic realm Este acesso monitorado, por gentileza digite seu login e senha para acesso - Sinf - SINC
#auth_param ntlm credentialsttl 15 minutes

#auth_param ntlm max_challenge_reuses 0
#auth_param ntlm max_challenge_lifetime 2 minutes
#auth_param ntlm use_ntlm_negotiate off

#Insira isto se vocêrecisar que os usuáos estejam contidos em grupos
external_acl_type nt_group ttl=0 %LOGIN /usr/lib/squid/wbinfo_group.pl
acl all src 0.0.0.0/0.0.0.0
acl rede src 192.168.0.0/24
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
#acl autenticacao proxy_auth REQUIRED
http_access allow manager localhost
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 allow autenticacao
http_access allow rede
http_access deny all
http_reply_access allow all
icp_access allow all
cache_effective_user proxy
cache_effective_group proxy
coredump_dir /var/spool/squid

cache.log do squid
tail -f /var/log/squid/cache.log
2008/03/24 11:44:35| 0 Objects expired.
2008/03/24 11:44:35| 0 Objects cancelled.
2008/03/24 11:44:35| 0 Duplicate URLs purged.
2008/03/24 11:44:35| 0 Swapfile clashes avoided.
2008/03/24 11:44:35| Took 0.6 seconds ( 0.0 objects/sec).
2008/03/24 11:44:35| Beginning Validation Procedure
2008/03/24 11:44:35| Completed Validation Procedure
2008/03/24 11:44:35| Validated 0 Entries
2008/03/24 11:44:35| store_swap_size = 0k
2008/03/24 11:44:36| storeLateRelease: released 0 objects

access.log do squid
tail -f /var/log/squid/access.log
1205945767.572 104 192.168.0.136 TCP_MISS/503 1558 POST http://www.vivaolinux.com.br/comentarios/enviarComentario.php - DIRECT/72.51.46.57 text/html

testjoin
net ads testjoin
Join is OK

info
net ads info
LDAP server: 192.168.0.9
LDAP server name: sinct01.sinc.int
Realm: SINC.INT
Bind Path: dc=SINC,dc=INT
LDAP port: 389
Server time: Seg, 24 Mar 2008 14:03:19 BRT
KDC server: 192.168.0.9
Server time offset: 7241

descomentando o #acl autenticacao proxy_auth REQUIRED o brownser pede login e senha porem nao autentica fica no looping
tai pessoal espero q com essas informacoes vcs possam me ajudar, estou no aguardo

[16] Comentário enviado por dmarcel em 04/05/2008 - 04:50h

Pessoal no meu serividor não aparece o arquivo wbinfo_group.pl, o unico lugar que encontrei foi na própria pasta de instalação, preciso copiar essa esse arquivo ou instalar algum módulo ?
obrigado.

[17] Comentário enviado por removido em 12/08/2008 - 14:28h

Cara, muito bom este artigo. Efetuei as configurações com base neste artigo e funcionaram perfeitamente. Com relação à utilização do helper squid-2.5-ntlmssp, para utiliza-lo precisamos habilitar a leitura do diretório /var/run/samba/winbind_privileged para o usuário proxy. Para isso podemos fazer de duas maneiras, alterando o grupo do diretório para proxy ou adicinando o usuário proxy ao grupo winbind_priv. Após efetuar a alteração as máquinas efetuam a autenticação automaticamente com o usuário que está logado no AD, sem solicitar user/pass. Valew.

[18] Comentário enviado por walterti em 11/11/2008 - 15:58h

Uma dúvida... quando o usuario fize logon no dominio ao ligar o pc, e tentar acessar uma pagina de internet, o browser vai abrir um prompt pedindo usuario e senha pra cada instancia do navegador, ou ele vai identificar o usuario/senha que ele utilizou pra logar no domínio e já autenticar??? queria era eliminar akele maldito prompt pq akilo eh chato pacas

[19] Comentário enviado por walterti em 11/11/2008 - 19:44h

Estão em débito de um tutorial desse pra ambiente slackware... os pacotes ali descritos eu nao encontri quase nada, vou lutar esse fds e tentar colocar pra funcionar, assim que conseguir penso em fazer um tutorial... mo dificuldade achar isso pra slack

[20] Comentário enviado por walterti em 15/11/2008 - 20:55h

bom, eu consegui, integrei slackware squid e windows 2003 server com active directory
usando samba com winbind e kerberos atraves do modulo ntlm_auth do squid.
irei escrever um artigo sobre o caso, porem antes preciso resulver um problema.
sempre que tento abrir uma página ele abre uma janela de autenticação,
mas nao eh akele prompt pedindo usuario senha do squid, eh um prompt
tipo qdo tenta acessar uma pasta numa maquina que tem senha, então fui no squid
e configurei da seguinte forma auth_param ntlm program /usr/libexec/sq/ntlm_auth -domain=dominio.com -username=administrador -password=senha
foi a unica forma de fazer funcionar mas acho que nao tah correto, afinal sempre os usuarios
estarao logados como administrador e nao tenho controle de quem acessa o que.
estou pensando ainda como resolver isso, se alguem souber eu ficaria grato

[21] Comentário enviado por rappa888 em 05/01/2014 - 18:18h

rootkit,
também não consegui usar com o helper:
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp

sabe o que está impatando ??
trabalho em 2 sites, em um para autenticar, quando a máquina não está no dominio, autenticamos colocando o dominio \ login "DOMINIO\usuário"
usando o helper ..2.5-basic.. autentico apenas com o usuário. Isso não é ruim, mas é só uma dúvida.

neste novo site uso:
samba 2:3.6.6
winbind 2:3.6.6
squid 2.7.stable9
kerberos 5

no antigo:
samba 3x-3.5.4
winbind 3.5.4
squid 2.6.stable2
kerberos5

tem alguma idéia no que preciso alterar para voltar a autenticar "DOMINIO\usuario"..


valeu!!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts