This is an old revision of the document!
Table of Contents
PAM e winbind
NOTA BENE: In Debian 9 e 10 installando Samba 4 e Winbind l'integrazione in PAM è DI DEFAULT. Potete controllare se in effetti è impostata di default oppure no usando il comando pam-auth-update
.
Questo documento è obsoleto!
Lo scopo di questa configurazione e` permettere a un utente del dominio Active Directory di fare login in shell su una macchina Linux (che sia lo stesso DC o un qualsiasi server membro del dominio).
Questa configurazione e` una mezza porcata, sappiatelo.
In questa configurazione uso Samba 4.2 scaricato da Sernet installata su una Debian 7. Probabilmente se usassi Samba 4.1 di Debian (magari su un member server) la cosa sarebbe piu` semplice, perche` c'e` una migliore integrazione dei vari componenti in Debian rispetto ai pacchetti Samba di Sernet. Tuttavia, questa era la configurazione che mi serviva e quindi procediamo con questa. L'installazione della integrazione di PAM in questo caso e` fatta sulla macchina stessa che ospita il Domain Contoller Samba4.
Installazione
- Installare i pacchetti
libnss-winbind libpam-winbind
- Prima di tutto, assicurarsi di avere in
/etc/nsswitch.conf
questa configurazione:
passwd: compat winbind group: compat winbind
- Poi, creare il file
/usr/share/pam-configs/winbind
(o un altro nome a vostra scelta). Considerate che questo file e` specifico per Debian. E` un modo comodo per configurare PAM in Debian, ma non va bene su altre distribuzioni. Il contenuto del file e` questo:
Name: Winbind NT/Active Directory authentication Default: yes Priority: 192 Auth-Type: Primary Auth: [success=end default=ignore] pam_winbind.so try_first_pass Auth-Initial: [success=end default=ignore] pam_winbind.so Account-Type: Primary Account: [success=end new_authtok_reqd=done default=ignore] pam_winbind.so Password-Type: Primary Password: [success=end default=ignore] pam_winbind.so use_authtok try_first_pass Password-Initial: [success=end default=ignore] pam_winbind.so Session-Type: Additional Session: optional pam_winbind.so
- Poi, modificare
smb.conf
aggiungendo queste righe (l'unica VERAMENTE necessaria e` "template shell"):
# login su Linux via Samba template shell = /bin/bash template homedir = /home/%D/%U winbind enum groups = yes winbind enum users = yes
- Eseguire il comando
pam-auth-update
e nel menu` abilitare l'autenticazione con il file che abbiamo appena creato (winbind in questo caso)
- Per finire, riavviare Samba
Test
Ora si puo` provare a fare login via ssh con un utente del dominio, cosi`:
ssh dominio\\utente@localhost
Dovrebbe essere possibile accedere in ssh correttamente, pero` la home directory (/home/NOME_DOMINIO/utente) non esiste e non viene automaticamente creata, quindi occorre crearla manualmente e dargli i permessi giusti. Forse in futuro faro` una configurazione per auto-crearla, per ora non mi serve.
Anomalie
Ci sono alcune anomalie che non mi tornano.
- Prima di tutto, in questa configurazione dovrebbe essere obbligatorio usare la sintassi dominio\\utente per il login, e invece e` possibile anche fare login come "utente" senza specificare il dominio. Dato che in Samba l'opzione
winbind use default domain
e` impostata a "no", questo non dovrebbe succedere.
- Poi, usando il comando getent_passwd} dovrei poter vedere elencati tutti gli utenti di Samba oltre a quelli di Linux, ma questo non succede, nonostante in samba sia impostata l'opzione winbind_enum_users_yes}. Lo stesso vale per
getent group
.