Você está na página 1de 72

GUIA DE ESTUDOS

LPIC-3 CORE
GUIA DE ESTUDOS LPIC 301
Topic 301: Concepts, Architecture and Design
301.1 LDAP Concepts and Architecture (weight: 3)
Description: Candidates should be familiar with LDAP and X.500 concepts
Key Knowledge Areas
LDAP and X.500 technical specification
Attribute definitions
Directory namespaces
Distinguished names
LDAP Data Interchange Format
Meta-directories
Changetype operations
The following is a partial list of the used files, terms and utilities:
LDIF
Meta-directory
changetype
X.500
/var/lib/ldap/*

LDAP and X.500 technical specification


O exame da LPI 301 vai exigir de ns um conhecimento abrangente sobre LDAP. Vamos comear com uma
pergunta freqente: O que um diretrio e qual a diferena entre um diretrio e um banco de dados? Na verdade um
diretrio um tipo especializado de um banco de dados. Sua principal caracterstica que um diretrio muito mais
frequentemente lido ou pesquisado ao invs de ser atualizado (escrita). Por outro lado, um banco de dados pode possuir
uma maior formato de dados arbitrrios, ao passo que um diretrio consiste de objetos, que so unidades especializadas
de dados. Exemplos clssicos de um diretrio uma lista telefnica, uma lista interna de empregados com todos os seus
dados pessoais, ou um ndice de um livro na biblioteca. Agora, certifique-se voc tambm est familiarizado com os
seguintes termos:

Directory service - uma soluo de software de administradores que armazena e organiza as informaes sobre os
usurios da rede e dos recursos e ajuda a gerenci-los, por exemplo, controlando o acesso desses usurios aos recursos.

Meta-Directory - um conceito de um diretrio centralizado com todos os tipos de informao, comeando com os
dados pessoais, as credenciais de autenticao, listas de hardware, os endereos de impressora, etc. Empregando
metadiretrios em empresas, possivelmente poupar dinheiro e melhorar o controle do acesso aos recursos.

Padro X.500 - um conjunto de protocolos de apoio aos servios de diretrio. Foi inventado em 1984 pela Unio
Internacional de Telecomunicaes (CCITT). composto dos seguintes protocolos: Directory Access Protocol, do
Sistema de Protocolo, Information Shadowing Protocol Directory, Directory Operational Management Protocol
Bindings. Ele foi desenvolvido com o modelo OSI em mente, ainda possvel hoje em dia para execut-lo em TCP/IP
tambm.

LDAP - Significa Lightweight Directory Access Protocol, porque a alternativa leve para os servios de diretrio
X.500. LDAP baseado no protocolo TCP/IP. Segundo a Wikipedia Tim Howes, Kille Steve e Yeong Wengyik
comeou a trabalhar em LDAP em 1993. LDAP e X.500 so construdos em esqueleto Directory Information Tree.

Directory Information Tree - o esqueleto de dados fundamental para ambas as implementaes de X.500 e LDAP.
Como muitas outras estruturas de dados no mundo da computao so representadas como uma rvore. Um exemplo
deste tipo pode ser encontrado aqui. LDAP modelo de informaes em uma rvore construda de entradas.

LDAP entry - Uma entrada do diretrio que uma coleo de atributos e tem um nico nome distinto (DN).

Distinguished Name - Nome de uma entrada de diretrio em sua forma absoluta. DN composto por RDN (Relative
Distinguished Name).

Ex.: uid=roberto,ou=People,dc=empresa,dc=com,dc=br

uid=roberto - RDN distinto da unidade organizacional 'People'


uid=roberto,ou=People,dc=empresa,dc=com,dc=br - DN ( singularmente distinto dentro do diretrio inteiro)

LDAP Attribute - Uma estrutura de dados de base, composta por duas partes, ou seja, um par de um tipo e o valor.
Ex.: description: Instrutor

2
GUIA DE ESTUDOS LPIC 301
objectClass - um atributo especial que define como uma entrada especial deve ser semelhante, os atributos que so
permitidos e o que tem a sintaxe devem ser usados nos mesmos. objectClasses so definidos nos arquivos de esquema.

Ex.: ObjectClass: organizationalUnit

Schema Files - So esqueletos de entrada LDAP. Eles contm classes de objetos e atributos de requisitos utilizados pelo
diferentes DNS. Os arquivos de esquema normalmente residem no diretrio /etc/openldap/schema/ ou /etc/ldap/schema.

White Pages schema - um modelo de dados que descrevem a organizao de entradas em um servio de diretrio. O
nome vem das pginas em branco em um livro de telefone, que contm informaes sobre os indivduos, ao contrrio de
pginas amarelas revelando informaes sobre as empresas. As entradas so ordenadas de acordo com os indivduos
locais, por ordem alfabtica dos seus nomes, etc.

LDIF
O LDAP Data Interchange Format (LDIF) um formato de intercmbio de dados padro para representar o
contedo do diretrio LDAP, bem como atualizao de diretrios (Adicionar, Modificar, Apagar, Mudar o
nome). LDAP um acrnimo para "Lightweight Directory Access Protocol". Ele transmite o contedo do diretrio
como um conjunto de registros, um registro para cada objeto (ou entrada). Representa solicitaes de atualizao como
um conjunto de registros, um registro para cada solicitao de atualizao. Em ambos os casos, os dados so
apresentados sob a forma de texto simples.
Ex.: arquivo empresa.ldif

dn: dc=empresa,dc=com,dc=br
objectClass: top
objectClass: dcObject
objectClass: organization
o: empresa.com.br
dc: empresa

Metadirectory
O termo metadiretrio descreve qualquer soluo que ligue fontes de dados isolados e distintos em um volume
lgico nico. Um sistema metadiretrio prev o fluxo de dados entre um ou mais servios de diretrio e bases de dados,
a fim de manter a sincronizao de dados, e uma parte importante dos sistemas de gesto de identidade.
Os dados a serem sincronizados normalmente so colees de entradas que contm perfis de usurio e
autenticao ou potencialmente poltica de informao.

changetype
A palavra changetype em um arquivo LDIF, chave para modificar as entradas existentes.

Valores de ChangeTypes comum:


add - Adiciona a entrada no diretrio.
delete - Apaga a entrada do diretrio.
modify - Modifica os atributos de uma entrada, possvel tanto adicionar como apagar valores de atributos.
modrdn - Muda o RDN de uma entrada.
moddn - Muda o DN de uma entrada.

X.500
um conjunto de protocolos de apoio aos servios de diretrio. Foi inventado em 1984 pela Unio
Internacional de Telecomunicaes (CCITT). composto dos seguintes protocolos: Directory Access Protocol, do
Sistema de Protocolo, Information Shadowing Protocol Directory, Directory Operational Management Protocol
Bindings. Ele foi desenvolvido com o modelo OSI em mente, ainda possvel hoje em dia para execut-lo em TCP/IP
tambm.
O conceito primrio do X.500 que no h um nico Directory Information Tree (DIT), uma organizao
hierrquica de entradas que distribudo atravs de um ou mais servidores.
Uma entrada consiste de um conjunto de atributos, cada atributo com um ou mais valores. Cada entrada tem
um nico nome distinto, formado pela combinao de seu nome distinto relativo (RDN), um ou mais atributos da
entrada em si, e a RDN de cada uma das entradas superior at a raiz da DIT.

/var/lib/ldap/*
Diretrio do banco de dados do servidor LDAP, este local configurado usando a diretiva directory no arquivo
slapd.conf. Contm os arquivos de banco de dados e ndices.

3
GUIA DE ESTUDOS LPIC 301
301.2 Directory Design (weight: 2)
Description: Candidates should be able to design and implement an LDAP directory, while planning an appropriate
Directory Information Tree to avoid redundancy. Candidates should have an understanding of the types of data which
are appropriate for storage in an LDAP directory
Key Knowledge Areas
Define LDAP directory content
Organize directory
Planning appropriate Directory Information Trees
The following is a partial list of the used files, terms and utilities:
Class of Service
Directory Information Tree
Distinguished name
Container

Class of Service
Classe de servio (COS) - Atributo virtual de servio. Alguns valores de atributos no podem ser armazenados
com a entrada em si prprio, em vez disso ele gerado pela lgica CoS como a entrada enviada para o aplicativo
cliente.

Cada especificao de CoS composto pelos seguintes dois tipos de entrada:

CoS Definition Entry - Identifica o tipo de classe de servio que voc est usando, ele armazenado como uma
entrada secundria LDAP abaixo do ramo em que ele valido.
CoS Template Entry - Esta entrada contm uma lista dos valores de atributo compartilhado, alteraes ao modelo de
valores dos atributos de entrada so aplicadas automaticamente a todas as entradas.

Classe de Tipos de Servio

Class of Service Pointer - Identifica o modelo de entrada associado a esta definio CoS, utilizando o modelo do valor
de entrada do DN.
CoS Indirect - Identifica o modelo de entrada usando o valor da entrada de um alvo.
CoS Classic - Identifica o modelo de entrada utilizando tanto o modelo de entrada DN e o valor de um dos atributos da
entrada do alvo.

Directory Information Tree

A Directory Information Tree (DIT) a representao dos dados em uma rvore hierrquica como a estrutura composta
de nomes distintos (DNs) que so as entradas de diretrio.

Em ambos os protocolos X.500 e do Lightweight Directory Access Protocol (LDAP) a utilizao da DIT em sua
estrutura de dados fundamental.

A implantao de uma nica organizao ter uma DIT, que consiste em duas partes:

Nome de uma estrutura de nvel superior para o nome da prpria organizao.


Uma representao do modelo de estrutura de dados dentro da organizao.
Top level de nomeao em uma DIT.

Os nveis de topo de uma DIT freqentemente representam as divises polticas e geogrficas. O pressuposto inicial de
X.500 que todos os servidores de diretrio sero interligados para formar um espao nico e global.

As entradas no nvel superior da DIT correspondem aos pases, identificado pelo seu cdigo de pas (ISO 3166) de duas
letras. As organizaes de cadastros subordinadas entrada de um pas que corresponderia aos estados ou provncias e
nacional.

Estrutura organizacional em uma DIT

Existe inmeras tcnicas para modelar os elementos de uma organizao representada no diretrio (por
exemplo, as pessoas, funes ou dispositivos) em uma DIT. Os fatores determinantes so:

requisitos das aplicaes que sero pesquisar e atualizar o diretrio.


a exigncia de apresentar um nico nome para cada entrada.
o desejo de estabilidade da estrutura do diretrio.
4
GUIA DE ESTUDOS LPIC 301

rvore de diretrio LDAP (nomenclatura tradicional)

rvore de diretrio LDAP (nomenclatura Internet)

Distinguished name
a identificao de uma entrada do diretrio de forma nica exibindo seu nome e localizao na estrutura.
Ex.: uid=roberto,ou=People,dc=empresa,dc=com,dc=br

RDN
Relative Distinguished name, nome nico dado a um atributo dentro de sua unidade (ou). Pode ser baseado em
um nico atributo (uid) ou ser composto utilizando vrios atributos concatenados com o caractere + como em uid+cn.
RDN somente til quando associado a um DN de forma a identificar uma entrada nica na arvore do Diretrio.
Ex.: uid=roberto

cn=roberto,ou=People,dc=empresa,dc=com,dc=br - (nome-based) Nome comum (CN) utilizado como entrada. No caso


de um registro LDAP para uma pessoa, o nome comum como o nome completo. A desvantagem que se h uma
mudana de nome, o registro LDAP tem de "passar" de um DN para outro.

uid=roberto,ou=People,dc=empresa,dc=com,dc=br - (login-based) LDAP e X.500 usam uid que significa "User ID",
para no ser confundido com o nmero de UNIX uid. A maioria das empresas tenta dar a todos os usurios, um nome
para login nico.

5
GUIA DE ESTUDOS LPIC 301

atributos

RDN
Container
Um Container uma classe, uma estrutura de dados, ou um tipo de dados abstratos (ADT), cujas ocorrncias
so colees de outros objetos. Eles so usados para armazenar objetos de forma organizada, seguindo regras de acesso
especfico.

301.3 Schemas (weight: 3)


Description: Candidates should be familiar with schema concepts, and th
e base schema files included with an OpenLDAP installation
Key Knowledge Areas
LDAP schema concepts
Create and modify schemas
Attribute and object class syntax
The following is a partial list of the used files, terms and utilities:
Distributes schema
Extended schema
Object Identifiers
/etc/ldap/schema/*
Object class
Attribute
include directive

Distributes schema
O contedo das entradas em uma sub-rvore so regidos por um esquema. O esquema define os tipos de
atributos que as entradas de diretrio podem conter. Uma definio de atributo inclui uma sintaxe, e mais os valores
no-binrio.

Exemplos:
Um mail attribute pode conter o valor "user@example.com".
Um jpegPhoto atribute dever conter fotografia (s) em binrio no formato JPEG / JFIF.
Um "member" atribute contm DNs de outras entradas de diretrio.

Um esquema define classes de objetos. Cada entrada deve ter um atributo objectClass, contendo classes
nomeadas definido no esquema. A definio do esquema das classes de uma entrada define que tipo de objeto pode
representar a entrada - por exemplo, uma pessoa, organizao ou domnio. A definio de objeto de classe tambm
atribui entrada a lista que pode e deve conter.
Por exemplo, uma entrada que representa uma pessoa pode pertencer s classes "top" e "person". Na classe
person seria exigir a entrada para conter o SN e CN atributes, e permitir a entrada tambm para conter
userPassword, telephoneNumber", e outros atributos.

Os schemas nada mais so do que arquivos texto contendo uma srie de ObjectClasses. Os ObjectClasses nada
mais so do que um conjunto de atributos, e os atributos nada mais so do que a definio lgica dos campos que
podem ser utilizados em uma base LDAP.Cada schema habilita um determinado tipo informao a ser armazenada na
base. Os schemas so lidos pela base LDAP e assim permite o uso dos campos nele definido.

6
GUIA DE ESTUDOS LPIC 301
Extended schema
Esquema estendido pode ser definido da mesma forma como um esquema normal (estrutural), com a diferena
fundamental que no pode ser usada por conta prpria. Eles s podero ser usados como uma extenso do esquema
normal (estrutural). Esquemas estendidos tambm so chamados esquemas auxiliares.

Object Identifiers (OID)

O identificador do objeto utilizado para definir que tipo de informao poder ser armazenado no atributo.
Trata-se de uma seqncia numrica nica que define os mais diversos tipos de valores. Quando dizemos que nica
estamos explicitando que existe somente uma nica entidade no universo conhecido que emite e gerencia esses
identificadores.
O OID utilizado para identificar objectClass, attribute, sintaxes, matchingrules,protocol mechanisms,
controls, extended operation e supported features, ou seja, todas as partes que formam o LDAP. O OID formado por
uma srie de nmeros separados por pontos (semelhantes a endereos IP) que devem ser lidos da esquerda para a
direita.

Ex.:
2.5.6 # OID of x.500 objectclasses
2.5.6.2 # OID of country objectclass
1.3.6.1.4.1.1446 # Mark Whal (Critical Angle)
1.3.6.1.4.1.311 # microsoft's enterprise OID
1.2.840.113556 # microsoft's us OID

/etc/ldap/schema/*
/etc/ldap/schema o local onde os arquivos que contm os esquemas (estruturais e auxiliares) so normalmente
armazenados.

Ex.:
-rw-r--r-- 1 root root 2084 Out 12 2008 corba.schema
-rw-r--r-- 1 root root 20346 Out 12 2008 core.schema
-rw-r--r-- 1 root root 14030 Out 12 2008 cosine.schema
-rw-r--r-- 1 root root 3378 Out 12 2008 dyngroup.schema
-rw-r--r-- 1 root root 6360 Out 12 2008 inetorgperson.schema
-rw-r--r-- 1 root root 3295 Out 12 2008 java.schema
-rw-r--r-- 1 root root 2471 Out 12 2008 misc.schema
-rw-r--r-- 1 root root 7723 Out 12 2008 nis.schema
-rw-r--r-- 1 root root 1602 Out 12 2008 openldap.schema
-rw-r--r-- 1 root root 4678 Out 12 2008 ppolicy.schema

Descrio do schemas

corba.schema - Define algumas classes de objetos e atributos para manipulao Common Object Request Broker
Architecture (CORBA) objeto referncias em vrias mquinas.

core.schema - Define muitos atributos comuns e classes de objetos. Este esquema onde voc vai encontrar as
organizationalUnit, dcObject, top, e organizationalRole.

cosine.schema - Um esquema para suportar guias de diretrio COSINE e X.500, com base no RFC 1274.

dyngroup.schema - Um conjunto experimental de objetos usados com Netscape Enterprise Server.

inetorgperson.schema - Define a classe de objeto inetOrgPerson e seus atributos, frequentemente,ente utilizado para
armazenar informaes de contatos.

java.schema - Um esquema usado para armazenar um objeto Java serializado, organizado, java remoto ou uma
referencia JNDI em um diretrio LDAP.

misc.schema - Define um pequeno grupo de objetos mistos e atributos, contem esquemas necessrios para implementar
roteamento de email (LDAP + Sendmail).

nis.schema - Define atributos e objetos necessrios para utilizar LDAP com o NIS.

7
GUIA DE ESTUDOS LPIC 301
openldap.schema - Objetos mistos utilizados pelo prprio OpenLDAP.

ppolicy.schema - Um conjunto de objetos para implementar polticas de senha no LDAP. Algumas destas so tratadas
pelo mecanismo shadow tradicional do UNIX.

Object class
Uma classe de objeto um local contendo um ou vrios atributos. Cada definio de classe de objeto tem um OID
nico. A definio descreve quais atributos so necessrios ou opcionais.

Attribute
Uma definio de atributo descreve o tipo, a sintaxe, comprimento e algumas propriedades adicionais dos dados que
podem ser inseridos em um atributo.

include directive
No slapd.conf a diretiva include usado para informar, quais os arquivos de esquema que devem ser carregados ao
inicializar o daemon slapd.

Ex.:
# Schema and objectClass definitions
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema

Topic 302: Installation and Development


302.1 Compiling and Installing OpenLDAP (weight: 3)
Description: Candidates should be able to compile and install OpenLDAP from source and from packages
Key Knowledge Areas
Compile and configure OpenLDAP from source
Knowledge of OpenLDAP backend databases
Manage OpenLDAP daemons
Troubleshoot errors during installation
The following is a partial list of the used files, terms and utilities:
make
gpg
rpm
dpkg
bdb
slapd
slurpd

make
Make um utilitrio usado para compilar programas usando cdigo fonte. O arquivo que especifica as
instrues para o make chamado de Makefile. Make mais comumente usado em C/C + +, mas em princpio pode ser
usado com praticamente qualquer software de projeto.

Para instalar OpenLDAP, baixe o cdigo fonte no site http://www.openldap.org/software/download/

1 - Faa sua descompresso em /usr/src.


# tar xzf openldap-"verso".tgz -C /usr/src

2 - V at o diretrio criado e, aps ler o README, verifique quais as opes de compilao voc quer ativar e
quais quer desativar
# cd /usr/local/src/openldap-"verso"
# ./configure --help

3 - Utilize o comando con?C gure com as opes desejadas para efetuar a verificao de que todos os requisitos
de compilao esto presentes em seu sistema
# ./configure --with-tls --enable-memberof=mod

8
GUIA DE ESTUDOS LPIC 301
4 - Verifique as dependncias
# make depend

5 - Compile o cdigo
# make

6 - Uma vez compilado o cdigo fonte, podemos testar se tudo ocorreu devidamente
# make test

7 - Se tudo estiver certo, podemos instalar o software


# make install

gpg
O GNU Privacy Guard (GnuPG ou GPG) uma reposio de software livre para a sute de software de
criptografia PGP. GnuPG permite criptografar e assinar os seus dados e comunicao, caractersticas de um sistema de
gesto verstil chave, bem como os mdulos de acesso para todos os tipos de pblico diretrios chave. GnuPG, tambm
conhecido como BPM, uma ferramenta de linha de comando com caractersticas para fcil integrao com outros
aplicativos.

rpm
RPM Package Manager (originalmente Red Hat Package Manager, abreviado RPM) um sistema de
gerenciamento de pacotes. RPM uma ferramenta de software livre que instala, atualiza, desinstala e verifica softwares.

Exemplos de comandos

Instalar pacotes:
# rpm -vih package.rpm
Listar todos os pacotes instalados
# rpm -qa
Informao sobre um pacote instalado
# rpm -qi package
Informao sobre o arquivo rpm do pacote
# rpm -qip package.rpm
Remover um pacote instalado
# rpm -ve package
Atualizao de um pacote
# rpm -vUh package.rpm
Lista de todos os arquivos no pacote
# rpm -ql package
Mostrar qual pacote gerou um determinado arquivo
# rpm -qf /path/to/file

dpkg
dpkg base do sistema de gerenciamento de pacotes Debian. Foi criado por Ian Jackson em 1993, pacotes
dpkg so similar ao RPM, como ele usado para instalar, remover e fornecer informaes sobre arquivos .deb. dpkg
uma ferramenta de baixo nvel, ferramentas de mais alto nvel, como o APT, so utilizados para buscar os pacotes a
partir de locais remotos ou lidar com informaes complexas sobre dependncias

Exemplos de comandos

Instalar pacotes:
# dpkg -i package.deb
Listar todos os pacotes instalados
# dpkg -l
Informao sobre um pacote instalado
# dpkg -s package
Informao sobre o arquivo deb do pacote
# dpkg -I package.deb
Remover um pacote instalado
# dpkg -e package
Lista de todos os arquivos no pacote
# dpkg -L package
Mostrar qual pacote gerou um determinado arquivo
# dpkg -S /path/to/file

9
GUIA DE ESTUDOS LPIC 301

bdb
BDB tem alto desempenho, incorporado biblioteca do banco de dados com ligaes a C, C + +, Java, Perl,
Python, Ruby, Tcl, Smalltalk e muitas outras linguagens de programao. BDB pode suportar milhares de tpicos
simultneos de controles ou processos simultneos, possvel manipular bases de dados to grandes quanto 256
terabytes, em uma grande variedade de sistemas, incluindo mais UNIX-like e Windows como sistema operacional. BDB
pode ser usado como backend para slapd.

slapd
Stand-alone LDAP Daemon

Opes de linha de comando:

slapd -d debug-level - Especifica o nvel de log a ser utilizado para informaes de registro
Ex.: slapd -d 64

slapd -f filename - Utiliza um arquivo de configurao alternativo, ao invs do padro (slapd.conf).


Ex. slapd -f /root/slapd.conf

slapd -F slapd-config-directory - Especifica o diretrio de configurao do slapd


Ex. slapd -F /root/ldap

-h URI_list - Especifica uma lista separada por espao de URIs do LDAP que o daemon deve servir. Os URIs mais
comuns so ldap:/// (LDAP na porta 389), ldaps:/// (LDAP sobre SSL na porta 636) e ldapi:/// (LDAP sobre IPC)
Ex.: slapd -h ldap:/// ldaps:/// ldapi:///

slapd -l syslog-local-user - Especifica o usurio local da facilidade do syslog. O valor padro LOCAL4

slapd -n name - Define o nome do servio utilizado ao logar mensagens ao syslog.

slapd -r diretory - Especifica um diretrio chroot jail para ser usado pelo slapd

slapd -s syslog level - Define um nvel de syslog em vez do nvel padro para se logar todas as mensagens do syslog

slapd -u username - Especifica qual usurio ira executar o slapd

slapd -g groupname - Especifica qual grupo ira executar o slapd

slapd -c cookie - Esta opo fornece um cookie para o servidor slave para replicao syncrepl.

slapd -T {a:c:d:i:p:t:acl:auth} - Executado no modo Tool. O argumento adicional escolhe se deseja executar como
slapadd, slapcat, slapdn, slapindex, slappasswd, ou slaptest.

slurpd
Stand-alone LDAP Update Replication Daemon.

Opes de linha de comando:

slurpd -d debug-level - Especifica as informaes de debug a serem gravadas no registro

slurpd -f config filename - Especifica o local e nome do arquivo de configurao slapd.conf a ser usado.

slurpd -r replogfile - Especifica o local e nome do arquivo do registro de replicao a ser processado.

slurpd -o - Executa o slurpd no modo nico para processar um nico registro de replicao e sair.

slurpd -t directory - Especifica o diretrio a ser usado para arquivos temporrios, como arquivos de trava e status.

slurpd -k srvtab file - Especifica o local do arquivo srvtab ao usar vinculaes do LDAPv2 Kerberos 4 a um servidor
slapd slave.

10
GUIA DE ESTUDOS LPIC 301
302.2 Developing for LDAP with Perl/C++ (weight: 1)
Description: Candidates should be able to write basic Perl scripts to interact with an LDAP directory
Key Knowledge Areas
Syntax of Perl's Net::LDAP module
Write Perl scripts to bind, search, and modify directories
The following is a partial list of the used files, terms and utilities:
Net::LDAP
Perl
C++

Net:: LDAP
Net:: LDAP uma coleo de mdulos que implementa um servio LDAP API para programas Perl. O mdulo
pode ser utilizado para pesquisas em diretrios ou executar funes de manuteno tais como adicionar, excluir ou
modificar entradas.

O mdulo Net:: LDAP por padro no fornecido com o Perl, para instalar use o gerenciador de pacotes
conforme a sua distribuio. Ex.: aptitude install libnet-ldap-perl ?(Debian)

Uma outra maneira de instalao baix-lo da Comprehensive Perl Archive Network (CPAN). Como usurio root digite
# perl -MCPAN -e shell
cpan> install Net::LDAP
cpan> exit

Usando o Net:: LDAP:

1- Criar um novo objeto Net:: LDAP.


2- Fazer BIND (login) com o servidor LDAP.
3- Realize Pesquisas na base LDAP.
4- Realize Alteraes na base LDAP.

1 - Criar um novo objeto


Na forma tpica Perl, voc deve criar uma instncia com mdulo Net::LDAP atravs da funo new. Todas as
operaes sero ainda nesta instncia. new exige, no mnimo, o nome do servidor que deseja conectar. Por exemplo:

#!/usr/bin/perl
use Net::LDAP;
# Criar o objeto e abre uma conexo com o servidor ldap
$ldap = Net::LDAP->new( 'server.empresa.com.br' ) or die "$@";

2- Fazer BIND (login) com o servidor LDAP.

A primeira operao que voc deve fazer fazer login, atravs da funo bind do objeto criado anteriormente
$ldap. Tambm verificado erros na autenticao usando o mtodo code e error.

# Vinculo Annimo (iniciar sesso)


$mesg = $ldap->bind;
# ou vincule usando DN e senha
$mesg = $ldap->bind( 'cn=admin, dc=empresa, dc=com, dc=br',
password => '123456'
);

# Verifique erros
$mesg->code && die $mesg->error;

3- Realize Pesquisas na base LDAP.

A procura feita atravs da funo search. Como na funo bind, voc deve passar alguns parmetros e
verificar o resultado de sua consulta. Tambm verificado erros na pesquisa usando as funes code e error.

# Efetuar pesquisa
$mesg = $ldap->search(
base => "ou=People,dc=empresa,dc=com,dc=br",
filter => "(uid=*)"
);

11
GUIA DE ESTUDOS LPIC 301
# Verifique erros
$mesg->code && die $mesg->error;
# Imprimir resultados
foreach $entry ($mesg->entries) { $entry->dump; }

4- Realize Alteraes na base LDAP.

As alteraes na base de dados LDAP, so feitas atravs da funo modify e changes (add, delete e replace),
Tambm verificado erros na pesquisa usando as funes code e error.

# Modificar uma entrada na base LDAP


$dn = "uid=roberto,ou=People,dc=empresa,dc=com,dc=br";
$mesg = $ldap->modify( $dn,
changes => [
add => [ description => 'Instrutor' ], # Adicionar descrio do usurio
delete => [ telephoneNumber => []], # Apaga numero de telefone do usurio
replace => [ mail => 'admin@empresa.com.br'] # Altera o email do usurio
]
);

# # Verifique erros
$mesg->code && die $mesg->error;
# Encerra a conexo
$mesg = $ldap->unbind;

Abaixo o script em perl completo usando o mdulo Net:: LDAP

#!/usr/bin/perl
use Net::LDAP;
# Cria o objeto e abre uma conexo com o servidor ldap
$ldap = Net::LDAP->new( 'server.empresa.com.br' ) or die "$@";

# Vinculo Annimo (iniciar sesso)


$mesg = $ldap->bind;
# ou vincule usando DN e senha
$mesg = $ldap->bind( 'cn=admin, dc=empresa, dc=com, dc=br',
password => '123456'
);

# Verifique erros
$mesg->code && die $mesg->error;

# Efetuar pesquisa
$mesg = $ldap->search(
base => "ou=People,dc=empresa,dc=com,dc=br",
filter => "(uid=*)"
);

# Verifique erros
$mesg->code && die $mesg->error;
# Imprimir resultados
foreach $entry ($mesg->entries) { $entry->dump; }

# Modificar uma entrada na base LDAP


$dn = "uid=roberto,ou=People,dc=empresa,dc=com,dc=br";
$mesg = $ldap->modify( $dn,
changes => [
add => [ description => 'Instrutor' ], # Adicionar descrio do usurio
delete => [ telephoneNumber => []], # Apaga numero de telefone do usurio
replace => [ mail => 'admin@empresa.com.br'] # Altera o email do usurio
]
);

# # Verifique erros
$mesg->code && die $mesg->error;
12
GUIA DE ESTUDOS LPIC 301
# Encerra a conexo
$mesg = $ldap->unbind;

Perl
Perl uma linguagem de programao dinmica criada por Larry Wall e lanada em 1987. Perl pegou
emprestadas caractersticas de uma variedade de outras linguagens, incluindo C, shell script (sh), awk, sed e Lisp.
Estruturalmente, o Perl baseado no estilo bloco delimitado por parnteses do AWK e C, e foi amplamente
adotado para os seus pontos fortes na cadeia de processamento e falta de limitaes arbitrrias de muitas linguagens de
script no momento.

C++
C + + uma linguagem de programao de propsito geral, com alto nvel e as capacidades de baixo nvel. C
+ + considerada como uma linguagem de nvel mdio. Isto indica que o C + + inclui uma combinao de ambos de
alto nvel e caractersticas da linguagem de baixo nvel.

Topic 303: Configuration


303.2 Access Control Lists in LDAP (weight: 2)
Description: Candidates should be able to plan and implement access control lists
Key Knowledge Areas
Plan LDAP access control lists
Grant and revoke LDAP access permissions
Access control syntax
The following is a partial list of the used files, terms and utilities:
ACL
slapd.conf
anonymous
users
self
none
auth
compare
search
read
write

ACL
Lista de Controle de Acesso uma lista de permisses associadas a um objeto. A lista define o nvel de acesso
que cada usurio ter para cada tipo de informao na base de dados.

slapd.conf
Sintaxe:
access to <o que>
[ by <quem> [ <acesso> ] [ <controle> ] ]+

o que - atributo para o qual o controle ser imposto;


quem - entidade ou DN completo do usurio;
acesso - define o nvel de acesso entidade ou ao usurio;
controle - define a forma do processamento das ACL

Ex.:
access to attrs=userPassword,shadowLastChange
by dn="cn=admin,dc=empresa,dc=com,dc=br" write
by anonymous auth
by self write
by * none

Acesso aos atributos userPassword,shadowLastChange


quem dn="cn=admin,dc=empresa,dc=com,dc=br" escrita
quem anonymous precisa de autenticao
quem o prprio usurio escrita
quem todos os usurios fora das categorias acima no tem nenhum acesso

13
GUIA DE ESTUDOS LPIC 301

Entidades

anonymous
Annimo descreve acesso ao diretrio quando o usurio est conectado sem autenticar-se.

users
Qualquer pessoa que tenha se autenticado com o servidor de diretrio.

self
limitar o acesso dos usurios aos objetos que so de propriedade do usurio.

*
Todos

Nveis de acesso

none
Nenhum meio de acesso ou no tem permisso.

auth
Controla se o usurio pode autenticar com o servidor de diretrio

compare
Controla se o usurio pode realizar uma comparao.

search
Controla se o usurio pode realizar uma busca em todo o DN ou especificado.

read
Controles de informaes se um usurio pode ler a partir do Diretrio.

write
Controla se o usurio pode gravar dados no Diretrio.

303.3 LDAP Replication (weight: 5)


Description: Candidates should be familiar with the various replication strategies available with OpenLDAP
Key Knowledge Areas
Replication concepts
Configure OpenLDAP? replication
Execute and manage slurpd
Analyze replication log files
Understand replica hubs
LDAP referrals
LDAP sync replication
The following is a partial list of the used files, terms and utilities:
slurpd
slapd.conf
master / slave server
consumer
replica hub
one-shot mode
referral
syncrepl
pull-based / push-based synchronization
refreshOnly and refreshAndPersist
replog

Replication concepts
A replicao a tcnica de duplicao de dados entre vrios diretrios para o desempenho, escalabilidade e
redundncia. uma maneira de trazer vrias reas geogrficas em conjunto em um diretrio da empresa. Estas vrias
cpias so mantidas em sincronia com um ou mais servidor de diretrio principal chamado de master ou de servidor
gravvel e um ou mais slave ou rplica.

14
GUIA DE ESTUDOS LPIC 301
Atravs da replicao, uma alterao feita em um diretrio propagada para um ou mais diretrios adicionais.
Com efeito, uma mudana para um diretrio aparece em vrios diretrios diferentes.

Vantagens principais:

Confiabilidade:
Cpias de segurana dos servidores e dados podem ser restaurado a partir de replicas caso todos os dados so
perdidos devido a alguma falha catastrfica. Com vrios servidores master voc tambm ter um backup para assumir
se o primeiro parar.

Performance:
Solicitaes de pesquisa de clientes pode ser distribudo em todos os servidores masters, em vez de um nico,
reduzindo assim a resposta de tempo, consequentemente aumentando o desempenho. Com mltiplos servidores masters
voc tambm ser capaz de distribuir aplicativos para masters diferentes, assim diminuindo as tarefas de escrita.

Slurpd
Slurpd um servio que fornece a capacidade de um servidor master slapd propagar alteraes para servidores
slave, criando um esquema de replicao. Slurpd executado na mesma mquina que o servidor master slapd.

Etapas de configurao do servidor master e slave:

1 - Crie o usurio responsvel pela rplica dos dados, e o adicione a base.


replicator.ldif
dn: cn=Replicator,dc=empresa,dc=com,dc=br
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: Replicator
userPassword: {SSHA}pKJ7WxvQaYUUuRlTEt72d3CLD5JenrdM
# ldapadd -x -D cn=admin,dc=empresa,dc=com,dc=br -W -f replicator.ldif

2 - Pare o servidor slapd e altere a configurao do servidor master para habilitar o log de rplica
# /etc/init.d/slapd stop
slapd.conf

replogfile /var/lib/ldap/replog

replica uri=ldap://slave.empresa.com.br:389
suffix="dc=empresa,dc=com,dc=br"
binddn="cn=Replicator,dc=empresa,dc=com,dc=br"
credentials=123456
bindmethod=simple
tls=yes

replogfile - Local de gravao do log de replicao;

replica - Define o servidor slave e a porta a ser usada;


suffix - Define a raiz da base de dados;
binddn - DN do usurio que deve efetuar as alteraes na base de dados do slave;
credentials - Senha do usurio especificado em binddn;
bindmethod - Define o mtodo de autenticao e simple significa, sem SASL;
tls - Especifica que a conexo entre master e slave deve usar criptografia.

3 - No servidor master exportar os dados da base para um arquivo .ldif


# slapcat -v -l base.ldif

4 - Transferir de maneira segura os dados entre master e slave


# scp base.ldif slave:/root

5 - No servidor slave pare o slapd, remova a base inicial, importe os dados do arquivo base.ldif e arrume as
permisses de /var/lib/ldap/*

# /etc/init.d/slapd stop
# rm -i /var/lib/ldap/* (no apague o arquivo DB_CONFIG)
# slapadd -v -c -l base.ldif
# chown openldap: /var/lib/ldap/*
15
GUIA DE ESTUDOS LPIC 301
6 - Configurar ACLS no servidor slave (slapd.conf) e referencia ao master

access to attrs=userPassword,shadowLastChange
by dn="cn=Replicator,dc=empresa,dc=com,dc=br" write
by anonymous auth
by self write
by * none

access to *
by dn="cn=Replicator,dc=empresa,dc=com,dc=br" write
by * read

updatedn cn=Replicator,dc=empresa,dc=com,dc=br
updateref ldap://server.empresa.com.br

updatedn - DN do usurio para fazer rplica;


updateref - Define o host do servidor master.

master/slave server
Um servidor de diretrio (master) tem a funo de gravao de dados. Um ou mais servidores de diretrio
(slave) tem cpias somente para leitura dos dados. Atravs do processo de replicao as atualizaes so distribudas a
partir do servidor de diretrio master para os servidores de diretrio slave. Quando um cliente tenta a atualizao
usando os servidores slave, ele redirecionado ao servidor master.

1 - O cliente envia uma solicitao de atualizao, recebido por um slave;


2 - O slave recebe uma solicitao de escrita do cliente, responde apontando-o ao servidor master;
3 - O cliente emita a solicitao de atualizao para o servidor master;
4 - O servidor master executa a atualizao e escreve a mudana para o log de replicao;
5 - slurpd, tambm em execuo no servidor master, l as mudanas no log de replicao;
6 - slurpd envia as mudanas para o slave.

one-shot mode
Quando h uma falha na replicao por problemas de conexo com o servidor slave, criado um arquivo com
o nome ou ip do servidor com a extenso .rej contendo as informaes que no foram replicadas.
Para reenviar replicao manual use o comando slurpd indicando o arquivo a ser processado (-r) em modo
one-shot usando o parmetro -o.

# slurpd -r /var/spool/slurpd/slave.empresa.com.br.rej -o

referral
1 - O cliente envia modificao para rplica;
2 - A rplica retorna um referral (link) do master para o cliente;
3 - O cliente reenvia a modificao para o master;
4 - Master retorna o resultado para o cliente;
5 - Master atualiza as mudanas para a rplica.

16
GUIA DE ESTUDOS LPIC 301
syncrepl
O Syncrepl basicamente um sistema de replicao que ativado e controlado pelo servidor slave, ou seja, a
responsabilidade de manter a replicao, ?
ca no cliente e no no servidor. Outro aspecto importante o fato de que se a
conexo entre o servidor master e o servidor slave for interrompida por algum tempo e depois restaurada.

Etapas de configurao do servidor master e slave para uso do Syncrepl:

1 - Configurar o servidor master (slapd.conf):

A) Adicionar o mdulo so syncprov


modulepath /usr/lib/ldap
moduleload back_bdb
moduleload syncprov

B) Configurao do syncprov (abaixo de index)


## Ativando o modulo syncprov carregado anteriormente
overlay syncprov
## Forar um checkpoint a cada 100 operaes ou a cada 10 minutos
syncprov-checkpoint 100 10
## So registradas 100 entradas no log de replicao, utilizadas para pesquisa
syncprov-sessionlog 100

C) ndices adicionais para a rplica dos dados


index objectClass eq
index entryCSN eq
index entryUUID eq

D) Adicione uma ACL que permita o usurio Replicator possa ler os atributos userPassword e shadowLastChange

by dn="cn=admin,dc=empresa,dc=com,dc=br" write
by dn="cn=Replicator,dc=empresa,dc=com,dc=br" read

2 - Pare o servidor e faa a indexao da base


# /etc/init.d/slapd stop
# slapindex -v

3 - Arrume as permisses da base e inicie o servidor


# chown openldap: /var/lib/ldap/*
# /etc/init.d/slapd start

4 - Configurar o servidor slave (slapd.conf):

A) Descomente a diretiva rootdn, necessrio para syncrepl.


rootdn "cn=admin,dc=empresa,dc=com,dc=br"

B) ndices adicionais para a rplica dos dados


index objectClass eq
index entryCSN eq
index entryUUID eq

C) Configurao do syncprov (abaixo de index)


syncrepl rid=123
provider=ldap://server.empresa.com.br:389
type=refreshOnly
interval=00:00:00:10
searchbase="dc=empresa,dc=com,dc=br"
filter="(objectClass=*)"
scope=sub
attrs="*"
schemachecking=off
bindmethod=simple
binddn="cn=Replicator,dc=empresa,dc=com,dc=br"
credentials=123456

17
GUIA DE ESTUDOS LPIC 301
Opes:

rid - Identifica a configurao de replica no servidor slave.


provider - Identifica o servidor do sero baixadas as informaes.
type - Define a tcnica de replicao refreshOnly ou refreshAndPersist.
interval - Perodo de tempo entre as operaes de sincronismo dd:hh:mm:ss.
searchbase - Ponto inicial de pesquisa dos dados que sero replicados.
filter - Indica quais tipos de entrada sero replicadas.
scope - Define se a pesquisa ser recursiva ou no.
attrs - Indica os atributos que sero replicados (*) todos.
schemachecking - Ativa ou desativa a checagem dos schemas.
bindmethod - Mtodo de conexo utilizada (simple) sem criptografia.
binddn - Usurios que ser usado para replicao.
credentials - Senha do usurio especificado em binddn.

5 - Pare o servidor e faa a indexao da base


# /etc/init.d/slapd stop
# slapindex -v

6 - Arrume as permisses da base e inicie o servidor


# chown openldap: /var/lib/ldap/*
# /etc/init.d/slapd start

pull-based / push-based synchronization


pull-base synchronization - Mtodo que aps a primeira sincronizao, o servidor slave mantm uma conexo
persistente com o servidor master. Qualquer alterao sincronizada imediatamente.

push-base synchronization - Mtodo que aps a primeira sincronizao, o servidor slave monitora o servidor master
de tempos em tempos comparando as duas bases, e atualizando o que foi modificado.

refreshOnly and refreshAndPersist


refreshOnly - O servidor slave recebe todas as novas entradas de dados da base, que mudou desde a sua ltima
atualizao. Os pedidos que mantm um cookie completo desde a ltima alterao sincronizada, e em seguida
desconecta.

Ex.: type=refreshOnly

refreshAndPersist - Comea como o refreshOnly, mas ao invs de desligar servidor slave permanece conectado para
receber quaisquer atualizaes.

Ex.: type=refreshAndPersist

303.4 Securing the Directory (weight: 4)


Description: Candidates should be able to configure encrypted access to the LDAP directory, and restrict access at the
firewall level
Key Knowledge Areas
Securing the directory with SSL and TLS
Firewall considerations
Unauthenticated access methods
User / password authentication methods
Maintanence of SASL user DB
Client / server certificates
The following is a partial list of the used files, terms and utilities:
SSL / TLS
Security Strength Factors (SSF)
SASL
proxy authorization
StartTLS
slapd.conf
iptables

18
GUIA DE ESTUDOS LPIC 301
SSL / TLS

Secure Socket Layer (SSL) - Protocolo de camada de segurana que prov a privacidade e a integridade de dados entre
duas aplicaes que estejam se comunicando via internet ou intranet. A porta em que o servio trabalha deve ser
diferente do padro.

Transport Layer Security (TLS) - Criptogra?ra na camada de transporte, pode ser ativado sem a necessidade de
alterao da porta do servio.

Configurao do Servidor:

1 - Instale o pacote openssl


# aptitude install openssl

2 - Crie o diretrio para armazenar as chaves


# mkdir /etc/ldap/ssl
# cd /etc/ldap/ssl

3 - Crie o certificado, definindo tamanho da chave, tipo e tempo de validade


# openssl req -newkey rsa:1024 -x509 -nodes -out ldap.pem -keyout ldap.key -days 365

4 - Configurao do arquivo slapd.conf


TLSCipherSuite TLS_RSA_AES_256_CBC_SHA ? (Debian Lenny)
TLSCertificateFile /etc/ldap/ssl/ldap.pem
TLSCertificateKeyFile /etc/ldap/ssl/ldap.key

5 - Configure as ACLS
access to attrs=userPassword,shadowLastChange
by dn="cn=admin,dc=empresa,dc=com,dc=br" write
by anonymous ssf=56 auth
by self ssf=56 write
by * none

6 - Habilitar a porta 636 para efetuar pesquisa autenticada


# vim /etc/default/slapd
SLAPD_SERVICES="ldap:/// ldaps:/// ldapi:///"

7 - Reinicie o servidor LDAP e verifique as portas disponveis


# /etc/init.d/slapd restart
# netstat -lntp | grep slapd

Configurao do Cliente:

1 - Configure o cliente informando o local do certificado


# vim /etc/ldap/ldap.conf
TLS_CACERT /etc/ldap/ssl/ldap.pem
TLS_REQCERT never

Opes possveis no ldap.conf para TLS_REQCERT so:

never - Qualquer certificado aceito sem verificao.


allow - O nome do servidor ser verificado, desconsiderando ACLs desconhecidas ou certificados auto-assinados.
try - No exige certificado, mas, caso exista, ele ser verificado em todos os seus itens (validade, CA, etc).
hard/demand - Verifica todas as caractersticas do certificado (padro).

2 - Faa uma pesquisa autenticada usando a opo -Z START_TLS e -ZZ


# ldapsearch -x -LLL -D "uid=roberto,ou=People,dc=empresa,dc=com,dc=br" -ZZ -W uid=roberto userPassword

Security Strength Factors (SSF)


Security Strength Factor ou Fator de Fora de Segurana.Cada valor atribudo ao ssf determina a fora de encriptao
exigida para realizar cada ao.

19
GUIA DE ESTUDOS LPIC 301
SSF = 0 - Define que a proteo est desativada e 1 ativada.
Encriptao DES - SSF = 56
Encriptao 3DES - SSF = 112
Encriptao AES - SSF = 128, 192 ou 256

Ex.:
access to attrs=userPassword,shadowLastChange
by dn="cn=admin,dc=empresa,dc=com,dc=br" write
by anonymous ssf=56 auth
by self ssf=56 write
by * none

SASL
Simple Authentication and Security Layer (SASL)- uma estrutura de autenticao e segurana de dados em
protocolos de Internet. Ele separa os mecanismos de autenticao de protocolos de aplicao. Protocolos de aplicao
que suportam SASL normalmente tambm tem suporte ao Transport Layer Security (TLS) para complementar os
servios oferecidos pelo SASL.

Instalando e configurando suporte a SASL

1 - Instale o pacote sasl2-bin:


# aptitude install sasl2-bin

2 - Edite o arquivo /etc/default/saslauthd e altere as seguintes opes:


# vim /etc/default/saslauthd
START=yes
MECHANISMS="ldap"

3. Reinicie o saslauthd:
# /etc/init.d/saslauthd restart

4. Crie o arquivo /etc/saslauthd.conf e insira o seguinte contedo:


ldap_servers: ldap://server.empresa.com.br
ldap_port: 389
ldap_version: 3
ldap_referrals: no
ldap_auth_method: bind
ldap_search_base: dc=empresa,dc=com,dc=br

5 - Faa o teste de autenticao com um usurio da base LDAP


# testsaslauthd -u roberto -p 123456
0: OK "Success."

proxy authorization
O SASL oferece um recurso conhecido como proxy authorization (autorizao de proxy) que permite a
autorizao entre um usurio intermedirio o usurio final e o servidor LDAP. Este usurio intermedirio far pedidos
em nome do usurio final. Um exemplo quando se utiliza uma interface web, onde um usurio pode alterar sua senha.
A aplicao web se conecta com um nome de usurio (cn=webproxy,dc=empresa,dc=com,dc=br) mas atravs de
ACLs que dada a permisso para fazer alteraes de outro usurio. O servidor LDAP acha que o prprio usurio
final, que est realizando os pedidos.

Para tornar o trabalho autorizao proxy, o administrador de LDAP pode adicionar os seguintes atributos de
entradas LDAP:

cn=webproxy,dc=empresa,dc=com,dc=br
authzTo: ldap:///dc=empresa,dc=com,dc=br??sub?(objectclass=person)

Este exemplo d o DN cn=webproxy,dc=empresa,dc=com,dc=br a permisso para trabalhar em nome de todas


as entidades com o objectclass "person ". Outra opo usar o authzFrom.

StartTLS
Permite que o cliente solicite uma camada de transporte segura antes de se vincular a um servidor LDAP. O
trafego de dados continua sendo enviada pela porta padro 389, diferente do ldaps:/// que usa a porta 636.

20
GUIA DE ESTUDOS LPIC 301

Ex.: ldap.conf
ssl start_tls

slapd.conf
TLSCipherSuite TLS_RSA_AES_256_CBC_SHA
TLSCACertificateFile /etc/ldap/ssl/cacert.pem
TLSCertificateFile /etc/ldap/ssl/ldap.pem
TLSCertificateKeyFile /etc/ldap/ssl/ldap.key

TLSCipherSuite - Configura os algoritmos de cifras que sero aceitos e a ordem de preferncia.


TLSCACertificateFile - Especifica o arquivo que contm certificados individuais CA
TLSCertificateFile - Especifica o arquivo que contm o certificado do servidor slapd.
TLSCertificateKeyFile - Especifica o arquivo que contm a chave privada que corresponde ao certificado armazenado
no TLSCertificateFile arquivo

iptables
LDAP utiliza a porta TCP 389, e LDAPS (LDAP sobre SSL) usa a porta TCP 636. Se voc tiver um firewall
entre os servidores e seus clientes, estas portas devem ser autorizadas atravs do firewall:

# Portas 389 TCP (ldap), 636 TCP(ldaps)


# iptables -A INPUT -m state --state NEW -p tcp --dport ldap -j ACCEPT
# iptables -A INPUT -m state --state NEW -p tcp --dport ldaps -j ACCEPT

TCP Wrappers

Permite negar o acesso ao LDAP a qualquer rede.

/etc/hosts.deny
slapd: ALL

Libera o acesso ao LDAP a uma determinada rede e ao localhost.

/etc/hosts.allow
slapd: 192.168.1.,127.0.0.1

303.5 LDAP Server Performance Tuning (weight: 2)


Description: Candidates should be capable of measuring the performance of an LDAP server, and tuning configuration
directives
Key Knowledge Areas
Measure LDAP performance
Tune software configuration to increase performance
Understand indexes
The following is a partial list of the used files, terms and utilities:
index
slapd.conf
DB_CONFIG

index
Melhora o desempenho das consultas feitas base LDAP criando ndices.

Sintaxe:

index attrlist | default indices

attrlist - Pode ser um nico atributo ou uma lista separada por vrgulas.
default - Valor padro deve ser definido antes de qualquer ndice
indices = [pres [,approx] [,eq] [,sub] [,special]]

Ex.:
index mail pres,eq,sub

21
GUIA DE ESTUDOS LPIC 301
Tipos de indexador Significado

eq Permite comparar o atributo no todo


sub Permite comparar o atributo por trecho
pres Permite comparar o atributo pela sua presena
approx Permite comparar o atributo de forma aproximada
especial Podem ser nolang ou nosubtypes relacionados aos subtipos.
none No efetua qualquer comparao para o atributo

slapd.conf
cachesize - A diretiva define o nmero de entradas que o backend LDAP ir manter na memria.

Ex.: cachesize 1000

dbnosync - A diretiva especifica que os bancos de dados no precisam ser atualizados de imediato quaisquer registros
em memria.

Ex.: dbnosync

dirtyread - A diretiva permite retornar dados na memria que ainda podem no ter sido escritos para o disco.

Ex.: dirtyread

DB_CONFIG
Parmetros de configurao do BDB usados para melhorar o desempenho no servidor LDAP. Podem ser
informados no slapd.conf ou no arquivo DB_CONFIG.

Define o cache da base em memria


set_cachesize 0 52428800 0

Numero de objetos que podem ser travados simultaneamente


set_lk_max_objects 1500

Numero de travas (solicitadas e ativadas)


set_lk_max_locks 1500

Numero de travamentos ativos


set_lk_max_lockers 1500

Define o cache em memria para nomes de arquivos, deve ser ampliado quando o numero de tables e ndices
aumentarem.
set_lg_regionmax 1048576

Define o tamanho mximo de log de transaes


set_lg_max 10485760

Cache do log de transaes em memria (2M)


set_lg_bsize 2097152

Define o diretrio para os logs de transaes se diferente do atual


set_lg_dir /var/lib/ldap

Para importaes em modo batch, desabilitar os logs aum aumenta drasticamente a performance do servidor
set_flags DB_TXT_NOT_DURABLE

Substitui a opo checkpoint do arquivo slapd.conf


txn_checkpoint 128 15 0

22
GUIA DE ESTUDOS LPIC 301
303.6 OpenLDAP Daemon Configuration (weight: 2)
Description: Candidates should have knowledge of the common slapd.conf configuration directives, and be familiar
with the basic slapd command line options
Key Knowledge Areas
slapd.conf configuration directives
slapd.conf database definitions
slapd and its command line options
Analyze slapd log files
The following is a partial list of the used files, terms and utilities:
slapd.conf
slapd
/var/lib/ldap/*
loglevel

slapd.conf
Arquivo padro de configurao do slapd.

Diretivas:

Esta opo permite o uso da verso 2 do protocolo LDAP. Muito til, pois alguns servios utilizam somente essa verso.
allow bind_v2

E nesta parte onde se incluem os arquivos de schema para que os objetos e seus atributos estejam disponveis
para uso. H uma linha para cada schema e seu caminho completo.
include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema

Onde ser salvo o arquivo contendo o PID do processo de execuo do OpenLDAP. Se voc mudar esta opo
o script de inicializao em /etc/init.d no conseguir parar o servio.
pidfile /var/run/slapd/slapd.pid

O OpenLDAP permite que alguns argumentos sejam passados no momento de sua execuo. Esses argumentos
devem ser definidos no arquivo nesta opo.
argsfile /var/run/slapd/slapd.args

Nvel de registro de atividades no OpenLDAP. O nvel 0 determina que no se faa registro de atividades.
loglevel none

Esta opo define o diretrio dos mdulos do OpenLDAP, alm da sua ativao. Esses mdulos permitem a
ativao de recursos extras. Diversos recursos como o ppolicy que permite definies elaboradas de polticas de
acesso e o syncprov que permite a ativao de uma das formas de replicao so exemplos de mdulos.
modulepath /usr/lib/ldap
moduleload back_bdb
moduleload syncprov

Esta opo define o retorno mximo a uma consulta feita na base OpenLDAP. Portanto se alguma pesquisa
tiver que retornar mais do que 500 resultados necessrio aumentar este valor. Se o valor de sizelimit for definido como
-1 ento o retorno ser ilimitado.
sizelimit 500

Esta opo define o nmero de CPUs que sero utilizadas para a indexao da base de dados. Se o servidor
tiver mais de um processador, aumente este nmero.
tool-threads 1

Esta opo define qual ser o backend que ser utilizado. Por padro utiliza-se bdb.
backend bdb

Esta opo ativa a primeira base de dados. Neste caso iremos utilizar BDB.
database bdb

23
GUIA DE ESTUDOS LPIC 301
O sufixo define a raiz da base de dados do LDAP
suffix "dc=empresa,dc=com,dc=br"

Define o DN do administrador da base de dados


rootdn "cn=admin,dc=empresa,dc=com,dc=br"

Define a senha do administrador da base de dados em forma de criptografia (use o comando slappasswd)
rootpw {SSHA}xzJGq8ltnmC1kN8pkePPzNyKdLqQ01qw

Diretrio onde a base de dados bdb ser armazenada.


directory "/var/lib/ldap"

Define o cache da base de dados BDB em memria (2M)


dbconfig set_cachesize 0 2097152 0

Nmero mximo de objetos que podem ser trancados


dbconfig set_lk_max_objects 1500

Nmero mximo de travas tanto para as solicitadas quanto para as realizadas


dbconfig set_lk_max_locks 1500

Nmero mximo de travadores


dbconfig set_lk_max_lockers 1500

Opes de indexao da base


index objectClass eq
index entryCSN eq
index entryUUID eq

Ativa o registro do horrio de alterao das entradas da base de dados. til para replicaes e backup
lastmod on

Este um ajuste fino operao da base de dados BDB. Esta diretiva define quando o BDB deve adicionar um
ponto de checagem em seus logs de transao. Neste caso depois de 512 Kbytes ou aps 30 minutos desde a ultima
checagem, o que acontecer primeiro.
checkpoint 512 30

Local de gravao do log de replicao


replogfile /var/lib/ldap/replog

Lista de controle de acessos (ACL) base de dados - Ver Topic 303: Configuration (Access Control Lists in LDAP)
access to attrs=userPassword,shadowLastChange
by dn="cn=admin,dc=empresa,dc=com,dc=br" write
by dn="cn=Replicator,dc=empresa,dc=com,dc=br" read
by anonymous auth
by self write
by * none

access to dn.base="" by * read

access to *
by dn="cn=admin,dc=empresa,dc=com,dc=br" write
by * read

slapd
Stand-alone LDAP Daemon

Opes de linha de comando - Ver Topic 302: Installation and Development (Compiling and Installing OpenLDAP)

/var/lib/ldap/*
Diretrio do banco de dados do servidor LDAP, este local configurado usando a diretiva directory no arquivo
slapd.conf. Contm os arquivos de banco de dados e ndices.

24
GUIA DE ESTUDOS LPIC 301

loglevel
Diretiva usada no arquivo slapd.conf que determina o nvel de registros de atividades desejados. O
OpenLDAP tem nveis diferentes que so definidos por um nmero. Veja a tabela abaixo:

Nvel Nome Descrio


-1 Any Habilita depurao mxima
0 Sem informao de depurao
1 Trace Chamadas de funes trace
2 Packets Depurao da manipulao de pacotes
4 Args Alto nvel de depurao
8 Conns Gerenciamento de conexes
16 BER Exibe os pacotes recebidos e enviados
32 Filter Processamento dos filtros de pesquisa
64 Config Processamento da configurao
128 ACL Processamentos das listas de ACL
256 Stats Estatsticas de conexes, operaes e resultados
512 Stats2 Estatsticas sobre envio de registros
1024 Shell Informaes sobre comunicao com backends
2048 Parse Exibe informaes sobre depurao de registros
4096 Cache Processamento do cache da base de dados
8192 Index Indexao da base
16384 Sync Processamento da rplica via syncrepl
32768 None Define apenas as mensagens que so registrados independentemente do nvel de log

Topic 304: Usage


304.1 Searching the Directory (weight: 2)
Description: Candidates should be able to use advanced options for searching the LDAP directory
Key Knowledge Areas
Use OpenLDAP search tools with basic options
Use OpenLDAP search tools with advanced options
Optimize LDAP search queries
Knowledge of search filters and their syntax
The following is a partial list of the used files, terms and utilities:
ldapsearch
index
search filter syntax
slapd.conf

ldapsearch - Realiza pesquisa na base LDAP. Opes:


-x - Autenticao simples, o mtodo padro via SASL;
-ZZ - Autenticao que pede conexo segura (TLS);
-L - Formato de sada LDIF-v1;
-LL - Suprime comentrios;
-LLL - Suprime o nome da verso;
-b - Base de pesquisa;
-h - Host onde o servio esta rodando;
-p - Porta usado pelo servidor LDAP.
-s - Define o escopo da pesquisa. As opes so: base, one e sub

- base - Busca apenas na base DN


- one - busca no mesmo nvel do galho definido em -b e em mais um sub-nvel
- sub - opo padro, busca recursivamente a partir do galho

25
GUIA DE ESTUDOS LPIC 301
Ex.: ldapsearch -x -LLL -b ou=People,dc=empresa,dc=com,dc=br -h localhost -p 389

Index
Melhora o desempenho das consultas feitas base LDAP criando indices.

Opo do arquivo slapd.conf que gera os indices


# Indexing options for database #1
index objectClass eq

Tipos de indexador Significado


eq Permite comparar o atributo no todo
sub Permite comparar o atributo por trecho
pres Permite comparar o atributo pela sua presena
approx Permite comparar o atributo de forma aproximada
none No efetua qualquer comparao para o atributo

Ex.: index objectClass,uid,userPassword pres,eq

search filter syntax


Filtro de pesquisa usado no comando ldapsearch.

Operadores lgicos

& - para condicional e;


Ex.: ldapsearch -x -LLL -b ou=People,dc=empresa,dc=com,dc=br '(&(uid=roberto)(uidNumber=1000))'
| - para condicional ou;
Ex.: ldapsearch -x -LLL -b ou=People,dc=empresa,dc=com,dc=br '(|(uid=roberto)(uid=luciana))'
! - para condicional no;
Ex.: ldapsearch -x -LLL -b ou=People,dc=empresa,dc=com,dc=br '(&(uid=roberto)(!(uidNumber=2000)))'

Operadores comparativos

= para igual;
= para igualdades aproximadas;
<= para menor ou igual;
>= para maior ou igual;
* para qualquer;

slapd.conf
Configurao de indices no arquivo slapd.conf

# Indexing options for database #1


index objectClass eq

304.2 LDAP Command Line Tools (weight: 4)


Description: Candidates should be familiar with the OpenLDAP command line tools
Key Knowledge Areas
Use the ldap* tools to access and modify the directory
Use the slap* tools to access and modify the directory
The following is a partial list of the used files, terms and utilities:
ldap.conf
ldapsearch
ldapadd
ldapmodify
ldapdelete
ldapmodrdn
slapindex
slapadd
slapcat

26
GUIA DE ESTUDOS LPIC 301
ldap.conf
Arquivo usado para configurao nas maquinas clientes LDAP.

BASE - Especifica o DN base do servidor LDAP


Ex.: BASE dc=empresa,dc=com,dc=br
URI - Especifica o endereo do Servidor LDAP
Ex.: URI ldap://ldap.empresa.com.br

SIZELIMIT - Especifica um limite de tamanho para utilizar nas buscas.


Ex.: SIZELIMIT 12
TIMELIMIT - Especifica um limite de tempo para utilizar nas buscas.
Ex.: TIMELIMIT 15
DEREF - Acessa um valor referenciado (de referenciar)
Ex.:DEREF never

ldapsearch
Realiza pesquisa na base LDAP. Opes:

-x - Autenticao simples, o mtodo padro via SASL;


-ZZ - Autenticao que pede conexo segura (TLS);
-L - Formato de sada LDIF-v1;
-LL - Suprime comentrios;
-LLL - Suprime o nome da verso;
-b - Base de pesquisa;
-h - Host onde o servio esta rodando;
-p - Porta usado pelo servidor LDAP.
-s - Define o escopo da pesquisa. As opes so: base, one e sub

- base - Busca apenas na base DN


- one - busca no mesmo nvel do galho definido em -b e em mais um sub-nvel
- sub - opo padro, busca recursivamente a partir do galho

Ex.: ldapsearch -x -LLL -b ou=People,dc=empresa,dc=com,dc=br -h localhost -p 389

ldapadd
Adicione informaes base do LDAP, com o servidor em funcionamento. Opes:

-x - Autenticao simples, o mtodo padro via SASL;


-ZZ - Autenticao que pede conexo segura (TLS);
-c - Continua a operao mesmo que tenha erros;
-D - Especifica o DN a ser usado;
-w - Especifica a senha do administrador do LDAP;
-W - Chama um prompt para digitar a senha;
-f - Especifica o arquivo .ldif com as informaes que sero includas na base LDAP;
-h - Host onde o servio esta rodando;
-p - Porta usado pelo servidor LDAP.

Ex.: ldapadd -x -D cn=admin,dc=empresa,dc=com,dc=br -h localhost -p 389 -W -f users.ldif

ldapmodify
Permite fazer alteraes nos atributos de um objeto atravs de uma arquivo .ldif

-x - Autenticao simples, o mtodo padro via SASL;


-ZZ - Autenticao que pede conexo segura (TLS);
-c - Continua a operao mesmo que tenha erros;
-D - Especifica o DN a ser usado;
-w - Especifica a senha do administrador do LDAP;
-W - Chama um prompt para digitar a senha;
-h - Host onde o servio esta rodando;
-p - Porta usado pelo servidor LDAP;
-f - Especifica o arquivo .ldif com as informaes que sero alteradas na base LDAP.

27
GUIA DE ESTUDOS LPIC 301
Tipos de alteraes usadas no arquivo .ldif:

add - Adiciona um novo o atributo;


dn: completo
ao: atributo
atributo: valor
Ex.:
dn: uid=roberto,ou=People,dc=empresa,dc=com,dc=br
add: title
title: Instrutor

replace - Substitui um atributo existente


dn: completo
ao: atributo
atributo: valor
Ex.:
dn: uid=roberto,ou=People,dc=empresa,dc=com,dc=br
replace: loginShell
loginShell: /bin/false

delete - Exclui um atributo.


dn: completo
ao: atributo
atributo: valor
Ex.:
dn: uid=roberto,ou=People,dc=empresa,dc=com,dc=br
delete: title

Ex.: ldapmodify -x -D cn=admin,dc=empresa,dc=com,dc=br -h localhost -p 389 -W -f alter.ldif

ldapdelete
Permite remover um objeto especificando o seu DN completo.Opes:

-x - Autenticao simples, o mtodo padro via SASL;


-ZZ - Autenticao que pede conexo segura (TLS);
-c - Continua a operao mesmo que tenha erros;
-D - Especifica o DN a ser usado;
-w - Especifica a senha do administrador do LDAP;
-W - Chama um prompt para digitar a senha;
-h - Host onde o servio esta rodando;
-p - Porta usado pelo servidor LDAP.

Ex.: ldapdelete -x -D cn=admin,dc=empresa,dc=com,dc=br -h localhost -p 389 -W cn=Maria,dc=empresa,dc=com,dc=br

ldapmodrdn
Permite renomear um DN.Opes:

-x - Autenticao simples, o mtodo padro via SASL;


-ZZ - Autenticao que pede conexo segura (TLS);
-c - Continua a operao mesmo que tenha erros;
-D - Especifica o DN a ser usado;
-w - Especifica a senha do administrador do LDAP;
-W - Chama um prompt para digitar a senha;
-h - Host onde o servio esta rodando;
-p - Porta usado pelo servidor LDAP;
-r - Evita que o DN modifica tenha dois registros cn;
-f - Especifica o arquivo .ldif com as informaes que sero alteradas na base LDAP.

Exemplo de um arquivo .ldif:


uid=Antonio Calado,ou=People,dc=empresa,dc=com,dc=br
uid=Antonio Calado da Silva

Ex.: ldapmodrdn -x -D cn=admin,dc=empresa,dc=com,dc=br -h localhost -p 389 -W -r -f altera.ldif

28
GUIA DE ESTUDOS LPIC 301

slapindex
Comando utilizado para indexar a base LDAP seguindo as definies da opo index do arquivo slapd.conf.

Para indexar siga os passos:


1 - Pare o servidor LDAP
2 - Use o comando slapindex -v para indexar a base
3 - Altere as permisses em /var/lib/ldap/*
4 - Inicie o servidor LDAP

slapadd
Comando usado para adicionar dados off-line base LDAP (quando o servidor no esta rodando) Opes:

-c - Continua a operao mesmo que tenha erros;


-v - Ativa o modo verbose;
-b - Especifica a base de dados a ser modificada;
-f - Especifica o arquivo de configurao do slapd;
-F - Especifica o diretrio de configurao;
-l - Especifica o arquivo .ldif com as informaes que sero adicionadas na base LDAP.

Ex.: slapadd -v -l usuarios.ldif

slapcat
Lista o contedo da base de dados. Usado tambm para criar backup redirecionando a sada da lista para um arquivo.

Opes:

-c - Continua a operao mesmo que tenha erros;


-v - Ativa o modo verbose;
-b - Especifica a base de dados a ser modificada;
-f - Especifica o arquivo de configurao do slapd;
-F - Especifica o diretrio de configurao;

Ex.: slapcat
slapcat > backup.ldif

304.3 Whitepages (weight: 1)


Description: Candidates should be able to build and maintain a whitepages service
Key Knowledge Areas
Plan whitepages services
Configure whitepages services
Configure clients to retrieve data from whitepages services
The following is a partial list of the used files, terms and utilities:
whitepages
Outlook

whitespages
Um servio whitepages permite que clientes de e-mail (Mozilla Thunderbird e Microsoft Outlook) recuperem
informaes de contatos de uma base de dados LDAP.

Para um servio whitepages voc precisa:

l Estrutura de diretrio. Por exemplo, uma sub-rvore para cada departamento;


l O esquema correto com todos os atributos para armazenar a informao que voc precisar;
l Aplicao cliente, por exemplo, o Mozilla Thunderbird, Microsoft Outlook;
l Uma ferramenta ou scripts para criar o LDIF e preencher o seu diretrio.

29
GUIA DE ESTUDOS LPIC 301
Thunderbird (Icedove)
1 - Clique no menu ferramentas - Catalogo de endereos

2 - Menu arquivo - Novo - Diretrio LDAP ... e preencha as configuraes conforme seu servidor (clique no OK)

3 - Na parte esquerda da tela, clique com o boto direito do mouse sobre Servidor LDAP e escolha propriedades.
Clique sobre a guia Offline e selecione Receber agora

30
GUIA DE ESTUDOS LPIC 301

4 - Clique sobre a guia Avanado e selecione quantos registros sero exibidos no resultado de pesquisa, e quais
atributos sero usados como filtro de pesquisa

5 - Faa a pesquisa de usurio na caixa ao lado direito na janela

6 - Ser solicitado senha do administrador do diretrio LDAP

31
GUIA DE ESTUDOS LPIC 301

Outllok
Usado como cliente de email e catlogos de endereos.

Segue abaixo a relao de campos de um catalogo de endereos e atributos do ldap

Outlook LDAP
Nome cn, display-name
Primeiro Nome givenName
Nome do Meio initials
Ultimo Nome sn
Exibir cn, display-name
Endereo de email mail
Telefone Residencial homePhone
Endereo homePostalAddress
Pager officePager, pager
Mobile mobile
Telefone Comercial telephoneNumber
FAX Comercial officeFAX, facsimileTelephoneNumber
Cargo title
Departamento department, organizationUnitName, ou
Escritrio physicalDeliveryOfficeName
Nome da empresa o, organizationName
Cidade l
Estado st
CEP postalCode
Pas/Regio c, co, countryName

Configurar um catalogo de endereos atravs de base de dados LDAP

1 - No menu Ferramentas, clique em Contas de email ... e clique na opo Diretrio e clique em Adicionar um
novo catlogo de endereos ou diretrio

32
GUIA DE ESTUDOS LPIC 301
2 - Clique na opo Servio de Diretrio na Internet (LDAP) e clique em Avanar.

3 - Na caixa Nome do Servidor, digite o ip ou nome do servidor

4 - Se o servidor especificado estiver protegido por senha, marque a caixa de seleo Este servidor requer que eu
faa o logon e digite seu nome de usurio e sua senha.

5 - Clique em Mais Configuraes.

6 - Em Nome para Exibio, digite o nome do catlogo de endereos LDAP que voc deseja exibir na lista
Catlogo de Endereos da caixa de dilogo Catlogo de Endereos.

7 - Em Detalhes da Conexo, digite o nmero de porta do servidor LDAP

33
GUIA DE ESTUDOS LPIC 301

8 - Na guia Pesquisar, em Base de Pesquisa, digite o DN da base que ser feita s pesquisas

9 - A configurao do tempo limite de pesquisa em segundos especifica o nmero de segundos gastos pelo
Outlook pesquisando o diretrio LDAP para determinar nomes em uma mensagem. Voc tambm pode limitar o
nmero de nomes listados no Catlogo de Endereos retornados de uma pesquisa bem-sucedida.

10 - Feche o Outlook e o abra novamente e clique no menu Ferramentas, clique em Catalogo de endereos e
escolha ServidorLDAP em Mostrar nomes de:

11 - No menu Ferramentas, clique em Catalogo de endereos, digite o nome do usurio na caixa Nome: e
selecione Contm ou Comea com dependendo do tipo de pesquisa

34
GUIA DE ESTUDOS LPIC 301

Topic 305: Integration and Migration


305.1 LDAP Integration with PAM and NSS (weight: 2)
Description: Candidates should be able to configure PAM and NSS to retrieve information from an LDAP directory
Key Knowledge Areas
Configure PAM to use LDAP for authentication
Configure NSS to retrieve information from LDAP
Configure PAM modules in various Unix environments
The following is a partial list of the used files, terms and utilities:
PAM
NSS
/etc/pam.d/*
/etc/nsswitch.conf

PAM
PAM Pluggable Authentication Modules. Enquanto NSS um servio de informaes, o PAM um
mecanismo para executar um conjunto de algoritmos de autenticao de credenciais digitadas pelo usurio, e determinar
a sua identidade e o direito de acesso a um recurso (por exemplo, login em uma mquina).
O Pluggable Authentication Module permite a integrao de diversas tecnologias de autenticao, tais como
padro UNIX , RSA, DCE, LDAP, etc . Em servios do sistema, tais como login, senhas, rlogin, su, ftp, ssh, etc, sem
alterar qualquer um destes servios.

NSS
Name Service Switch prove uma interface de entrada para arquivo de senhas e de grupo para um servio de
nomes (como arquivos simples, ou um diretrio LDAP, ou mesmo um controlador de domnio do Windows.
Uma vez que um usurio autenticado, muitas aplicaes ainda precisam de acesso a informaes do usurio.
Esta informao tradicionalmente contidos em arquivos de texto (/etc/passwd, /etc/shadow e /etc/group), mas tambm
pode ser fornecida pelos servios de outro nome. NSS utiliza uma API comum e um arquivo de configurao
(/etc/nsswitch.conf), em que os prestadores de servio de nomes para cada base de dados que so suportados so
especificados.

As bases de dados atualmente suportados pelo NSS so:

aliases: Mail aliases.


ethers: Ethernet numbers.
group: Groups of users.
hosts: Host names and numbers.
netgroup: Network wide list of host and users.
network: Network names and numbers.
protocols: Network protocols.

35
GUIA DE ESTUDOS LPIC 301
passwd: User passwords.
rpc: Remote procedure call names and numbers.
services: Network services.
shadow: Shadow user passwords.

/etc/pam.d/*
Para integrar o PAM ao LDAP necessrio configurar alguns arquivos localizados dentro do diretrio
/etc/pam.d

O primeiro arquivo o common-auth, adicione a linha:

# vim /etc/pam.d/common-auth
auth sufficient pam_ldap.so

O prximo arquivo o common-account, adicione a linha:


# vim /etc/pam.d/common-account
account sufficient pam_ldap.so

O prximo arquivo o common-password, adicione a linha:

# vim /etc/pam.d/common-password
password required pam_ldap.so try_first_pass

E, por ultimo, o common-session, adicione a linha:

# vim /etc/pam.d/common-session
session sufficient pam_ldap.so

/etc/nsswitch.conf
O arquivo nsswitch.conf responsvel por dizer a ordem de pesquisa de alguns parmetros do linux, como
resoluo de nomes e usurios:

passwd: files ldap


group: files ldap
shadow: files ldap

305.2 NIS to LDAP Migration (weight: 1)


Description: Candidates should be able to plan and implement a NIS migration strategy, including a NIS to LDAP
gateway
Key Knowledge Areas
Analyze NIS structure prior to migration to LDAP
Analyze NIS structure prior to integration with LDAP
Automate NIS to LDAP migration
Create a NIS to LDAP gateway
The following is a partial list of the used files, terms and utilities:
NIS
NIS to LDAP gateway
slapd.conf
/etc/yp/*

NIS
O Servio de Rede de Informao ou NIS (Originalmente chamado de Yellow Pages ou YP) um servio,
desenvolvido pela Sun Microsystems, para distribuio de informaes por uma rede. Facilita a administrao do
ambiente Linux/Unix, pelo fato de manter uma base de dados centralizada na rede, o que torna a manuteno e
consistncias mais fceis.
A base de dados NIS criada a partir de tabelas (plain text database), tal como /etc/passwd, /etc/shadow e
/etc/group. O NIS tambm pode ser utilizado para outras tarefas mais especializadas (como para /etc/hosts ou
/etc/services).

36
GUIA DE ESTUDOS LPIC 301

O diagrama a seguir mostra um tpico ambiente NIS:

Neste ambiente NIS, os arquivos de mapa mestre residem no servidor master NIS. Cpias desses arquivos de
mapas so periodicamente transferidos para o servidor slave NIS. Os servidores NIS executar o daemon ypserv que
serve as informaes solicitadas pelos clientes.
Os clientes NIS rodam o daemon ypbind, que estabelece uma conexo com um servidor NIS, permitindo
processos ao cliente para obter informaes do servidor NIS. Os usurios podem alterar suas senhas com o comando
yppasswd.

Analyze NIS structure prior to migration to LDAP

NIS utiliza mapas para combinar todas as informaes para usurios, grupos e autenticao. Os mapas so
geralmente localizados em /var/yp/<nomededomnio>. Usando o comando ypwhich -m, podemos ver quais mapas esto
presentes no servidor master. Esta informao ajuda no planejamento de uma migrao para o LDAP. Determine quais
dos seus mapas NIS vai migrar para o seu diretrio. Nas maquinas clientes, o arquivo /etc/nsswitch.conf determina,
quais arquivos NIS que o cliente est usando.

Analyze NIS structure prior to integration with LDAP

Analisar a estrutura NIS, e decidir onde colocar as informaes no seu diretrio. Aqui esto algumas possibilidades:

Criar uma sub-arvore separado para os dados do NIS - Os scripts de migrao pode importar os seus dados de
NIS para sub-arvore em separado.

Integrar as informaes em seu diretrio NIS - Os scripts de migrao pode ser til dependendo de onde voc
colocar os dados NIS em seu diretrio. Voc pode us-los apenas para gerar LDIF, editar o LDIF, em seguida, importar
o LDIF em seu diretrio.

Automate NIS to LDAP migration

Os scripts exigem Perl, que se supe estar em /usr/bin/perl. Voc pode precisar editar o caminho para o
interpretador Perl se este no for o caso. As ferramentas de migrao esto disponveis separadamente no site PADL via
FTP. A instalao dos scripts pode ser feita instalando o pacote migrationtools. Aps a instalao ser criado o diretrio
migrationtools em /usr/share/. O arquivo migrate_common.ph onde so includas as configuraes do servidor LDAP .

37
GUIA DE ESTUDOS LPIC 301
# ls -l /usr/share/migrationtools/*.pl
-rwxr-xr-x 1 root root 2626 Jan 25 2006 /usr/share/migrationtools/migrate_aliases.pl
-rwxr-xr-x 1 root root 3252 Jan 25 2006 /usr/share/migrationtools/migrate_automount.pl
-rwxr-xr-x 1 root root 2707 Jan 25 2006 /usr/share/migrationtools/migrate_base.pl
-rwxr-xr-x 1 root root 2836 Jun 29 2008 /usr/share/migrationtools/migrate_group.pl
-rwxr-xr-x 1 root root 2725 Jan 25 2006 /usr/share/migrationtools/migrate_hosts.pl
-rwxr-xr-x 1 root root 2830 Jan 25 2006 /usr/share/migrationtools/migrate_netgroup_byhost.pl
-rwxr-xr-x 1 root root 2830 Jan 25 2006 /usr/share/migrationtools/migrate_netgroup_byuser.pl
-rwxr-xr-x 1 root root 3853 Jan 25 2006 /usr/share/migrationtools/migrate_netgroup.pl
-rwxr-xr-x 1 root root 2814 Jan 25 2006 /usr/share/migrationtools/migrate_networks.pl
-rwxr-xr-x 1 root root 11511 Jun 29 2008 /usr/share/migrationtools/migrate_passwd.pl
-rwxr-xr-x 1 root root 2402 Jan 25 2006 /usr/share/migrationtools/migrate_profile.pl
-rwxr-xr-x 1 root root 2786 Jan 25 2006 /usr/share/migrationtools/migrate_protocols.pl
-rwxr-xr-x 1 root root 2758 Jan 25 2006 /usr/share/migrationtools/migrate_rpc.pl
-rwxr-xr-x 1 root root 10546 Jun 29 2008 /usr/share/migrationtools/migrate_services.pl
-rwxr-xr-x 1 root root 3393 Jan 25 2006 /usr/share/migrationtools/migrate_slapd_conf.pl

Descrio dos arquivos

migrate_aliases.pl - Migra aliases em /etc/aliases para as entradas em conformidade com o esquema rfc822MailGroup
migrate_automount.pl - Migra mapas de automount
migrate_base.pl - Cria entradas na base de dados, incluindo contextos subordinados, tais como ou=People e ou=Hosts
migrate_group.pl - Migra os grupos do arquivo /etc/group
migrate_hosts.pl - Migra os hosts do arquivos /etc/hosts
migrate_netgroup_byhost.pl - Migra o mapa netgroup.byuser
migrate_netgroup_byuser.pl - Migra o mapa netgroup.byuser
migrate_netgroup.pl - Migra netgroups do arquivo /etc/netgroup
migrate_networks.pl - Migra as redes do arquivo /etc/networks
migrate_passwd.pl - Migra os usurios do arquivo /etc/passwd
migrate_profile.pl - Cria uma entrada perfil de configurao POSIX DUA
migrate_protocols.pl - Migra protocolos do arquivo /etc/protocols
migrate_rpc.pl - Migra RPCs do arquivo /etc/rpc
migrate_services.pl - Migra servios do arquivo /etc/services
migrate_slapd_conf.pl - Cria um arquivo de configurao do OpenLDAP 2.x

NIS to LDAP gateway


O NIS/LDAP Gateway ou ypldapd um servio de informao de rede (NIS) que utiliza LDAP como fonte de
informao. Ele permite que os clientes existentes no NIS, use o LDAP de forma transparente para resolver informaes
de usurios, grupos e maquinas. As empresas podem, assim perceber os benefcios do LDAP, tais como a sua
distribuio e ser escalvel, sem precisar atualizar os clientes.

Algumas ferramentas disponveis na internet:

Penrose
Sun's Network Information Service (NIS) to LDAP transition service (N2L service)
ypldapd (from PADL)
YPTransitd

38
GUIA DE ESTUDOS LPIC 301
O diagrama a seguir mostra como um ambiente NIS pode parecer quando convertido para NIS/LDAP Gateway

No ambiente NIS/LDAP Gateway LDAP, existem quatro diferenas principais:

1 - Um diretrio LDAP substitui o servidor NIS master e mapas NIS. Mapa e transferncias de arquivos de mapas no
so mais necessrios. Replicao LDAP utiliza as atualizaes mais eficientes.

2 - Todos os servidores NIS se tornam servidores NIS/LDAP Gateway. O servidor NIS/LDAP Gateway executar o
daemon ypldapd, ao invs do daemon ypserv. ypldapd solicita informaes do diretrio LDAP envia as informaes
para os clientes NIS.

3 - Clientes NIS continuam a executar o daemon ypbind, que estabelece uma ligao a um servidor NIS/LDAP
Gateway, permitindo processos ao cliente para obter informaes do diretrio LDAP.

4 - Usurios alteram suas senhas com o comando ldappasswd ou um uma ferramenta de administrao LDAP em um
navegador web, ao invs do comando yppasswd.

slapd.conf
No arquivo de configurao do LDAP, inclua a linha de referencia ao arquivo de esquema do NIS. D o
usurio ypldapproxy acesso de leitura para todas as informaes.

# Schema and objectClass definitions


include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/inetorgperson.schema

access to dn=".*,dc=empresa,dc=com,dc=br"
by dn="uid=ypldapproxy,ou=People,dc=empresa,dc=com,dc=br" read

/etc/yp/*
ypldapd.conf - Arquivo de configurao do NIS/LDAP Gateway (ypldapd de PADL) onde voc pode alterar os valores
dos parmetros de configurao.

39
GUIA DE ESTUDOS LPIC 301
## Servidor domnio NIS
ypdomain server.empresa.com.br
## Servidor LDAP
ldaphost 192.168.200.10
## Base de pesquisa
basedn dc=empresa,dc=com,dc=br
## Ativar cache
caching on
## caches de despejo a cada meia hora.
cache_dump_interval 30
## Use o arquivo padro para mapeamento de nome de NIS para DN em seu diretrio LDAP.
namingcontexts namingcontexts.conf
## Definir um DN utilizado para a ligao ao servidor LDAP.
binddn uid=ypldapproxy,ou=People,dc=empresa,dc=com,dc=br
## Incluir a senha em texto puro para o binddn
bindcred 123456
## Esconde o campo de senha aos usurios sem privilgios.
hide_passwords on

Tutorial prtico - Instalar e configurar servidor e cliente NIS (Debian Lenny)

Configurao do Servidor:

1 - No nosso servidor vamos adicionar 3 usurios usados na migrao.


# adduser maria ; adduser joao ; adduser jose

2 - Instale o pacote nfs-kernel-server e configure o arquivo /etc/exports e restart o servidor NFS


# aptitude install nfs-kernel-server
# vim /etc/exports
/home 192.168.200.0/24(rw,root_squash,no_subtree_check)
# /etc/init.d/nfs-kernel-server restart

3 - Configure o arquivo /etc/hosts sua maquina


# cat /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.200.10 server.empresa.com.br server

4 - Instale o pacote nis no servidor, e informe o domnio(empresa.com.br) quando pedir para informar domnio
NIS
# aptitude install nis
empresa.com.br

5 - Para configurar o nome do domnio NIS use o comando nisdomainname nomedodominio. Ao usar apenas o
comando sem nenhuma opo ser exibido o nome do domnio configurado no arquivo /etc/defaultdomain
# nisdomainname
empresa.com.br
# cat /etc/defaultdomain
empresa.com.br

6 - Edite o arquivo /etc/ypserv.conf, atravs dele voc pode definir algumas opes para o servidor de NIS,
possvel negar ou restringir o acesso a alguns mapas com base no host de origem.
# vim /etc/ypserv.conf

# Host : Domain : Map : Security


#
#* :* : passwd.byname : port/mangle
#* :* : passwd.byuid : port/mangle

# Este o padro - restringir o acesso ao arquivo de senhas shadow, e permite acesso a todos os outros.

* :* : shadow.byname : port
* :* : passwd.adjunct.byname : port
* :* :* : none

40
GUIA DE ESTUDOS LPIC 301
7 - Para que o servidor de NIS no possa ser acessado fora da sua rede local, edite o arquivo
/etc/ypserv.securenets
# vim /etc/ypserv.securenets

# Permite o acesso ao localhost


255.0.0.0 127.0.0.0
# Esta linha permite o acesso a todos. Ajuste conforme sua rede
255.255.255.0 192.168.200.0

8 - Mude para master (NISSERVER=master) e false (NISCLIENT=false) no arquivo /etc/default/nis


# vim /etc/default/nis

NISSERVER=master
NISCLIENT=false

9 - Para criar o diretrio do domnio NIS use o comando /usr/lib/yp/ypinit -m e <control D> para confirmar o
FQDN de sua maquina, tecle y para confirmar a criao dos mapas de usurios

10 - Pare o servidor NIS e depois inicie novamente


# /etc/init.d/nis stop
# /etc/init.d/nis start

Configurao dos clientes

1 - Instale o pacote nis no cliente, e informe o domnio(empresa.com.br) quando pedir para informar domnio
NIS
# aptitude install nis
empresa.com.br

2 - Edite o arquivo /etc/yp.conf e adicione no final do arquivo o ip do servidor NIS


# vim /etc/yp.conf
ypserver 192.168.200.10

3 - Altere quatro arquivos, adicionando ao final de cada um o seguinte contedo:


# echo + >> /etc/passwd
# echo + >> /etc/shadow
# echo + >> /etc/group
# echo + >> /etc/gshadow

4 - Altere o arquivo /etc/nsswitch.conf


# vim /etc/nsswitch.conf
passwd: compat nis
group: compat nis
shadow: compat nis
netgroup: nis

hosts: files dns


networks: files

protocols: db files
services: db files
ethers: db files
rpc: db files

netgroup: nis

5 - Pare o nis e o inicie novamente e verifique a comunicao com o servidor NIS


# /etc/init.d/nis stop
# /etc/init.d/nis start

6 - Altere o arquivo /etc/fstab e aponte a montagem do diretrio /home para o servidor NFS e reinicie a maquina
# vim /etc/fstab
#/dev/hda3 /home ext3 defaults 0 2
192.168.200.10:/home /home nfs defaults 0 2

41
GUIA DE ESTUDOS LPIC 301

7 - Faa login com um usurio do servidor NIS


maq1 login: joao
password:

8 - Para alterar a senha do usurio no servidor NIS, use o comando yppasswd (123456 por linux2010)
joao@maq1:~$ yppasswd
Changing NIS account information for joao on server.empresa.com.br.
Please enter old password:
Changing NIS password for joao on server.empresa.com.br.
Please enter new password:
Please retype new password:

The NIS password has been changed on server.empresa.com.br.

Migrao NIS para LDAP - Servidor e Cliente

Configurao do Servidor:
1 - Pare o servidor NFS, remova ou comente a linha do arquivo /etc/exports e remova o daemon da inicializao
# /etc/init.d/nfs-kernel-server stop
# vim /etc/exports
# update-rc.d -f nfs-kernel-server remove

2 - Instale o pacote slapd do servidor LDAP e entre com a senha do admin


# aptitude install slapd

3 - Edite o arquivo de configurao do servidor LDAP e descomente a opo allow bind_v2


# vim /etc/ldap/slapd.conf
allow bind_v2

4 - Instale o pacote migrationtools que ser usado na migrao do usurio NIS para a base LDAP
# aptitude install migrationtools

5 - Acesse o diretrio /usr/share/migrationtools/ e edite o arquivo migrate_common.ph com as configuraes de


seu servidor LDAP
# cd /usr/share/migrationtools/
# vim migrate_common.ph
DEFAULT_MAIL_DOMAIN = "empresa.com.br";
DEFAULT_BASE = "dc=empresa,dc=com,dc=br";

6 - Use os comandos abaixo para migrar manualmente usurio e grupos NIS para um arquivo ldif
# ypcat passwd > /tmp/passwd.tmp
# ypcat group > /tmp/group.tmp
# ./migrate_base.pl > /tmp/ldif
# ./migrate_passwd.pl /tmp/passwd.tmp >> /tmp/ldif
# ./migrate_passwd.pl /tmp/group.tmp >> /tmp/ldif

7 - Edite o arquivo /tmp/ldif e apague as 10 primeiras linhas


# vim /tmp/ldif (d10d)

8 - Adicione usuarios e grupos do arquivo /tmp/ldif a sua base LDAP com o comando ldapadd
# ldapadd -x -D cn=admin,dc=empresa,dc=com,dc=br -W -f /tmp/ldif

9 - Para confirmar se os usurio do NIS foram migrados para a base LDAP reinicie o servidor e use o comando
abaixo
# /etc/init.d/slapd restart
# ldapsearch -x -LLL -b ou=People,dc=empresa,dc=com,dc=br cn*
dn: ou=People,dc=empresa,dc=com,dc=br

dn: uid=jose,ou=People,dc=empresa,dc=com,dc=br

dn: uid=joao,ou=People,dc=empresa,dc=com,dc=br

dn: uid=maria,ou=People,dc=empresa,dc=com,dc=br

42
GUIA DE ESTUDOS LPIC 301
10 - Pare o servidor NIS, e remova o daemon da inicializao
# /etc/init.d/nis stop
# update-rc.d -f nis remove

Configurao do Cliente:

1 - Pare o NIS, e remova o daemon da inicializao


# /etc/init.d/nis stop
# update-rc.d -f nis remove

2 - Altere a configurao do arquivo /etc/nsswitch.conf e altere nis para ldap


# vim /etc/nsswitch.conf

passwd: compat ldap


group: compat ldap
shadow: compat ldap

hosts: files dns


networks: files

protocols: db files
services: db files
ethers: db files
rpc: db files

netgroup: nis

3 - Remova o sinal de mais (+) do final dos 4 arquivos (cuidado ao usar os comandos)
# sed -i 's/+//' /etc/passwd
# sed -i 's/+//' /etc/shadow
# sed -i 's/+//' /etc/group
# sed -i 's/+//' /etc/gshadow

4 - Altere o arquivo /etc/fstab e remova ou comenta a linha de montagem do diretrio /home do servidor NFS
# vim /etc/fstab
/dev/hda3 /home ext3 defaults 0 2
#192.168.200.10:/home /home nfs defaults 0 2

5 - Edite o arquivo /etc/ldap/ldap.conf e altere as configuraes conforme o servidor LDAP


# vim /etc/ldap/ldap.conf
BASE dc=empresa,dc=com,dc=br
URI ldap://192.168.200.10

SIZELIMIT 12
TIMELIMIT 15

6 - Instale os pacotes libnss-ldap, libpam-ldap e ldap-utils para configurar a maquina como cliente LDAP
# aptitude install libnss-ldap libpam-ldap ldap-utils

Identificador de recurso uniforme (URI) do servidor LDAP:


ldap://192.168.200.10

O nome distinto da base de procura:


dc=empresa,dc=com,dc=br

Verso LDAP a ser utilizada:


2

Conta LDAP para o root:


cn=admin,dc=empresa,dc=com,dc=br

Senha para a conta do root no LDAP:


123456

43
GUIA DE ESTUDOS LPIC 301
Tornar a conta root local o administrador da base de dados
Sim

A base de dados LDAP requer autenticao:


No

Conta LDAP para o root:


cn=admin,dc=empresa,dc=com,dc=br

Senha para a conta do root no LDAP:


123456

7 - Edite o arquivo /etc/libnss-ldap e modifique-o:


# vim /etc/libnss-ldap.conf (linha 194)
nss_base_passwd ou=People,dc=empresa,dc=com,dc=br
nss_base_shadow ou=People,dc=empresa,dc=com,dc=br
nss_base_group ou=Group,dc=empresa,dc=com,dc=br

8 - Edite o arquivo /etc/pam_ldap.conf e modifique-o:


# vim /etc/pam_ldap.conf (linha 168)
nss_base_passwd ou=People,dc=empresa,dc=com,dc=br
nss_base_shadow ou=People,dc=empresa,dc=com,dc=br
nss_base_group ou=Group,dc=empresa,dc=com,dc=br

9 - Para integrar o PAM ao LDAP configure quatro arquivos localizados dentro do diretrio /etc/pam.d
common-auth:
# vim /etc/pam.d/common-auth
auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure try_first_pass

common-account:
# vim /etc/pam.d/common-account
account sufficient pam_ldap.so
account required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel umask=0077

common-password:
# vim /etc/pam.d/common-password
password sufficient pam_unix.so nullok obscure min=4 max=8 md5
password required pam_ldap.so try_first_pass

common-session:
# vim /etc/pam.d/common-session
session sufficient pam_ldap.so
session required pam_unix.so

10 - Reinicie o computador e faa login com o usurio joao. Troque a senha agora com o comando passwd, lembre-
se que a senha antiga linux2010 trocada quando a maquina era um cliente NIS.

305.3 Integrating LDAP with Unix Services (weight: 1)


Description: Candidates should be able to integrate LDAP authentication with a number of common Unix services
Key Knowledge Areas
Integrate SSH with LDAP
Integrate FTP with LDAP
Integrate HTTP with LDAP
Intrgrate FreeRADIUS? with LDAP
Integrate print services with LDAP
The following is a partial list of the used files, terms and utilities:
sshd.conf
ftp
httpd.conf
radiusd.conf
cupsd.conf
ldap.conf

44
GUIA DE ESTUDOS LPIC 301

Integrate SSH with LDAP


sshd.conf
A integrao SSH com LDAP feita a partir do momento onde definido a diretiva UsePAM yes no arquivo
de configurao do ssh.
# vim /etc/ssh/sshd_config
UsePAM yes

A outra configurao tornar a maquina que roda o servidor, tambm cliente LDAP configurando os seguintes
arquivos:

/etc/nsswitch.conf
/etc/ldap/ldap.conf
/etc/libnss-ldap.conf
/etc/pam_ldap.conf

# vim /etc/pam.d/common-auth
auth sufficient pam_ldap.so

# vim /etc/pam.d/common-account
account sufficient pam_ldap.so

# vim /etc/pam.d/common-password
password required pam_ldap.so try_first_pass

# vim /etc/pam.d/common-session
session sufficient pam_ldap.so

Para permitir acesso ao servio SSH apenas aos usurios que so membros de um determinado grupo:

1 - Crie o arquivo server.ldif


# vim server.ldif
dn: cn=server,ou=Services,dc=empresa,dc=com,dc=br
objectClass: ipHost
objectClass: device
objectClass: extensibleObject
ipHostNumber: 192.168.200.10
cn: server.empresa.com.br
cn: server
member: uid=jose,ou=People,dc=empresa,dc=com,dc=br

2 - Adicione a base LDAP


# ldapadd -x -D cn=admin,dc=empresa,dc=com,dc=br -W -f server.ldif

3 - Altere a configurao do ssh no pam, comentando as linhas @include common-auth e @include common-
account. Abaixo de cada acrescente uma linha apontando para um novo arquivo com a configuraes do grupo
# vim /etc/pam.d/ssh

#@include common-auth
auth sufficient pam_ldap.so config=/etc/ldap/ldap-ssh.conf

#@include common-account
account sufficient pam_ldap.so config=/etc/ldap/ldap-ssh.conf

4 - Crie o arquivo ldap-ssh.conf e adicione o seguinte contedo:


# vim /etc/ldap/ldap-ssh.conf

host server.empresa.com.br
pam_groupdn cn=server,ou=Services,dc=empresa,dc=com,dc=br
pam_member_attribute member

5 - Faa login com o usurio jose que membro do grupo


# ssh jose@192.168.200.10
jose@192.168.200.10's password:

45
GUIA DE ESTUDOS LPIC 301
jose@server:~$
6 - Tente fazer login com o usurio joao
# ssh joao@192.168.200.10
joao@192.168.200.10's password:
You must be a member of cn=server,ou=Services,dc=empresa,dc=com,dc=br to login.
Connection closed by 192.168.200.10

7 - Para adicionar um novo membro ao grupo de acesso ao SSH crie o arquivo adiciona_ssh.ldif com o contedo:
# vim adiciona_ssh.ldif
dn: cn=server,ou=Services,dc=empresa,dc=com,dc=br
add: member
member: uid=joao,ou=People,dc=empresa,dc=com,dc=br

8 - Adicione a base de dados LDAP


# ldapmodify -x -D cn=admin,dc=empresa,dc=com,dc=br -W -f adiciona_ssh.ldif
Enter LDAP Password:
modifying entry "cn=server,ou=Services,dc=empresa,dc=com,dc=br"

9 - Agora faa login com o novo usurio


# ssh joao@192.168.200.10
joao@192.168.200.10's password:
joao@server:~$

Integrate FTP with LDAP


ftp
A integrao FTP com LDAP pode ser feita atravs do PAM usando vrios servidores de FTP. Ser mostrado
os passos a passo com os servidores VSFTP (Very Secure FTP) e ProFTP.

VSFTP (Very Secure FTP)

1 - Instale o pacote vsftpd


# aptitude install vsftpd

2 - Edite o arquivo de configurao e altere as seguintes opes


# vim /etc/vsftpd.conf

# Desativa o login com usurio annimo


anonymous_enable=NO

# Ativa o login de usuarios cadastrados no servidor


local_enable=YES

# Permite a gravao com comandos FTP


write_enable=YES
# Ativa a jaula restringindo os usurios locais para acessarem apenas seus diretrios.
chroot_local_user=YES

3 - A configurao do PAM vem pronta, dando acesso aos usuarios LDAP o login via FTP
# vim /etc/pam.d/vsftpd

auth required pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

@include common-account
@include common-session
@include common-auth

auth required pam_shells.so

4 - Restart o vsftpd e faa testes de login com os usurio da base LDAP


# /etc/init.d/vsftpd restart

46
GUIA DE ESTUDOS LPIC 301

ProFTP

1 - Instale os pacotes proftpd e proftpd-mod-ldap


# aptitude install proftpd proftpd-mod-ldap

2 - Edite o arquivo /etc/pam.d/proftpd e descomente a linha referente pam_shells.so. Essa linha est
definindo que para um usurio conseguir se logar no ftp ele deve possuir uma shell vlida
# vim /etc/pam.d/proftpd
auth required pam_shells.so

3 - Edite o arquivo /etc/proftpd/modules.conf e descomente a linha referente ao modulo ldap


# vim /etc/proftpd/modules.conf
LoadModule mod_ldap.c

4 - Edite o arquivo /etc/proftpd/proftpd.conf e adicione ao final as linhas com as configuraes do servidor LDAP

LDAPServer server.empresa.com.br
LDAPDNInfo cn=admin,dc=empresa,dc=com,dc=br 123456
LDAPDoAuth on "ou=People,dc=empresa,dc=com,dc=br"
LDAPUseTLS off

Descrio:

LDAPServer - Define o host do servidor LDAP que ser utilizado


LDAPDNInfo - Define o DN do usurio admin e sua senha
LDAPDoAuth - Define a base onde pesquisa ser feita
LDAPUseTLS - Ativa ou desativa o uso de TLS

5 - Restart o proftpd e faa testes de login com os usurio da base LDAP


# /etc/init.d/proftpd restart

Integrate HTTP with LDAP


httpd.conf

A integrao Apache com LDAP feita no arquivo de configurao do virtual host. Nesta configurao apenas
usuarios da base LDAP tero acesso a um determinado diretrio e pagina.

1 - Instale o pacote do apache


# aptitude install apache2

2 - Instale os pacotes do php


# aptitude install php5 libapache2-mod-php5

3 - Ative o modulo do ldap para o apache


# a2enmod authnz_ldap

4 - Crie a configurao do virtual host


# vim /etc/apache2/sites-avaliable/empresa.com.br

5 - Crie o diretrio do seu virtual host


# mkdir /var/www/empresa.com.br

6 - Ative seu site


# a2ensite empresa.com.br

7 - Crie o index.html para seu site


# vim /var/www/empresa.com.br/index.html

8 - Crie o diretrio restrito para seu virtual host


# mkdir /var/www/empresa.com.br/restrito

9 - Crie o index.html para diretrio restrito


# vim /var/www/empresa.com.br/restrito/index.html

47
GUIA DE ESTUDOS LPIC 301

10 - Adicione a configurao abaixo no final do arquivo do virtual host.


# vim /etc/apache2/sites-avaliable/empresa.com.br

<Directory /var/www/empresa.com.br/restrito>
Options Indexes FollowSymlinks MultiViews
AllowOverride None
AuthType Basic
AuthName "Acesso Restrito"
AuthBasicProvider ldap
AuthzLDAPAuthoritative off
AuthLDAPURL "ldap://server.empresa.com.br/ou=People,dc=empresa,dc=com,dc=br?uid"
require valid-user
Order allow,deny
allow from all
</Directory>

Descrio de algumas diretivas para integrao Apache com LDAP

AuthBasicProvider - Define o provedor de autenticao


AuthzLDAPAuthoritative - Evitar que outros mdulos de autenticao, autentique o usurio caso este falhe
AuthLDAPURL - Especifica o servidor LDAP, a base DN, o atributo a ser usado na pesquisa, bem como o filtro de
pesquisa extra para usar.
AuthLDAPBindDN - Especifica um DN opcional para se conectar com o servidor LDAP durante a fase de pesquisa.
AuthLDAPBindPassword - Especifica uma senha opcional para se conectar com o servidor LDAP durante a fase de
pesquisa.

Restart o apache e acesse o diretrio restrito www.empresa.com.br/restrito

Integrate FreeRADIUS with LDAP


radiusd.conf
Radius um protocolo de autenticao que vem sendo largamente utilizado em sistemas embutidos em
roteadores e Acess Point's do mercado. Ele permite uma srie de configuraes de acesso a redes internas e externas.
Para que ele seja utilizado necessrio o uso de um cliente de autenticao. Sendo simplista RADIUS e LDAP
se parecem bastante em seu objetivo final. A verso livre do servio RADIUS o projeto FreeRADIUS que implementa
todas as caractersticas descritas nas RFC's.

48
GUIA DE ESTUDOS LPIC 301

1 - Instale o pacote freeradius e freeradius-ldap


# aptitude install freeradius freeradius-ldap

2 - Edite o arquivo /etc/freeradius/radiusd.conf e altere as configuraes do servidor LDAP


# vim /etc/freeradius/radiusd.conf

ldap {

server = "server.empresa.com.br"
identity = "cn=admin,dc=empresa,dc=com,dc=br"
password = 123456
basedn = "ou=People,dc=empresa,dc=com,dc=br"
filter = "(uid=u%)"
base_filter = "(objectclass=*)"
access_attr = "uid"
ldap_connections_number = 5
timeout = 4
timelimit = 3
net_timeout = 1

tls {
start_tls = no
}

dictionary_mapping = ${confdir}/ldap.attrmap
edir_account_policy_check = no

Descrio:

ldap - Inicia a configurao do LDAP.


server - Especifica o servidor LDAP.
identity - DN do admin do servidor LDAP.
password - Senha do admin do servidor LDAP.
basedn - Base DN a ser usada na pesquisa do usuarios.
filter - Filtro de pesquisa.
base_filter - Quais atributos usados na pesquisa.
access_attr O atributo de autenticao do usurio na base.
ldap_connections_number - Numero de conexes abertos para o servidor LDAP
timeout - Segundos de espera para terminar a consulta no servidor LDAP (padro: 20)
timelimit - Segundos que o servidor usa para processar a consulta (padro: 20)
net_timeout - Segundos para esperar pela resposta do servidor (padro: 10)
tls - Inicia a configurao do TLS
start_tls - Ativa ou desativa o uso de TLS
dictionary_mapping - Mapeamento de atributos de dicionrio RADIUS para LDAP
edir_account_policy_check - Ativa ou desativa diretiva de conta verificao e deteco de intrusos.

3 - Edite o arquivo /etc/freeradius/sites-enabled/default e descomente a opo ldap na seo authorize


# The ldap module will set Auth-Type to LDAP if it has not
# already been set
ldap

4 - Edite o arquivo /etc/freeradius/sites-enabled/default e descomente a opo Auth-Type LDAP na seo


authenticate
# Note that this means "check plain-text password against
# the ldap database", which means that EAP won't work,
# as it does not supply a plain-text password.
Auth-Type LDAP {
ldap
}

5 - Restart o freeradius e teste a integrao Freeradius com LDAP


# /etc/init.d/freeradius restart
49
GUIA DE ESTUDOS LPIC 301
# radtest jose linux2010 127.0.0.1 0 testing123

Sending Access-Request of id 197 to 127.0.0.1 port 1812


User-Name = "jose"
User-Password = "linux2010"
NAS-IP-Address = 192.168.200.10
NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=197, length=20

Integrate print services with LDAP


cupsd.conf
A integrao CUPS com LDAP deve ser feita seguindo as seguintes etapas:

1 - Instalar o pacote cups


# aptitude install cups

2 - Verificar a integrao CUPS/PAM atravs do arquivo /etc/pam.d/cups


# cat /etc/pam.d/cups
@include common-auth
@include common-account
@include common-session

3 - Configurar o arquivo /etc/cups/cupsd.conf para o CUPS autenticar na base LDAP

BrowseLDAPBindDN cn=admin,dc=empresa,dc=com,dc=br
BrowseLDAPPassword 123456
BrowseLDAPServer ldap://server.empresa.com.br
BrowseLDAPDN dc=empresa,dc=com,dc=br

<Location /printers>
AuthType Basic
</Location>

4 - Criar o arquivo printers.ldif


# vim printers.ldif

dn: ou=printers,dc=empresa,dc=com,dc=br
objectClass: organizationalUnit
ou: printers

5 - Criar o arquivo impressora.ldif


# vim impressora.ldif

dn: cn=HP,ou=Printers,dc=empresa,dc=com,dc=br
cn: HP
printerDescription: Impressora LDAP
printerURI: ipp://192.168.200.10:631/printers/HP
printerLocation: TI
printerMakeAndModel: Unknown
printerType: 4
objectClass: top
objectClass: device
objectClass: cupsPrinter

6 - Adicionar a base o ou printers e a impressora


# ldapadd -x -D cn=admin,dc=empresa,dc=com,dc=br -W -f printers.ldif
# ldapadd -x -D cn=admin,dc=empresa,dc=com,dc=br -W -f impressora.ldif

7 - Restart o cups
# /etc/init.d/cups restart

50
GUIA DE ESTUDOS LPIC 301
ldap.conf
# O nome distinto da base de pesquisa.
base dc=empresa,dc=com,dc=br

# Endereo do servidor LDAP


uri ldap://127.0.0.1

# A verso do LDAP (o padro 3, se suportado pelo cliente)


ldap_version 2

# O nome distinto do administrador d base LDAP


rootbinddn cn=admin,dc=empresa,dc=com,dc=br

# Ativar o suporte para RFC2307bis (nomes distintos em membros do grupo)


nss_base_passwd ou=People,dc=empresa,dc=com,dc=br
nss_base_shadow ou=People,dc=empresa,dc=com,dc=br
nss_base_group ou=Group,dc=empresa,dc=com,dc=br

305.4 Integrating LDAP with Samba (weight: 1)


Description: Candidates should be able to integrate LDAP with Samba services
Key Knowledge Areas
Migrate from smbpasswd to LDAP
Understand OpenLDAP Samba schema
Understand LDAP as a Samba password backend
The following is a partial list of the used files, terms and utilities:
smb.conf
smbpasswd
samba3.schema
slapd.conf

smb.conf
1 - Instalar os pacotes samba e samba-doc
# aptitude install samba samba-doc

2 - Configure o arquivo smb.conf como PDC e adicione a configurao abaixo para autenticao LDAP

passdb backend = ldapsam:ldap://server.empresa.com.br


ldap admin dn = cn=admin,dc=empresa,dc=com,dc=br
ldap ssl = off
ldap delete dn = no
ldap user suffix = ou=People
ldap group suffix = ou=Groups
ldap machine suffix = ou=Computers
ldap suffix = dc=empresa,dc=com,dc=br
add user script = /usr/local/sbin/smbldap-useradd -m %u
delete user script = /usr/local/sbin/smbldap-userdel %u
add group script = /usr/local/sbin/smbldap-groupadd -p %g
delete group script = /usr/local/sbin/smbldap-groupdel %g
add user to group script = /usr/local/sbin/smbldap-groupmod -m %u %g
delete user from group script = /usr/local/sbin/smbldap-groupmod -x %u

3 - Teste a configurao do samba e para o servio


# testparm
# /etc/init.d/samba stop

4 - Copiar o arquivo samba.schema


# zcat /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema

51
GUIA DE ESTUDOS LPIC 301
5 - Edite o arquivo slapd.conf para incluir o arquivo de schema, adicionar itens para indexar e adicionar ACLs
# vim /etc/ldap/slapd.conf

include /etc/ldap/schema/samba.schema

index SambaSID eq
index SambaPrimaryGroupSID eq
index SambaDomainName eq

access to attrs=userPassword,shadowLastChange,sambaLMPassword,sambaNTPassword

6 - Faa a indexao e arrume as permisses


# /etc/init.d/slapd stop
# slapindex -v
# chown openldap: /var/lib/ldap/*
# /etc/init.d/slapd start

7 - Armazenar a senha do admin, que far consultas e alteraes na base LDAP


# smbpasswd -w 123456
Setting stored password for "dn=admin,dc=empresa,dc=com,dc=br" in secrets.tdb

8 - Crie um arquivo de mapeamento de usurios do samba


# > /etc/samba/smbusers

9 - Reinicie o servio do Samba


# /etc/init.d/ samba restart

10 - Cadastrar o cdigo SID de identificao do domnio na base LDAP


# net getlocalsid
SID for domain SAMBA-PDC is: S-1-5-21-3843609028-2715633953-1907622164

11 - Conferindo a entrada na base


# slapcat | grep samba
dn: sambaDomainName=LPIC3,dc=empresa,dc=com,dc=br
sambaDomainName: LPIC3
sambaSID: S-1-5-21-3843609028-2715633953-1907622164
sambaAlgorithmicRidBase: 1000
objectClass: sambaDomain
sambaNextUserRid: 1000
structuralObjectClass: sambaDomain
sambaMinPwdLength: 5
sambaPwdHistoryLength: 0
sambaLogonToChgPwd: 0
sambaMaxPwdAge: -1
sambaMinPwdAge: 0
sambaLockoutDuration: 30
sambaLockoutObservationWindow: 30
sambaLockoutThreshold: 0
sambaForceLogoff: -1
sambaRefuseMachinePwdChange: 0

12 - Criar o arquivo computers.ldif e adicionar a base LDAP


# vim computers.ldif
dn: ou=Computers,dc=empresa,dc=com,dc=br
ou: Computers
objectClass: top
objectClass: organizationalUnit

# ldapadd -x -D cn=admin,dc=empresa,dc=com,dc=br -W -f computers.ldif


Enter LDAP Password:
adding new entry "ou=Computers,dc=empresa,dc=com,dc=br"

52
GUIA DE ESTUDOS LPIC 301
smbpasswd
Migrando usuarios LDAP para SAMBA

1 - Instale o pacote smbldap-tools


# aptitude install smbldap-tools

2 - Acesse o diretrio copie e descompacte os arquivos


# cd /etc/smbldap-tools/
# cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf .
# cp /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz .
# gunzip smbldap.conf.gz

3 - Configuraes dos arquivos smbldap_bind.conf e smbldap.conf


# vim smbldap_bind.conf

slaveDN="cn=admin,dc=empresa,dc=com,dc=br"
slavePw="123456"
masterDN="cn=admin,dc=empresa,dc=com,dc=br"
masterPw="123456"

# vim smbldap.conf
## Credencial do domnio
SID="S-1-5-21-3843609028-2715633953-1907622164"
sambaDomain="LPIC3"

## Informaes LDAP
slaveLDAP="127.0.0.1"
slavePort="389"
masterLDAP="127.0.0.1"
masterPort="389"

## Uso de criptografia
ldapTLS="0"
verify="require"
cafile="/etc/smbldap-tools/ca.pem"
clientcert="/etc/smbldap-tools/smbldap-tools.pem"
clientkey="/etc/smbldap-tools/smbldap-tools.key"

## Identificao da base LDAP


suffix="dc=empresa,dc=com,dc=br"
usersdn="ou=People,${suffix}"
computersdn="ou=Computers,${suffix}"
groupsdn="ou=Group,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=LPIC3,${suffix}"
scope="sub"
hash_encrypt="MD5"
crypt_salt_format="%s"

## Informaes POSIX (Linux)


userLoginShell="/bin/bash"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"

## Informaes SMB
defaultMaxPasswordAge="90"
userSmbHome="\\%L\homes\%U"
userProfile="\\%L\profile\%U"
userHomeDrive="H:"
userScript="logon.bat"
mailDomain="empresa.com.br"
53
GUIA DE ESTUDOS LPIC 301
## Configuraes adicionais para o smbldap-tools
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"

4 - Use o comando smbldap-populate para criar a base


# smbldap-populate
Populating LDAP directory for domain EMPRESA (S-1-5-21-1736683021-4130022748-2854372867)
(using builtin directory structure)

entry dc=empresa,dc=com,dc=br already exist.


entry ou=People,dc=empresa,dc=com,dc=br already exist.
entry ou=Group,dc=empresa,dc=com,dc=br already exist.
entry ou=Computers,dc=empresa,dc=com,dc=br already exist.
adding new entry: ou=Idmap,dc=empresa,dc=com,dc=br
adding new entry: uid=root,ou=People,dc=empresa,dc=com,dc=br
adding new entry: uid=nobody,ou=People,dc=empresa,dc=com,dc=br
adding new entry: cn=Domain Admins,ou=Group,dc=empresa,dc=com,dc=br
adding new entry: cn=Domain Users,ou=Group,dc=empresa,dc=com,dc=br
adding new entry: cn=Domain Guests,ou=Group,dc=empresa,dc=com,dc=br
adding new entry: cn=Domain Computers,ou=Group,dc=empresa,dc=com,dc=br
adding new entry: cn=Administrators,ou=Group,dc=empresa,dc=com,dc=br
adding new entry: cn=Account Operators,ou=Group,dc=empresa,dc=com,dc=br
adding new entry: cn=Print Operators,ou=Group,dc=empresa,dc=com,dc=br
adding new entry: cn=Backup Operators,ou=Group,dc=empresa,dc=com,dc=br
adding new entry: cn=Replicators,ou=Group,dc=empresa,dc=com,dc=br
entry sambaDomainName=EMPRESA,dc=empresa,dc=com,dc=br already exist. Updating it...

Please provide a password for the domain root:


Changing UNIX and samba passwords for root
New password:
Retype new password:

5 - Usurio da base LDAP sem atributos do samba


# ldapsearch -x -LLL uid=jose
dn: uid=jose,ou=People,dc=empresa,dc=com,dc=br
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
objectClass: qmailUser
givenName: Jose
sn: Silva
cn: Jose Silva
uidNumber: 1009
gidNumber: 100
homeDirectory: /home/jose
loginShell: /bin/bash
uid: jose
gecos: Jose da Silva
mail: jose@empresa.com.br
mailHost: smtp.empresa.com.br
mailMessageStore: /home/vmail/jose/Maildir/

6 - Adicione os atributos do samba com o comando smbldap-usermod


# smbldap-usermod -a jose

7 - Adicionar senha do samba ao usurio


# smbpasswd jose
New SMB password:
Retype new SMB password:

54
GUIA DE ESTUDOS LPIC 301
8 - Usurio da base LDAP com atributos do samba
# ldapsearch -x -LLL uid=jose
dn: uid=jose,ou=People,dc=empresa,dc=com,dc=br
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
objectClass: qmailUser
objectClass: sambaSamAccount
givenName: Jose
sn: Silva
uidNumber: 1009
gidNumber: 100
homeDirectory: /home/jose
loginShell: /bin/bash
uid: jose
gecos: Jose da Silva
mail: jose@empresa.com.br
mailHost: smtp.empresa.com.br
mailMessageStore: /home/vmail/jose/Maildir/
sambaLogonTime: 0
sambaLogoffTime: 2147483647
sambaKickoffTime: 2147483647
sambaPwdCanChange: 0
sambaPwdMustChange: 2147483647
sambaSID: S-1-5-21-3843609028-2715633953-1907622164-3018
cn: Jose Silva
displayName: Jose Silva
sambaPasswordHistory: 00000000000000000000000000000000000000000000000000000000
00000000
sambaPwdLastSet: 1270854628
sambaAcctFlags: [UX ]

9 - Faa um teste se logando em uma maquina Windows

55
GUIA DE ESTUDOS LPIC 301

samba3.schema
http://www.zytrax.com/books/ldap/ape/samba.html

slapd.conf
# Arquivo de schema do samba
include /etc/ldap/schema/samba.schema

# Indices de pesquisas
index SambaSID eq
index SambaPrimaryGroupSID eq
index SambaDomainName eq

# Acesso as informaes de qualquer senha a partir do topo da base


access to attrs=userPassword,shadowLastChange,sambaLMPassword,sambaNTPassword

305.5 Integrating LDAP with Active Directory (weight: 2)


Description: Candidates should be able to integrate LDAP with Active Directory Services
Key Knowledge Areas
Kerberos integration with LDAP
Cross platform authentication
Single sign-on concepts
Integration and compatibility limitations between OpenLDAP and Active Directory
The following is a partial list of the used files, terms and utilities:
Kerberos
Active Directory
single sign-on
DNS

Kerberos
Kerberos, em homenagem ao co de trs cabeas de Hades na mitologia grega, um protocolo que permite aos
usurios e servidores para comprovar sua identidade atravs de uma rede no confivel. Foi desenvolvido no Instituto
de Tecnologia de Massachusetts (MIT) para uso em suas redes e, desde ento, encontrou seu lugar em muitas outras
redes. A Microsoft escolheu usar Kerberos como parte do Windows 2000 do Active Directory.

56
GUIA DE ESTUDOS LPIC 301
1 - Instalar o Kerberos (na instalao informe o FQDN da maquina)
# aptitude install krb5-admin-server krb5-clients krb5-kdc-ldap

2 - Crie a base de dados do realm padro no KDC mestre


# kdb5_util create -r EMPRESA.COM.BR -s

3 - Crie o arquivo /etc/krb5kdc/kadm5.acl e adicione o seguinte contedo:


# vim /etc/krb5kdc/kadm5.acl
*/admin@4LINUX.COM.BR *

