Ubuntu 10.04 OpenLDAP NFS QUOTA

Pergunta-se: Como LDAP e NFS podem juntos permitir que uma pessoa, ao digitar seu login e sua senha em qualquer computador conectado à rede, possa ter acesso a sua conta particular que fica armazenada remotamente em um computador central?

A resposta é simples: o NFS permite o compartilhamento de arquivos, enquanto o LDAP fica responsável pela autenticação de usuários.

[ Hits: 58.205 ]

Por: Anderson Francisco da Silva em 07/05/2011


LDAP - Esquemas, Senhas e Base de Dados



Dentro da pasta "/etc/ldap/schema/" do servidor encontramos uma lista de arquivos com extensão LDIF: core.ldif, cosine.ldif, inetorgperson.ldif, misc.ldif, nis.ldif e openldap.ldif. A documentação no endereço 8. Schema Specification, orienta que core.schema é requerido (required), enquanto cosine.schema e inetorgperson.schema são úteis (useful) e nis.schema é FYI (For Your Information ???).

Dessa forma, como primeiro passo devemos adicionar tais esquemas. Note que "core.ldif" já vem adicionado por padrão.

# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/core.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=core,cn=schema,cn=config"
ldap_add: Other (e.g., implementation specific) error (80)
additional info: olcAttributeTypes: Duplicate attributeType: "2.5.4.2"

# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/cosine.ldif SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=cosine,cn=schema,cn=config"

# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/inetorgperson.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=inetorgperson,cn=schema,cn=config"

# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/nis.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=nis,cn=schema,cn=config"

Inicialmente devemos criar uma senha para o administrador da base de dados, utilizando para isso o comando "slappasswd", que exibe a senha criptografada mas não a grava em lugar algum. No exemplo, a senha escolhida foi "secret" e deve ser atribuída tanto ao parâmetro "olcRootPW" do arquivo "database.ldif", como ao parâmetro "userPassword" do arquivo "ldaproot.ldif".

