Samba3 + LDAP no ArchLinux

Olá pessoal, em meu primeiro artigo gostaria de demonstrar como foi minha trajetória em instalar e configurar o Samba3 autenticando com LDAP no ArchLinux.

[ Hits: 39.104 ]

Por: Wellington Oliveira de Andrade em 08/10/2008


Configurando / testando LDAP



5) Configurando LDAP

a) Vamos gerar uma senha para o LDAP com o seguinte comando:

# slappasswd

Anote o resultado, pois utilizaremos para configurar o arquivo seguinte.

b) Vamos configurar o LDAP editando o arquivo /etc/openldap/sldap.conf, note que existe alguns comentários no arquivo, essas linhas poderão ser apagadas, devemos deixar assim:

allow bind_v2

include     /etc/openldap/schema/core.schema
include     /etc/openldap/schema/cosine.schema
include     /etc/openldap/schema/inetorgperson.schema
include     /etc/openldap/schema/nis.schema
include     /etc/openldap/schema/samba.schema  #(arquivo baixado do site do samba)

schemacheck on

pidfile   /var/run/slapd.pid
argsfile  /var/run/slapd.args

database   bdb
suffix     "dc=viva,dc=edu,dc=br"
rootdn     "cn=administrador,dc=viva,dc=edu,dc=br"
rootpw     {SSHA}ZUfdq0QdgAdkrdWfP3mhuaWWW4dtvP5/
#substitua o conteúdo de rootpw pelo resultado do comando slappasswd, esse comando gerar uma senha para o LDAP, item (a)

directory   /var/lib/openldap/openldap-data

password-hash {md5}

index objectClass,uidNumber,gidNumber eq
index cn,sn,uid,displayName pres,sub,eq
index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq
index sambaSIDList,sambaSID,sambaPrimaryGroupSID,sambaDomainName eq
index default sub

access to attrs=userPassword,sambaLMPassword,sambaNTPassword
   by self write
   by anonymous auth
   by * none

access to *
   by * read

defaultaccess read

c) Vamos gerar uma base para o LDAP, crie um arquivo com o nome base.ldif e conteúdo:

(Onde o primeiro é o nó "Principal", os demais são "Usuarios", "Grupos", "Computadores")

dn: dc=viva,dc=edu,dc=br
dc: viva
objectClass: top
objectClass: domain

dn: ou=Usuarios,dc=viva,dc=edu,dc=br
ou: Usuarios
objectClass: top
objectClass: organizationalUnit

dn: ou=Grupos,dc=viva,dc=edu,dc=br
ou: Grupos
objectClass: top
objectClass: organizationalUnit

dn: ou=Computadores,dc=viva,dc=edu,dc=br
ou: Computadores
objectClass: top
objectClass: organizationalUnit

d) Vamos adicionar a base ao LDAP.

Inicie o servidor ldap com o comando:

# /etc/rc.d/sladp start

Utilize o seguinte comando:

# ldapadd -x -D cn=administrador,dc=viva,dc=edu,dc=br -W -f ./base.ldif

A senha que será solicitada é a mesma que você utilizou para gerar o código {SSHA}ZUfdq0QdgAdkrdWfP3mhuaWWW4dtvP5/.

Digite "ldapsearch -x" para visualizar toda a árvore do ldap, verifique também se o pacman instalou a libldap e o openldap da mesma versão, caso contrário esse comando não funcionará corretamente (Comandos para verificar: pacman -Q libldap / pacman -Q openldap).

e) Inicie o servidor Apache para podermos testar o modo visual:

# /etc/rc.d/httpd restart

Digite em seu browser (firefox):

http://localhost/phpldapadmin

Clique em login e digite a mesma senha que você utilizou para gerar o código.
Linux: phpldapadmin
Agora você pode visualizar o mesmo resultado do comando ldapsearch -x, ou seja, a nossa árvore de usuários, computadores etc.

f) Editando os arquivos do smbldap-tools.

Utilize o comando net getlocalsid, será gerado algo como S-1-5-21-34157925-1845821017-2888281079. Anote esse valor, pois o mesmo será utilizado no arquivo de configuração do smbldap-tools.

Edite o arquivo /etc/smbldap-tools/smbldap.conf deixando-o assim:

