Integrare Linux con Active Directory: Guida Samba vs. LDAP (SSSD)
Fai autenticare gli host Linux contro il tuo dominio Windows AD. Due percorsi collaudati:
Opzione A: Samba Winbind (Classica)
Ideale per server file/stampa che servono anche client Windows via SMB.
- Installa:
sudo apt install samba winbind krb5-user(Debian/Ubuntu) odnf install samba-winbind krb5-workstation(RHEL). - Kerberos (/etc/krb5.conf):
[libdefaults] default_realm = CORP.EXAMPLE.COM dns_lookup_realm = true dns_lookup_kdc = true - SMB.conf (/etc/samba/smb.conf):
[global] workgroup = CORP realm = CORP.EXAMPLE.COM security = ads dedicated keytab file = /etc/krb5.keytab kerberos method = secrets and keytab winbind use default domain = yes winbind enum users = yes winbind enum groups = yes idmap config * : backend = tdb idmap config * : range = 10000-20000 idmap config CORP : backend = rid idmap config CORP : range = 1000000-2000000 template shell = /bin/bash template homedir = /home/%U - Unisciti al dominio:
sudo net ads join -U administrator sudo systemctl enable --now winbind smbd nmbd - Test:
wbinfo -u; getent passwd administrator.
Opzione B: SSSD + LDAP (Moderna, Consigliata)
Più leggera, migliore caching, funziona con sudo, chiavi SSH e HBAC.
- Installa:
sudo apt install sssd-ad sssd-tools realmd adcli krb5-user. - Scopri e unisciti:
sudo realm discover corp.example.com sudo realm join -U administrator corp.example.com - SSSD auto-configura (/etc/sssd/sssd.conf) con:
[domain/corp.example.com] ad_domain = corp.example.com krb5_realm = CORP.EXAMPLE.COM realmd_tags = manages-system joined-with-adcli cache_credentials = True id_provider = ad krb5_store_password_if_offline = True default_shell = /bin/bash fallback_homedir = /home/%u@%d use_fully_qualified_names = False - Abilita:
sudo systemctl enable --now sssd. - Test:
id user@corp.example.com; ssh user@linux-host.
Rafforzamento Comune
- Limita SSH:
AllowGroups "Domain Admins" "LinuxAdmins"insshd_config. - Sudo:
%Domain\ Admins ALL=(ALL) ALLin/etc/sudoers.d/ad-admins. - HBAC (SSSD):
ad_access_filter = (memberOf=CN=LinuxAccess,OU=Groups,DC=corp,DC=example,DC=com). - Sincronizzazione oraria:
chronydcon controller di dominio (critico per Kerberos).
Scegli Samba se ti serve condivisione file SMB; scegli SSSD per autenticazione/identità pura. Entrambi coesistono.