# slappasswd -h {MD5}
New password:
Re-enter new password:
{MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ==


Para a importação dos "backends" e para a criação da base de dados, crie o arquivo "/etc/ldap/database.ldif", lembrando de alterar o parâmetro "olcRootPW" para o valor obtido pelo "slappasswd".

Atenção: As linhas em branco porém comentadas ('#') devem ser substituídas por linhas em branco, pois elas, no contexto dos .ldif, são separadores de comando.

# Load dynamic backend modules
dn: cn=module{0},cn=config
objectClass: olcModuleList
cn: module
olcModulepath: /usr/lib/ldap
olcModuleload: {0}back_hdb
#
# Create the database
dn: olcDatabase={1}hdb,cn=config
objectClass: olcDatabaseConfig
objectClass: olcHdbConfig
olcDatabase: {1}hdb
olcDbDirectory: /var/lib/ldap
olcSuffix: dc=example,dc=com
olcRootDN: cn=admin,dc=example,dc=com
olcRootPW: {MD5}Xr4ilOzQ4PCOq3aQ0qbuaQ==
olcDbConfig: {0}set_cachesize 0 2097152 0
olcDbConfig: {1}set_lk_max_objects 1500
olcDbConfig: {2}set_lk_max_locks 1500
olcDbConfig: {3}set_lk_max_lockers 1500
olcLastMod: TRUE
olcDbCheckpoint: 512 30
olcDbIndex: uid pres,eq
olcDbIndex: cn,sn,mail pres,eq,approx,sub
olcDbIndex: objectClass eq

A importação do arquivo "/etc/ldap/database.ldif", pode ser realizada por meio do comando "ldapadd" e verificada pelo "ldapsearch".

# nano /etc/ldap/database.ldif
# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/database.ldif

SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=module{0},cn=config"
adding new entry "olcDatabase={1}hdb,cn=config"
...

# ldapsearch -W -x -b dc=example,dc=com -D cn=admin,dc=example,dc=com
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Instalação do Ubuntu e NFS no Servidor e Cliente
   3. LDAP no Servidor
   4. LDAP - Esquemas, Senhas e Base de Dados
   5. LDAP - Raiz, Administrador, Grupos, Usuários e Máquinas
   6. LDAP Scripts
   7. LDAP no Cliente
   10. Quota de Usuário
   11. Conclusão e Bibliografia
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Instalação do Slackware 11.0 sem medo

Rsyslog - Gerenciamento centralizado de logs

OpenVPN - Servidor Ubuntu 10.04 LTS e Clientes Windows

Configurando o Slackware 12 no Itautec Infoway Note W7645

Dhcp3-server e Bind9 no Debian 4 Etch Linux

  
Comentários
[1] Comentário enviado por ricardoolonca em 12/05/2011 - 11:32h

Parabéns pelo artigo. Muito bem detalhado. Só não está perfeito porque faltam as páginas 8 e 9 rsrsrsr.

[2] Comentário enviado por roberto06 em 02/08/2011 - 16:21h

Excelente artigo. Eu só queria saber como faço para não logar com o mesmo usuário em máquinas diferentes. Pq aqui, com qualquer usuario, eu consigo logar com ele em varias maquinas ao mesmo tempo.

[3] Comentário enviado por anderson.pocos em 02/08/2011 - 16:32h

olá Roberto, obrigado pelo comentário! Temo que talvez você esteja pensando na contramão! A ideia é que se um computador zuar, o usuário possa ir para a máquina do lado. No mais qual é o problema de uma pessoa usar a máquina da outra se o que verá é sempre o próprio desktop? Estamos usando essa solução aqui a 6 meses e já estamos com 700 usuários e uns 130 computadores... emocionante véi...!!!

[4] Comentário enviado por roberto06 em 03/08/2011 - 15:40h

Anderson, acho que não entendeu minha pergunta. Exemplo: Eu logo com o usuario aluno na máquina 1. Depois sem encerrar a sessão, eu consigo logar com o mesmo usuário aluno na maquina 2 ao mesmo tempo. só queria que isso não fosse possível,. Mas no resto, isso tá perfeito. Valeu cara!!!

[5] Comentário enviado por anderson.pocos em 03/08/2011 - 15:54h

olá Roberto, sua tem ideia tem fundamento sim... bloquear dois logins da mesma pessoa, né? entendi! aqui ainda não tentamos bloquear isso não mas obrigado pela dica!

[6] Comentário enviado por roberto06 em 03/08/2011 - 15:57h

valeu cara, vo contiuar caçando aki na net como eu posso fazer isso. obrigado

[7] Comentário enviado por roberto06 em 12/09/2011 - 10:22h

gostaria de saber, como faz o backup de tudo ...

[8] Comentário enviado por anderson.pocos em 12/09/2011 - 10:56h

### BACKUP ###
root@dell:/# /etc/init.d/slapd stop
root@dell:/# ldapsearch -x -D cn=admin,dc=example,dc=com -w SENHAADMINLDAP -b dc=example, dc=com -LLL > backup-2011-09-12.ldif
root@dell:/# /etc/init.d/slapd start

### RESTORE ###
root@dell:/# /etc/init.d/slapd stop
root@dell:/# slapadd -l backup-2011-09-12.ldif
root@dell:/# slapindex -v
root@dell:/# chown openldap: /var/lib/ldap/*
root@dell:/# /etc/init.d/slapd start

"_ eu posso invocar espíritos!"
"_ mas eles virão se você os chamar?"

[9] Comentário enviado por roberto06 em 12/09/2011 - 11:51h

Valeu andersooon! tu é fera!!!

[10] Comentário enviado por roberto06 em 15/09/2011 - 09:37h

Mas está dando o seguinte erro!!! Can't contact LDAP server (-1)


[11] Comentário enviado por anderson.pocos em 16/09/2011 - 21:42h

e aí... já conseguiu conectar?

[12] Comentário enviado por roberto06 em 20/09/2011 - 09:19h

ainda não cara!!! da erro

[13] Comentário enviado por Paulo Oliveira em 22/09/2011 - 12:49h

Roberto06,

Algumas observações muito importantes:

Para o comando ldapsearch a base deverá estar funcionando, já para o ldapcat é desaconselhável.
1º - tente startar a base (/etc/init.d/slapd start) e depois execute (ldapsearch -x -D cn=admin,dc=example,dc=com -w SENHAADMINLDAP -b dc=example, dc=com -LLL > backup-2011-09-12.ldif)
2º Caso o erro ainda persista, verifique os parâmetros da sua base no comando ldapsearch.

[14] Comentário enviado por fetc em 17/12/2011 - 15:08h

Cara, parabéns, muito bem e explicativo o artigo, só um problema, gerei a senha em MD% com o slapdpasswd, porém quando vou verificar a senha com o ldapsearch e a digito, aparece ldap_bind: Invalid credentials (49), tentei com a senha secret e o seu MD5 e também não deu, sabe o que pode ser amigo?
Obrigado!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts