Debian   Intégration d'un serveur Debian dans un domaine AD   Microsoft

[v0.4 - 5 mars 2010 - 14H55]

INSTALLATION DES PAQUETS
On pré-suppose que l'installation de base du serveur Debian est effectuée.

# apt-get install samba winbind krb5-user ntpdate

Domaine : AC-NANTES.JUSTICE.FR

' On vérifie que le fichier "/etc/hosts" contient le nom totalement qualifié (FQDN) et on rajoute (pour optimiser les performances) les contrôleurs de domaine.
# nano /etc/hosts
127.0.0.1	localhost
10.21.2.199	morpheus.ac-nantes.justice.fr morpheus sces1-ac-nantes sces1-ac-nantes.ac-nantes.justice.fr
10.21.0.213	dc1-ac-nantes.ac-nantes.justice.fr dc1-ac-nantes
10.21.0.212	mail1-ac-nantes.ac-nantes.justice.fr mail1-ac-nantes
[...]

' On paramètre le client NTP (Kerberos nécessite un réglage optimal de l'heure : moins de 5 minutes d'écart entre le serveur Debian et le contrôleur de domaine).
# nano /etc/default/ntpdate
[...]
NTPSERVERS="ntp.justice.gouv.fr"
[...]
NTPOPTIONS="-u"
[...]
# /etc/network/if-up.d/ntpdate
CONFIGURATION DE KERBEROS
Pour info, il existe d'autres paramètres qui ne figurent pas dans ce fichier minimaliste.

# nano /etc/krb5.conf

[libdefaults]
        default_realm = AC-NANTES.JUSTICE.FR
        kdc_timesync = 1
        ccache_type = 4
        forwardable = true
        proxiable = true
TEST DE KERBEROS
Cette phase n'est pas nécessaire (les tickets seront demandés en cas de besoin) mais permet de vérifier que Kerberos est opérationnel.

' On demande un TGT (Ticket-Granting Ticket).
# kinit adminces-dc
Password for adminces-dc@AC-NANTES.JUSTICE.FR:
' On vérifie la validité du ticket.
# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: adminces-dc@AC-NANTES.JUSTICE.FR

Valid starting     Expires            Service principal
03/05/10 14:46:42  03/06/10 00:46:51  krbtgt/AC-NANTES.JUSTICE.FR@AC-NANTES.JUSTICE.FR
	renew until 03/06/10 14:46:42
CONFIGURATION DE SAMBA
Là encore, il existe d'autres paramètres pour Samba (on se limite ici à nos besoins).

# nano /etc/samba/smb.conf

[global]
        workgroup = AC-NANTES
        realm = AC-NANTES.JUSTICE.FR
        server string = Serveur Debian %h
        security = ADS
        log file = /var/log/samba/log.%m
        max log size = 1000
        syslog = 0
        display charset = UTF8
        panic action = /usr/share/samba/panic-action %d
        encrypt passwords = true
        obey pam restrictions = yes
        socket options = TCP_NODELAY IPTOS_THROUGHPUT SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192
        idmap uid = 10000-20000
        idmap gid = 10000-20000
        template shell = /bin/bash
        template homedir = /data/%D/%U
        winbind enum groups = yes
        winbind enum users = yes
	password server = DC1-AC-NANTES, MAIL1-AC-NANTES, *
	deadtime = 30

[homes]
        comment = Répertoires personnels [P]
        valid users = "@AC\USERSDSED", "@AC-NANTES\SDSED-NANTES"
	read only = no
        create mask = 0775
        directory mask = 0775

' On redémarre le service.
# /etc/init.d/samba restart
AJOUT DU SERVEUR DANS LE DOMAINE # net ads join -U adminces-dc
Enter adminces-dc's password:
Using short domain name -- AC-NANTES
Joined 'MORPHEUS' to realm 'ac-nantes.justice.fr'
DNS update failed!
CONFIGURATION DE L'AUTHENTIFICATION
Le fichier "/etc/nsswitch.conf" sert à la configuration des bases de données systèmes et des services de noms (il définit l'ordre de recherche).

# nano /etc/nsswitch.conf

passwd:         compat winbind
group:          compat winbind
shadow:         compat

hosts:          files dns
networks:       files

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

netgroup:       nis
CONFIGURATION DE PAM [Pluggable Authentication Modules]
Pour obtenir un peu plus de détails sur PAM, on peut aller à cette adresse http://fr.wikipedia.org/wiki/Pluggable_authentication_module.

# nano /etc/pam.d/common-account

account sufficient      pam_unix.so
account sufficient      pam_winbind.so
# nano /etc/pam.d/common-auth
auth    sufficient      pam_unix.so nullok_secure
auth    sufficient      pam_winbind.so use_first_pass
# nano /etc/pam.d/common-session
session required        pam_unix.so
session required        pam_mkhomedir.so umask=0022 skel=/etc/skel ' Permet de créer, à la volée, les répertoires utilisateurs.
FINALISATION DE L'INSTALLATION
' On redémarre le service 'winbind'.
# /etc/init.d/winbind restart
TEST FINAL
A cet instant, le serveur Debian est inclus dans le domaine AD. On doit donc pouvoir lister les groupes et utilisateurs du domaine.

' Liste des utilisateurs [locaux et du domaine].
# wbinfo -u
[...]
AC-NANTES\olivier.laupretre
AC-NANTES\david.bercot
[...]
' Liste des groupes [locaux et du domaine].
# wbinfo -g
[...]
AC-NANTES\liste.ces
AC-NANTES\utilisa. du domaine
[...]

Puis, on se connecte via un compte du domaine [dans cet article, le compte 'root' est le seul compte local et on doit donc passer par un compte transitoire pour vérifier l'authentification].

# su AC-NANTES\\olivier.laupretre

Creating directory '/home/AC-NANTES/olivier.laupretre'.
$ su AC-NANTES\\david.bercot
Mot de passe :
Creating directory '/home/AC-NANTES/david.bercot'.

' Test Samba.
$ smbclient //10.21.2.198/david.bercot -U ac-nantes/david.bercot
Enter ac-nantes/david.bercot's password:
Domain=[AC-NANTES] OS=[Unix] Server=[Samba 3.4.5]
smb: \>

Enfin, il ne reste plus qu'à essayer de se connecter à partir d'un poste client Windows !