Samba + LDAP + Squid no Debian

Este artigo tem por objetivo ajudar na instalação, configuração e integração dos serviços Samba e Squid a uma base de dados unificada em seu sistema (LDAP).

[ Hits: 91.693 ]

Por: Bruno de la Mata Bani Arantes em 23/05/2007


Servidor LDAP



Levando em consideração que o Debian já esteja instalado:

Instalação do servidor LDAP:

# apt-get install slapd ldap-utils
Domain Name		vivaolinux
Organization Name	Viva_o_Linux
Admin Password	****** (use a senha do root)
Verify password	****** (use a senha do root)
Allow LDAPv2 protocol	no

Modificar no arquivo /etc/ldap/slapd.conf:

loglevel 256 #para fazer logs 256, para não fazer deixar
suffix "dc=vivaolinux"
rootdn "cn=admin,dc=vivaolinux"
rootpw {SSHA}.........................................

Onde a entrada do parâmetro rootpw foi gerada pelo comando (colar o resultado):

# slappasswd -s senha_do_ root -h {SSHA}

Acrescentar no arquivo /etc/syslog.conf a entrada:

local4.* /var/log/ldap.log

Instalar o banco de dados DB4:

# apt-get install db4.2-util

Reiniciar o sysklogd e o slapd:

# /etc/init.d/sysklogd restart
# /etc/init.d/slapd restart
Instalação do servidor LDAP:

# apt-get install ldap-utils

Modificar o arquivo /etc/ldap/ldap.conf:

HOST 20.0.0.1 (ip do servidor ldap)
BASE dc=vivaolinux
SERVER 20.0.0.1 (ip do servidor ldap)
SIZELIMIT 10000
BINDDN cn=admin, dc=vivaolinux
BINDPW {SSHA}.... (mesmo anterior)
ROOTBINDDN dc=admin, dc=vivaolinux

Instalar o pacote libnss-ldap:

# apt-get install libnss-ldap
Endereço do servidor LDAP	20.0.0.1 (ip do servidor ldap)
dn	dc=vivaolinux
Versão do protocolo LDAP	3
Base de dados requer autenticação	Não
Tornar a configuração.....	Não

Liberar modificação do arquivo pelo root:

# chmod 644 /etc/libnss-ldap.conf

Editar o arquivo /etc/nsswitch.conf, fazendo com que ele busque a autenticação no ldap primeiro:
passwd:    ldap compat
group:     ldap compat
shadow:    ldap compat
hosts:     file dns
networks:  files
protocols: db files
services:  db files
ethers:    db files
rpc:       db files
netgroup:  nis

Instalar o pacote PAM (Password Authentication Module):

# apt-get install libpam-ldap
Make local root db admin	yes
DB requires login	no
Root login account	cn=admin, dc=vivaolinux
Root login passwd	****** (use a senha do root)
Local crypt to use	Crypt

Entrar na pasta pam.d:

# cd /etc/pam.d

Editar os arquivos, como a seguir:

common-account:

account required pam_unix.so
account sufficient pam_ldap.so

common-auth:

auth sufficient pam_ldap.so
auth required pam_unix.so try_first_pass nullok_secure

common-password:

password sufficient pam_unix.so nullok use_authtok md5 shadow
password required pam_unix.so try_first_pass

common-session:

session required pam_unix.so
session optional pam_mkhomedir.so umask=0077
    Próxima página

Páginas do artigo
   1. Servidor LDAP
   2. Servidor Samba
   3. Servidor Apache
   4. Servidor proxy Squid
Outros artigos deste autor

Utilizar um placa PCI como Access Point no Debian 4

Leitura recomendada

Instalando e configurando openVPN no Debian Lenny

Servidor Geplanes no Ubuntu - Instalação e utilização

Ubuntu - Alternativas ao Unity

Converter VMs GNU/Linux XenServer (paravirtualizada) para VMware ESXi 5

Ingressar desktop GNU/Linux no domínio Active Directory do Windows Server 2008

  
Comentários
[1] Comentário enviado por dcyrillo em 23/05/2007 - 09:12h

Parabéns pelo artigo, muito bem explicado e de fácil compreensão.
Para a autenticação funcionar no squid, nao pode ser feito com proxy transparente né, mesmo com a base de dados Ldap?
Abraço!

[2] Comentário enviado por removido em 23/05/2007 - 10:55h

Belo artigo.
Mas esse módulo do Squid para o suporte a autenticação LDAP em algumas versões do Squid há vulnerabilidades em que o atacante pode logar no servidor sem a autenticação. Fica a observação.


dcyrillo, não podem.

[3] Comentário enviado por pcnmota em 23/05/2007 - 17:48h

E ae mano.... Parabens pelo artigo... Muito BOM!

abraços!

[4] Comentário enviado por brunoarantes em 23/05/2007 - 17:55h

vale pela dica leogemeostotino.

[5] Comentário enviado por brunoarantes em 23/05/2007 - 17:56h

Respondendo a pergunta do amigo dcyrillo.
Em se falando de autenticação, esquece proxy Transparente. Abraço

[6] Comentário enviado por koiti.ozaki em 24/05/2007 - 08:23h

Olá Bruno!

Parabéns pelo artigo, que traz uma experiência prática específica.
Você conseguiu formatar a seqüência de passos para a instalação de um ambiente em que muitos também querem.

Espero que a minha contribuição neste seu sucesso tenha lhe ajudado.

Não esqueça de citar o apoio que você teve do Joedilson Azevedo!

Um abraço

[7] Comentário enviado por brunoarantes em 24/05/2007 - 08:41h

Gostaria de Agrader um Amigo Virtual, pelo apoio, esclarecimento de duvidas e pelo ensinamento.
!!!!!!! Joedilson Azevedo !!!!!!

[8] Comentário enviado por andersonmo7 em 24/05/2007 - 18:44h

Você usou qual versão do Debian ? Etch ou Sarge ?

[9] Comentário enviado por vladijr em 03/06/2007 - 15:32h

olá estou com um problema fiz todas as configurações do ldap conforme estão no artigo mas não consigo mais fazer logon no servidor pois da falha de login quando tento entrar no sistema e acesso negado quando tento logar como root o que pode estar acontecendo??? estou usando o ubuntu 6.10

[10] Comentário enviado por fischerdouglas em 09/08/2007 - 13:40h

?comentario= Cara, o pacote php4-fpdf... nao existe!!! Posso usar o php-fpdf? alguma outra opção?

[11] Comentário enviado por bolaoutro em 27/08/2007 - 11:21h

Estou com o mesmo problema do Vladirj... apos a instalacao do LDAP ... o usuario root perde a senha, nao consigo mas usar o "sudo" .... o que pode estar acontecendo ??? Estou usando o Debian 4 !!!!
.
Abraços !!

[12] Comentário enviado por removido em 29/10/2007 - 17:14h

Ola amigo,
cmecei a seguir os passos do artigo e no ultimo comando da sessão samba, me ocorreu o seguinte erro abaixo:

server:/etc# smbpasswd -a root
failed to bind to server ldap://localhost with dn="cn=admin,dc=rrm" Error: Can't contact LDAP server
(unknown)
Connection to LDAP server failed for the 1 try!
...
Connection to LDAP server failed for the 12 try!
Connection to LDAP server failed for the 13 try!
New SMB password:
Retype new SMB password:
Connection to LDAP server failed for the 1 try!
Connection to LDAP server failed for the 2 try!
...
Connection to LDAP server failed for the 13 try!
Failed to add entry for user root.
Failed to modify password entry for user root


Como posso arrumar isso, ou o que fiz de errado.

Agradeço desde ja.
Abraço

[13] Comentário enviado por vanrel em 07/11/2007 - 09:03h

Estou tendo o mesmo problema do bolaoutro, o usuário root não entra.

[14] Comentário enviado por jkessler em 20/11/2007 - 11:12h

Fala Bruno Parabéns pelo artigo muito bom!!!

Cara estou com o seguinte problema na hora de popular a base encontro o seguinte erro:

oot@ze-laptop:~# smbldap-populate
Populating LDAP directory for domain gcomp.com.br (S-1-5-21-2667053128-3152142411-1601951123)
(using builtin directory structure)

entry dc=gcomp.com.br already exist.
entry ou=People,dc=gcomp.com.br already exist.
entry ou=Group,dc=gcomp.com.br already exist.
entry ou=Computer,dc=gcomp.com.br already exist.
entry ou=Idmap,dc=gcomp.com.br already exist.
entry uid=root,ou=People,dc=gcomp.com.br already exist.
entry uid=nobody,ou=People,dc=gcomp.com.br already exist.
entry cn=Domain Admins,ou=Group,dc=gcomp.com.br already exist.
entry cn=Domain Users,ou=Group,dc=gcomp.com.br already exist.
entry cn=Domain Guests,ou=Group,dc=gcomp.com.br already exist.
entry cn=Domain Computers,ou=Group,dc=gcomp.com.br already exist.
entry cn=Administrators,ou=Group,dc=gcomp.com.br already exist.
entry cn=Account Operators,ou=Group,dc=gcomp.com.br already exist.
entry cn=Print Operators,ou=Group,dc=gcomp.com.br already exist.
entry cn=Backup Operators,ou=Group,dc=gcomp.com.br already exist.
entry cn=Replicators,ou=Group,dc=gcomp.com.br already exist.
entry SambaDomainName=gcomp.com.br,dc=gcomp.com.br already exist. Updating it...
failed to modify entry: structural object class modification from 'sambaDomain' to 'inetOrgPerson' not allowed at /usr/sbin/smbldap-populate line 488, <GEN1> line 21.
Estou usando o Kubuntu 7.04 ldap 2.3.30-2 Samba 3.0.24-2ubuntu1.2

Agradeço desde já um forte abraço

jkessler

[15] Comentário enviado por vinehellcat em 06/03/2008 - 23:34h

ao menegazo666 ....coloque isso no seu slapd.conf

# Indexing options for database #1
index sambaSID eq
index sambaPrimaryGroupSID eq
index objectClass,uid,uidnumber,gidnumber eq
index cn,mail,surname,givenname eq,sub

depois smbldap-populate depois smbpasswd -a root "senha"

Espero ter ajudado
Vine Hellcat

[16] Comentário enviado por lipecys em 03/06/2008 - 08:32h

Muito bacana seu artigo, parabéns.
Foi pro favoritos.

[17] Comentário enviado por dalph em 26/06/2008 - 14:45h

to com o mesmo problema do jkessler e agora não consigo mais logar como root na maquina e se digito su ele aceita a senha e nao troca o usuario.

alguém pode dar uma ajuda?

[18] Comentário enviado por wfergom em 12/08/2008 - 09:35h

Muito bom, valeu !!!

[19] Comentário enviado por katatas em 12/09/2008 - 10:51h

caro bruno, antes de tudo... muito obrigado aew pelo seu tuto.. estou fazendo um trabalho na facul, que eh basicamente isso aew... foi mao na roda pra mim, veio....


agora eis o problema... nao sei se eh burrice minha, mas logo no primeiro comando deu pau....

qndo executei:
#apt-get install slapd ldap-utils ... pelo q entendi era para aparecer um front end, pedindo domain name, organization name, admin passwd, verify passwd... mas no meu caso que estou usando ubuntu 8.04, nao apareceu isso, apareceu apenas pedindo a senha e pra confirmar, dai qndo fui editar o arquivo /etc/ldap/slapd.conf... aparece no rootd "dc=nodomain"... nao sei se eh pra mim alterar ai o dominio, ou se eh pra mim definir la no comando de cima.....

enfim eh isso aew...

