Squid + Winbind + Samba no AD - Autenticando por grupos

Depois de ter que fazer o Squid autenticar no Microsoft Active Directory por grupos, estive reparando que na internet que existem vários artigos, mas todos tem algum erro ou está incompleto. Este artigo está muito parecido com alguns, mas tem alguns detalhes que podem ser fundamentais na hora da instalação.

[ Hits: 135.435 ]

Por: Felipe Mendes em 02/06/2006


Instalando e configurando o Squid



# cd /usr/local/src/squid-2.5.STABLE12
# ./configure --sbindir=/usr/sbin \
--sysconfdir=/etc/squid \
--enable-default-err-language=Portuguese \
--enable-delay-pools \
--enable-underscores \
--enable-auth="ntlm,basic" \
--enable-external-acl-helpers="winbind_group,wbinfo_group,SMB,winbind" \
--enable-store-io=ufs,aufs,diskd \
--enable-snmp \
--enable-linux-netfilter \
--enable-basic-auth-helpers="winbind" \
--enable-ntlm-auth-helpers="SMB,winbind" \
--with-winbind-auth-chalenge
# make
# make install


Feito a instalação, crie um usuário chamado nobody pertencendo ao grupo nogroup e dê permissão do Squid ao mesmo com o comando:

# cd /usr/local
# chown -R nobody.nogroup squid


Logo após dê permissão ao cache e crie o mesmo:

# su - nobody -c "/usr/sbin/squid -z"

Dê permissão na pasta winbind_privileged da seguinte forma:

# cd /usr/local/squid/libexec
# chown nobody:nogroup winbind_privileged


Alterando o squid.conf:

Na autenticação:

auth_param ntlm program /bin/ntlm_auth FELIPE/MENDES --helper-protocol=squid-2.5-ntlmssp
auth_param ntlm use_ntlm_negotiate off
auth_param ntlm children 10
auth_param ntlm max_challenge_reuses 0
auth_param ntlm max_challenge_lifetime 5 minutes


auth_param basic program /bin/ntlm_auth FELIPE/MENDES --helper-protocol=squid-2.5-basic
auth_param basic children 5
auth_param basic realm Proxy SJES
auth_param basic credentialsttl 2 hours

Nas ACLs, logo após o texto:

INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

external_acl_type NT_global_group children=10 %LOGIN /usr/local/squid/libexec/wbinfo_group.pl
acl ProxyUsers external NT_global_group NET # NET é o grupo que vai acessar a internet.
http_access allow ProxyUsers

Agora uma alteração muito importante, a modificação do arquivo wbinfo_group.pl.

# vi /usr/local/squid/libexec/wbinfo_group.pl

o arquivo original está da seguinte forma na parte sub_check:

