Instalação OpenLdap
Faça o download da ultima release do software direto na pagina oficial (openldap.org).
Na edição deste tutorial estou usando a versão 2.4.17 segue o link direto para dwnload:
#wget ftp://ftp.openldap.org/pub/openldap/openldap-release/openldap-2.4.17.tgz
Após o download vamos descompactar o pacote:
#tar -xzvf openldap-2.4.17.tgz
Entre na pasta
#cd openldap-2.4.17/
Siga a sequencia dentro da pasta openldap-2.4.17/ :
#export CPPFLAGS="-I/usr/include/db4"
#./configure -with-cyrus-sasl=no -enable-ldbm -enable-crypt -enable-lmpasswd -enable-cleartext -enable-wrappers -enable-slurpd -prefix=/usr -sysconfdir=/etc
-enable-aci -localstatedir=/var -sbindir=/usr/sbin -libdir=/usr/lib -libexecdir=/usr/local/libexec
#make depend
#make
Após o passo acima crie uma pasta no diretório /tmp com o nome de package:
#mkdir /tmp/package
Dentro da pasta openldap-2.4.17 siga os passos abaixo:
#make DESTDIR:/tmp/package install
#makepkg -l y -c n /tmp/openldap-2.4.17-i386-1.tgz
#installpkg /tmp/openldap-2.4.17-i386-1.tgz
Após os passos acima no diretório /etc/openldap/ verifique com o comando “ls”, se estiver igual a figura abaixo esta compilado corretamente:
Instalando Certificado Openssl para Autenticação TLS no OpenLdap
Gerando o certificado no Servidor:
O script CA.pl dentro do diretório /etc/openssl/misc/CA.pl instalado como parte da instalação do OpenSSl , fornece uma boa embalagem em volta da ferramenta OpenSSl e seus argumentos de linha de comando.
O script CA.pl simplifica a criação de certificados para servidores.
Na criação de um novo certificado, utilize a opção de linha de comando -newcert e responda as perguntas a medida que forem solicitadas.
#/etc/ssl/misc/CA.pl -newcert
Abaixo exemplo de configuração:
Esse comando cria um arquivo chamado newcert.pem, que contém um certificado com assinatura própria, e um arquivo chamado newkey.pem que contém uma chave privada protegida por senha.
Agora vamos renomear o arquivo “newcert.pem” para “slapd-cert.pem”
#mv newcert.pem slapd-cert.pem
Depois renomear o arquivo “newkey.pem” para “slapd-key.pem”
#mv newkey.pem slapd-key.pem
Agora no diretório /etc vamos criar o subdiretório local:
#mkdir /etc/local
Dentro do diretório /etc/local vamos criar o subdiretório “certs” onde vai ficar armazenado os nossos certificados:
#mkdir/etc/local/certs
E vamos mover os arquivos slapd-key.pem e slapd-cert.pem para o diretório /etc/local:
#mv *.pem /etc/local/certs
Feito isto já temos os arquivos necessários para o funcionamento do OpenLDAP com autenticação TLS.
Download do script para start e stop do serviço Slapd.
Segue o link de download do script para start/stop do slapd.
http://pastebin.com/f2fa99a4e
Salve como rc.slapd e mova para o diretório /etc/rc.d e de permissão de excussão chmod +x rc.slapd.
Configuração do Servidor OpenLDAP no Slackware.
No diretório /etc/openldap/ estão os arquivos necessários para configuração do servidor OpenLDAP:
Agora vamos criar uma senha criptografada para acesso ao banco BDB.
#slappasswd -s “senha” >> /etc/openldap/slapd.conf
Apendamos a saída do comando slappasswd no final do arquivo slapd.conf para facilitar a inclusão da senha no arquivo.
Imagine que definimos uma unidade organizacional (ou) chamada "americanet.local", é necessário criarmos um diretório dentro do /var/db/, com o mesmo nome e com a permissão 0700.
#mkdir /var/db/americanet.local && chmod 0700 /var/americanet.local
Abaixo segue um exemplo de arquivo slapd.conf:
#vim /etc/openldap/slapd.conf
###########################################
#etc/openldap/slapd.conf
## Sessão Global
## Inclua os esquemas exigidos
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
## Parâmetros de login adicionados
loglevel 296
pidfile /var/run/slapd.pid
argsfile /var/run/slapd.args
## Opção TLS para o slapd
TLSCipherSuite HIGH
TLSCertificateFile /etc/local/slapd-cert.pem
TLSCertificateKeyFile /etc/local/slapd-key.pem
## Sessão de banco de dados omitida
## Defina o inicio do Banco de dados
database bdb
## Defina o sufixo da raiz que você serve
suffix "dc=americanet,dc=local"
## Defina uma raiz DN com privilégios de superusuário. Este é o HASH MD5
## definido pela base 64 de 'secret'
rootdn "cn=Manager,dc=americanet,dc=local"
## Defina a senha utilizada como rootdn (slappasswd)
rootpw {SSHA} ==>senha gerada pelo slappasswd <==
## Diretório contendo os arquivos do banco de dados
directory /var/db/americanet.local
## Os arquivos devem ser criados GI **somente** para o proprietário
mode 0600
## Índices a serem mantidos
index objectClass eq
index cn,sn,mail pres, eq
index departmentNumber eq
## Parâmetros de configuração db; cache 2000 entadas para a memoria
cachesize 2000
# DB_CONFIG Parâmetros adicionais para SleepyCat Berkeley DB
dbconfig set_cachesize 0 10485760 0
dbconfig set_lg_regionmax 262144
dbconfig set_lg_bsize 2097152
###########################################
Após o arquivo slapd.conf configurado vamos testar o funcionamento do serviço:
#/etc/rc.d/rc.slapd start
Vai ser solicitada a senha definida anteriormente no Certificado.
Após a senha digite “ps waux | grep "slapd"
A saida deverá ser assim:
root@flai:~#ps waux | grep "slapd"
root 4869 0.0 1.1 2176 780 tty1 R+ 20:56 0:00 grep slapd
root 18860 0.0 1.1 46384 11492 ? Ssl 20:31 0:00 /usr/local/libexec/slapd -f /etc/openldap/slapd.conf
Informações podem ser importados e exportados para um diretório LDAP utilizando o serviço LDAP Data Interchange Format (LDIF), conforme definido na RFC2849.
Um arquivo LDIF especifica o conteúdo de uma entrada de diretório em um formato texto legível humano, o que permite rápida manipulação de um arquivo de reimportação semelhantes entradas no diretório.
Agora que o servidor LDAP foi configurado e está funcionando, podemos realizar uma simples pesquisa de nomear o contexto para ver o nosso diretório informações
antes de começar a importar nossos cadastros.
O "namingContexts" deverá ser semelhante ao exemplo a seguir.
#ldapsearch -x -h americanet.local
O seguinte arquivo LDIF irá criar a estrutura hierárquica do serviço de diretório que será utilizado para o nosso livro de endereços.
A primeira é que a entrada do diretório base e a segunda é para a entrada do Manager (administrador) da conta.
As últimas duas entradas são as duas unidades organizacionais e as entradas do livro de endereços.
# vi /etc/openldap/addressbook.ldif
#############################################
dn: dc=americanet,dc=local
objectclass: dcObject
objectclass: organization
o: Americanet
dc: americanet
dn: cn=Manager,dc=americanet,dc=local
objectclass: organizationalRole
cn: Manager
dn: ou=users,dc=americanet,dc=local
ou: users
objectClass: top
objectClass: organizationalUnit
dn: ou=addressbook,dc=americanet,dc=local
ou: addressbook
objectClass: top
objectClass: organizationalUnit
###########################################
Agora vamos adicionar nosso arquivo addressbook.ldif com o comando:
#ldapadd -x -h americanet.local -D 'cn=Manager,dc=americanet,dc=local' -W -f /etc/openldap/addressbook.ldif
Abaixo segue a figura de exemplo da entrada com sucesso:
A seguinte pesquisa LDAP está solicitando uma listagem de todas as entradas a partir da base "dc=americanet,dc=local".
#ldapsearch -x -h americanet.local -b 'dc=americanet,dc=local' '(objectclass=*)'
Isso deve retornar todas as entradas adicionadas na etapa anterior.
#americanet.local
dn: dc=americanet,dc=local
objectClass: top
objectClass: dcObject
objectClass: organization
o: Americanet Local
dc: america
# Manager, americanet.local
dn: cn=Manager,dc=americanet,dc=local
objectClass: organizationalRole
cn: Manager
# users, americanet.local
dn: ou=users,dc=americanet,dc=local
ou: users
objectClass: top
objectClass: organizationalUnit
# addressbook, americanet.local
dn: ou=addressbook,dc=americanet,dc=local
ou: addressbook
objectClass: top
objectClass: organizationalUnit
###########################################
Agora que nós definimos e importamos nosso diretório, somos capazes de criar usuários para preencher o addressbook.
O seguinte é um exemplo simples de LDIF de contato.
A primeira linha (dn:) designa que no diretório sobre a entrada pertencerá ao seu importado, este deverá ser alterado para se adequar às suas necessidades. Crie um arquivo chamado users.ldif:
Adicione a entrada com a seguinte sequencia:
#ldapadd -x -h americanet.local -D 'cn=Manager,dc=americanet,dc=local' -W -f /etc/openldap/users.ldif
Com o seguinte comando você terá o resultado:
#ldapsearch -x -h americanet.local -b 'dc=americanet,dc=local' '(objectclass=*)'
Para finalizarmos vamos configurar por último o arquivo /etc/openldap/ldap.conf (para clientes):
#vim /etc/openldap/ldap.conf
################################
URI ldaps://americanet.local:636
BASE dc=americanet,dc=local
TLS_REQCERT allow
################################
Agora é so configurar para seu cliente de e-mail.
Artigo versão 0.2 criado por
Thiago dos Santos Laurito
sLACKuSER
Nenhum comentário:
Postar um comentário