aguardo respostas...

e desde ja desculpa ai a ignorancia....


e belo post.... vlw mermao....

abs

Marlo de Souza

[20] Comentário enviado por katatas em 14/09/2008 - 10:30h

aew glra descobri ai pra configurar....

basta reconfigurar o comando:

#dpkg -reconfigure nome do pacote


vlw glra, espero ter ajudado aew alguem que esteja com o memo problema...

vlw

abs

[21] Comentário enviado por paulloal em 04/01/2009 - 22:14h

o meu deu o seguinte erro.... e como posso arumalo

Use of uninitialized value in string at /usr/share/perl5/smbldap_tools.pm line 298.
entry dc=ccb already exist.
adding new entry: ou=People,dc=ccb
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 3.
adding new entry: ou=Group,dc=ccb
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 4.
adding new entry: ou=Computer,dc=ccb
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 5.
adding new entry: ou=Idmap,dc=ccb
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 6.
adding new entry: uid=root,ou=People,dc=ccb
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 7.
adding new entry: uid=nobody,ou=People,dc=ccb
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 8.
adding new entry: cn=Domain Admins,ou=Group,dc=ccb
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 9.
adding new entry: cn=Domain Users,ou=Group,dc=ccb
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 10.
adding new entry: cn=Domain Guests,ou=Group,dc=ccb
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 11.
adding new entry: cn=Domain Computers,ou=Group,dc=ccb
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 12.
adding new entry: cn=Administrators,ou=Group,dc=ccb
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 16.
adding new entry: cn=Account Operators,ou=Group,dc=ccb
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 18.
adding new entry: cn=Print Operators,ou=Group,dc=ccb
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 19.
adding new entry: cn=Backup Operators,ou=Group,dc=ccb
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 20.
adding new entry: cn=Replicators,ou=Group,dc=ccb
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 21.
entry SambaDomainName=ccb,dc=ccb already exist. Updating it...
failed to modify entry: modifications require authentication at /usr/sbin/smbldap-populate line 488, <GEN1> line 21.

Please provide a password for the domain root:
Use of uninitialized value in string at /usr/share/perl5/smbldap_tools.pm line 298.
/usr/sbin/smbldap-passwd: user root doesn't exist



PORFAVOR ajude-me =D-

[22] Comentário enviado por kroger em 11/03/2009 - 00:29h

Estou com o mesmo problema aki !!!

Uso fedora 7

Samba 4 + LDAP

# smbldap-populate
.
.
.
aparece o seguite erro:
entry dc=domimio,dc=local already exist.
entry ou=Usuarios,dc=domimio,dc=local already exist.
entry ou=Grupos,dc=domimio,dc=local already exist.
entry ou=Computadores,dc=domimio,dc=local already exist.
adding new entry: ou=Idmap,dc=domimio,dc=local
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 27.
entry uid=root,ou=Usuarios,dc=domimio,dc=local already exist.
adding new entry: uid=nobody,ou=Usuarios,dc=domimio,dc=local
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 89.
adding new entry: cn=Domain Admins,ou=Grupos,dc=domimio,dc=local
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 101.
adding new entry: cn=Domain Users,ou=Grupos,dc=domimio,dc=local
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 112.
adding new entry: cn=Domain Guests,ou=Grupos,dc=domimio,dc=local
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 123.
adding new entry: cn=Domain Computers,ou=Grupos,dc=domimio,dc=local
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 134.
adding new entry: cn=Administrators,ou=Grupos,dc=domimio,dc=local
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 179.
adding new entry: cn=Account Operators,ou=Grupos,dc=domimio,dc=local
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 201.
adding new entry: cn=Print Operators,ou=Grupos,dc=domimio,dc=local
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 212.
adding new entry: cn=Backup Operators,ou=Grupos,dc=domimio,dc=local
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 223.
adding new entry: cn=Replicators,ou=Grupos,dc=domimio,dc=local
failed to add entry: modifications require authentication at /usr/sbin/smbldap-populate line 495, <GEN1> line 234.
entry cn=NextFreeUnixId,dc=domimio,dc=local already exist. Updating it...
failed to modify entry: modifications require authentication at /usr/sbin/smbldap-populate line 488, <GEN1> line 240.

