Na palestra será demonstrado o funcionamento de uma base LDAP, explicando a organização e como os registros são armazenados na base. Ao final será mostrado um exemplo ao vivo de integração de autenticação de serviços na base LDAP.
1. 4º Seminário de Software
Livre TcheLinux Pelotas
Servidor de Autenticação
Centralizada
2. $ whoami
Thiago Finardi
Analista e Desenvolvedor de Sistemas
Coordenador da área de TI Senac Uruguaiana
Sysadmin na G8 Sistemas de Informação
www.g8si.com
2 - OpenLDAP: Servidor de Autenticação Centralizada
3. echo $USER
1º Contato em 2003
Usuário GNU/Linux a 4 anos
Programador Cobol por 5 anos
Docente no curso Técnico em Informática
Blog www.botecodigital.info
3 - OpenLDAP: Servidor de Autenticação Centralizada
4. OK deu, e o LDAP?
Experiência com
4 - OpenLDAP: Servidor de Autenticação Centralizada
5. Cronograma
O que é LDAP
Diretórios
Serviços de diretórios
Entendendo os diretórios
Atributos, ObjectClasses e Schemas
Registros na base LDAP
Instalação
Uso e gerenciamento
Autenticando serviços
Conclusão
7. O que é LDAP
Lightweight Directory Access Protocol é um
conjunto de protocolos desenhados para
acessar informação centralizada em uma rede;
Define a forma de funcionamento de um
serviço de diretórios ( critérios, mecanismos e
métodos);
Tem a função de verificar as credenciais do
cliente;
7 - OpenLDAP: Servidor de Autenticação Centralizada
8. Características do LDAP
Funcionalidade sobre IPV4 e IPV6 (LDAP V3);
Leve e robusto;
Suporte a vários backends (SQL,BDB,PASSWD);
Suporte a múltiplas instâncias de dados;
Backup fácil
Replicação (Slurpd e Syncrepl)
Suporte a TLS/SSL
8 - OpenLDAP: Servidor de Autenticação Centralizada
10. Diretórios
Quais são as características?
Quantidade de caracteres?
São compartilhamentos com fim de organização
Regra Highlander: Só pode haver um.
10 - OpenLDAP: Servidor de Autenticação Centralizada
11. Diretórios
Cada diretório, é um objeto no sistema de
arquivos que tem características próprias
que o diferenciam das demais informações.
A raiz do sistema é conhecida como ”/”
11 - OpenLDAP: Servidor de Autenticação Centralizada
12. 4º Seminário de Software
Livre TcheLinux Pelotas
Serviço de Diretórios
13. Serviços de Diretórios?
“Um serviço que armazena e organiza
informações sobre os recursos e os usuários de
uma rede de computadores.”
Catálogo, lista de recursos;
Centralização de gestão dos recursos da rede;
Simplificar a administração, backup e replicação;
Centralizar é a palavra chave;
13 - OpenLDAP: Servidor de Autenticação Centralizada
14. 4º Seminário de Software
Livre TcheLinux Pelotas
Entendendo os
Diretórios
15. Entendendo os Diretórios
Elimine quaisquer outros conceitos pré existentes;
Não estabeleça elos com base de dados SQL ou DB;
Pense em diretório com o conceito mais simples;
Arquivos e diretórios;
Em uma base LDAP não se armazenam arquivos,
mas sim recursos de rede.
15 - OpenLDAP: Servidor de Autenticação Centralizada
16. Entendendo os Diretórios
Raiz : dc=tchelinux,dc=org
Formato em dc=dominio,dc=foo,dc=bar
A partir da raiz todos os demais "diretórios" e "arquivos"
serão armazenados
Alguns objetos são diretórios que servem para
organizar e outros objetos servem para armazenar
diferentes tipos de informação.
16 - OpenLDAP: Servidor de Autenticação Centralizada
17. Entendendo os Diretórios
Diretórios com nomes diferentes:
ou=usuarios,dc=tchelinux,dc=org
ou=grupos,dc=tchelinux,dc=org
OU = Organizational Unit
Objeto para organizar, agrupar objetos. Faz o papel
de diretório.
17 - OpenLDAP: Servidor de Autenticação Centralizada
18. Entendendo os Diretórios
Arquivos com nomes diferentes:
cn=”Thiago Finardi”, ou=usuarios,dc=tchelinux,dc=org
cn=”Palestrantes”,ou=grupos,dc=tchelinux,dc=org
CN = Common Name
Cada arquivo é classificado de acordo com seu conteúdo.
Cada objeto será diferente de acordo com seu conteúdo.
18 - OpenLDAP: Servidor de Autenticação Centralizada
20. 4º Seminário de Software
Livre TcheLinux Pelotas
Atributos, ObjectClasses
e Schemas
21. Atributos
● Um atributo é um campo que armazena uma
determinada informação;
● Definem regras para o tipo de valor a ser
armazenado;
21 - OpenLDAP: Servidor de Autenticação Centralizada
22. Atributos
● Exemplo:
attributetype ( 1.3.6.1.1.1.1.3 NAME ’homeDirectory’
DESC ’The absolute path to the home directory’
EQUALITY caseExactIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )
● O atributo homeDirectory permite o armazenamento
de textos e caracteres especiais.
22 - OpenLDAP: Servidor de Autenticação Centralizada
23. ObjectClasses
● ObjectClasses são compostas por um conjunto
de atributos;
● Possuem derivações, uma objectClass pode
herdar atributos requeridos de outra;
23 - OpenLDAP: Servidor de Autenticação Centralizada
24. ObjectClasses
● Exemplo:
objectclass ( 1.3.6.1.1.1.2.0 NAME ’posixAccount’
DESC ’Abstraction of an account with POSIX attributes’
SUP top AUXILIARY
MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory )
MAY ( userPassword $ loginShell $ gecos $ description ) )
● MUST – Atributos obrigatórios
● MAY – Atributos opcionais
24 - OpenLDAP: Servidor de Autenticação Centralizada
25. ObjectClasses
● O posixAccount é uma classe de objetos que
visa criar um usuário real de sistema. Perceba
os atributos.
● O conjunto de ObjectClasses e atributos são
chamados de “schemas”
25 - OpenLDAP: Servidor de Autenticação Centralizada
26. Objects
● Um Object é um conjunto de ObjectClass e seus
atributos:
dn: cn="Thiago Finardi",ou=usuarios,dc=tchelinux,dc=org
uid: tfinardi
sn: tfinardi
objectClass: top
objectClass: person
objectClass: qmailUser
homeDirectory: /home/tfinardi
userPassword::c2VuaGEK
cn: Thiago Finardi
mail: tfinardi@gmail.com
26 - OpenLDAP: Servidor de Autenticação Centralizada
27. Schemas
● São os arquivos que contém todos os atributos
e todos os ObjectClass.
● São arquivos textuais puros que são lidos pelo
OpenLDAP.
● Cada schema habilita um determinado tipo
informação a ser armazenada na base.
● /etc/ldap/schema
27 - OpenLDAP: Servidor de Autenticação Centralizada
28. Schemas
● Os schemas são lidos pela base LDAP e assim
permite o uso dos campos nele definido.
● Quanto mais schemas sua base LDAP tiver,
mais flexível ela será.
● Cada schema contém uma série de objetos e
atributos para atender necessidades
específicas de recursos específicos (Ex:
Samba).
28 - OpenLDAP: Servidor de Autenticação Centralizada
29. Atributos, ObjectClasses e
Schemas
● Resumindo:
● Os schemas nada mais são do que arquivos texto
contendo uma série de ObjectClasses.
● Os ObjectClasses nada mais são do que um
conjunto de atributos
● Atributos nada mais são do que a definição lógica
dos campos que podem ser utilizados em uma
base LDAP.
29 - OpenLDAP: Servidor de Autenticação Centralizada
30. 4º Seminário de Software
Livre TcheLinux Pelotas
Instalação e
Configuração
31. Instalação
● Iniciando pela configuração correta do nome e
endereço IP da máquina antes de realizar a
instalação do OpenLDAP. (FQDN)
● Porque essa configuração é importante?
● O nome do servidor é utilizado para compor o
nome da raiz da base LDAP.
31 - OpenLDAP: Servidor de Autenticação Centralizada
32. Configurando nome +
domínio
● Altere o /etc/hostname
● ldap.tchelinux.org
● Alterar o /etc/hosts
● 192.168.0.1 ldap.tchelinux.org
● sysctl kernel.hostname=ldap.tchelinux.org
32 - OpenLDAP: Servidor de Autenticação Centralizada
33. Instalação
● Instalando a partir dos repositórios:
● aptitude install slapd
● Um menu de configuração será aberto
● Defina a senha para a base ldap
● Cheque o sufixo da base em:
● /etc/ldap/slapd.conf
33 - OpenLDAP: Servidor de Autenticação Centralizada
34. 4º Seminário de Software
Livre TcheLinux Pelotas
Uso e Gerenciamento
35. Uso e Gerenciamento
● O uso e gerenciamento do OpenLDAP é feito
nativamente pelos seus comandos. Há dois
grupos de comandos: os do servidor e os do
cliente.
● Comandos “slap” x comandos “ldap”, quais as
diferenças entre eles?
● Instalando comandos ldap
● aptitude install ldap-utils
35 - OpenLDAP: Servidor de Autenticação Centralizada
36. Uso e Gerenciamento
Mão na massa
36 - OpenLDAP: Servidor de Autenticação Centralizada
37. 4º Seminário de Software
Livre TcheLinux Pelotas
Autenticando Serviços
38. Instalando o proftpd
● Para instalar o “proftpd” e sua documentação
execute o comando abaixo:
● aptitude install proftpd proftpd-mod-ldap proftpd-doc
● Na primeira tela selecione “standalone”(solitário)
38 - OpenLDAP: Servidor de Autenticação Centralizada
39. Configurando o proftpd
● Edite o arquivo de configuração do “proftpd”:
/etc/proftpd/proftpd.conf.
● UseIPv6 off
● ServerName "FTP com OpenLDAP"
● DefaultRoot ~
As linhas alteradas foram:
Linha 1 – Desativa o uso de Ipv6;
Linha 3 – Mudança no banner apresentado durante o login via ftp;
Linha 21 – Define que o diretório padrão, quando um usuário se logar, é o
seu diretório “home”.
39 - OpenLDAP: Servidor de Autenticação Centralizada
40. Configurando o proftpd
● Para fazer o proftpd autenticar na base LDAP adicione
as seguintes linhas no arquivo /etc/proftpd/proftpd.conf.
LDAPServer ldap.tchelinux.org
LDAPDNInfo cn=admin,dc=tchelinux,dc=org sua_senha
LDAPDoAuth on "ou=Usuarios,dc=tchelinux,dc=org" uid=%v
LDAPUseTLS off
40 - OpenLDAP: Servidor de Autenticação Centralizada
41. Finalizando
● Para ativar o suporte a LDAP, edite o arquivo
“/etc/proftpd/modules.conf” e descomente a linha
22:
● LoadModule mod_ldap.c
● Reinicie o “proftpd”:
● /etc/init.d/proftpd restart
41 - OpenLDAP: Servidor de Autenticação Centralizada
42. Teste de funcionamento
● Para testar a conexão basta estabelecer uma
conexão ftp com o comando:
● ftp ldap.tchelinux.org
● OBSERVAÇÃO: o usuário somente será capaz de logar
no servidor FTP se o diretório “home” dele existir.
42 - OpenLDAP: Servidor de Autenticação Centralizada
43. 4º Seminário de Software
Livre TcheLinux Pelotas
Porque usar LDAP?
44. Vantagens do LDAP
Padrão aberto;
API bem definida com para várias linguagens de
programação
Esquemas (regras para armazenamento)
padronizados para diferentes funções;
Permite a consolidação de informações de várias
fontes(email,samba,squid,apache,ftp,radius,etc.);
Implementa ACL's
Facilmente replicável e distribuível.