Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
2.1
Pr-Requisitos e
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:
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
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"
Todos os passos descritos nessa seo devem ser executados pelo usurio administrador. ca a
4.1
Pr-Requisitos e
4.2
Como Proceder
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
session session
skel=/etc/skel/
umask=0022
silent
password password
sufficient required
pam_unix.so pam_ldap.so
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
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
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
5.2
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
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
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
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
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