Pular para o conteúdo
Início » Aprendendo Linux – Parte 20: Integração do LDAP com Outros Serviços e Aplicações

Aprendendo Linux – Parte 20: Integração do LDAP com Outros Serviços e Aplicações

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:

  1. 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          ]
  1. Adicione o usuário ao LDAP:
$ sudo ldapadd -x -D cn=admin,dc=meusite,dc=com -W -f samba.ldif
  1. 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
  1. Instale os pacotes necessários:
$ sudo apt install libnss-ldap libpam-ldap ldap-utils  # Debian
$ sudo yum install nss-pam-ldapd  # Red Hat
  1. Configure o nsswitch.conf:
$ sudo nano /etc/nsswitch.conf

# Adicione ou modifique as linhas:
passwd:     files ldap
group:      files ldap
shadow:     files ldap
  1. 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
  1. 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
  1. 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

  1. Adicione o esquema do Samba ao LDAP:
$ sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/samba.ldif
  1. 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
  1. 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.