SID="S-1-5-21-34157925-1845821017-2888281079"
sambaDomain="VIVA"
slaveLDAP="127.0.0.1"
slavePort="389"
masterLDAP="127.0.0.1"
masterPort="389"
ldapTLS="0"
verify=""
cafile=""
clientcert=""
clientkey=""
suffix="dc=vivao,dc=edu,dc=br"
usersdn="ou=usuarios,${suffix}"
computersdn="ou=computadores,${suffix}"
groupsdn="ou=grupos,${suffix}"
idmapdn="ou=idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=VIVA,${suffix}"
scope="sub"
hash_encrypt="MD5"
userLoginShell="/bin/false"
userHome="/home/%U"
userHomeDirectoryMode="700"

userGecos="Ldap User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
defaultMaxPasswordAge="45"
userSmbHome="PDC-SRV\%U"
userProfile=""
userHomeDrive="H:"
userScript="%U.bat"
mailDomain="viva.edu.br"
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"

g) Agora vamos editar o arquivo smbldap_bind.conf, esse é bem mais simples:

slaveDN="cn=administrador,dc=com"
slavePw="senha_criada_anteriormente"
masterDN="cn=Administrador,dc=com"
masterPw="senha_criada_anteriormente"

h) Edite os dois arquivos /etc/pam_ldap.conf e /etc/nss_ldap.conf deixando os dois com o mesmo conteúdo abaixo:

host 127.0.0.1

base dc=viva,dc=edu,dc=br

uri ldap://127.0.0.1/
ldap_version 3
rootbinddn cn=administrador,dc=viva,dc=edu,dc=br
scope sub
timelimit 5
bind_timelimit 5
nss_reconnect_tries 2
pam_login_attribute uid
pam_member_attribute gid
pam_password md5

nss_base_passwd     dc=viva,dc=edu,dc=br
nss_base_shadow     dc=viva,dc=edu,dc=br
nss_base_group      dc=viva,dc=edu,dc=br

i) edite o arquivo /etc/nsswitch.conf:

# Begin /etc/nsswitch.conf
passwd: files ldap
group: files ldap
shadow: files ldap

publickey: files ldap

hosts: files dns ldap
networks: files ldap [NOTFOUND=return]

protocols: files ldap [NOTFOUND=return]
services: files ldap [NOTFOUND=return]
ethers: files ldap [NOTFOUND=return]
rpc: files ldap [NOTFOUND=return]

netgroup: files ldap [NOTFOUND=return]

# End /etc/nsswitch.conf

Para autenticar via ssh, Squid ou outro qualquer você deve editar os arquivos do pam localizados em /etc/pam.d/xxxx, adicionando "pam_ldap.so" ou substituindo, dependendo do que você quer fazer. Existem outros arquivos que demonstram isso de forma mais clara.

Página anterior     Próxima página

Páginas do artigo
   1. Instalando e configurando o Samba
   2. Configurando pacman.conf / compilando pacotes no ArchLinux
   3. Instalando pacotes necessários para LDAP com Samba
   4. Configurando / testando LDAP
   5. Migrando dados LDAP + Samba
Outros artigos deste autor

Wpad.dat com Proxy Específico por Rede

Leitura recomendada

Backup de arquivos das estações de sua rede com Samba PDC

Samba 4 - Instalação e configuração

Compartilhando diretórios em partições FAT com o Samba

Réplica de dados entre servidores Samba4 com load-balance de DNS

Samba como controlador de domínio no Ubuntu

  
Comentários
[1] Comentário enviado por maran em 08/10/2008 - 16:32h

Um bom artigo, so acho que poderia ter explorado um pouco m,ais o lado teorico, pois veja.
Eu uso e abuso do Samba, e a versão nova esta muito boa, porem, imagina este case:

Você expressou sua experiencia, porem um artigo também é mostrar como fazer, e não dar a massa do bolo pronta, pois quem não conhece ficaria perdido, eu não implementaria em meu servidor algo, sem saber a base e o principal, porque??

...

MAis voltando, teve partes muito bem explicadas ;)
LDAP é o que há!
Um abraço,

[2] Comentário enviado por wellington79 em 02/02/2010 - 11:35h

Faltou so uma coisa antes de utilizar o comando:
net getlocalsid

deve-se utilizar o comando
smbpasswd -w "senhadoldap"



Contribuir com comentário