Para a autenticação, utilizarei uma estação
CentOS 6.3 como cliente do meu OpenLDAP Server.
Vamos instalar os pacotes necessários no cliente (instale os mesmos repositórios instalados no servidor no cliente):
# yum install openldap openldap-clients nss-pam-ldapd
Inicie o serviço
nslcd, e pare o serviço
nscd:
# service nslcd start
# service nscd stop
Use o comando
authconfig-tui para as principais configurações do cliente e marque as seguintes opções:
# authconfig-tui
Marque as opções:
- Use LDAP
- Use MD5 Passwords
- Use Shadow Passwords
- Use LDAP Authentication
- Local Authorization is Sufficient
- Selecione Next
- Marque "Use TLS"
- Server: ldap://192.168.255.1
- Base DN: dc=ldap-server,dc=com
Edite o arquivo
/etc/openldap/ldap.conf, como o exemplo abaixo:
# nano /etc/openldap/ldap.conf
URI ldaps://192.168.255.1
BASE dc=ldap-server,dc=com
TLS_CACERTDIR /etc/openldap/cacerts
TLS_REQCERT allow
Edite o final do arquivo
/etc/nslcd.conf como no exemplo. Se existir a linha "ssl", nãa apague:
# nano /etc/nslcd.conf
uri ldap://192.168.255.1
base dc=ldap-server,dc=com
ssl start_tls
tls_reqcert allow
tls_cacertdir /etc/openldap/cacerts
Agora, no final do arquivo
/etc/pam_ldap.conf, se existir a linha "ssl", não apague e deixe como o exemplo abaixo:
# nano /etc/pam_ldap.conf
uri ldap://192.168.1.20
ssl start_tls
tls_reqcert allow
tls_cacertdir /etc/openldap/cacerts
pam_password md5
Faça uma cópia do arquivo
/etc/pam.d/system-auth:
# cp /etc/pam.d/system-auth /etc/pam.d/system-auth.original
Agora edite o arquivo
system-auth, e deixe igual ao exemplo abaixo:
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required pam_env.so
auth sufficient pam_unix.so try_first_pass likeauth nullok
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
account sufficient pam_ldap.so
account required pam_unix.so
password required pam_cracklib.so
difok=2 minlen=8 dcredit=2 ocredit=2 try_first_pass retry=3
password sufficient pam_unix.so try_first_pass use_authtok nullok md5 shadow
password sufficient pam_ldap.so use_authtok use_first_pass
password required pam_deny.so
session required pam_limits.so
session required pam_unix.so
session required pam_mkhomedir.so skel=/etc/skel umask=0022
session optional pam_ldap.so
Adicione o seguinte conteúdo no final do arquivo
/etc/pam.d/sshd:
session required pam_mkhomedir.so skel=/etc/skel umask=0022
Confirme se o seguinte conteúdo está dentro do arquivo
/etc/nsswitch.conf:
passwd: files ldap
shadow: files ldap
group: files ldap
netgroup: ldap
automount: files ldap
Confirme se a opção USELDAP está como "yes", em
/etc/sysconfig/authconfig:
USELDAP=yes
Coloque os serviços para serem iniciados junto ao boot e reinicie a máquina:
# chkconfig nslcd on
# chkconfig nscd on
# shutdown -r now
Agora, logue na estação cliente com seu usuário e senha do LDAP.
Pronto, seu serviço de diretórios com OpenLDAP está funcionando perfeitamente e autenticando os clientes com TLS. Para dar permissões especiais aos usuários, instale o pacote
sudo e altere conforme sua necessidade.
Obrigado.
Maycson Fonseca