45
Servidor de Autenticação Servidor de Autenticação Centralizada Centralizada 4º Seminário de Software Livre TcheLinux Pelotas

Servidor de autenticação centralizada com OpenLDAP

Embed Size (px)

DESCRIPTION

Palestra ministrada na Universidade Católica de Pelotas durante o 4º Seminário de Software Livre Tchê Linux Pelotas no dia 28/08/2010.

Citation preview

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

LDAPLDAP

4º Seminário de Software Livre TcheLinux Pelotas

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óriosDiretórios

4º Seminário de Software Livre TcheLinux Pelotas

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ço de DiretóriosServiço de Diretórios

4º Seminário de Software Livre TcheLinux Pelotas

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 Entendendo os DiretóriosDiretórios

4º Seminário de Software Livre TcheLinux Pelotas

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 e Instalação e ConfiguraçãoConfiguração

4º Seminário de Software Livre TcheLinux Pelotas

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 GerenciamentoUso e Gerenciamento

4º Seminário de Software Livre TcheLinux Pelotas

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

Autenticando ServiçosAutenticando Serviços

4º Seminário de Software Livre TcheLinux Pelotas

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

Porque usar LDAP?Porque usar LDAP?

4º Seminário de Software Livre TcheLinux Pelotas

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