Arquivos históricos do BR-Linux.org apresenta:

OpenLDAP com SSL/TLS

Os integrantes da Cooperativa de Soluções Livres SOLIS têm se destacado pela quantidade de informações que compartilham com a comunidade brasileira do software livre. Hoje é a vez do Marcone Luis Theisen (marcone NOSPAM solis coop br), que enviou uma receita de bolo de como instalar um sistema openLDAP seguro, com SSL/TLS.

OpenLDAP seguro
por Marcone Luis Theisen (marcone NOSPAM solis coop br)

Objetivo

O objetivo deste texto é descrever de forma prática e simples de como instalar um sistema openLDAP com suporte a SSL/TLS. É necessário conhecimento básico de um sistema openLDAP e GNU/Linux em geral.

OpenSSL

Primeiramente é necessária a instalação da última versão pacote openSSL. No meu caso tenho instalado o openSSL-0.9.7d. Para saber a versão do pacote openSSL digite:

#ldconfig -v | grep ssl

OpenLDAP


O segundo passo é instalar o openLDAP com suporte a TLS, para isto no momento que que compilar o openLDAP lembre-se de colocar a opção --with-tls, para maiores informações de como instalar o openLDAP a partir dos fontes consulte o link www.ldap.org.br. A versão que estou utilizando é a 2.2.17, com backend BerkeleyDB em sua versão 4.2.52, com seus devidos Patch aplicados.

Criação do próprio certificado


O primeiro passo para gerar sua certificação é verificar no arquivo /etc/ssl/openssl.cnf o parâmetro "unique_subject", ele precisa estar como "no", se estiver comentado, simplesmente descomente-o. Este parâmetro serve para habilitar a criação de certificados de modo offline, sem precisar ter uma certificadora externa.
Em seguida, basta seguir os seguintes passos:

Crie um diretório para criação do certificado:
#mkdir /tmp/meuCertificado

Entre no diretório:
#cd /tmp/meuCertificado

Crie o certificado:
#/etc/ssl/misc/CA.sh -newca

A partir dai ele lhe perguntará várias informações sobre o certificado, abaixo um exemplo de como completar:

CA certificate filename (or enter to create)

Making CA certificate ...
Generating a 1024 bit RSA private key
...++++++
...............++++++
writing new private key to './demoCA/private/./cakey.pem'
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
Country Name (2 letter code) [AU]:br
State or Province Name (full name) [Some-State]:Rio Grande do Sul
Locality Name (eg, city) []:Lajeado
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Solis - Cooperativa Solucoes Livres
Organizational Unit Name (eg, section) []:Solis
Common Name (eg, YOUR name) []:marcone

Lembrando que o "Common Name" precisa ser igual a saida do comando "hostname -f", ou seja, o hostname do servidor.

A seguir crie a requisição de certificado e a chave privada para o servidor. Complete com os mesmos dados que acabou de completar acima com o seguinte comando:

# openssl req -new -nodes -keyout newreq.pem -out newreq.pem

Generating a 1024 bit RSA private key
....................++++++
...............++++++
writing new private key to 'newreq.pem'
Country Name (2 letter code) [AU]:br
State or Province Name (full name) [Some-State]:Rio Grande do Sul
Locality Name (eg, city) []:Lajeado
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Solis - Cooperativa de Solucoes Livres
Organizational Unit Name (eg, section) []:Solis
Common Name (eg, YOUR name) []:marcone
Email Address []:marcone@solis.coop.br

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Assine o certificado:

/etc/ssl/misc/CA.sh -sign

Neste momento o sistema irá pedir a senha que você definiu lá em cima quando criou o certificado.
Após irá mostrar na tela vários dados sobre seu certificado.

Configuração do openLDAP


Ok, neste momento estamos com o certificado criado e assinado. Agora é hora de configurar o openLDAP para aceitar esta certificação.
Para isto vamos copiar os arquivos para seus devidos lugares e dar as permissões devidas.

#cd /tmp/meuCertificado
#cp demoCA/cacert.pem /usr/local/etc/openldap/cacert.pem
#cp newcert.pem /usr/local/etc/openldap/servercrt.pem
#cp newreq.pem /usr/local/etc/openldap/serverkey.pem
#chmod 600 /usr/local/etc/openldap/serverkey.pem

Edite o arquivo de configuração do openLDAP(slapd.conf) e inclua as seguintes linhas antes do parâmetro "database".

TLSCACertificateFile /usr/local/etc/openldap/cacert.pem
TLSCertificateFile /usr/local/etc/openldap/servercrt.pem
TLSCertificateKeyFile /usr/local/etc/openldap/serverkey.pem

Agora é o momento de rodar o daemon do openLDAP, então, digite na linha de comando:

#/usr/local/libexec/slapd -d2 -h "ldap:/// ldaps:///"

Observe que coloquei o parâmetro "-d2" para ativar alguns logs na tela. Para rodar o daemon em background sem verificação dos logs na tela basta tirar este parâmetro na linha de comando.
Bem, agora é hora de verificar se o sistema está escutando nas 2 portas.
Na porta 389, que é a porta padrão do openLDAP servirá para conectar via TLS e a porta 636 via SSL. A porta 389 também serve para conexão direta, sem algum protocolo de segurança. Geralmente nos aplicativos gráficos existe uma opção para ativar o protocolo TLS, por exemplo, o GQ (biot.com/gq/).

É necessário também incluir a seguinte linha no arquivo /usr/local/etc/openldap/ldap.conf:

TLS_CACERT /usr/local/etc/openldap/cacert.pem

Testes


Para verificar se as portas estão ouvindo, basta digitar o comando:

#netstat -a | grep LISTEN

Verifique logo no inicio das mensagens se aparece *:ldap LISTEN e *:ldaps LISTEN.

Se você chegou até aqui sem nenhum erro, é hora de testar o sistema, uma simples consulta com o comando ldapsearch serve para verificar se nossa conexão segura está correta. Então digite:

#ldapsearch -x -b "o=solis,c=br" uid=marcone -Z

A opção -Z que irá ativar a requisição ao protocolo TLS.
Neste momento seu servidor openLDAP atende a requisições em modo seguro SSL/TLS.

Este texto foi escrito por:

Marcone Luis Theisen
SOLIS - Cooperativa de Soluções Livres


Postado por brain em outubro 13, 2004 10:36 AM

Comentários para "OpenLDAP com SSL/TLS"

Antes de comentar...

- Preserve a qualidade desta discussão
- Leia os Termos de Uso.
- Este formulário deve ser usado para comentários sobre a notícia. Se você tem dúvidas ou precisa de ajuda, use o Fórum.
- Mantenha o foco nos argumentos e no assunto
- Não faça ataques pessoais.
- Pense 5 vezes antes de entrar em discussões inúteis, como "qual é a melhor distribuição/ambiente gráfico/linguagem de programação/etc.", mesmo se alguém já tiver provocado - um erro não justifica o outro
- Não seja um e-mala ;-)


O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.