Instalação Ldap + Samba
_ _ ____ _
| | __| | __ _ _ __ _ / ___| __ _ _ __ ___ | |__ __ _
| | / _` |/ _` | '_ \ _| |_ \___ \ / _` | '_ ` _ \| '_ \ / _` |
| |__| (_| | (_| | |_) | |_ _| ___) | (_| | | | | | | |_) | (_| |
|_____\__,_|\__,_| .__/ |_| |____/ \__,_|_| |_| |_|_.__/ \__,_|
|_|
____ _ _ __ _ _ _ _
| _ \ ___| |__ (_) __ _ _ __ / / | | | | |__ _ _ _ __ | |_ _ _
| | | |/ _ \ '_ \| |/ _` | '_ \ / / | | | | '_ \| | | | '_ \| __| | | |
| |_| | __/ |_) | | (_| | | | | / / | |_| | |_) | |_| | | | | |_| |_| |
|____/ \___|_.__/|_|\__,_|_| |_| /_/ \___/|_.__/ \__,_|_| |_|\__|\__,_|
-
Agora também funciona para Ubuntu Edgy.
-
Agora também funciona para Ubuntu Feisty e Debian 4.0. :-))
Objetivo
O objetivo final desse documento é:
- ter um servidor LDAP contendo todos usuários (exceto de sistemas - UID >= 1000), grupos ( GID >= 100) e máquinas Windows;
- Um único usuário especial será o administrador do ldap;
- Clientes deverão utilizar-se do NSS com o módulo PAM normalmente para autenticação;
- Somente o administrador ldap terá acesso às senhas criptografadas pelo NSS;
- As senhas do SAMBA serão sincronizadas com as do LINUX e vice-versa, ou seja, as alterações de senhas serão mantidas as mesmas tanto para SAMBA quanto para LINUX;
-
O servidor ldap que iremos instalar será o MASTER e o samba será o PDC. Isso equivale a termos um único servidor AD / PDC (da Microsoft).
- Em outras palavras, o nosso servidor será ao mesmo tempo servidor ldap, servidor samba e cliente ldap dele mesmo.
O ldap nos proporciona uma escalabilidade para posteriormente instalarmos outros servidores
ldap+samba que irão atuar como
slave+bdc. Isso equivale a termos diversos servidores BDC (da Microsoft) instalados em vários pontos onde se faz necessária a autenticação centralizada.
Além de permitir que máquinas Windows sejam utilizadas nesse domínio, outra facilidade é de podermos utilizar desse servidor ldap para autenticar outras máquinas com Ubuntu (Debian), tendo assim um único repositório para toda nossa rede.
Atualizar seu Ubuntu Dapper
Uma das coisas que dão mais trabalho para quem está iniciando é entender/configurar o
/etc/apt/sources.list para que todos os programas disponíveis estejam a um passo do famoso
apt-get install.
Veja como
atualizar sua lista de pacotes para Ubuntu Dapper.
Instalação do Servidor Ldap
root@gnad088809:~# apt-get install slapd ldap-utils db4.2-util libpam-ldap libnss-ldap nscd libpam-foreground
-
O DebConf irá fazer algumas perguntas, responda o default mesmo (
), pois iremos substituir pelos arquivos de configuração já prontos no final desta página.
Instação do Servidor Samba
root@gnad088809:~# apt-get install samba samba-common samba-doc smbclient smbfs smbldap-tools
-
Novamente o DebConf irá fazer algumas perguntas, responda o default mesmo (
), pois iremos substituir pelos arquivos de configuração já prontos no final desta página.
Script de Configuração
Para facilitar a tarefa de copiar os arquivos de configuração de alguns tutoriais e trocar as informações que são apresentadas como exemplos para as suas específicas, desenvolvi um pequeno script em shell para tal.
Baixando o script
- Baixe o arquivo (
) ldap+samba.tgz (em anexo à esta página) no diretório (
) /tmp.
Descompactando o script
- Destarreie no diretório (
) raiz do root ( /root/ ) conforme exemplo abaixo:
root@gnad088809:~# cd
root@gnad088809:~# tar xzvf /tmp/ldap+samba.tgz
bin/
bin/ldap+samba.sh
bin/smbldap-populate-pt_BR.sh
bin/startup.bat
etc/
etc/smbldap-tools/
etc/smbldap-tools/smbldap_bind.conf
etc/smbldap-tools/smbldap.conf
etc/ldap/
etc/ldap/slapd.conf
etc/ldap/ldap.conf
etc/ldap.secret
etc/nsswitch.conf
etc/samba/
etc/samba/smb.conf
etc/samba/smbusers
etc/pam.d/
etc/pam.d/common-auth
etc/pam.d/common-account
etc/pam.d/common-password
etc/pam.d/common-session
etc/libnss-ldap.conf
var/
var/lib/
var/lib/ldap/
var/lib/ldap/DB_CONFIG
Executando o script
- Agora é só executar o script chamado
bin/ldap+samba.sh que foi destarreado no /root/.
root@gnad088809:~# bin/ldap+samba.sh
Você está prestes a configurar de forma automática um servidor:
***** Ldap MASTER ***** e ***** Samba PDC *****
===================================================================
1) As respostas a algumas perguntas abaixo irão gerar os arquivos de
configuração adequados.
2) Após todas as respostas você deverá confirmar as respostas.
3) Todos os arquivos de configuração existentes serao backupeados
de forma que nenhuma informação seja apagada.
4) Se existir uma base de dados ldap, esta também será backupeada.
Configurando seus dados
- Neste momento o script pede por algumas informações para serem utilizadas nos arquivos de configuração.
Responda as perguntas (valores default estão entre [ ]) :
=========================================================
1 - IP do Servidor Ldap ( Este servidor MASTER tem seguinte IP: 10.76.0.162 )
Default: [10.76.0.162] Novo Valor...: =>127.0.0.1
2 - Netbios Name ( Nome do Servidor Samba na Rede Windows )
Default: [gnad088809] Novo Valor...: =>
3 - Dominio Samba ( Domínio onde os Windows irão se autenticar/logar )
Default: [MEU-DOMINIO] Novo Valor...: =>PS
4 - Comentario Samba ( Visto pelos Windows ao Navegar pela Rede Microsoft )
Default: [Servidor Samba - gnad088809] Novo Valor...: =>
5 - IP do Servidor Wins ( Um tipo de DNS da Microsoft )
Default: [10.0.134.223] Novo Valor...: =>
6 - Tipo do Database Ldap ( Pode ser ldbm, bdb ou hdb )
Default: [bdb] Novo Valor...: =>
7 - Sufixo Ldap ( É a raiz do ldap )
Default: [dc=exemplo,dc=com,dc=br] Novo Valor...: =>dc=previdencia
8 - Administrador Ldap ( Geralmente é root ou Manager )
Default: [root] Novo Valor...: =>
9 - Senha do administrador Ldap ( É a senha do administrador Ldap )
Default: [senha-ldap] Novo Valor...: =>root
Confirmando seus dados
- O script pede a confirmação dos dados. Caso tenha digitado errado responda N que novamente serão solicitadas as informações acima.
Confirma as informações fornecidas?
===================================
1 - IP do Servidor Ldap = [127.0.0.1] -- ( Este servidor MASTER tem seguinte IP: 10.76.0.162 )
2 - Netbios Name = [gnad088809] -- ( Nome do Servidor Samba na Rede Windows )
3 - Dominio Samba = [PS] -- ( Domínio onde os Windows irão se autenticar/logar )
4 - Comentario Samba = [Servidor Samba - gnad088809] -- ( Visto pelos Windows ao Navegar pela Rede Microsoft )
5 - IP do Servidor Wins = [10.0.134.223] -- ( Um tipo de DNS da Microsoft )
6 - Tipo do Database Ldap = [bdb] -- ( Pode ser ldbm, bdb ou hdb )
7 - Sufixo Ldap = [dc=previdencia] -- ( É a raiz do ldap )
8 - Administrador Ldap = [root] -- ( Geralmente é root ou Manager )
9 - Senha do administrador Ldap = [root] -- ( É a senha do administrador Ldap )
Confirma (S/N)? [N] S
Parando os serviços
- Agora o script irá parar os serviços necessários.
Parando os serviços: smb slapd nscd
===================================
* Stopping Samba daemons... [ ok ]
Stopping OpenLDAP: slapd.
Stopping Name Service Cache Daemon: nscd.
Executando suas configurações
- Em seguida irá copiar os arquivos configurados para seus devidos lugares. Note que o script irá fazer uma cópia dos arquivos de configuração existentes antes anexando nos arquivos existentes a data/hora atuais.
Arquivos configurados
=====================
/etc/ldap/slapd.conf
/etc/ldap/ldap.conf
/etc/ldap.secret
/etc/libnss-ldap.conf
/etc/nsswitch.conf
/etc/smbldap-tools/smbldap.conf
/etc/smbldap-tools/smbldap_bind.conf
/etc/pam.d/common-account
/etc/pam.d/common-auth
/etc/pam.d/common-password
/etc/pam.d/common-session
/etc/samba/smb.conf
etc/samba/smbusers
Iniciando o serviços
- Finalmente o ldap/samba será iniciado com suas informações fornecidas.
Iniciando os servicos: slapd nscd
=================================
Starting OpenLDAP: slapd.
Starting Name Service Cache Daemon: nscd.
Iniciando o servico: samba
==========================
Setting stored password for "cn=root,dc=previdencia" in secrets.tdb
* Starting Samba daemons... [ ok ]
Povoando a base ldap
- Agora o povoamento da base inicial será feito através do pacote
smbldap-tools e outro script (bin/smbldap-populate-pt_BR.sh) já incluso que irá trocar os nomes dos usuários/grupos a serem criados no ldap para o Português Brasileiro.
Povoar a base ldap
==================
Arquivo /usr/sbin/smbldap-populate traduzido em /usr/sbin/smbldap-populate.pt_BR
Populating LDAP directory for domain PS (S-1-5-21-168405174-2206398753-3502093608)
(using builtin directory structure)
adding new entry: dc=previdencia
adding new entry: ou=Usuarios,dc=previdencia
adding new entry: ou=Grupos,dc=previdencia
adding new entry: ou=Computadores,dc=previdencia
adding new entry: ou=Idmap,dc=previdencia
adding new entry: uid=root,ou=Usuarios,dc=previdencia
adding new entry: uid=nobody,ou=Usuarios,dc=previdencia
adding new entry: cn=Administradores do Dominio,ou=Grupos,dc=previdencia
adding new entry: cn=Usuarios do Dominio,ou=Grupos,dc=previdencia
adding new entry: cn=Convidados do Dominio,ou=Grupos,dc=previdencia
adding new entry: cn=Computadores do Dominio,ou=Grupos,dc=previdencia
adding new entry: cn=Administradores,ou=Grupos,dc=previdencia
adding new entry: cn=Operadores de Contas,ou=Grupos,dc=previdencia
adding new entry: cn=Operadores de Impressao,ou=Grupos,dc=previdencia
adding new entry: cn=Operadores de Backup,ou=Grupos,dc=previdencia
adding new entry: cn=Duplicadores,ou=Grupos,dc=previdencia
adding new entry: sambaDomainName=PS,dc=previdencia
Please provide a password for the domain root:
Changing UNIX and samba passwords for root
New password:
Retype new password:
Pronto! Seu LDAP+SAMBA estão configurados
=========================================
- Note que a senha do usuario administrador ldap foi utilizada também como senha do administrador samba. Para trocar a mesma por outra utilize
smbldap-passwd root (ou Manager).
Algumas dicas iniciais
- Em seguida umas informações para você mesmo testar o funcionamento dos serviços.
Verifique o funcionamento do ldap e samba
=========================================
# getent passwd (usuarios - equivale a /etc/passwd)
# getent group (grupos - equivale a /etc/group)
# getent shadow (senhas - equivale a /etc/shadow)
# smbclient -L 127.0.0.1 -U% (detalhes do samba)
# pdbedit -Lv root (detalhes do administrador ldap "root")
- Finalmente umas dicas simples de como criar grupos e usuarios são fornecidas.
Para adicionar grupos:
# smbldap-groupadd -a DATAPREV
# smbldap-groupadd -a INSS
Temos tres tipos de usuarios:
1) Linux : Somente fazem login pelo Linux
# smbldap-useradd -m -c "Nome do Usuario" login_linux
2) Windows : Fazem login pelo Linux ou pelo Windows
# smbldap-useradd -a -m -c "Jarbas Peixoto Junior" d323209
3) Maquinas: Ingresso de maquinas Windows no dominio
# smbldap-useradd -w user_maquina
Para colocar nome, grupo, email,etc nos usuarios:
# smbldap-usermod -G DATAPREV -N "Jarbas Peixoto Junior - DATAPREV-GO" -S "UAGO - GO - Goiania" -M "jarbas.peixoto@previdencia.gov.br" d323209
-
Pronto! Seu LDAP e SAMBA estão prontos para o trabalho.
Ingressando máquinas Windows no Domínio
Para ingressar máquinas Windows no Domínio você deve fazer conforme as seguintes telas:
- Propriedades do Windows 2000:
- Identificação da Rede Windows 2000:
- Alterações na Identificação da Rede Windows 2000:
- Fornecendo Usuário/Senha para Alterar Identificação da Rede Windows 2000:
- Bem Vindo ao Domínio:
- Reinicio do Computador Requerido - 1:
- Reinicio do Computador Requerido - 2:
- Reinicio do Computador Requerido - 3:
-
Agora você precisa dar um boot no Windows para que ele permita o acesso com usuários do domínio.
- Login com Usuário Samba+Ldap no Domínio:
- Usuario d323209 logado mostrando os drives (F:\, T:\ e U:\) mapeados automaticamente:
Para fazer
- Incluir dicas de como trocar nomes de usuarios / grupos;
- Incluir dicas de como implementar um ''slave / bdc'';
- Fazer um script para manutenção da base ldap em modo gráfico utilizando-se de shell e alguma ferramenta para mostrar graficamente as perguntas e respostas.
Referências
Em Portugues Brasileiro
- O que é Ldap? Veja uma http://wiki.ubuntubrasil.org/IntroducaoLdap
- Samba 3.x - http://www.linuxrapido.org/modules.php?name=Sections&op=printpage&artid=86
- Muito sobre Samba - http://www.zago.eti.br/samba/A-menu-samba.html
- Lixeira no Samba - http://www.zago.eti.br/samba/lixeira.txt
- Howto de Samba - http://br.tldp.org/projetos/howto/arquivos/html/Samba-HOWTO/Samba-HOWTO.pt_BR.html
- LDAP - Dicas, listas, materiais em português Brasileiro - http://www.ldap.org.br
- Samba+Ldap+Squid - http://www.ldap.org.br/modules/ldap/files/files/Samba-Ldap-Squid.pdf
- Dicas de operação e manutenção de um servidor OpenLDAP - http://www.dicas-l.unicamp.br/dicas-l/20050831.php
- Dicas SAMBA, Atributos extendidos - http://www.dicas-l.unicamp.br/dicas-l/20050901.php
-
Manual traduzido do smbldap-tools - http://www.servtec.xq.com.br/Arquivos/IDEALX/smbldap-tools.pt_br.html
-
Ótima Monografia sobre LDAP - http://www.ldap.liceu.com.br/index.html
-
Instalação e configuração de um Servidor Linux com File & Print Server Samba e Domain Controller - http://www.softwarelivre.citiap.gov.pt/Projectos/Infra-estrutura/folder.2004-07-23.3835814063/samba_dc
- Instalação de Samba+Ldap no Debian http://www.leoserra.uaivip.com.br/leonix/documentacao/
- Porque utilizar o
LDBM - http://www.macan.eng.br/?p=6
- Excelente Monografia Ldap - http://www.ldap.liceu.com.br/index.html
- Tutorial para Mandriva - http://twiki.softwarelivre.org/bin/view/PSLGO/LdapSambaPessoal
Outras linguas (inglês, espanhol, etc)
- Ldap na Fonte Original - http://www.openldap.org/doc/admin23/index.html
- Samba na Fonte Original - http://us1.samba.org/samba/docs/man/Samba-Guide/
- Diferenças entre
LDBM e BDB - http://www.openldap.org/faq/index.cgi?_highlightWords=ldbm&file=756
- Instalação baseada no PDF http://www.samba.org/samba/docs/Samba3-ByExample.pdf
- Excelente material em espanhol - http://es.tldp.org/Tutoriales/doc-openldap-samba-cups-python/htmls/index.html
- Autenticação com Debian - http://wiki.debian.org/?LDAPAuthentication
- Ldap para Organização - http://wiki.osuosl.org/display/LNX/Openldap+and+Debian+Stable
- Autenticando Cliente Ubuntu - https://help.ubuntu.com/community/LDAPClientAuthentication
- Ótimo tutorial sobre Idealx - http://samba.idealx.org/smbldap-howto.en.html
- Criptografando o LDAP - http://www.openldap.org/pub/ksoper/OpenLDAP_TLS_howto.html
- Gurus do LDAP - http://ldapguru.com/
- Servidor de Domínio com Samba 3 - http://mandriva.vmlinuz.ca/bin/view/Main/SambaThreeDomainController
- Samba-3: Windows file and directory ACLs - http://searchopensource.techtarget.com/tip/1,289483,sid39_gci1080966,00.html
Quem usa Debian pode/deve complementar com:
- Linux LDAP authentication - http://enterprise.linux.com/article.pl?sid=05/09/15/1930256
- LDAPAuthentication - http://wiki.debian.org/?LDAPAuthentication
- LDAP + Samba - http://homex.subnet.at/~max/ldap/#sarge_base-install
- LDAP + Samba - http://wiki.osuosl.org/display/LNX/Openldap+and+Debian+Stable
- Authenticating Linux Clients to Windows Server 2003 - http://ubuntuforums.org/showthread.php?t=63303&highlight=ldap
- Using LDAP for single authentication - http://www.fatofthelan.com/articles/articles.php?pid=24
- Linux LDAP authentication - http://enterprise.linux.com/article.pl?sid=05/09/15/1930256&tid=129
- Advanced Linux LDAP authentication - http://enterprise.linux.com/enterprise/05/10/18/1732231.shtml
- Debian Samba 3.0.14a with ldap, recyle + little SETUP for samba + Ldap - http://www.archivum.info/linux.samba/2005-07/msg00026.html
- Configuração Simples Samba+LDAP - http://www.vivaolinux.com.br/artigos/impressora.php?codigo=4195
Interfaces Gráficas para Gerenciamento do LDAP
- LdapAdmin (Instalável num RWindows) - http://ldapadmin.sourceforge.net/
- LdapManager (Instalável num RWindows) - http://www.ldapmanager.org/page.php?6
- SIGATI - http://sigati.codigolivre.org.br/
- phpLDAPadmin - http://phpldapadmin.sourceforge.net/
- Softerra LDAP Browser - http://www.ldapbrowser.com/
- JXplorer - Java LDAP Browser- http://jexplorer.org/
Quem sou eu ?