Samba LDAP · 2 min read · Dec 11, 2025

Controlador de Domínio Samba CentOS 5.x Com Backend LDAP

Controlador de Domínio Samba CentOS 5.x Com Backend LDAP

Isso mostrará como configurar um Controlador de Domínio Samba com um backend LDAP local, usando CentOS 5.x (testado em 5.3, ainda funcionando com sucesso em 5.4). Inclui uma interface web para gerenciar usuários/grupos/etc. LDAP.

Janeiro de 2010 – Agora com suporte para logins de domínio do Windows 7 (veja o final do guia).

Desativar selinux:

Isso só causará problemas, não vou mexer com o SELinux neste guia, exceto desativá-lo.

echo 0 >/selinux/enforce

Dentro de /etc/sysconfig/selinux, defina:

SELINUX=disabled

Instalar algumas ferramentas

rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm  
yum update  
yum install openldap-servers nss_ldap samba httpd openssl mod_ssl mysql mysql-server php php-xml php-ldap php-mysql php-pdo php-cli php-common smbldap-tools

Instalar smbldap-tools dessa forma deve instalar todos os módulos perl dependentes, no entanto, a versão disponível no yum tem alguns bugs, então vamos atualizar para a versão mais recente depois, mantendo as dependências, mas sobrescrevendo o pacote smbldap-tools:

rpm -Uvh http://download.gna.org/smbldap-tools/packages/smbldap-tools-0.9.5-1.noarch.rpm

Configurar o nome do host

Para nossos propósitos neste guia, estamos chamando o nome do host do servidor de “dc1” e o domínio de “DOMAINNAME”. Nota: Se você quiser usar seu fqdn para seu domínio Samba, onde quer que você veja, dc=DOMAINNAME abaixo, substitua por, dc=example, dc=com, assumindo que seu fqdn é example.com. Também note que “root” será o nome de usuário do administrador samba, se você não gostar disso, mude também. As linhas relacionadas são: cn=root e cn: root

Dentro de /etc/hosts, adicione ou substitua sua linha (seguindo o formato do arquivo, assumindo que 192.168.0.5 é o IP acessível na rede do seu servidor):

192.168.0.5 dc1.DOMAINNAME dc1

Defina seu nome de host na linha de comando:

hostname dc1.DOMAINNAME

Gerar uma senha mestre e configurar ldap

slappasswd

Anote a saída do slappasswd, você a inserirá no slapd.conf em um minuto.

mv -f /etc/openldap/slapd.conf /etc/openldap/slapd.conf.dist

Insira o seguinte texto em /etc/openldap/slapd.conf:

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  
  
allow bind_v2  
pidfile /var/run/openldap/slapd.pid  
argsfile /var/run/openldap/slapd.args  
  
database bdb  
suffix "dc=DOMAINNAME"  
rootdn "cn=root,dc=DOMAINNAME"  
rootpw {SSHA}TTzshhAbmZPPb8F2s7sgf9B+IrZt+nUD  
password-hash {SSHA}  
directory /var/lib/ldap  
  
index cn,sn,uid,displayName pres,sub,eq  
index uidNumber,gidNumber eq  
index sambaSID eq  
index sambaPrimaryGroupSID eq  
index sambaDomainName eq  
index objectClass pres,eq  
index default sub

Note a linha rootpw no texto acima, é onde você cola sua saída do slappasswd.

cp /usr/share/doc/samba-3.*/LDAP/samba.schema /etc/openldap/schema/  
cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG  
chown ldap:ldap /var/lib/ldap/DB_CONFIG  
chmod 600 /var/lib/ldap/DB_CONFIG

Insira o seguinte texto em /etc/openldap/init.ldif:

dn: dc=DOMAINNAME
objectclass: dcObject
objectclass: organization
o: CentOS Directory Server
dc: DOMAINNAME
dn: cn=root,dc=DOMAINNAME
objectclass: organizationalRole
cn: root
slapadd -l /etc/openldap/init.ldif  
chown -R ldap:ldap /var/lib/ldap  
chmod 600 /var/lib/ldap/*  
slapcat

slapcat deve produzir algo muito semelhante à seguinte saída:

dn: dc=DOMAINNAME
objectClass: dcObject
objectClass: organization
o: CentOS Directory Server
dc: DOMAINNAME
structuralObjectClass: organization
entryUUID: 717d1b1e-ce90-102d-88c3-df22563ebfee
creatorsName: cn=root,dc=DOMAINNAME
modifiersName: cn=root,dc=DOMAINNAME
createTimestamp: 20090506134920Z
modifyTimestamp: 20090506134920Z
entryCSN: 20090506134920Z#000000#00#000000
dn: cn=root,dc=DOMAINNAME
objectClass: organizationalRole
cn: root
structuralObjectClass: organizationalRole
entryUUID: 71858556-ce90-102d-88c4-df22563ebfee
creatorsName: cn=root,dc=DOMAINNAME
modifiersName: cn=root,dc=DOMAINNAME
createTimestamp: 20090506134920Z
modifyTimestamp: 20090506134920Z
entryCSN: 20090506134920Z#000001#00#000000
service ldap start  
chkconfig ldap on  
ldapsearch -x -b "dc=DOMAINNAME"

A saída do ldapsearch deve ser muito semelhante à seguinte:

# extended LDIF
#
# LDAPv3
# base  with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#
# DOMAINNAME
dn: dc=DOMAINNAME
objectClass: dcObject
objectClass: organization
o: CentOS Directory Server
dc: DOMAINNAME
# root, DOMAINNAME
dn: cn=root,dc=DOMAINNAME
objectClass: organizationalRole
cn: root
# search result
search: 2
result: 0 Success
# numResponses: 3
# numEntries: 2
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.