4.8. Configuration de l'authentification sur Nuauth

4.8.1. Authentification PAM

PAM permet simplement d'étendre les méthodes d'authentification à des annuaires "exotiques". Par exemple, PAM vous permet d'interfacer nuauth avec un domaine NT, Active Directory, Radius, etc.

Pour réaliser l'authentification utilisasteur en s'appuyant sur PAM, vous devez paramétrer nuauth.conf (pour la 1.0):

nuauth_user_check_module="system"

En complément, il faut configurer correctement PAM. Ce point ne fait pas directement partie des objectifs de ce document. Voici quelques exemples de fichiers de configuration PAM basé sur la distribution GNU/Debian afin de permettre à nuauth d'utiliser l'authentification PAM : /etc/pam.d/nuauth :

#This is to set PAM-LDAP, modify to suit your needs!
  auth    required      /lib/security/pam_env.so
  auth    sufficient    /lib/security/pam_ldap.so
  auth    required      /lib/security/pam_deny.so

  account required      /lib/security/pam_ldap.so

  session required      /lib/security/pam_limits.so
  session optional      /lib/security/pam_ldap.so
Le fichier /etc/nsswitch.conf doit également être adapté :
#This is to set PAM-LDAP, modify to suit your needs!
  passwd:         compat ldap
  group:          compat ldap
  
(ne modifiez pas les autres lignes). Vous souhaiterez également adapter la configuration du fichier /etc/pam_ldap.conf. Ce fichier fonctionne correctement chez nous, à condition qu'il n'y ait pas de ligne commençant par "uri" :

  host 127.0.0.1
  ldap_version 3
  scope one
  pam_password crypt
  nss_base_passwd         ou=Users,dc=nufw,dc=org?one
  nss_base_group          ou=Group,dc=nufw,dc=org?one
  
Vous devrez également installer et configurer libnss-ldap. La configuration suivante fonctionne pour nous (toujours sous Debian) :

  host 127.0.0.1
  base replace_with_your_base
  ldap_version 3
  rootbinddn cn=admin,dc=replace_with_your_base
  #Optional, set if you need these :
  nss_base_passwd ou=users,dc=replace_with_your_base?one
  nss_base_group ou=groups,dc=replace_with_your_base?one
  
Bien entendu, vous devez adapter ce qui précède à vos besoins propres. Souvenez-vous que ces directives ne sont peut-être pas adaptées à d'autres distribution que GNU/Debian!

4.8.2. Authentification sur PAM/Winbind

Sur Debian/Ubuntu, vous aurez besoin des paquets suivants :


    krb5-user
    krb4-config
    samba
    winbind
   

le fichier /etc/krb5.conf doit contenir quelque chose du genre :


[libdefaults]
        default_realm = DOMAIN.NAME
# The following krb5.conf variables are only for MIT Kerberos.
        krb4_config = /etc/krb.conf
        krb4_realms = /etc/krb.realms
        kdc_timesync = 1
        ccache_type = 4
        forwardable = true
        proxiable = true

[realms]
        DOMAIN.NAME = {
                kdc = 10.0.122.5
                admin_server = 10.0.122.5
                default_domain = DOMAIN.NAME
        }

[domain_realm]
        .domain.name = DOMAIN.NAME
        domain.name = DOMAIN.NAME
        shortname = DOMAIN.NAME
        .shortname = DOMAIN.NAME
   

Le fichier /etc/nsswitch doit ressembler à :


passwd:         compat winbind
group:          compat winbind
shadow:         compat

hosts:          files dns mdns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis
   

Il est très important de synchroniser l'heure du système avec les serveurs Active Directory. On peut utiliser ntp pour se faire.

Le fichier /etc/samba/smb.conf doit aussi être modifié:


[global]
# Change this to the workgroup/NT-domain name your Samba server will part of
   realm = DOMAIN.NAME
   password server = AD-SERVER
   netbios name = NUAUTH-SERVER
   workgroup = SHORTNAME

# server string is the equivalent of the NT Description field
   server string = %h server sexa-prn1 (Samba, Ubuntu)

####### Authentication #######

   security = ads
   encrypt passwords = true
   guest account = nobody

############ Misc ############

   socket options = TCP_NODELAY
   domain master = no

# Some defaults for winbind (make sure you're not using the ranges
# for something else.)
   idmap uid = 10000-20000
   idmap gid = 10000-20000
   template shell = /bin/bash

   template homedir = /home/%D/%U
   client use spnego = yes
   client ntlmv2 auth = yes
   restrict anonymous = 2
   

Pour joindre le Domaine Windows, on peut utiliser:


kinit administrator@DOMAIN.NAME

net ads join -U administrator
La dernière commande devrait afficher le nom court du domaine et indiquer que l'inscription s'est bien passée.

Winbind (ou winbindd) devrait tourner sur votre système. On peut vérifier le bon fonctionnement dans les journaux samba (probablement dans /var/log/samba/*).

4.8.3. Authentification LDAP

C'est relativement limpide à réaliser : le gros du travail doit être effectué dans le fichier nuauth.conf (les différentes options sont documentées dans le fichier lui-même). Souvenez-vous qu'utiliser une authentification directe sur un LDAP vous obligera à utiliser un schéma LDAP spécifique à NuFW ce qui pourrait se révéler bloquant pour vous. Dans ce cas, envisagez sérieusement l'utilisation de PAM comme décrit ci-dessus.