Samba avec authentification sur Active Directory
De wikiGite
Tout d'abord vérifiez si les paquets suivants sont installés ou non:
krb5-libs krb5-workstation pam_krb5 samba-client nss
Ensuite il faut configurer le fichier /etc/krb5.conf comme ceci:
[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = DOMAIN.COM dns_lookup_realm = true dns_lookup_kdc = true [realms] DOMAIN.COM = { kdc = controleur.domain.com:88 admin_server = controleur.domain.com:749 default_domain = domain.com } [domain_realm] .domain.com = DOMAIN.COM domain.com = DOMAIN.COM [kdc] profile = /var/kerberos/krb5kdc/kdc.conf [appdefaults] pam = { debug = false ticket_lifetime = 36000 renew_lifetime = 36000 forwardable = true krb4_convert = false }
Les deux lignes suivantes:
dns_lookup_realm = true dns_lookup_kdc = true
indiquent qu'il faut se reposer sur la résolution DNS (enregistrements SRV) pour trouver le/les serveur(s) kerberos, mais s'il devait y avoir un soucis avec la résolution, tester ces paramètres à false : dans ce cas utiliser le fichier /etc/hosts du serveur.
Modifier la configuration samba (fichier /etc/samba/smb.conf) de la manière suivante:
- passer security à "ads" (security = ads) - donner le domaine kerberos: realm = domain.com - indiquer le serveur de mot de passe: password server = controleur - vérifier qu'il y a bien:
encrypt passwords = yes local master = no domain master = no preferred master = no dns proxy = no
- renommer pour backup le fichier secrets.tdb: mv /etc/samba/secrets.tdb /etc/samba/secrets.tdb.bak
Relancer samba:
/etc/init.d/smb restart
Maintenant il faut vérifier que le kerberos passe bien, pour se faire:
# klist klist: No credentials cache found (ticket cache FILE:/tmp/krb5cc_0) Kerberos 4 ticket cache: /tmp/tkt0 klist: You have no tickets cached
Il n'y a pas de ticket en cache, tentons d'en obtenir un:
# kinit utilisateur@DOMAIN.COM Password for utilisateur@DOMAIN.COM: # klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: utilisateur@DOMAIN.COM Valid starting Expires Service principal 03/17/09 16:35:43 03/18/09 02:35:45 krbtgt/DOMAIN.COM@DOMAIN.COM renew until 03/18/09 16:35:43 Kerberos 4 ticket cache: /tmp/tkt0 klist: You have no tickets cached
Nous avons bien un ticket kerberos v5 en cache. Détruisons le:
# kdestroy # klist
Maintenant il faut joindre la machine avec Samba au domaine:
# kinit Administrator@DOMAIN.COM [...] # net ads join -Uadministrator%password [...] # /etc/init.d/smb restart
Avec ce type de configuration il n'y a plus besoin de créer les utilisateurs avec smbpasswd, mais il faut que l'utilisateur zxiste au niveau de l'OS pour les droits du/des filesystem(s). Pour ça nous pouvons utiliser winbind. Winbind est normalement déjà installé sur les CentOS et RedHat sinon il faut installer le paquet "nss".
Ajouter ceci à smb.conf:
idmap uid = 15000-20000 idmap gid = 15000-20000 winbind enum users = yes winbind enum groups = yes template shell = /bin/bash winbind use default domain = Yes
Vérifier le fichier /etc/nsswitch.conf et éventuellement modifier les lignes suivantes:
passwd: db files winbind shadow: db files group: db files winbind hosts: files dns winbind
Relancer le démon winbind: /etc/init.d/winbind start
Il n'y a plus qu'à tester !