Sei sulla pagina 1di 15

Instalao de um Servidor e de Clientes LDAP ca

Projeto Libertas-BR http://www.libertasbr.org.br 8 de setembro de 2005

Introduo ca

Este documento descreve os passos para a instalao de um servidor OpenLDAP, e os passos para ca a instalao de clientes LDAP. ca Nas quatro sees que se seguem, so descritos - na seguinte ordem - os passos para se instalar co a o servidor; o cliente; como se inserir uma Organizao e um usurio na base LDAP; e como ca a implementar senhas seguras de usurios em seu servidor LDAP. a

Instalao de Servidor OpenLDAP ca

Todo o processo deve ser executado pelo usurio administrador (root). a

2.1

Pr-Requisitos e

Os pr-requisitos para a instalao de um servidor LDAP so: e ca a


LibertasBR Repositrio LibertasBR o

2.2

Como Proceder

Primeiramente o pacote slapd, que o servidor ldap propriamente dito, deve ser instalado. Para e isto, siga os passos: 1. Execute o comando:

apt-get install slapd

2. Conrme que deseja continuar a instalao, pressionando as teclas <S> e depois <Enter>; ca 3. Escolha o dom nio para o qual o servidor OpenLDAP funcionar: a Por exemplo: BH AGENCIALIVRE.livre; 4. Dena o nome da organizao: ca Por exemplo: BH AGENCIALIVRE.livre; 5. Informe a senha do usurio administrador (admin) da base LDAP. a 6. Repita a senha para conrmao ca 7. Selecione a opo [No] , para realizar a congurao manual da rvore de diretrios. ca ca a o 8. Selecione novamente a opo [No] , pressione <Enter> e a instalao. do servidor estar ca ca a nalizada. Alm do pacote slapd, deve-se tambm instalar o pacote ldap-utils que contm as ferramentas e e e necessrias para se utilizar o OpenLDAP. Para isso, execute o comando: a apt-get install ldap-utils O diretrio /etc/ldap onde se encontram os arquivos necessrios para o funcionamento do o e a ldap. Copie o arquivo /usr/share/slapd/slapd.conf para esse diretrio executando o seguinte o comando: cp /usr/share/slapd/slapd.conf /etc/ldap/ Esse o arquivo de congurao de seu servidor LDAP, ele deve apresentar a mesma cone ca guraao do arquivo reproduzido abaixo: c

# This is the main slapd configuration file. See slapd.conf(5) for more # info on the configuration options. ####################################################################### # Global Directives: # Features to permit #allow bind_v2 # Schema and objectClass definitions include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema

include include

/etc/ldap/schema/nis.schema /etc/ldap/schema/inetorgperson.schema

# Schema check allows for forcing entries to # match schemas for their objectClassess schemacheck on # Where the pid file is put. The init.d script # will not stop the server if you change this. pidfile /var/run/slapd/slapd.pid # List of arguments that were passed to the server argsfile /var/run/slapd.args # Read slapd.conf(5) for possible values loglevel 0 # Where the dynamically loaded modules are stored modulepath /usr/lib/ldap moduleload back_bdb ####################################################################### # Specific Backend Directives for bdb: # Backend specific directives apply to this backend until another # backend directive occurs backend bdb ####################################################################### ####################################################################### # Specific Backend Directives for other: # Backend specific directives apply to this backend until another # backend directive occurs #backend <other> ####################################################################### # Specific Directives for database #1, of type bdb: # Database specific directives apply to this databasse until another # database directive occurs database bdb # The base of your directory in database #1 # Substitua pela sua base de dados e as diretivas do usurio admin a suffix "dc=BH_AGENCIALIVRE,dc=livre" rootdn "cn=admin,dc=BH_AGENCIALIVRE,dc=livre" rootpw {SSHA}vvq51Z/AOWawgQOo8y0vIrdbIoqyrYB2 # Where the database file are physically stored for database #1 directory "/var/lib/ldap" # Indexing options for database #1 index objectClass eq

# Save the time that the entry gets modified, for database #1 lastmod on # Where to store the replica logs for database #1 # replogfile /var/lib/ldap/replog # The userPassword by default can be changed # by the entry owning it if they are authenticated. # Others should not be able to see it, except the # admin entry below # These access lines apply to database #1 only # Substitua pelo o administrador do seu dominio access to attribute=userPassword by dn.base="cn=admin,dc=BH_AGENCIALIVRE,dc=livre" write by anonymous auth by self write by * none # Ensure read access to the base for things like # supportedSASLMechanisms. Without this you may # have problems with SASL not knowing what # mechanisms are available and the like. # Note that this is covered by the access to * # ACL below too but if you change that as people # are wont to do youll still need this if you # want SASL (and possible other things) to work # happily. access to dn.base="" by * read # The admin dn has full write access, everyone else # can read everything. # Substitua pelo seu Dominio access to * by dn.base="cn=admin,dc=BH_AGENCIALIVRE,dc=livre" write by * read # For Netscape Roaming support, each user gets a roaming # profile for which they have write access to #access to dn=".*,ou=Roaming,o=morsnet" # by dn="cn=admin,dc=BH_AGENCIALIVRE,dc=livre" write # by dnattr=owner write ####################################################################### # Specific Directives for database #2, of type other (can be bdb too): # Database specific directives apply to this databasse until another # database directive occurs #database <other> # The base of your directory for database #2 #suffix "dc=debian,dc=org"

No arquivo acima, opo rootpw < SENHA > estabelece uma senha para o root do slapd.conf. ca Para gerar a a chave encriptada da senha escolhida basta executar o seguinte comando. slappaswd -s < SENHA > Depois basta copiar a chave gerada para o arquivo de congurao. Feito isso, a instalao de ca ca um servidor ldap para o dom nio escolhido estar conclu a da.

2.3

Proteo da Base LDAP ca

Finalizada a instalao do servidor LDAP, importante proteg-lo contra um poss corrompica e e vel mento na sua base de dados - que pode ser causado, por exemplo, por quedas sbitas de energia. u A importncia desta proteo se deve ao fato de que um corrompimento poderia impedir a recua ca perao de dados quando a mquina que contm o servidor LDAP fosse reiniciada. ca a e Para evitar este poss problema basta acrescentar a seguinte linha de comando no arquivo de vel congurao do ldap (/etc/ldap/slapd.conf), substituindo as variveis X e Y por valores denidos. ca a checkpoint X Y A varivel X representar o nmero de entradas, e a Y, o nmero de minutos para se dar o a a u u ush. Por exemplo, se X=2 e Y=10, a cada duas novas entradas na base ou a cada 10 minutos um ush ocorrer. a Alm dessa alterao, instale o pacote db4.2-util que contm a ferramenta de recuperao e ca e ca de base de dados. Para isso execute o seguinte comando: apt-get install db4.2-util Outra medida a ser adotada a modicao do script de inicializao do ldap(/etc/init.d/slapd) e ca ca para que ele tambm possa recuperar a base de dados em caso de corrompimento. A alterao e ca deve ser feita conforme mostrado abaixo:

.... # Start the OpenLDAP daemons start() { echo -n "Starting OpenLDAP:" trap report_failure 0 # ------Inserir essa linha-------------db4.2_recover -h <diretorio da base> start_slapd start_slurpd trap "-" 0 echo . } ....

Onde se l diretorio da base, deve ser indicado o local onde a base est armazenada e a sicamente. O local padro de armazenamento /var/lib/ldap. Caso o sistema esteja congua e rado de outra forma, essa informao deve ser obtida a partir da denio directorydo arquivo ca ca /etc/ldap/slapd.conf.

Criao da Ra de Diretrios ca z o

