Tutorial
aplicado em servidor CentOS 6.3 x64, para outras distribuições as
configurações de apache e instalação de pacotes sofrerão mudanças.
1) Conceitos:
slapd: este é daemon isolado do LDAP. Ele escuta por conexões LDAP na porta 389 (636 para SSL)
2) Instalação
# yum install -y openldap-servers openldap-clients pam_ldap nss-pam-ldapd
3) Criar uma senha para o LDAP
# slappasswd
Anote essa senha em algum arquivo de texto. A senha é algo como {SSHA}LwxaxndI3HZUj29FYy2LFt/ e3AlnUWzz.
Você precisará dela posteriormente.
4) Crie o arquivo ”/etc/openldap/slapd.conf”
# cd /etc/openldap
# vi slapd.conf
5)
No arquivo slapd.conf, copiar e colar o seguinte texto. Atente-se aos
campos em vermelho, fazendo as devidas alterações. Lembrando de alterar a
senha no campo “rootpw” para a senha gerada anteriormente
database bdb
suffix "dc=empresa,dc=edu,dc=br"
rootdn "cn=Manager,dc=empresa,dc=edu, dc=br"
# Senhas em texto plano, especialmente para o rootdn, devem
# ser evitados. Veja slappasswd (8) e slapd.conf (5) para mais detalhes.
# Uso de autenticação forte incentivado.
rootpw digite_a_senha_gerada_aqui
directory /var/lib/ldap
6) Testar as configurações
# slaptest -u
7) Editar o arquivo “/etc/openldap/slapd.d/cn= config/olcDatabase={2}bdb. ldif“
# vi /etc/openldap/slapd.d/cn\= config/olcDatabase\=\{2\}bdb. ldif
Altere
olcSuffix: dc=my-domain,dc=com
para:
olcSuffix: dc=empresa,dc=edu,dc=br
Altere também:
olcRootDN: cn=Manager,dc=my-domain,dc=com
para:
olcRootDN: cn=Manager,dc=empresa,dc=edu, dc=br
Adicionar neste mesmo arquivo as linhas de comando a seguir:
olcRootPW: digite_a_senha_gerada_aqui
olcTLSCertificateFile: /etc/pki/tls/certs/slapdcert. pem
olcTLSCertificateKeyFile: /etc/pki/tls/certs/slapdkey. pem
8) Editar o arquivo “/etc/openldap/slapd.d/cn= config/olcDatabase={1}monitor. ldif“
# vi /etc/openldap/slapd.d/cn\= config/olcDatabase\=\{1\} monitor.ldif
substitua:
olcAccess: {0}to * by dn.base="gidNumber=0+ uidNumber=0,cn=peercred,cn= externa
l,cn=auth" read by dn.base="cn=manager,dc=my- domain,dc=com" read by * none
por:
olcAccess: {0}to * by dn.base="gidNumber=0+ uidNumber=0,cn=peercred,cn= externa
l,cn=auth" read by dn.base="cn=Manager,dc= empresa,dc=edu,dc=br" read by * none
9) Atualize as bases de dados
# updatedb
OBS: Para utilizar esse comando instale o mlocate, yum install mlocate -y
10) Atualize as permissões do diretório /var/lib/ldap/
# chown -R ldap:ldap /var/lib/ldap/
11) Crie o arquivo /var/lib/ldap/DB_CONFIG
# vi /var/lib/ldap/DB_CONFIG
E nele copie e cole o texto abaixo:
# $OpenLDAP: pkg/ldap/servers/slapd/DB_ CONFIG,v 1.3.2.3 2007/08/31 23:13:57 quanah Exp $
# Example DB_CONFIG file for use with slapd(8) BDB/HDB databases.
#
# See Sleepycat Berkeley DB documentation
# for detail description of DB_CONFIG syntax and semantics.
#
# Hints can also be found in the OpenLDAP Software FAQ
# in particular:
# Note: most DB_CONFIG settings will take effect only upon rebuilding
# the DB environment.
# one 0.25 GB cache
set_cachesize 0 268435456 1
# Data Directory
#set_data_dir db
# Transaction Log settings
set_lg_regionmax 262144
set_lg_bsize 2097152
#set_lg_dir logs
# Note: special DB_CONFIG flags are no longer needed for "quick"
# slapadd(8) or slapindex(8) access (see their -q option).
12) habilitar TLS encryption
# vi /etc/sysconfig/ldap
Substitua
SLAPD_LDAPS=no
por
SLAPD_LDAPS=yes
13) Gerar os certificados de autenticação
# openssl req -new -x509 -nodes -out /etc/pki/tls/certs/slapdcert. pem -keyout /etc/pki/tls/certs/slapdkey. pem -days 365
A seguir lhe serão feitas algumas perguntas. Preencha os campos da seguinte forma:
Country Name (2 letter code) [XX]:br State or Province Name (full name) []:ce
Locality Name (eg, city) [Default City]:fortaleza
Organization Name (eg, company) [Default Company Ltd]:nome de sua empresa
Organizational Unit Name (eg, section) []:diretoria de ti
Common Name (eg, your name or your server's hostname) []:ti
Email Address []:seuemail@email.com.br
14) Mude as permissões do certificado
# chown -Rf root:ldap /etc/pki/tls/certs/$cert.pem; chmod -Rf 750 /etc/pki/tls/certs/$key.pem
15) testar as configurações
# slaptest -u
Deverá aparecer a mensagem “config file testing succeeded”
16) Iniciar o slapd
# /etc/init.d/slapd start
17) Verifique o status do servidor LDAP com o comando:
# /etc/init.d/slapd status
18) Criar o arquivo “base.ldif” dentro de “/etc/openldap”
# vi /etc/openldap/base.ldif
19) Copie e cole o seguinte texto:
dn: dc=empresa,dc=edu,dc=br dc: empresa
objectClass: top
objectClass: domain
dn: ou=People,dc=empresa,dc=edu, dc=br
ou: People
objectClass: top
objectClass: organizationalUnit
dn: ou=Group,dc=empresa,dc=edu,dc= br
ou: Group
objectClass: top
objectClass: organizationalUnit
20) Ao finalizar digite:
# ldapadd -x -W -D "cn=Manager,dc=empresa,dc=edu, dc=br" -f base.ldif
O comando pedirá a senha do LDAP para inserir os dados. Digite-a. A saída do comando deve ser:
adding new entry "dc=empresa,dc=edu,dc=br"
adding new entry "ou=People,dc=empresa,dc=edu, dc=br"
adding new entry "ou=Group,dc=empresa,dc=edu, dc=br"
21) digite o comando a seguir para ver como ficou!
# ldapsearch -x -b "dc=empresa,dc=edu,dc=br"
22) Criar o arquivo “groups.ldif” dentro de “/etc/openldap”
# vi /etc/openldap/groups.ldif
Insira o seguinte texto:
# criar o grupo group1 na Group
dn: cn=group1,ou=Group,dc=empresa, dc=edu,dc=br objectClass: posixGroup
objectClass: top
cn: group1
description: generic group 1
userPassword: digite_a_senha_gerada_aqui
gidNumber: 1001
# criar o grupo group2 na Group
dn: cn=group2,ou=Group,dc=empresa, dc=edu,dc=br objectClass: posixGroup
objectClass: top
cn: group2
description: generic group 2
userPassword: digite_a_senha_gerada_aqui
gidNumber: 4
23) Digite o comando:
# ldapadd -x -W -D "cn=Manager,dc=empresa,dc=edu, dc=br" -f groups.ldif
A saída do comando deve ser:
adding new entry "cn=ldapusers,ou=Group,dc= empresa,dc=edu,dc=br"
adding new entry "cn=ldapadm,ou=Group,dc= empresa,dc=edu,dc=br"
Obs: para excluir basta digitar:
# ldapdelete -x -W -D "cn=Manager,dc=empresa,dc=edu, dc=br"
"cn=group1,ou=Group,dc= empresa,dc=edu,dc=br"
# ldapdelete -x -W -D "cn=Manager,dc=empresa,dc=edu, dc=br"
"cn=group2,ou=Group,dc= empresa,dc=edu,dc=br"
24) Criar o arquivo “newpeople.ldif” dentro de “/etc/openldap”
# vi /etc/openldap/newpeople.ldif
Insira o seguinte texto:
dn: uid=group1,ou=Group,dc= empresa,dc=edu,dc=br
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: ti
uid: ti
uidNumber: 3000
gidNumber: 1001
homeDirectory: /home/ti
loginShell: /bin/bash
gecos: Ti,Analista de Sistemas,Diretoria de TI,85-12345678
userPassword: digite_a_senha_gerada_aqui
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0
25) digite o comando:
# ldapadd -x -W -D "cn=Manager,dc=empresa,dc=edu, dc=br" -f newpeople.ldif
A saída deve ser:
adding new entry "uid=blah,ou=People,dc= empresa,dc=edu,dc=br"
26) Buscas no ldap
# ldapsearch -x -b "dc=empresa,dc=edu,dc=br"
27) Instalando EPEL e PHPLDAPADMIN
# yum install -y php php-cli php-commom php-ldap
# yum --enablerepo=epel -y install phpldapadmin
# /etc/init.d/httpd restart
28) Configurar ldapadmin:
No arquivo /etc/httpd/conf.d/ phpldapadmin.conf, adicione o range de ip ou lista de ip's com permissão de acesso a pagina de administração do ldap.
Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
Alias /ldapadmin /usr/share/phpldapadmin/htdocs
<Directory /usr/share/phpldapadmin/ htdocs>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1 10.0.0.0/24 # IP address you allow
Allow from ::1
</Directory>
29) Liberar as portas 389 para o serviço slapd e 80 para o apache no iptables do servidor:
iptables -A INPUT -s 10.0.0.0/24 -p tcp -m state --state NEW -m tcp --dport 389 -j ACCEPT
iptables -A INPUT -s 10.0.0.0/24 -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
30) Acesse o navegador e digite:
Nenhum comentário:
Postar um comentário