4 - Crie um usuarios administrativo


# kadmin.local -q "addprinc admin/admin@EMPRESA.COM.BR"

5 - Reiniciar os daemons para que as configuraes tenhas efeito.


# /etc/init.d/krb5-kdc restart
# /etc/init.d/krb5-admin-server restart

6 - Criar as chaves de encriptao para o cliente kerberos


# kadmin -p admin/admin@EMPRESA.COM.BR -q "addprinc -randkey host/server.empresa.com.br"
# kadmin -p admin/admin@EMPRESA.COM.BR -q "ktadd host/server.empresa.com.br"

7 - Crie o arquivo keytab do realm


# kadmin.local -q "ktadd -k /etc/krb5kdc/kadm5.keytab kadmin/admin kadmin/changepw"

8 - Reiniciar os daemons para que as configuraes tenhas efeito.


# /etc/init.d/krb5-kdc restart
# /etc/init.d/krb5-admin-server restart

9 - Criao do usurio kerberos


# kadmin.local -q "addprinc kerberos@EMPRESA.COM.BR"

Active Directory
Active Directory da Microsoft um servio de diretrio que usa alguns protocolos abertos, como Kerberos,
LDAP e SSL. Existem vrias maneiras de usar o AD para autenticao, voc pode usar pam_krb5, LDAP ou winbind.

1 - Crie um realm com o mesmo nome do domnio do Active Directory em nosso servidor Kerberos
# kdb5_util create -r WINDOWS.COM -s

2 - Informar para o servidor Kerberos qual o realm que ser utilizado, alterando o arquivo /etc/krb5.conf
# vim /etc/krb5.conf

[libdefaults]
default_realm = WINDOWS.COM

WINDOWS.COM = {
kdc = server.windows.com
admin_server = server.windows.com
}

3 - Reiniciar os daemons para que as configuraes tenhas efeito.


# /etc/init.d/krb5-kdc restart
# /etc/init.d/krb5-admin-server restart

4 - Configure o PAM instalando a biblioteca libpam-krb5 e alterando os arquivos de configurao


# aptitude install libpam-krb5
# vim /etc/pam.d/common-auth
auth sufficient pam_krb5.so use_first_pass forwardable
# vim /etc/pam.d/common-password
password required pam_krb5.so use_first_pass
# vim /etc/pam.d/common-session
session sufficient pam_krb5.so

57
GUIA DE ESTUDOS LPIC 301
single sign-on
Single sign-on (SSO) um mtodo de controle de acesso que permite que um usurio se autentique uma vez, e
ter acesso aos recursos de mltiplos sistemas de software.
Kerberos um mecanismo popular para aplicaes para externar a autenticao inteiramente. Quando um
usurio cadastrado no servidor Kerberos emitido um bilhete, que o seu software cliente apresenta para os servidores
que eles tentam acessar. Kerberos est disponvel no Unix, Windows e plataformas mainframe, mas exige uma ampla
modificao de cliente / servidor de cdigo do aplicativo,e, por conseqncia no usado por muitas aplicaes
legadas.

DNS
Voc precisa configurar uma zona DNS com o mesmo nome de seu reino Kerberos. O mais fcil se voc
possui o nome de DNS publicamente visveis, como o `example.org" se o seu reino EXAMPLE.ORG ', mas voc
pode configurar um servidor DNS interno com as informaes para o seu reino apenas. Se isso for feito, voc no
precisa manter os arquivos de configurao atualizado para o KDC (informaes de endereamento).

305.6 Integrating LDAP with Email Services (weight: 1)


Description: Candidates should be able to integrate LDAP with email services
Key Knowledge Areas
Plan LDAP schema structure for email services
Create email attributes in LDAP
Integrate Postfix with LDAP
Integrate Sendmail with LDAP
The following is a partial list of the used files, terms and utilities:
Postfix
Sendmail
schema
SASL
POP
IMAP

Postfix
A integrao Postfix com LDAP feita atravs de parmetros includos no arquivo /etc/postfix/main.cf. Para
poder utilizar pesquisas adicionando um local, onde as contas de email de usuarios podem ser localizadas na base
LDAP, altere a seguinte opo:

alias_maps = hash:/etc/aliases, ldap:accounts

Passo a passo prtico Postfix/LDAP

1 - Instale os pacotes postfix e postfix-ldap


# aptitude install postfix postfix-ldap

2 - Reconfigure o postfix e escolha as opes conforme seu DNS e sua rede.


# dpkg-reconfigure postfix

3 - Editar o arquivo /etc/postfix/main.cf e adicionar as seguintes opes:


# vim /etc/postfix/main.cf
home_mailbox = Maildir/
mailbox_command = procmail -a "$EXTENSION" DEFAULT=$HOME/Maildir/ MAILDIR=$HOME/Maildir/

4 - Adicionar a configuraes do servidor LDAP arquivo /etc/postfix/main.cf


# vim /etc/postfix/main.cf

## Local onde as contas de email de usuarios podem ser localizadas na base LDAP
alias_maps = hash:/etc/aliases, ldap:accounts

## Host do servidor onde a consulta ser feita


accounts_server_host = ldap://server.empresa.com.br

## O galho (ou) onde a pesquisa ser feita


accounts_search_base = ou=People,dc=empresa,dc=com,dc=br

58
GUIA DE ESTUDOS LPIC 301
## Filtro de pesquisa (accountStatus=0) para o usurio poder receber email
accounts_query_filter = (&(uid=%u)(accountStatus=0))

## Atributo que deve ser retornado no caso da pesquisa ser efetuada com sucesso.
accounts_result_attribute = uid

## Verso utilizada
accounts_version = 3

5 - Restart o daemon do Postfix


# /etc/init.d/postfix restart

6 - E necessrio adicionar novos atributos aos nossos usurios, para que estejam aptos a enviar e receber
mensagens. Crie o arquivo mail.ldif com o seguinte contedo
# vim mail.ldif

dn: uid=aluno,ou=People,dc=empresa,dc=com,dc=br
add: objectClass
objectClass: qmailUser
-
add: mail
mail: aluno@empresa.com.br
-
add: accountStatus
accountStatus: 0

7 - Adicione estes atributos com o comando ldapmodify


# ldapmodify -x -D cn=admin,dc=empresa,dc=com,dc=br -W -f mail.ldif

8 - Para adicionar os atributos via phpldapadmin, instale o pacote e acesse no browser no endereo
http://192.168.200.10/phpldapadmin/

59
GUIA DE ESTUDOS LPIC 301

9 - Selecione um usurio na lista ao lado esquerdo e clique em (add value) em objectClass

10 - Selecione na lista qmailUser e clique no boto Add new ObjectClass

11 - Digite o email do usurio e clique no boto Add ObjectCladd and Attributes

60
GUIA DE ESTUDOS LPIC 301

12 - Voltando tela com as configuraes do usurio, clique na opo Add new attribute na lista ao lado
esquerdo

13 - Selecione o atributo accountStatus, e preencha com o valor 0 e clique no boto Add

Sendmail
A integrao com LDAP no Sendmail pode ser usado para aliases, mapas e classes.

Aliases
O ALIAS_FILE (O AliasFile) pode ser configurado para usar LDAP para pesquisas alias. Exemplo:

define(`ALIAS_FILE', `ldap:')

Maps
FEATURE () 's que tm um argumento opcional r definio do mapa (por exemplo, mailertable, mailertable,
virtusertable, etc) pode ter a palavra-chave especial LDAP. Exemplo?

FEATURE(`access_db', `LDAP')
FEATURE(`virtusertable', `LDAP')

schema
Para que a integrao Postfix preciso o esquema qmail.schema obtido no endereo:
http://bettercom.de/misc/qmail.schema

include /etc/ldap/schema/qmail.schema (configurao do arquivo slapd.conf)

Para que a integrao sendmail preciso o esquema sendmail.schema. Ele distribudo com o cdigo-fonte sendmail.

include /etc/ldap/schema/sendmail.schema (configurao do arquivo slapd.conf)

Atributos (subconjunto) usado pelo sendmail:

mailhost - Indica onde est localizado a caixa de correio do usurio (opcional).

MailLocalAddress - Quais so os endereos de correio link para o usurio (opcional).

MailRoutingAddress - Endereo de e-mail principal do usurio (opcional).

61
GUIA DE ESTUDOS LPIC 301

SASL
O Cyrus-IMAP usa o autenticador externo Cyrus-SASL, baseado na SASL (Camadas de Autenticao e
Segurana Simples). O servio saslauthd responsvel por atender aos pedidos de autenticao.

SASL passo a passo

1 - Instale o pacote sasl2-bin:


# aptitude install sasl2-bin

2 - Edite o arquivo /etc/default/saslauthd e altere a opo START para yes e a opo MECHANISMS para ldap
# vim /etc/default/saslauthd

START=yes
MECHANISMS="ldap"

3 - Reinicie o daemon saslauthd


# /etc/init.d/saslauthd restart

4 - Crie o arquivo /etc/saslauthd.conf com o seguinte contedo


# vim /etc/saslauthd.conf

## Host do servidor LDAP onde ser feita a pesquisa


ldap_servers: ldap://server.empresa.com.br
## Porta de conexo com servidor LDAP
ldap_port: 389
## Verso do protocolo a ser utilizado
ldap_version: 3
## Se o cliente pode ou no seguir referencias lgicas
ldap_referrals: no
## Mtodo de autenticao
ldap_auth_method: bind
## Define o galho (ou) onde a pesquisa ser feita
ldap_search_base: dc=empresa,dc=com,dc=br
## Define o atributo no filtro de pesquisa
ldap_filter: uid=%u

5 - Faa o teste de autenticao com o SASL com um usurio da base LDAP e sua senha
# testsaslauthd -u roberto -p 123456
0: OK "Success."

POP/IMAP
A implementao depende de qual daemon POP/IMAP ser usado. Alguns podem ser configurados usando
PAM. Outros tm a sua prpria configurao para usar LDAP. Neste guia ser usado o Courier com os pacotes courier-
pop e courier-imap.

Courier passo a passo

1 - Instalao dos pacotes necessrios


# aptitude install courier-imap courier-imap courier-ldap

2 - Edite o arquivo /etc/courier/authdaemonrc e altere a autenticao para ldap


# vim /etc/courier/authdaemonrc

authmodulelist="authldap"
authmodulelistorig="authldap"

3 - Edite o arquivo /etc/courier/authldaprc para configurar a comunicao com o servidor LDAP


# vim /etc/courier/authldaprc

## Servidor ldap, porta e verso do protocolo


LDAP_URI ldap://server.empresa.com.br
LDAP_PORT 389
LDAP_PROTOCOL_VERSION 3

62
GUIA DE ESTUDOS LPIC 301
## Base de pesquisa e usurio que far a conexo
LDAP_BASEDN ou=People,dc=empresa,dc=com,dc=br
LDAP_BINDDN cn=admin,dc=empresa,dc=com,dc=br
LDAP_BINDPW 123456
LDAP_TIMEOUT 5

## Campos que sero pesquisados para garantir entregas de mensagens


LDAP_MAIL mail
LDAP_FILTER (objectClass=qmailUser)

## Domnio padro para as mensagens de email


LDAP_DOMAIN empresa.com.br

## Usuarios autorizados para gravar as mensagens no Maildir


LDAP_GLOB_UID vmail
LDAP_GLOB_GID vmail

## Localizao da pasta do usurio


LDAP_HOMEDIR mailMessageStore
LDAP_MAILDIR mailMessageStore

## Dados complementares
LDAP_FULLNAME cn
LDAP_CLEARPW clearPassword
LDAP_CRYPTPW userPassword
LDAP_DEREF never
LDAP_TLS 0

4- Altere as configuraes complementares do arquivo /etc/courier/ldapaliasrc


# vim /etc/courier/ldapaliasrc

LDAP_ALIAS 1
LDAP_URI ldap://server.empresa.com.br
LDAP_NUMPROCS 5
LDAP_BASEDN dc=empresa,dc=com,dc=br
LDAP_BINDDN cn=admin,dc=empresa,dc=com,dc=br
LDAP_BINDPW 123456
LDAP_TIMEOUT 5
LDAP_MAIL mail
LDAP_MAILDROP maildrop

5 - Crie o grupo e usuarios vmail


# groupadd -g 240 vmail
# adduser --system --gid 240 --uid 240 vmail

6 - Reinicie os daemons
# /etc/init.d/courier-authdaemon restart
# /etc/init.d/courier-ldap restart
# /etc/init.d/courier-imap restart
# /etc/init.d/courier-pop restart

7 - Altere a configurao do postfix e adicione o seguinte contedo


# vim /etc/postfix/main.cf

mailbox_transport = virtual:
mailbox_command_maps = ldap:accounts
local_recipient_maps = $alias_maps $virtual_mailbox_maps
virtual_maps = ldap:accountsmap
virtual_mailbox_base = /
virtual_mailbox_maps = ldap:accounts
virtual_uid_maps = static:240
virtual_gid_maps = static:240
virtual_maildir_extended = yes
accounts_server_host = server.empresa.com.br
accounts_bind_dn = cn=admin,dc=empresa,dc=com,dc=br
63
GUIA DE ESTUDOS LPIC 301
accounts_bind_pw = 123456
accounts_search_base = dc=empresa,dc=com,dc=br
accounts_query_filter = (&(objectClass=qmailUser)(mail=%s))
accounts_result_attribute = mailMessageStore
accounts_bind = yes
accountsmap_server_host = server.empresa.com.br
accountsmap_bind_dn = cn=admin,dc=empresa,dc=com,dc=br
accountsmap_bind_pw = 123456
accountsmap_search_base = dc=empresa,dc=com,dc=br
accountsmap_query_filter = (&(objectClass=qmailUser)(mailAlternateAddress=%s))
accountsmap_result_attribute = mail
accountsmap_bind = yes

8 - Reinicie o daemon
# /etc/init.d/postfix restart

9 - Adicione os novos atributos aos nossos usurios. Crie o arquivo imap.ldif com o seguinte contedo
# vim imap.ldif

dn: uid=felipe,ou=People,dc=empresa,dc=com,dc=br
add: objectClass
objectClass: qmailUser
-
add: mail
mail: felipe@empresa.com.br
-
add: mailHost
mailHost: smtp.empresa.com.br
-
add: mailMessageStore
mailMessageStore: /home/vmail/felipe/Maildir/

10 - Adicione estes atributos com o comando ldapmodify


# ldapmodify -x -D cn=admin,dc=empresa,dc=com,dc=br -W -f imap.ldif

11 - Faa o login com o usurio que recebeu os novos atributos, e como usurio root crie as pastas
# mkdir /home/vmail/felipe
# maildirmake /home/vmail/felipe/Maildir
# chown -R vmail: /home/vmail

12 - Para adicionar os atributos (qmailUser, mail, mailhost e mailMessageStore) via phpldapadmin, instale o
pacote e acesse no browser o endereo http://192.168.200.10/phpldapadmin/

64
GUIA DE ESTUDOS LPIC 301
13 - Faa testes de configurao com POP ou IMAP usando algum cliente de email

Topic 306: Capacity Planning


306.1 Measure Resource Usage (weight: 4)
Description: Candidates should be able to measure hardware resources and network bandwidth usage
Key Knowledge Areas
Measure CPU usage
Measure memory usage
Measure disk I/O
Measure network I/O
Measure firewalling and routing throughput
Map client bandwidth usage
The following is a partial list of the used files, terms and utilities:
iostat
vmstat
pstree
w
lsof
top
uptime
sar

65
GUIA DE ESTUDOS LPIC 301
iostat
Fornece relatrio de uso da CPU, estatsticas e de entrada/sada, estatsticas para dispositivos, parties e
sistemas de arquivos de rede (NFS). Para ter acesso a este comando, instale o pacote sysstat. Opes:

-c - Apresenta o relatrio de utilizao da CPU.


-d - Apresenta o relatrio de utilizao do dispositivo.
-n - Exibe o relatrio do sistema de arquivos de rede (NFS)
-x - Exibe relatrio estendido
-p - Exibi estatsticas para os dispositivos de bloco e todas as suas parties que so utilizados pelo sistema.

vmstat
Com o vmstat voc tambm pode ver as estatsticas de disco e CPU. Alm disso, d-lhe informaes sobre sua
memria fsica e virtual.

pstree
Usado para exibir de forma hierrquica a lista de processos.
w
Exibe informaes sobre os usurios atualmente na mquina, e seus processos. Mostra o cabealho, nesta
ordem: data atual, quanto tempo o sistema esta em funcionamento, quantos usurios esto conectados no momento, e as
mdias de carga do sistema durante os ltimos 1, 5 e 15 minutos.

lsof
Lista os arquivos abertos, ou quando usado apontando o caminho de um arquivo ele informa qual processo tem
relao com o arquivo aberto. Exemplo:

# lsof /usr/sbin/gdm
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
gdm 8588 root txt REG 3,5 311148 138579 /usr/sbin/gdm
gdm 8589 root txt REG 3,5 311148 138579 /usr/sbin/gdm

top
Oferece uma viso dinmica em tempo real do sistema em execuo.

uptime
Exibe quanto tempo o sistema esta em funcionamento.

sar

Coleta, exibe relatrio ou salvar as informaes de atividade do sistema. Para ativar o servio abra o arquivo
/etc/default/sysstat e altere a opo ENABLED="false" para true. Reinicie o daemon do sysstat.

# vim /etc/default/sysstat
ENABLED="true"

# /etc/init.d/sysstat restart

mpstat
Relatrio de estatsticas relacionadas com os processadores.

Ferramentas de monitoramento

Uso da CPU iostat, mpstat, w, uptime


Utilizao do disco iostat, lsof, vmstat (-d)
Uso da memria top, vmstat, cat /proc/mem
Uso da rede ifstat
Uso da swap swapon -s

66
GUIA DE ESTUDOS LPIC 301

306.2 Troubleshoot Resource Problems (weight: 4)


Description: Candidates should be able to identify and troubleshoot resource problems
Key Knowledge Areas
Match / correlate system symptoms with likely problems
Identify bottlenecks in a system
The following is a partial list of the used files, terms and utilities:
swap
processes blocked on I/O
blocks in
blocks out

swap
Usando o comando free voc pode ver o uso de memria e swap.

processes blocked on I/O


Usando o comando ps voc pode ver as estatsticas de processos. Exemplo:

# ps -eo pid,state,comm

blocks in + out
Usando o comando vmstat (coluna bi e bo). Exemplo

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----


r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 0 116492 71124 241904 0 0 5 19 17 48 1 1 99 0

Usando o comando iostat

Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn


hda 1,45 9,07 37,47 407372 1682786
hda1 0,01 0,04 0,00 1858 10
hda2 0,21 0,68 4,17 30639 187160
hda3 0,08 0,05 1,82 2156 81912

306.3 Analyze Demand (weight: 2)


Description: Candidates should be able to analyze capacity demands
Key Knowledge Areas
Identify capacity demands
Detail capacity needs of programs
Determine CPU / memory needs of programs
Assemble program needs into a complete analysis
The following is a partial list of the used files, terms and utilities:
PDQ
CPU usage
memory usage
appropriate measurement time
trend
model
what-if
validate
performance equation

PDQ (Pretty Damn Quick)

PDQ (rpido pra caramba) uma ferramenta de modelagem para analisar as caractersticas do desempenho
de recursos computacionais, como processadores, discos e um conjunto de processos que fazem requisies desses
recursos, por exemplo.
Um modelo PDQ analisado com algoritmos baseados na teoria de en?dleiramento (queueing). A verso atual
facilita a criao e anlise de modelos de desempenho em C, Perl, Python, Java e PHP.

67
GUIA DE ESTUDOS LPIC 301
Funes de PDQ do Python:

pdq.Init() - Inicializa as variveis PDQ internas;


pdq.CreateOpen() - Cria uma carga de rede;
pdq.CreateNode() - Cria um servidor;
pdq.SetDemand() - Estabelece o tempo de servio de carga de rede no recurso do servidor;
pdq.Solve() - Calcula a mtrica de desempenho;
pdq.Report() - Gera um relatrio genrico de desempenho.

Para Instalar o PDQ:

1 - Baixe no site http://sourceforge.net/projects/pdq-qnm-pkg/files/PDQ%20source/5.0.3/pdq-5.0.3.tar.gz/download


2 - Descompacte: tar xzvf pdq-5.0.3.tar.gz
3 - Acesse o diretrio: cd pdq/
4 - Compile: make
5 - Acesse o diretrio perl: cd perl5/
6 - Rode o setup: ./setup.sh
7 - Rode o script test.pl para analise de desempenho

# perl test.pl
***************************************
****** Pretty Damn Quick REPORT *******
***************************************
*** of : Wed Apr 14 21:19:45 2010 ***
*** for: OpenCenter ***
*** Ver: PDQ Analyzer v5.0 071209 ***
***************************************
***************************************

COMMENT: A simple M/M/1 queue

=======================================
****** PDQ Model INPUTS *******
=======================================

Node Sched Resource Workload Class Demand


---- ----- -------- -------- ----- ------
CEN FCFS server work TRANS 1.0000

Queueing Circuit Totals:


Streams: 1
Nodes: 1

WORKLOAD Parameters:
Source per Customers Demand
------ ------- ------
work 0.7500 1.0000

=======================================
****** PDQ Model OUTPUTS *******
=======================================

Solution Method: CANON

****** SYSTEM Performance *******

Metric Value Unit


------ ----- ----
Workload: "work"
Number in system 3.0000 Customers
Mean throughput 0.7500 Customers/Seconds
Response time 4.0000 Seconds
Stretch factor 4.0000

68
GUIA DE ESTUDOS LPIC 301
Bounds Analysis:
Max throughput 1.0000 Customers/Seconds
Min response 1.0000 Seconds

****** RESOURCE Performance *******

Metric Resource Work Value Unit


------ -------- ---- ----- ----
Throughput server work 0.7500 Customers/Seconds
Utilization server work 75.0000 Percent
Queue length server work 3.0000 Customers
Waiting line server work 2.2500 Customers
Waiting time server work 3.0000 Seconds
Residence time server work 4.0000 Seconds

appropriate measurement time (tempo de medio adequado)


Durante o horrio normal de trabalho e nos horrios de pico.

trend (tendncia)
Analisando as mudanas ao longo do tempo e extrapolando as demandas futuras.

what if
Predizer o impacto das mudanas na carga de trabalho.

validate (validar)
Validar os resultados extras e verificar tendncias.

performance equation (equao de desempenho)


A equao de desempenho um termo usado em informtica. Refere-se ao clculo do desempenho ou
velocidade de uma unidade de processamento central (CPU).

306.4 Predict Future Resource Needs (weight: 1)


Description: Candidates should be able to monitor resource usage to predict future resource needs
Key Knowledge Areas
Predict capacity break point of a configuration
Observe growth rate of capacity usage
Graph the trend of capacity usage
The following is a partial list of the used files, terms and utilities:
diagnose
predict growth
average
resource exhaustion

Monitorao e estima da capacidade de crescimento pode ser feito usando as ferramentas descritas na seo
306,1. ( Measure Resource Usage). Grficos podem ser feito usando a ferramenta rrd-tools.
iostat, vmstat, pstree, w, lsof, top, uptime e sar

Graph the trend of capacity usage


RRDTool um sistema de base de dados round-robin criado por Tobias Oetiker sob licena GNU GPL. Foi
desenvolvido para armazenar sries de dados numricos sobre o estado de redes de computadores, porm pode ser
empregado no armazenamento de qualquer outra srie de dados como temperatura, uso de CPU, etc. RRD um modo
abreviado de se referir a Round Robin Database (base de dados round-robin).
O RRDTool tambm pode produzir grficos que permitem ter uma idia visual dos dados armazenados, os
quais podem ser utilizados ou exibidos por outros sistemas.

Criao simples de um grfico usando RRDToll

1 - Instale o pacote rrdtool


# aptitude install rrdtool
2 - Crie um arquivo rddtool com o comando rrdtool create
# rrdtool create test.rrd --start 1176465000 -s 300 DS:temp:GAUGE:600:U:U RRA:AVERAGE:0:1:5000
69
GUIA DE ESTUDOS LPIC 301
3 - Crie o grfico usando o comando rrdtool graph
# rrdtool graph graph.png --start 1176465385 --end `date +%s` DEF:mytemp=test.rrd:temp:AVERAGE
LINE2:mytemp#0000FF HRULE:35#FF0000 HRULE:30#FFA500

Gerar grficos usando RRDTool + CACTI + SNMP

Cacti - Interface para rrdtool para monitoramento de sistemas e servios.


SNMP(Simple NetworkManagement Protocol) - o protocolo de gerncia recomendado para o gerenciamento de redes
TCP/IP.

1 - Instale o pacote snmp:


# aptitude install snmp snmpd
2 - Instale o pacote mysql-server e reinicie o servio do MySQL
# aptitude install mysql-server
# /etc/init.d/mysql restart
3 - Instale o apache com suporte a php:
# aptitude install apache2 libapache2-mod-php5
4 - Instale o pacote php
# aptitude install php5 php5-snmp
5 - Instalao do rrdtool:
# aptitude install rrdtool
6 - Instalao do net-snmp:
# aptitude install libnet-snmp-perl libsnmp-base
7 - Instalao do cacti (durante a instalao ser solicitada verso do apache, selecione Apache2):
# aptitude install cacti
8 - Acesse http://localhost/cacti

70
GUIA DE ESTUDOS LPIC 301
9 - Ser feira a verificao do programas necessrios, selecione RRDTool 1.2.x e clique em Finish

10 - Na tela do primeiro login entre com o usurio admin e a senha admin.

11 - Na prxima tela troque a senha.

71
GUIA DE ESTUDOS LPIC 301
12 - Na parte superior esquerda da tela, clique em graphs para ter acesso a grficos de memria, load average,
usuarios logados e processos

72

Você também pode gostar