Primeiramente reinicie a excuo do ldap, com o comando: ca /etc/init.d/slapd restart Agora crie um arquivo raizcom a extenso .ldif, contendo os seguintes parmentros: a a

objectClass: dcObject objectClass: organization o: BH_AGENCIALIVRE dc: BH_AGENCIALIVRE dn: cn=admin,dc=BH_AGENCIALIVRE,dc=livre objectclass: organizationalRole cn: admin

Execute o comando ldapmodify -x -W -f raiz.ldif -D "cn=admin, dc=BH_AGENCIALIVRE, dc=livre" Ser pedida a senha do administrador, utilize a senha que foi usada como argumento do rootpw. a Para visualizar a raiz inserida utilize o seguinte comando: ldapsearch -x -b "dc=BH_AGENCIALIVRE, dc=livre"

Instalao de Cliente OpenLDAP ca

Todos os passos descritos nessa seo devem ser executados pelo usurio administrador. ca a

4.1

Pr-Requisitos e

Os pr-requisitos para a instalao de um cliente LDAP so: e ca a


LibertasBR

Repositrio LibertasBR o Um Servidor OpenLDAP

4.2

Como Proceder

Os seguintes pacotes devem ser instalados:


libnss-ldap libpam-ldap nscd

1. Execute os comandos: apt-get install libnss-ldap

apt-get install libpam-ldap

apt-get install nscd

Ignore as perguntas feitas durante a instalao desses pacotes (simplesmente pressione <ENTER>). ca As conguraes relevantes sero feitas manualmente aps a instalao e esto descritas, em co a o ca a detalhes, nas sees seguintes. co 2. Edite o arquivo /etc/libnss-ldap.conf. Este arquivo responsvel pela congurao de qual e a ca servidor LDAP do domin que seu cliente utilizar. Para isso descomente a linhas, conno a forme descrito abaixo:
# Substitua pelo IP de seu servidor LDAP host 150.164.3.205 # Substitua pela descriao de seu domnio, sua base c~ base dc=BH_AGENCIALIVRE,dc=livre #Vers~o do Ldap a ldap_version 3 de dados LDAP

As outras linhas devem continuar comentadas. 3. Remova o arquivo /etc/ldap/ldap.conf e crie um link simblico do arquivo /etc/libnsso ldap.conf para o mesmo. Para isso execute os seguintes comandos:

rm -f /etc/ldap/ldap.conf

ln -s /etc/libnss-ldap.conf /etc/ldap/ldap.conf

4. O arquivo /etc/nsswitch.conf responsvel pela congurao da ordem pela qual dados e a ca referentes a usurios sero recuperados. O mesmo deve ser congurado conforme exemplo a a abaixo:

passwd group: shadow: hosts: networks: protocols: services: ethers: rpc: netgroup:

files ldap files ldap files ldap compat files dns files db db db db files files files files

ldap

5. Edite o arquivo /etc/pam ldap.conf. As seguintes linhas devem ser descomentadas do arquivo:
# Substitua o IP abaixo pelo IP do seu servidor LDAP host 150.164.3.205 # Substitua a identificaao abaixo pela identifica~o da sua base c~ ca base dc=BH_AGENCIALIVRE,dc=livre ldap_version 3 # Substitua a identificaao do usurio admin abaixo pela identifica~o c~ a ca # do usurio administrador do seu dominio, ou seja, substitua o dominio a rootbinddn cn=admin,dc=BH_AGENCIALIVRE,dc=livre # Implementa critografia das senhas pam_password crypt

As outras linhas do arquivo devem continuar descomentadas. 6. Edite o arquivo /etc/pam.d/common-account da seguinte forma:

account account

sufficient required

pam_ldap.so pam_unix.so

7. Edite o arquivo /etc/pam.d/common-auth da seguinte forma:

auth auth auth auth

required sufficient required required

pam_nologin.so pam_unix.so pam_env.so pam_ldap.so use_first_pass

8. Edite o arquivo /etc/pam.d/common-session da seguinte forma:

