Servidor de AutenticaçãoServidor de Autenticação CentralizadaCentralizada
4º Seminário de Software Livre TcheLinux Pelotas
$ 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
22 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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
33 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
OK deu, e o LDAP?
44 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
Experiência comExperiência com
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
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;
77 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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
88 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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.
1010 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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 ”/”
1111 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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;
1313 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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.
1515 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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.
1616 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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.
1717 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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.
1818 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
Entendendo os Diretórios
1919 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
Atributos, ObjectClassesAtributos, ObjectClassese Schemase Schemas
4º Seminário de Software Livre TcheLinux Pelotas
Atributos
● Um atributo é um campo que armazena uma determinada informação;
● Definem regras para o tipo de valor a ser armazenado;
2121 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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.
2222 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
ObjectClasses
● ObjectClasses são compostas por um conjunto de atributos;
● Possuem derivações, uma objectClass pode herdar atributos requeridos de outra;
2323 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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
2424 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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”
2525 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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: [email protected]
2626 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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
2727 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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).
2828 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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.
2929 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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.
3131 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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
3232 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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
3333 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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
3535 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
Uso e Gerenciamento
3636 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
Mão na massaMão na massa
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)
3838 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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, é oseu diretório “home”.
3939 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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
4040 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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
4141 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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.
4242 - OpenLDAP: Servidor de Autenticação Centralizada - OpenLDAP: Servidor de Autenticação Centralizada
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.
Muito Obrigado!!Muito Obrigado!!
Thiago FinardiThiago Finardi
Palestra:Palestra: www.g8si.com/finardi www.g8si.com/finardi
email:email: [email protected]@gmail.com
Blog: Blog: www.botecodigital.infowww.botecodigital.info
Twitter: Twitter: @tfinardi@tfinardi