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: 40.310 ]

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

Integração do Servidor Linux Samba com Active Directory do Windows Server

Samba como controlador de domínio no Ubuntu

Samba 4 (Active Directory) no Debian/Ubuntu Server

Samba no Mageia 2 KDE

Samba 4 - Configurado para reportar a diferentes redes

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts