De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Alexandro Silva
Data de Publicação: 01 de agosto de 2010
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 hijacking, spoofing e man in the middle.
O LDAP (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 digitais (S/MIME) e de chaves públicas (PGP), são alguns dos exemplos onde o LDAP já é amplamente utilizado.
O Openldap é a solução livre para a implementação do LDAP. Diferentemente das soluções proprietárias ( e.g. Active Directory (tm) ), ele implementa de forma fidedigna as especificações das RFCs deste protocolo.
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.
Inicialmente irei configurar um servidor LDAP e um cliente autenticando nesta base.
Instale os pacotes necessários
# aptitude install slapd ldap-utils migrationtools # dpkg-reconfigure slapd
DNS domain name: acme.local Organization name: acme Database backend to set: HDB Do you want the database to be removed when slapd is purged? No Move old database? Yes Allow LDAPv2 protocol? Yes
Acesso o diretório /etc/ldap/schemas
cd /etc/ldap/schemas
Faça o download dos schemas. Eles serão importantes na implementação do kerberos e na autenticação dos usuários do Postfix
wget http://www.bayour.com/openldap/schemas/krb5-kdc.schema wget http://trac.kyapanel.com/export/360/trunk/ldap/schema/qmailuser.schema
Edite o arquivo /etc/ldap/slapd adicionando os novos schemas e novos indices no index
# vim /etc/ldap/slapd.conf include /etc/ldap/schema/krb5-kdc.schema include /etc/ldap/schema/qmailuser.schema index objectClass,ou,cn,sn,uid,uidNumber,mail,mailAlternateAddress,mailForwardingAddress,memberUid eq
Reinicie o slapd
invoke-rc.d slapd restart
ldapsearch -x -b "dc=acme,dc=local"
# extended LDIF # # LDAPv3 # base <dc=acme,dc=local> with scope subtree # filter: (objectclass=*) # requesting: ALL # # acme.local dn: dc=acme,dc=local objectClass: top objectClass: dcObject objectClass: organization o: acme dc: acme # admin, acme.local dn: cn=admin,dc=acme,dc=local objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator # search result search: 2 result: 0 Success # numResponses: 3 # numEntries: 2
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.
Edite as seguintes linhas do arquivo /usr/share/migrationtools
vim migrate_common.ph
$DEFAULT_MAIL_DOMAIN = "acme.local"; $DEFAULT_BASE = "dc=acme,dc=local"; $EXTENDED_SCHEMA = 1;
Importe a base
./migrate_base.pl > base.ldif
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:
dn: dc=acme,dc=local dc: acme objectClass: top objectClass: domain objectClass: domainRelatedObject associatedDomain: acme.local dn: ou=People,dc=acme,dc=local ou: People objectClass: top objectClass: organizationalUnit objectClass: domainRelatedObject associatedDomain: acme.local dn: ou=Group,dc=acme,dc=local ou: Group objectClass: top objectClass: organizationalUnit objectClass: domainRelatedObject associatedDomain: acme.local
Migre as contas e as senhas dos usuários
ETC_SHADOW=/etc/shadow ./migrate_passwd.pl /etc/passwd > passwd.ldif
Migre os grupos
./migrate_group.pl /etc/group > group.ldif
ldapadd -h localhost -x -W -D "cn=admin,dc=acme,dc=local" -c -f base.ldif ldapadd -h localhost -x -W -D "cn=admin,dc=acme,dc=local" -c -f passwd.ldif ldapadd -h localhost -x -W -D "cn=admin,dc=acme,dc=local" -c -f group.ldif
ldapsearch -LL -H ldap://localhost -b"dc=acme,dc=local" -x "(uid=alexos)" dn: uid=alexos,ou=People,dc=acme,dc=local uid: alexos cn: alexos sn: alexos mail: alexos@acme.local objectClass: person objectClass: organizationalPerson objectClass: inetOrgPerson objectClass: posixAccount objectClass: top objectClass: krb5Principal objectClass: shadowAccount shadowMax: 99999 shadowWarning: 7 krb5PrincipalName: alexos@ACME.LOCAL loginShell: /bin/bash uidNumber: 1000 gidNumber: 1000 homeDirectory: /home/alexos gecos: alexos,,,
Fonte: http://blog.alexos.com.br/?p=1901&lang=en
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários