A integração do LDAP com outros serviços e aplicações permite centralizar a autenticação e o gerenciamento de usuários em uma rede. Nesta aula, vamos explorar como integrar o LDAP com diversos serviços e aplicações no Linux, como SSH, Samba e servidores de e-mail.
Integração do LDAP com SSH
Configuração do LDAP Client
Para que um sistema Linux autentique usuários através do LDAP, é necessário instalar e configurar o cliente LDAP.
Para distribuições baseadas em Debian (como Ubuntu):
$ sudo apt install libnss-ldap libpam-ldap ldap-utils
Para distribuições baseadas em Red Hat (como CentOS):
$ sudo yum install nss-pam-ldapd
Configuração do NSS
Edite o arquivo /etc/nsswitch.conf
para adicionar LDAP à lista de fontes de informações de usuários e grupos:
$ sudo nano /etc/nsswitch.conf
Adicione ou modifique as linhas:
passwd: files ldap
group: files ldap
shadow: files ldap
Configuração do PAM
Edite os arquivos de configuração do PAM para incluir LDAP. No Debian, configure /etc/pam.d/common-auth
, /etc/pam.d/common-account
, e /etc/pam.d/common-session
.
Para autenticação:
$ sudo nano /etc/pam.d/common-auth
Adicione a linha:
auth sufficient pam_ldap.so
Para a conta:
$ sudo nano /etc/pam.d/common-account
Adicione a linha:
account sufficient pam_ldap.so
Para a sessão:
$ sudo nano /etc/pam.d/common-session
Adicione a linha:
session sufficient pam_ldap.so
Configuração do SSH
Edite o arquivo de configuração do SSH /etc/ssh/sshd_config
para permitir a autenticação de usuários LDAP:
$ sudo nano /etc/ssh/sshd_config
Certifique-se de que as seguintes linhas estão configuradas:
UsePAM yes
Reinicie o serviço SSH:
$ sudo systemctl restart sshd
Integração do LDAP com Samba
Configuração do Samba para LDAP
Edite o arquivo de configuração do Samba /etc/samba/smb.conf
para integrar com o LDAP:
$ sudo nano /etc/samba/smb.conf
Adicione a seguinte configuração:
[global]
workgroup = WORKGROUP
security = user
passdb backend = ldapsam:ldap://localhost
ldap admin dn = cn=admin,dc=meusite,dc=com
ldap group suffix = ou=groups
ldap machine suffix = ou=machines
ldap suffix = dc=meusite,dc=com
ldap user suffix = ou=users
ldap passwd sync = yes
[Share]
path = /srv/samba/share
browsable = yes
writable = yes
guest ok = yes
read only = no
Configuração do LDAP para Samba
Adicione o esquema do Samba ao LDAP:
$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/samba.ldif
Adicione o usuário Samba ao LDAP:
- Crie um arquivo LDIF para o usuário Samba:
$ sudo nano samba.ldif
Adicione o seguinte conteúdo:
dn: uid=sambausuario,ou=users,dc=meusite,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: sambaSamAccount
cn: Samba User
sn: User
uid: sambausuario
uidNumber: 10001
gidNumber: 10001
homeDirectory: /home/sambausuario
loginShell: /bin/bash
sambaSID: S-1-5-21-XXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXX-1000
sambaNTPassword: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
sambaPwdLastSet: 2147483647
sambaAcctFlags: [U ]
- Adicione o usuário ao LDAP:
$ sudo ldapadd -x -D cn=admin,dc=meusite,dc=com -W -f samba.ldif
- Adicione a senha do usuário Samba:
$ sudo smbpasswd -a sambausuario
Reinicie o Samba:
$ sudo systemctl restart smbd
$ sudo systemctl restart nmbd
Integração do LDAP com Servidores de E-mail
Configuração do Postfix para LDAP
Edite o arquivo de configuração do Postfix /etc/postfix/main.cf
para integrar com o LDAP:
$ sudo nano /etc/postfix/main.cf
Adicione a seguinte configuração:
virtual_alias_maps = ldap:/etc/postfix/ldap-aliases.cf
Crie o arquivo /etc/postfix/ldap-aliases.cf
:
$ sudo nano /etc/postfix/ldap-aliases.cf
Adicione a seguinte configuração:
server_host = ldap://localhost
bind = yes
bind_dn = cn=admin,dc=meusite,dc=com
bind_pw = sua_senha_admin
search_base = ou=users,dc=meusite,dc=com
query_filter = (mail=%s)
result_attribute = mail
version = 3
Configuração do Dovecot para LDAP
Edite o arquivo de configuração do Dovecot /etc/dovecot/dovecot.conf
para integrar com o LDAP:
$ sudo nano /etc/dovecot/dovecot.conf
Adicione a seguinte configuração:
auth_mechanisms = plain login
passdb {
driver = ldap
args = /etc/dovecot/dovecot-ldap.conf.ext
}
userdb {
driver = ldap
args = /etc/dovecot/dovecot-ldap.conf.ext
}
Crie o arquivo /etc/dovecot/dovecot-ldap.conf.ext
:
$ sudo nano /etc/dovecot/dovecot-ldap.conf.ext
Adicione a seguinte configuração:
hosts = localhost
dn = cn=admin,dc=meusite,dc=com
dnpass = sua_senha_admin
base = ou=users,dc=meusite,dc=com
user_attrs = uid=user=%u
user_filter = (&(objectClass=posixAccount)(uid=%u))
pass_filter = (&(objectClass=posixAccount)(uid=%u))
Reinicie o Postfix e o Dovecot:
$ sudo systemctl restart postfix
$ sudo systemctl restart dovecot
Monitoramento e Logs
Verifique os logs para monitorar a atividade dos serviços integrados com o LDAP. Os logs geralmente estão localizados em:
/var/log/auth.log
(Debian) ou/var/log/secure
(Red Hat) para autenticação SSH./var/log/samba/log.smbd
para Samba./var/log/mail.log
(Debian) ou/var/log/maillog
(Red Hat) para Postfix e Dovecot.
Exemplos Práticos
Exemplo 1: Integrando o LDAP com SSH
- Instale os pacotes necessários:
$ sudo apt install libnss-ldap libpam-ldap ldap-utils # Debian
$ sudo yum install nss-pam-ldapd # Red Hat
- Configure o
nsswitch.conf
:
$ sudo nano /etc/nsswitch.conf
# Adicione ou modifique as linhas:
passwd: files ldap
group: files ldap
shadow: files ldap
- Configure o PAM:
$ sudo nano /etc/pam.d/common-auth # Debian
# Adicione a linha:
auth sufficient pam_ldap.so
$ sudo nano /etc/pam.d/common-account # Debian
# Adicione a linha:
account sufficient pam_ldap.so
$ sudo nano /etc/pam.d/common-session # Debian
# Adicione a linha:
session sufficient pam_ldap.so
- Configure o SSH:
$ sudo nano /etc/ssh/sshd_config
# Certifique-se de que as seguintes linhas estão configuradas:
UsePAM yes
$ sudo systemctl restart sshd
Exemplo 2: Integrando o LDAP com Samba
- Configure o Samba:
$ sudo nano /etc/samba/smb.conf
# Adicione a seguinte configuração:
[global]
workgroup = WORKGROUP security = user passdb backend = ldapsam:ldap://localhost ldap admin dn = cn=admin,dc=meusite,dc=com ldap group suffix = ou=groups ldap machine suffix = ou=machines ldap suffix = dc=meusite,dc=com ldap user suffix = ou=users ldap passwd sync = yes [Share] path = /srv/samba/share browsable = yes writable = yes guest ok = yes read only = no
- Adicione o esquema do Samba ao LDAP:
$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/samba.ldif
- Adicione o usuário Samba ao LDAP:
$ sudo nano samba.ldif
# Adicione o seguinte conteúdo:
dn: uid=sambausuario,ou=users,dc=meusite,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: sambaSamAccount
cn: Samba User
sn: User
uid: sambausuario
uidNumber: 10001
gidNumber: 10001
homeDirectory: /home/sambausuario
loginShell: /bin/bash
sambaSID: S-1-5-21-XXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXX-1000
sambaNTPassword: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
sambaPwdLastSet: 2147483647
sambaAcctFlags: [U ]
$ sudo ldapadd -x -D cn=admin,dc=meusite,dc=com -W -f samba.ldif
$ sudo smbpasswd -a sambausuario
- Reinicie o Samba:
$ sudo systemctl restart smbd
$ sudo systemctl restart nmbd
Integrar o LDAP com outros serviços e aplicações no Linux é uma habilidade essencial para administradores de sistemas, permitindo a centralização da autenticação e do gerenciamento de usuários. Nesta aula, exploramos como integrar o LDAP com SSH, Samba e servidores de e-mail. Pratique essas técnicas para ganhar confiança na administração de redes e sistemas integrados com LDAP.
Sou um profissional na área de Tecnologia da informação, especializado em monitoramento de ambientes, Sysadmin e na cultura DevOps. Possuo certificações de Segurança, AWS e Zabbix.