servidor de autenticação centralizada com openldap

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

Upload: thiago-finardi

Post on 18-Dec-2014

2.055 views

Category:

Technology


8 download

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.

TRANSCRIPT

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