Please provide a password for the domain root:
Changing UNIX and samba passwords for root
New password:
Retype new password:
failed to modify entry: modifications require authentication at /usr/sbin/smbldap-passwd line 227, <STDIN> line 2.
Unable to change password: modifications require authentication at /usr/sbin/smbldap-passwd line 261, <STDIN> line 2.


[23] Comentário enviado por rmacedo em 29/10/2009 - 13:30h

Não consegui executar o comando abaixo:
/etc/init.d/sysklogd restart

Onde eu errei.
Minha distro é um Debian 5

[24] Comentário enviado por rmacedo em 29/10/2009 - 14:43h

Olá pessoal,

O meu apresentou o resultado a seguir
Populating LDAP directory for domain INTERNIT (S-1-5-21-2459854038-2108465205-128929952)
(using builtin directory structure)

entry dc=internit,dc=net,dc=br already exist.
adding new entry: ou=People,dc=internit,dc=net,dc=br
adding new entry: ou=Group,dc=internit,dc=net,dc=br
adding new entry: ou=Computer,dc=internit,dc=net,dc=br
adding new entry: ou=Idmap,dc=internit,dc=net,dc=br
adding new entry: uid=root,ou=People,dc=internit,dc=net,dc=br
adding new entry: uid=nobody,ou=People,dc=internit,dc=net,dc=br
adding new entry: cn=Domain Admins,ou=Group,dc=internit,dc=net,dc=br
adding new entry: cn=Domain Users,ou=Group,dc=internit,dc=net,dc=br
adding new entry: cn=Domain Guests,ou=Group,dc=internit,dc=net,dc=br
adding new entry: cn=Domain Computers,ou=Group,dc=internit,dc=net,dc=br
adding new entry: cn=Administrators,ou=Group,dc=internit,dc=net,dc=br
adding new entry: cn=Account Operators,ou=Group,dc=internit,dc=net,dc=br
adding new entry: cn=Print Operators,ou=Group,dc=internit,dc=net,dc=br
adding new entry: cn=Backup Operators,ou=Group,dc=internit,dc=net,dc=br
adding new entry: cn=Replicators,ou=Group,dc=internit,dc=net,dc=br
adding new entry: SambaDomainName=INTERNIT,dc=internit,dc=net,dc=br
failed to add entry: attribute 'sambaNextRid' not allowed at /usr/sbin/smbldap-populate line 499, <GEN1> line 239.

Please provide a password for the domain root:
Changing UNIX and samba passwords for root
New password:
Retype new password:

que erro é esse?
failed to add entry: attribute 'sambaNextRid' not allowed at /usr/sbin/smbldap-populate line 499, <GEN1> line 239.

Alguém pode me ajudar?

[25] Comentário enviado por rmacedo em 29/10/2009 - 15:26h

Olá Pessoal

Mais um problema.

Quando fui reiniciar meu Linux estou ganhando a seguinte mensagem:
could not connect to any LDAP as cn=admin,dc=internit,dc=net,dc=br - Can't contact LDAP server
failed to bind LDAP Server ldapi://192.168.254.50 - Can't contact LDAP server

Alguém sabe me dizer o que é isso?

Acho que pode ser algum problema na sequência do boot, pois isso acontece antes do linux configurar a placa de rede.

[]'s

[26] Comentário enviado por educlj em 13/04/2011 - 10:48h

Excelente artigo!!! Obrigado!!

A título de ajuda para aqueles que enfrentam problemas tentando usar o smbldap-tools (smbldap-populate), após a configuração correta do LDAP, use o LAM (LDAP Account Manager) para criação da estrutura básica e do domínio samba. Após isso, tudo ocorre normalmente.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts