Linux peut être vu comme un formidable outil que ce soit en serveur ou en bureautique. Néanmoins l’intégration dans un parc existant, bien souvent avec des contrôleurs de domaine Windows ou samba, n’est pas forcément évidente nativement.
Nous allons étudier ici la mise en place de l’authentification samba sous Linux (Ubuntu/Debian)
Installez tout d’abord les paquets suivants:
apt-get install krb5-user samba winbind libpam-winbind libnss-winbind
On va tout d’abord configurer le domaine kerberos. Ouvrez le fichier /etc/krb5.conf et référencez votre domaine et vos contrôleurs de domaine.
[libdefaults]
default_realm = UNIX-EXPERIENCE.FR
dns_lookup_realm = true
dns_lookup_kdc = true
[realms]
UNIX-EXPERIENCE.FR = {
kdc = ad1.unix-experience.fr:88
kdc = ad2.unix-experience.fr:88
admin_server = ad1.unix-experience.fr
default_domain = unix-experience.fr
}
unix-experience.fr = {
kdc = ad1.unix-experience.fr:88
kdc = ad2.unix-experience.fr:88
admin_server = ad1.unix-experience.fr
default_domain = unix-experience.fr
}
[domain_realm]
.unix-experience.fr = UNIX-EXPERIENCE.FR
unix-experience.fr = UNIX-EXPERIENCE.FR
[login]
krb4_convert = true
krb4_get_tickets = false
On va maintenant configurer notre service samba local afin de se relier à notre domaine kerberos. Editez le fichier /etc/samba/smb.conf:
[global]
workgroup = UNIX-EXPERIENCE
security = ads
realm = unix-experience.fr
password server = unix-experience.fr
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
winbind use default domain = yes
domain master = no
local master = no
preferred master = no
template shell = /bin/bash
template homedir = /home/%U
Lancez maintenant votre service samba et puis activez le au démarrage
service samba start
Pam permet l’authentification. L’installeur Debian/Ubuntu a déjà préconfiguré les modules PAM pour utiliser winbind. Il reste néanmoins quelques fichiers à modifier. Modifiez tout d’abord le fichier /etc/nsswitch.conf pour ajouter l’authentification winbind:
passwd: files winbind
group: files winbind
shadow: files winbind
hosts: files myhostname mdns4_minimal [NOTFOUND=return] dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
Il faut activer le module pam_mkhomedir qui va créer le répertoire home automatiquement à partir d’un squelette, auquel cas il sera impossible de se loguer avec ces comptes dynamiques. Modifiez le fichier pam common-session (/etc/pam.d/common-session) en ajoutant la ligne suivante après le pam_winbind.so
session optional pam_mkhomedir.so umask=0022 skel=/etc/skel
Vous devriez avoir un fichier de configuration avec le contenu suivant:
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session optional pam_umask.so
session required pam_unix.so
session optional pam_winbind.so
session optional pam_mkhomedir.so umask=0022 skel=/etc/skel
session optional pam_systemd.so
S’enregistrer sur le domaine Pour finir, il faut s’enregistrer sur le domaine. Utilisez de préférence un compte de service dédié à cette tâche.
/usr/bin/net ads join -U ADJoinAccount%"myPassw0rd"
Et enfin lancez winbind:
service winbind start
Si tout est correctement configuré la commande wbinfo -u devrait retourner l’ensemble des utilisateurs de l’annuaire.
Lorsque vous redémarrerez votre machine ne sera pas connectée au domaine. Il faut préparer un script de démarrage qui va joindre le domaine et redémarrer winbind. Voici un script à executer en dernier (ou avant votre interface graphique) qui va s’occuper de joindre votre domaine au démarrage (et éventuellement en tâche planifiée).
/usr/bin/net ads join -U ADJoinAccount%"myPassw0rd"
while [ $? != 0 ];
do
sleep 2
/usr/bin/net ads join -U ADJoinAccount%"myPassw0rd"
done
service winbind restart
sleep 1;
wbinfo -u > /dev/null