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.759 ]

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


Servidor Samba



Instalando o servidor Samba:

# apt-get install samba samba-common samba-doc libsmbclient smbldap-tools
Nome de domínio	vivaolinux
Usar Encriptação de Senhas?	sim
Modificar smb.conf para.... (Wins)	não
Como o Samba deve ser executado?	Daemons
Gerar /var/lib/samba/passdb.tdb?	sim

Copiar os schema para dentro do Samba:

# cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema
# gunzip /etc/ldap/schema/samba.schema.gz


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

include /etc/ldap/schema/samba.schema

Reiniciar o slapd:

# /etc/init.d/slapd restart

Criar o arquivo /etc/samba/smb.conf com o seguinte conteúdo:

[global]
workgroup = vivaolinux
security = user
netbios name = serverteste
server string = Servidor de Dominio
announce as = NT Server
local master = yes
os level = 80
domain master = yes
domain logons = yes
preferred master = yes
wins support = yes

#Parte de Autenticação no LDAP

passdb backend = ldapsam:ldap://localhost
ldap passwd sync = Yes
ldap admin dn = cn=admin,dc=vivaolinux
ldap ssl = off
ldap user suffix = ou=People
ldap group suffix = ou=Group
ldap machine suffix = ou=Computer
ldap suffix = dc=vivaolinux
ldap delete dn = yes

#Fim da Parte de Autenticação no LDAP

encrypt passwords = yes
smb passwd file = /etc/samba/smbpasswd

unix password sync = no
passwd program = /usr/bin/passwd %u
passwd chat = *password* %n\n *password* %n\n *success*
#passwd chat = *New*password* %n\n *Retype*New*password* %n\n \*passwd:*all*authentication*tokens*updated*sucessfully*

pam password change = yes
obey pam restrictions = yes

username map = /etc/samba/smbusers
logon script = usuario.bat
enable privileges = yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

#Scripts de Criação/deleção de usuários, maquinas.......
add user script = /usr/sbin/smbldap-useradd -am "%u"
add machine script = /usr/sbin/smbldap-useradd -w "%u"
add group script = /usr/sbin/smbldap-groupadd -p "%g"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
delete user script = /usr/sbin/smbldap-userdel "%u"
delete group script = /usr/sbin/smbldap-groupdel "%g"
#Fim Script

[homes]
comment = Diretório de %u
read only = no
create mask = 0644
directory mask = 0700
browseable = no

[netlogon]
path = /home/samba/netlogon
#colocar o arquivo .bat na pasta netlogon
guest ok = yes
browseable = no
read only = yes

[Profiles]
comment = Network User Profiles
path = /home/profiles
read only = no
create mask = 0700
directory mask = 0700

Criar a pasta onde será colocado o script inicial que roda após o logon nas máquinas Windows:

# mkdir /home/samba/
# mkdir /home/samba/netlogon


Reiniciar o Samba (demora um pouco):

# /etc/init.d/samba restart

Incluir a senha do administrador Samba:

# smbpasswd -w senha_do_root

Criar os arquivos /etc/smbldap-tools/smbldap.conf e /etc/smbldap-tools/smbldap_bind.conf, como a seguir:

/etc/smbldap-tools/smbldap.conf:

SID="S-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
slaveLDAP="127.0.0.1"
slavePort="389"

masterLDAP="127.0.0.1"
masterPort="389"

ldapTLS="0"
verify="require"
suffix="dc=vivaolinux"

usersdn="ou=People,${suffix}"
computersdn="ou=Computer,${suffix}"
groupsdn="ou=Group,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="SambaDomainName=vivaolinux,${suffix}"
scope="sub"
hash_encrypt="SSHA"
crypt_salt_format="%s"

userLoginShell="/bin/bash"
userHome="/home/%U"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
defaultMaxPasswordAge="99"
userSmbHome="\\%L\%U\.9xprofile"
userHomeDrive="Z:"
userScript="%U.cmd"
mailDomain="vivaolinux"
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"

Onde SID é o resultado do comando:

# net getlocalsid vivaolinux

/etc/smbldap-tools/smbldap_bind.conf:

slaveDN="cn=admin,dc=vivaolinux"
slavePw=senha do root em claro e entre aspas Ex slavePw="123456"
masterDN="cn=admin,dc=vivaolinux"
masterPw=senha do root em claro e entre aspas Ex masterPw="123456"

Dar direitos de modificação do arquivo ao root:

# chmod 600 /etc/smbldap-tools/smbldap_bind.conf

Popular com os grupos básicos o ldap:

# smbldap-populate

Modificar a senha do root para o LDAP (faça mesmo que tenha informado anteriormente):

# smbpasswd -a root

Página anterior     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

OSPF + quagua + CentOS 5.3

Configurando o Slackware 12

Usando Swap na RAM em Sabayon - ZRAM - Método novo

Configurar uma rede doméstica e compartilhar ADSL no Slackware

NGinx - Otimizando Recursos Externos Automaticamente

  
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