session session

required pam_mkhomedir.so sufficient pam_unix.so

skel=/etc/skel/

umask=0022

silent

9. Edite o arquivo /etc/pam.d/common-password da seguinte forma:

password password

sufficient required

pam_unix.so pam_ldap.so

md5 debug try_first_pass debug

10. Cada servio de accesso ` mquina (por exemplo, ssh, login, kdm e etc.) possui um arquivo c a a de congurao no diretrio /etc/pam.d/. Cada arquivo pode ter uma congurao prpria ca o ca o ou utilizar uma congurao comum (padro). ca a Assim, cada um desses arquivos possui um include dos arquivos congurados nos passos acima. Para maiores detalhes do funcionamento do PAM, acesse http://www.kernel.org/ pub/linux/libs/pam/Linux-PAM-html/pam.html . 11. O ultimo passo reiniciar o nscd para que as conguraes realizadas sejam aceitas. Para e co isto, basta executar o seguinte comando:

/etc/init.d/nscd restart

12. Habilite as permisses para que sua mquina aceite acesso remoto atravs do ssh. Para o a e a isso edite o arquivo /etc/ssh/sshd cong e altere a varivel PAMAuthenticationViaKbdInt conforme descrito abaixo:

PAMAuthenticationViaKbdInt yes

13. Reinicie o servio de ssh da seguinte forma: c /etc/init.d/ssh restart

Feito isso, a instalao de um cliente ldap para o dom ca nio escolhido estar completa. Veja a tambm como feita a instalao de um servidor ldap na seo ??, como congurar trocas de e e ca ca senhas na seo ?? e como acrescentar usurios em sua base de dados ldap na seo ?? ca a ca

10

Inseres na Base OpenLDAP co

Nesta seo descrito como se criar uma organizao e como se inserir um usurio na base do ca e ca a servidor OpenLDAP. Todos os passos aqui descritos devem ser executados na mquina servidora, a ou seja, na mquina onde est instalado o servidor LDAP pelo usurio administrador (root). a a a

5.1

Pr-Requisitos e

Os pr-requisitos para se inserir usurios em um servidor LDAP so: e a a


LibertasBR Repositrio LibertasBR o Servidor OpenLDAP Cliente OpenLDAP

5.2

Insero de Organizao na Base OpenLDAP ca ca

Para criar uma organizao (Organizational Unit - OU) em sua base de dados, onde devero ser ca a inseridos os usurios, execute os seguintes procedimentos: a 1. Criar um arquivo com extenso .ldif, como mostrado abaixo: a dn: ou=People, dc=BH_AGENCIALIVRE,dc=livre changeType: add objectClass: organizationalUnit ou: People

No caso desta instalao, o arquivo acima foi nomeado como people.ldif. ca 2. Executar o seguinte comando: ldapmodify -x -W -f people.ldif -D "cn=admin, dc=BH_AGENCIALIBRE, dc=livre"

Ao executar este comando, deve-se entrar com a senha de administrador do OpenLDAP, informada durante a instalao do mesmo. ca

5.3

Insero de Usurios na Base OpenLDAP ca a

Para inserir usurios na Base de Dados basta executar os seguintes procedimentos: a 1. Criar um arquivo contendo as informaes do usurio. Veja exemplo abaixo: co a

11

dn: cn=joao,ou=People,dc=BH_AGENCIALIVRE,dc=livre changeType: add cn: Joao sn: Joao objectClass: person objectClass: posixAccount uid: Joao uidNumber: 25 gidNumber: 1000 loginShell: /bin/bash userPassword: senha01 homeDirectory: /home/joao

No caso desta instalao, esse arquivo foi nomeado como usuarios.ldif. ca 2. Executar o seguinte comando:
#> ldapmodify -x -W -f usuarios.ldif -D "cn=admin, dc=BH_AGENCIALIVRE, dc=livre"

Entrar com a senha de administrador do LDAP, informada durante a instalao do mesmo. ca Agora sua base de dados possui o usurio joaoinserido no ramo People. a Para vericar a insero correta, execute o comando abaixo: ca #> slapcat

E a sa deve mostrar em sua sa algo parecido com: da da

dn: dc=caixa,dc=livre objectClass: dcObject dc: caixa dn: cn=admin,dc=caixa,dc=livre objectClass: organizationalRole objectClass: simpleSecurityObject cn: admin description: LDAP administrator userPassword:: e0NSWVBUfWtOR1pGM2tyZy9rOUk= dn: ou=People,dc=caixa,dc=livre objectClass: organizationalUnit ou: People dn: ou=Roaming,dc=caixa,dc=livre objectClass: organizationalUnit

12

ou: Roaming dn: cn=Joao,ou=People,dc=caixa,dc=livre sn: Joao objectClass: person objectClass: posixAccount uid: Joao uidNumber: 25 gidNumber: 1000 loginShell: /bin/bash homeDirectory: /var/tmp/ creatorsName: cn=admin,dc=caixa,dc=livre createTimestamp: 20040423133559Z cn: Joao userPassword:: e2NyeXB0fUE4SXBmZTcwWTBPcFk= modifiersName: cn=admin,dc=caixa,dc=livre modifyTimestamp: 20040427143756Z

13

6
6.1

Troca de Senhas segura no OpenLDAP


Pr-Requisitos e

Os pr-requisitos para a preparao do ambiente para que os usurios troquem suas senhas com e ca a segurana so: c a
LibertasBR Repositrio LibertasBR o Servidor OpenLDAP Cliente OpenLDAP O usurio estar cadastrado no OpenLDAP a

6.2

Como Proceder

Durante todo processo de instalao, deve-se possuir privilgios de usurio administrador (root). ca e a Os passos a seguir devem ser executados nas mquinas clientes. a 1. Instalar os pacotes de senha com os seguintes comandos: #apt-get #apt-get #apt-get #apt-get install install install install libpam-cracklib cracklib-runtime cracklib2 cracklib2-dev

2. Editar o arquivo /etc/pam.d/common-password para que o mesmo utilize agora o cracklib para no permitir senhas fceis. Para isso edite-o da seguinte forma: a a

password password password

requisite sufficient required

pam_cracklib.so retry=3 minlen=6 difok=3 pam_ldap.so use_first_pass pam_unix.so nullok obscure

Pronto, sua mquina cliente est habilitada a realizar troca de senhas. a a Para que um usurio altere sua senha, basta que o mesmo esteja utilizando sua conta e execute a o seguinte comando: #> passwd Ser pedida a senha atual e, em seguida, a nova senha e sua conrmao. No sero aceitas a ca a a senhas fceis. a

14

Crditos e

Documento Instalao de um Servidor e de Clientes LDAP ca Direitos Autorais Reservados (c) Universidade Federal de Minas Gerais Departamento de Cincia da Computao e ca Laboratrio de Software Livre: o Leonardo Chaves Dutra da Rocha - lcrocha@dcc.ufmg.br Joo Victor dos Anjos Brbara - jvictor@dcc.ufmg.br a a

Esta documentao livre; voc pode redistribu e/ou modic-la sob os termos da Licena ca e e -la a c Pblica Geral GNU conforme publicada pela Free Software Foundation; tanto na sua verso 2, u a como qualquer verso posterior (a seu critrio) . a e A distribuio desta documentao feita na expectativa de que ela seja util, porm, sem ca ca e e nenhuma garantia; nem mesmo a garantia impl cita de comerciabilidade ou adequao a ca uma nalidade espec ca. Consulte a Licena Pblica Geral do GNU para mais detalhes. c u

http://creativecommons.org/licenses/GPL/2.0/ http://creativecommons.org/licenses/GPL/2.0/legalcode.pt

15

Potrebbero piacerti anche