<p><img src="http://www.kolab.org/images/logo-openldap.png" alt="Openldap" /></p>
<p>Uma autenticação centralizada faz parte do processo de adequação do ambiente as boas práticas de segurança. Esta solução provê recursos que atendem aos principios de autenticidade e não-repúdio. Usando a criptografia juntamente com esta solução poderemos previnir ataques de <a href="http://en.wikipedia.org/wiki/Hijacking">hijacking</a>, <a href="http://en.wikipedia.org/wiki/Spoofing_attack">spoofing</a> e <a href="http://en.wikipedia.org/wiki/Man-in-the-middle_attack">man in the middle</a>.</p>
<p>O <a href="http://en.wikipedia.org/wiki/LDAP"> LDAP</a> (Lightweight Directory Access Protocol) é um protocolo cliente-servidor, utilizado para acessar um serviço de Diretório. Ele foi inicialmente usado como uma interface para o X.500, mas também pode ser usado com autonomia e com outros tipos de servidores de Diretório. Atualmente vem se tornando um padrão, diversos programas já têm suporte a LDAP. Livros de endereços, autenticação, armazenamento de certificados digitai<br />
s (S/MIME) e de chaves públicas (PGP), são alguns dos exemplos onde o LDAP já é amplamente utilizado.</p>
<p>O <a href="http://en.wikipedia.org/wiki/OpenLDAP">Openldap</a> é a solução livre para a implementação do LDAP. Diferentemente das soluções proprietárias ( e.g. Active Directory ™ ), ele implementa de forma fidedigna as especificações das <a href="http://www.openldap.org/project/kurt/publications.html">RFCs</a> deste protocolo.</p>
<p>Este artigo têm como principal objetivo ensinar como implantar uma solução livre e gratuita de autenticação com segurança. Não abordarei conceitos sobre o funcionamento do protocolo, para isso recomendo a leitura das referências.</p>
<p>Inicialmente irei configurar um servidor LDAP e um cliente autenticando nesta base. Os próximos artigos apresentarei como integrar outros serviços com HTTP ( Apache ), Proxy ( Squid ) , Email ( Postfix + Dovecot ) ao serviço de diretório. </p>
<p>Divirtam-se!!</p>
<p><strong>= Configurando o LDAP server ==</strong></p>
<p>Instale os pacotes necessários </p>
<blockquote><p>
aptitude install slapd ldap-utils migrationtools
</p></blockquote>
<blockquote><p>
dpkg-reconfigure slapd
</p></blockquote>
<blockquote><p>
DNS domain name: <strong>acme.local </strong><br />
Organization name: <strong>acme</strong><br />
Database backend to set: <strong>HDB</strong><br />
Do you want the database to be removed when slapd is purged? <strong>No</strong><br />
Move old database? <strong>Yes</strong><br />
Allow LDAPv2 protocol? <strong>Yes</strong>
</p></blockquote>
<p><strong>== Adicionando Schemas ==</strong></p>
<p>Acesso o diretório /etc/ldap/schemas</p>
<blockquote><p>
cd /etc/ldap/schemas
</p></blockquote>
<p>Faça o download dos schemas. Eles serão importantes na implementação do kerberos e na autenticação dos usuários do Postfix</p>
<blockquote><p>
wget http://www.bayour.com/openldap/schemas/krb5-kdc.schema</p>
<p>wget http://trac.kyapanel.com/export/360/trunk/ldap/schema/qmailuser.schema
</p></blockquote>
<p>Edite o arquivo /etc/ldap/slapd adicionando os novos schemas e novos indices no index</p>
<blockquote><p>
vim /etc/ldap/slapd.conf
</p></blockquote>
<blockquote><p>
include /etc/ldap/schema/krb5-kdc.schema<br />
include /etc/ldap/schema/qmailuser.schema</p>
<p>index objectClass,ou,cn,sn,uid,uidNumber,mail,mailAlternateAddress,mailForwardingAddress,memberUid eq
</p></blockquote>
<p>Reinicie o slapd </p>
<blockquote><p>
invoke-rc.d slapd restart
</p></blockquote>
<p><strong>== Testando ==</strong></p>
<blockquote><p>
ldapsearch -x -b “dc=acme,dc=local”
</p></blockquote>
<blockquote><p>
# extended LDIF<br />
#<br />
# LDAPv3<br />
# base with scope subtree<br />
# filter: (objectclass=*)<br />
# requesting: ALL<br />
#</p>
<p># acme.local<br />
dn: dc=acme,dc=local<br />
objectClass: top<br />
objectClass: dcObject<br />
objectClass: organization<br />
o: acme<br />
dc: acme</p>
<p># admin, acme.local<br />
dn: cn=admin,dc=acme,dc=local<br />
objectClass: simpleSecurityObject<br />
objectClass: organizationalRole<br />
cn: admin<br />
description: LDAP administrator</p>
<p># search result<br />
search: 2<br />
result: 0 Success</p>
<p># numResponses: 3<br />
# numEntries: 2
</p></blockquote>
<p><strong>== Migrando os usuários e grupos locais com o migration tools ==</strong></p>
<p>O migrationtools é um conjunto de scripts responsáveis por migrar as informações locais como hosts, serviços, usuários, grupos e etc para a infraestrutura do LDAP. </p>
<p>Edite as seguintes linhas do arquivo /usr/share/migrationtools</p>
<blockquote><p>
vim migrate_common.ph
</p></blockquote>
<blockquote><p>
$DEFAULT_MAIL_DOMAIN = “acme.local”;</p>
<p>$DEFAULT_BASE = “dc=acme,dc=local”;</p>
<p>$EXTENDED_SCHEMA = 1;
</p></blockquote>
<p>Importe a base</p>
<blockquote><p>
./migrate_base.pl > base.ldif
</p></blockquote>
<p>O arquivo base.ldif contém a infraestrutura básica de OUs ( Unidades Organizacionais ). Como o objetivo de nosso LDAP é autenticação então edite o arquivo base.ldif deixando somente as seguintes informações:</p>
<blockquote><p>
dn: dc=acme,dc=local<br />
dc: acme<br />
objectClass: top<br />
objectClass: domain<br />
objectClass: domainRelatedObject<br />
associatedDomain: acme.local</p>
<p>dn: ou=People,dc=acme,dc=local<br />
ou: People<br />
objectClass: top<br />
objectClass: organizationalUnit<br />
objectClass: domainRelatedObject<br />
associatedDomain: acme.local</p>
<p>dn: ou=Group,dc=acme,dc=local<br />
ou: Group<br />
objectClass: top<br />
objectClass: organizationalUnit<br />
objectClass: domainRelatedObject<br />
associatedDomain: acme.local
</p></blockquote>
<p>Migre as contas e as senhas dos usuários</p>
<blockquote><p>
ETC_SHADOW=/etc/shadow ./migrate_passwd.pl /etc/passwd > passwd.ldif
</p></blockquote>
<p>Migre os grupos</p>
<blockquote><p>
./migrate_group.pl /etc/group > group.ldif
</p></blockquote>
<p><strong>== Atualize o BD do LDAP ==</strong></p>
<blockquote><p>
ldapadd -h localhost -x -W -D “cn=admin,dc=acme,dc=local” -c -f base.ldif</p>
<p>ldapadd -h localhost -x -W -D “cn=admin,dc=acme,dc=local” -c -f passwd.ldif</p>
<p>ldapadd -h localhost -x -W -D “cn=admin,dc=acme,dc=local” -c -f group.ldif
</p></blockquote>
<p><strong>== Testando ==</strong></p>
<blockquote><p>
ldapsearch -LL -H ldap://localhost -b”dc=acme,dc=local” -x “(uid=alexos)”
</p></blockquote>
<blockquote><p>
dn: uid=alexos,ou=People,dc=acme,dc=local<br />
uid: alexos<br />
cn: alexos<br />
sn: alexos<br />
mail: alexos@acme.local<br />
objectClass: person<br />
objectClass: organizationalPerson<br />
objectClass: inetOrgPerson<br />
objectClass: posixAccount<br />
objectClass: top<br />
objectClass: krb5Principal<br />
objectClass: shadowAccount<br />
shadowMax: 99999<br />
shadowWarning: 7<br />
krb5PrincipalName: alexos@ACME.LOCAL<br />
loginShell: /bin/bash<br />
uidNumber: 1000<br />
gidNumber: 1000<br />
homeDirectory: /home/alexos<br />
gecos: alexos,,,
</p></blockquote>
<p><strong>Referências:</strong></p>
<p><a href="http://www.andreaswacker.com/blog/2010/05/10/ldap_sasl_bindsimple-cant-contact-ldap-server-1/">Andreaswacker</a><br />
<a href="http://linsec.ca/Using_OpenLDAP_for_User_Authentication">Linsec.ca</a><br />
<a href="http://www.openldap.org/doc/admin24/">Openldap.org</a></p>
<p><strong><a href="http://blog.alexos.com.br/?p=1901&#038;lang=en">Continua….</a></strong></p>
<div><h3>See:</h3><ul><li><a href="http://blog.alexos.com.br/?p=1913&lang=pt-br" class="crp_title">Implantando autenticação centralizada e segura usando Openldap – PAM e LDAP</a></li><li><a href="http://blog.alexos.com.br/?p=1901&lang=pt-br" class="crp_title">Implantando autenticação centralizada e segura usando Openldap – ACLs e SSL ( LDAPs )</a></li><li><a href="http://blog.alexos.com.br/?p=344&lang=pt-br" class="crp_title">Configurando o Bind9 no Ubuntu/Debian ( Atualizado )</a></li><li><a href="http://blog.alexos.com.br/?p=990&lang=pt-br" class="crp_title">Autenticando o Ocomon no AD</a></li><li><a href="http://blog.alexos.com.br/?p=950&lang=pt-br" class="crp_title">Monitorando vários servidores de forma simples com o Munin</a></li></ul></div><p><a href="http://www.addtoany.com/add_to/google_bookmarks?linkurl=http%3A%2F%2Fblog.alexos.com.br%2F%3Fp%3D1880%26amp%3Blang%3Dpt-br&linkname=Implantando%20autentica%C3%A7%C3%A3o%20centralizada%20e%20segura%20usando%20Openldap" title="Google Bookmarks" target="_blank"><img src="http://blog.alexos.com.br/wp-content/plugins/add-to-any/icons/google.png" height="16" alt="Google Bookmarks" width="16" /></a> <a href="http://www.addtoany.com/add_to/twitter?linkurl=http%3A%2F%2Fblog.alexos.com.br%2F%3Fp%3D1880%26amp%3Blang%3Dpt-br&linkname=Implantando%20autentica%C3%A7%C3%A3o%20centralizada%20e%20segura%20usando%20Openldap" title="Twitter" target="_blank"><img src="http://blog.alexos.com.br/wp-content/plugins/add-to-any/icons/twitter.png" height="16" alt="Twitter" width="16" /></a> <a href="http://www.addtoany.com/add_to/technorati_favorites?linkurl=http%3A%2F%2Fblog.alexos.com.br%2F%3Fp%3D1880%26amp%3Blang%3Dpt-br&linkname=Implantando%20autentica%C3%A7%C3%A3o%20centralizada%20e%20segura%20usando%20Openldap" title="Technorati Favorites" target="_blank"><img src="http://blog.alexos.com.br/wp-content/plugins/add-to-any/icons/technorati.png" height="16" alt="Technorati Favorites" width="16" /></a> <a href="http://www.addtoany.com/add_to/google_gmail?linkurl=http%3A%2F%2Fblog.alexos.com.br%2F%3Fp%3D1880%26amp%3Blang%3Dpt-br&linkname=Implantando%20autentica%C3%A7%C3%A3o%20centralizada%20e%20segura%20usando%20Openldap" title="Google Gmail" target="_blank"><img src="http://blog.alexos.com.br/wp-content/plugins/add-to-any/icons/gmail.png" height="16" alt="Google Gmail" width="16" /></a> <a href="http://www.addtoany.com/add_to/linkedin?linkurl=http%3A%2F%2Fblog.alexos.com.br%2F%3Fp%3D1880%26amp%3Blang%3Dpt-br&linkname=Implantando%20autentica%C3%A7%C3%A3o%20centralizada%20e%20segura%20usando%20Openldap" title="LinkedIn" target="_blank"><img src="http://blog.alexos.com.br/wp-content/plugins/add-to-any/icons/linkedin.png" height="16" alt="LinkedIn" width="16" /></a> <a href="http://www.addtoany.com/add_to/google_reader?linkurl=http%3A%2F%2Fblog.alexos.com.br%2F%3Fp%3D1880%26amp%3Blang%3Dpt-br&linkname=Implantando%20autentica%C3%A7%C3%A3o%20centralizada%20e%20segura%20usando%20Openldap" title="Google Reader" target="_blank"><img src="http://blog.alexos.com.br/wp-content/plugins/add-to-any/icons/reader.png" height="16" alt="Google Reader" width="16" /></a> <a href="http://www.addtoany.com/add_to/wordpress?linkurl=http%3A%2F%2Fblog.alexos.com.br%2F%3Fp%3D1880%26amp%3Blang%3Dpt-br&linkname=Implantando%20autentica%C3%A7%C3%A3o%20centralizada%20e%20segura%20usando%20Openldap" title="WordPress" target="_blank"><img src="http://blog.alexos.com.br/wp-content/plugins/add-to-any/icons/wordpress.png" height="16" alt="WordPress" width="16" /></a> <a href="http://www.addtoany.com/add_to/slashdot?linkurl=http%3A%2F%2Fblog.alexos.com.br%2F%3Fp%3D1880%26amp%3Blang%3Dpt-br&linkname=Implantando%20autentica%C3%A7%C3%A3o%20centralizada%20e%20segura%20usando%20Openldap" title="Slashdot" target="_blank"><img src="http://blog.alexos.com.br/wp-content/plugins/add-to-any/icons/slashdot.png" height="16" alt="Slashdot" width="16" /></a> <a href="http://www.addtoany.com/add_to/reddit?linkurl=http%3A%2F%2Fblog.alexos.com.br%2F%3Fp%3D1880%26amp%3Blang%3Dpt-br&linkname=Implantando%20autentica%C3%A7%C3%A3o%20centralizada%20e%20segura%20usando%20Openldap" title="Reddit" target="_blank"><img src="http://blog.alexos.com.br/wp-content/plugins/add-to-any/icons/reddit.png" height="16" alt="Reddit" width="16" /></a> <a href="http://www.addtoany.com/add_to/delicious?linkurl=http%3A%2F%2Fblog.alexos.com.br%2F%3Fp%3D1880%26amp%3Blang%3Dpt-br&linkname=Implantando%20autentica%C3%A7%C3%A3o%20centralizada%20e%20segura%20usando%20Openldap" title="Delicious" target="_blank"><img src="http://blog.alexos.com.br/wp-content/plugins/add-to-any/icons/delicious.png" height="16" alt="Delicious" width="16" /></a> <a href="http://www.addtoany.com/add_to/multiply?linkurl=http%3A%2F%2Fblog.alexos.com.br%2F%3Fp%3D1880%26amp%3Blang%3Dpt-br&linkname=Implantando%20autentica%C3%A7%C3%A3o%20centralizada%20e%20segura%20usando%20Openldap" title="Multiply" target="_blank"><img src="http://blog.alexos.com.br/wp-content/plugins/add-to-any/icons/multiply.png" height="16" alt="Multiply" width="16" /></a> <a href="http://www.addtoany.com/add_to/digg?linkurl=http%3A%2F%2Fblog.alexos.com.br%2F%3Fp%3D1880%26amp%3Blang%3Dpt-br&linkname=Implantando%20autentica%C3%A7%C3%A3o%20centralizada%20e%20segura%20usando%20Openldap" title="Digg" target="_blank"><img src="http://blog.alexos.com.br/wp-content/plugins/add-to-any/icons/digg.png" height="16" alt="Digg" width="16" /></a> <a href="http://www.addtoany.com/add_to/identi_ca?linkurl=http%3A%2F%2Fblog.alexos.com.br%2F%3Fp%3D1880%26amp%3Blang%3Dpt-br&linkname=Implantando%20autentica%C3%A7%C3%A3o%20centralizada%20e%20segura%20usando%20Openldap" title="Identi.ca" target="_blank"><img src="http://blog.alexos.com.br/wp-content/plugins/add-to-any/icons/identica.png" height="16" alt="Identi.ca" width="16" /></a> <a href="http://www.addtoany.com/share_save" class="a2a_dd addtoany_share_save"><img src="http://blog.alexos.com.br/wp-content/plugins/add-to-any/share_save_171_16.png" height="16" alt="Share/Bookmark" width="171" /></a> </p>
Implantando autenticação centralizada e segura usando Openldap
31 de Julho de 2010, 0:00 - sem comentários ainda | Ninguém está seguindo este artigo ainda.
Visualizado 1414 vezes
0sem comentários ainda