Differences between revisions 5 and 6
Revision 5 as of 2016-12-16 17:02:35
Size: 3533
Editor: Kurgan
Comment:
Revision 6 as of 2020-04-29 10:59:06
Size: 3788
Editor: Kurgan
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:


'''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!'''

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.

Samba4/PAM-Winbind (last edited 2020-04-29 10:59:06 by Kurgan)