sub check {
local($user, $group) = @_;
        $groupSID = `wbinfo -n "$group"`;
        chop  $groupSID;
        $groupGID = `wbinfo -Y "$groupSID"`;
        chop $groupGID;
        &debug( "User:  -$user- Group: -$group- SID:   -$groupSID- GID:   -$groupGID-");
        return 'OK' if(`wbinfo -r Q$userE` =~ /^$groupGID$/m);
        return 'ERR';

Devera ficar da seguinte forma:

sub check {
local($user, $group) = @_;
        $groupSID = `wbinfo -n "$group"`;
        $groupSID = substr($groupSID, 0, index($groupSID, ' ') + 1);
        chop  $groupSID;
        $groupGID = `wbinfo -Y "$groupSID"`;
        chop $groupGID;
        return 'OK' if(`wbinfo -r Q$userE` =~ /^$groupGID$/m);
        return 'ERR';

Feito isso tudo, inicie o Squid:

# squid start

Configure o IE e teste a navegação.

Bem, se tudo deu certo após você configurar o IE, somente os usuários pertencentes ao grupo NET irão navegar na internet, os demais não irão conseguir. Isto é básico, com esta configuração vocês também conseguem colocar grupos para acessar determinados sites ou não, etc. Basta estudar um pouco as ACLs do Squid.

Espero ter ajudado!

Página anterior    

Páginas do artigo
   1. Introdução
   2. Instalando e configurando o Samba
   3. Instalando e configurando o Squid
Outros artigos deste autor

MySAR - Um ótimo analisador de logs do Squid

Servidor de arquivos integrado com Active Directory (AD) e quota de usuário/grupo

Leitura recomendada

Controle de acesso à internet com Squid

Analisando log Squid do Mikrotik no SARG

Squid3 com bloqueio HTTPS [que realmente funciona] - Versão 3.5.22

MySAR - Um ótimo analisador de logs do Squid

Instalando e configurando o Squid no Slackware

  
Comentários
[1] Comentário enviado por xbunecox em 05/06/2006 - 11:18h

cara aki não funcionou... ele da sempre essa msg de erro, no log do sistema...
Jun 5 11:11:40 alfa2linux nmbd[16558]: [2006/06/05 11:11:40, 0] nmbd/nmbd_packets.c:process_nmb_request(1480)
Jun 5 11:11:40 alfa2linux nmbd[16558]: process_nmb_request: Multihomed registration request must be directed at a WINS server.
Jun 5 11:14:43 alfa2linux (squid): The NT_global_group helpers are crashing too rapidly, need help!

[2] Comentário enviado por xbunecox em 05/06/2006 - 12:19h

tambem na hora que fui compilar o squid, ele me deu essa msg.....
ERROR: external acl helper SMB does not exists

[3] Comentário enviado por fmendes em 06/07/2006 - 16:29h

pessoal tem dois erros no artigo:

o local da pasta winbind_privileged é: /usr/local/samba/var/locks/ e nao como escrito no artigo.

o outro erro nao é bem um e sim uma dica:

ao mudar a permissão da pasta winbind_privileged mude somente o grupo ex:

chgrp nobody winbindd_privileged

sem mais,

Felipe Mendes

[4] Comentário enviado por zedogas em 18/07/2006 - 09:27h

Cara, li sua ma´teria SQUID NO AD, achei muito legal mas tenho uma dúvida que talvez vc saiba perfeitamente como resolver no LINUX:

TO instalando uma maquina no LINUX (por exemplor Debian), e quero configurar do ZERO o apt-get com o proxy, beleza;

http://usuario@senha:ip:porta nao eh? ENTAO, mas nao vai... TEM COMO INFORMAR UM DOMINIO no apt-get para o proxy ir lah se autenticar???

Do jeito q tah ele pára no proxy (pq nao tem usuario local entende?)

ME AJUDA AE POR FAVOR, como ponho a configuracao no apt-get para entender o proxy q se autentica com usuarios AD?

[5] Comentário enviado por fmendes em 18/07/2006 - 16:12h

Cara tenta o seguinte:

export http_proxy=http://usuario:senha@ipdoproxy:porta
depois tente da um apt-get update, provavelmente deve funcionar.

Qualuqer coisa me fala!!


[6] Comentário enviado por paulomachadojr em 15/08/2006 - 17:18h

Qdo executo #wbinfo -u, alguns usuários não são retornados, basicamente os usuários do grupo "usuários do domínio", qdo executo tb #getent passwd , os usuários do AD não aparecem. Isto está correto??? Caso não, oq posso fazer???

obrigado!!

[7] Comentário enviado por evertonjr em 12/01/2007 - 10:05h

Sou novo em linux.....
Estou usando o Mandriva 2007 e quando executo o comando make e make install aparentemente tudo corre bem, mas o programa não é instalado! Tenho que fazer algo alem disso?
Os comandos smbd, nmbd e winbindd start não funcionam
Grato pela atenção e colaboração!!! :)

[8] Comentário enviado por rgavioli em 23/02/2007 - 11:06h

Tudo OK, funcionando... mas na hora de acessar o samba pela rede windows, tenho a seguinte mensagem no log:

[2007/02/23 08:59:07, 1] nsswitch/winbindd_group.c:winbindd_getgrnam(299)
group TI in domain METROLOG does not exist

os usuários acessam, mas todos têm permissão para ler.
Os grupos e usuários que ele lista como "não existem", na verdade existem sim no AD.
Alguém tem uma luz ?
Obrigado.

[9] Comentário enviado por marmaxade em 18/06/2007 - 16:21h

Uso o suse em modo gráfico, já esta rodadndo o samba e as máquinas windows estão acessando normal a internet mas através de uma máquina windos como fazer isso com o suse?

[10] Comentário enviado por fmendes em 18/06/2007 - 19:20h

cara este procedimento serve para qualquer distribuição! Começa a fazer e qualquer problema me fala.

[11] Comentário enviado por nickmicksoares em 16/09/2007 - 23:14h

Caro Fmendes,
qdo executo o join rpc, minha base de dados do ad é apagada, e só aparece no linux, mas no windows some tudo, daí nada funciona!!!
Já fiz várias reinstalações e fica dando este erro!

Sabe a solução?

[12] Comentário enviado por land em 28/09/2007 - 10:05h

em relação a compilação do Squid, somente esses parametros bastam:

./configure --sbindir=/usr/sbin --sysconfdir=/etc/squid --enable-default-err-language=Portuguese --enable-delay-pools --enable-underscores --enable-auth="ntlm,basic" --enable-store-io=ufs,aufs,diskd --enable-snmp --enable-linux-netfilter --enable-basic-auth-helpers="winbind" --enable-ntlm-auth-helpers="SMB,winbind" --with-winbind-auth-chalenge
Flws!!!

[13] Comentário enviado por guiga07 em 05/10/2007 - 15:39h

Pessoal, estou tentando implantar essa sulocao de autenticaocao squid + winbind no ad, mas consegui fazer todos os passos, mas quando inicio o squid e alguem tenta acessar a internet a maquina proxy comeca a travar, com o PS -aux | grep squid percebo que tem um precesso dentre muitos relacionados ao squid que esta atolando o sistema...a linha que se refere ao processo esta assim:
nobody 3516 5.0 8.3 22660 18576 ? R /usr/bin/perl -w /usr/local/squid/libexec/wbinfo_group.pl
Peco desculpas aos colegas por tantos comentarios, mas e que estou a uma semanha tentando e sempre paro com esse problema.

[14] Comentário enviado por toniher em 09/04/2009 - 13:24h

Boa tarde, primeiro gostaria de dar os Parabéns pelo artigo.

Estou terminando de executa-lô.

Só me diz uma coisa, no caso como eu faço para colocar liberar a um certo usuário que não esta no dominio para que ele use a internet.

Tipo eu queria assim, se for usuario do dominio não precisa fazer login para usar a internet (claro com minhas restrições a determinados sites).

E no caso se for alguém de fora do dominio, como eu faço para q o mesmo passa digitar alguma senha para passar a ter acesso a internet.

ex. um consultor com notebook externo que vem aq pra trab por alguns dias.

Grato pela atenção.

[15] Comentário enviado por fabiodurgante em 02/05/2015 - 15:18h

onde esta localizado o arquivo do samba smb.conf ??????


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts