Archive for the tag 'ACLs'

OpenLDAP – Simples e Rápido

clodonil September 1st, 2008

Como deveria ser, o primeiro artigo que estou escrevendo é sobre OpenLDAP. A ideia não é escrever um tutorial e nem passo a passo, mas sim discutir os pontos importantes da instalação e configuração do OpenLDAP, seguinte uma seqüência logica de implantação.

O OpenLDAP é um serviço bem interessante e simples. Devido a sua simplicidade, muitos tem encontrado dificuldade no seu entendimento. O OpenLDAP é uma implementação do protocolo LDAP ( desenvolvida pela Universidade de Michigan), que nada mais é que um conjunto de regras que defini a forma que os serviços de diretórios comunica-se com os clientes.

O OpenLDAP é organizado em estrutura hierárquica que favorece a flexibilidade no armazenamento e busca das informações.

A estrutura da arvore pode ser representada por duas formas. A primeira é ao estilo X.500 que é o precursor do OpenLDAP que utiliza objetos baseados em países e departamentos. A segunda é baseado em domínios, seguindo a ideia do servidor DNS. A Figura 1, mostra a estrutura no modelo de domínio.

Figura 1 – Estrutura do LDAP

O OpenLDAP foi desenvolvida para um número muito grande de Sistemas Operacionais. Alguns desses são: Apple MacsOS X, IBM zOS, Microsoft Windows e Linux/FreeBSd.

Nos meus testes, utilize o Linux/Ubuntu-server que é baseado no Debian. A instalação é um processo rápido; basta instalar o programa slapd e ldap-utils.

# apt-get install slapd ldap-utils

As configurações do OpenLDAP resume-se no arquivo slapd.conf que normalmente fica dentro do diretório /etc/ldap/.

Podemos separar o arquivos slapd.conf em 2 partes:

  • Arquivos de schemas: O servidor não traz nenhum objeto em sua base. Todas os objetos são importados de arquivos. Portanto para utilizar um objeto é necessário que algum arquivo de schema tenha sido criado. Normalmente as aplicações enviam o arquivo de schema junto. Esse é o caso do Samba, PostFix, GOsa, DNS, entre outros. Para a nossa implementação, é necessário copiar os arquivos de schema do Gosa para /etc/ldap/schema.

  • Criação do Domínio: Outra parte importante do arquivos slapd.conf é a criação do domínio LDAP. A criação do domínio consiste em especificar o sufix que será utilizado e o administrador da base.

Segue um exemplo de arquivo slapd.conf.

# Arquivos de Schema do Gosa.
include       /etc/ldap/schema/core.schema
include       /etc/ldap/schema/cosine.schema
include       /etc/ldap/schema/nis.schema
include       /etc/ldap/schema/inetorgperson.schema
include       /etc/ldap/schema/openldap.schema
include       /etc/ldap/schema/trust.schema
include       /etc/ldap/schema/samba.schema
include       /etc/ldap/schema/samba3.schema
include       /etc/ldap/schema/gofon.schema
include       /etc/ldap/schema/gosystem.schema
include       /etc/ldap/schema/goto.schema
include       /etc/ldap/schema/gosa+samba3.schema
include       /etc/ldap/schema/goserver.schema
include       /etc/ldap/schema/goto-mime.schema
include       /etc/ldap/schema/dnszone.schema
include       /etc/ldap/schema/gofax.schema
include       /etc/ldap/schema/qmail.schema
 
pidfile         /var/run/openldap/slapd.pid
argsfile        /var/run/openldap/slapd.args
 
#Definição do domínio.
database        bdb
suffix          dc=dominio,dc=ldap
#Usuário manager é o administrador do domínio LDAP.
rootdn          cn=Manager,dc=dominio,dc=ldap
rootpw          senha
directory       /var/db/openldap-data
 
index           objectClass                     eq
index           uid                             pres,eq,sub
index           displayName                     pres,sub,eq
index           gosaMailDeliveryMode            pres,eq,sub
index           sambaSID,sambaGroupType,sambaSIDList eq,pres
index           sambaDomainName,uniqueMember     eq,pres
index           zoneName                         eq
index           relativeDomainName               eq
index           ou,cn,sn,mail,givenname          eq,pres,sub
index           uidNumber,gidNumber,memberUid    eq,pres
index           loginShell                       eq,pres
index           nisMapName,nisMapEntry           eq,pres,sub
index           sambaPrimaryGroupSID             eq
index           default                          sub

Criação da Estrutura

A estrutura que normalmente crio para a construção da arvore LDAP é apenas o root (raiz). O arquivos ldif a seguir faz isso. As outras estrutura normalmente são criados com o comandos smbldap-tools.

 

dn: dc=dominio,dc=ldap
objectClass: top
objectClass: organization
objectClass: dcObject
dc: ldap
o: Ldap Profissional

Salve esses comandos em um arquivo com extensão ldif e exporte para a base LDAP (exportar: ldapadd -f arquivo -x -D "cn=Manager,dc=dominio,dc=ldap" -w senha).

Finalizamos esta parte com o LDAP funcionando e com a estrutura raiz criada.

Os próximos artigos são: