Samba OpenLDAP su Etch: Configurazione autenticazioni UNIX

Da Guide@Debianizzati.Org.

Samba e OpenLDAP: creare un controller di dominio con Debian Etch

Sommario

  1. Introduzione e prerequisiti
  2. Installazione del server LDAP
  3. Installazione di Samba
  4. Configurazione del server LDAP
  5. Configurazione dei client per LDAP
  6. Configurazione di Samba
  7. Configurazione delle autenticazioni UNIX
  8. Aggiungere i primi utenti di dominio
  9. Creazione di un semplice script da eseguire al login di Windows
  10. Test e connessione al dominio
  11. Unire un server Samba al domino
  12. Backup e restore del database LDAP
  13. Interfacce web alternative per OpenLDAP
  14. Comandi utili e consigli finali

Indice

Configurazione delle autenticazioni Unix

A questo punto occorre configurare il nostro server affinchè veda gli utenti LDAP come normali utenti unix di sistema.

Installazione del demone name service caching daemon (nscd)

Poichè il nostro server LDAP sarà consultato in maniera continuativa, potrebbe essere una buona idea installare un servizio di cache per alcuni dati degli utenti. In questo modo i dati contenuti in cache saranno forniti senza eseguire un accesso al database LDAP, velocizzando di conseguenza i tempi di risposta del server. Il demone nscd (name service caching daemon) esegue esattamente questa cosa:

# apt-get install nscd

La configurazione di default è più che sufficiente per i nostri scopi.
Questo potrebbe inoltre essere un buon momento per riavviare il demone di Samba:

# /etc/init.d/samba restart

Installazione di libnss-ldap

Per prima cosa installeremo il pacchetto libnss-ldap, con il classico comando:

apt-get install libnss-ldap

Non preoccupatevi delle domande che vi vengono poste durante l'installazione. Non appena terminata, infatti, andremo a riconfigurare il pacchetto con il comando:

# dpkg-reconfigure libnss-ldap

Rispondete in questo modo alle domande che vi vengono poste dall'installer:

A questo punto bisogna modificare il file /etc/nsswitch.conf cambiando le tre linee

passwd: compat
group: compat
shadow: compat

con

passwd: compat ldap
group: compat ldap
shadow: compat ldap

Il contenuto del file dovrebbe essere il seguente:
/etc/nsswitch.conf

# /etc/nsswitch.conf
##
Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat ldap
group: compat ldap
shadow: compat ldap
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis

Per verificare la correttezza delle modifiche eseguite il comando

getent group

Il risultato dovrebbe elencarvi sia gli utenti locali unix sia gli utenti e i gruppi creati in LDAP.

A causa di un bug documentato (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=375077) e a cui il team di sviluppo di Debian ha fornito una soluzione parziale (è stato eliminato il problema, ma non i messaggi d'errore generati al boot) è possibile che al reboot compaiano messaggi di errore simili ai seguenti:

...
udevd[1350]: nss_ldap: could not connect to any LDAP server as cn=admin,dc=home,dc=tld - Can't contact LDAP server
udevd[1350]: nss_ldap: failed to bind to LDAP server ldap://127.0.0.1: Can't contact LDAP server
udevd[1350]: nss_ldap: could not search LDAP server - Server is unavailable
udevd[1350]: lookup_user: error resolving user 'tss': Illegal seek 
...

Una possibile via per eludere il problema è quella di aggiungere a mano gli utenti di sistema mancanti:

addgroup --system tss
addgroup --system kvm
addgroup --system rdma
addgroup --system fuse
addgroup --system scanner
addgroup --system nvram
adduser --system tss

Installazione di libpam-ldap

L'installazione del pacchetto libpam-ldap viene eseguita allo stesso modo di quella precedente:

# apt-get install libpam-ldap
# dpkg-reconfigure libpam-ldap

rispondendo in questo modo alle domande poste dall'installer:

Ora è necessario andare a modificare i quattro files che gestiscono la configurazione di pam per LDAP in modo che il loro contenuto sia:

/etc/pam.d/common-account

#
#/etc/pam.d/common-account - authorization settings common to all services
##
This file is included from other service-specific PAM config files,
# and should contain a list of the authorization modules that define
# the central access policy for use on the system. The default is to
# only deny service to users whose accounts are expired in /etc/shadow.
#
#account required pam_unix.so
account sufficient pam_ldap.so
account required pam_unix.so try_first_pass


/etc/pam.d/common-auth

#
# /etc/pam.d/common-auth - authentication settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the
# traditional Unix authentication mechanisms.
#
#auth required pam_unix.so nullok_secure
auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure use_first_pass


/etc/pam.d/common-password

# /etc/pam.d/common-password - password-related modules common to all services
##
This file is included from other service-specific PAM config files,
# and should contain a list of modules that define the services to be
#used to change user passwords. The default is pam_unix
# The "nullok" option allows users to change an empty password, else
# empty passwords are treated as locked accounts.
#
# (Add `md5' after the module name to enable MD5 passwords)
#
# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in
# login.defs. Also the "min" and "max" options enforce the length of the
# new password.
#password required pam_unix.so nullok obscure min=4 max=8 md5
# Alternate strength checking for password. Note that this
# requires the libpam-cracklib package to be installed.
# You will need to comment out the password line above and
# uncomment the next two in order to use this.
# (Replaces the `OBSCURE_CHECKS_ENAB', `CRACKLIB_DICTPATH')
#
# password required pam_cracklib.so retry=3 minlen=6 difok=3
# password required pam_unix.so use_authtok nullok md5
password sufficient pam_ldap.so
password required pam_unix.so nullok obscure min=4 max=8 md5 use_first_pass


/etc/pam.d/common-session

session    sufficient      pam_ldap.so
session    required        pam_unix.so

Assegnazione dei permessi agli utenti di dominio

Affinchè le directory dei profili e altre cosette funzionino senza intoppi è necessario assegnare i giusti permessi agli utenti di dominio:

net -S DEBIAN -U Administrator rpc rights grant "DOMAIN\Domain Admins" 
\SeMachineAccountPrivilege SePrintOperatorPrivilege SeAddUsersPrivilege 
\SeDiskOperatorPrivilege SeRemoteShutdownPrivilege
net -S DEBIAN -U Administrator rpc rights grant "DOMAIN\Print Operators" \SePrintOperatorPrivilege

dove DEBIAN è il nome Samba assegnato al server.

Strumenti personali
Namespace
Varianti
Azioni
Navigazione
Risorse
Strumenti