Servidor de autenticação centralizada com OpenLDAP
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.