Nous allons d’abord modifier le serveur : nous allons installer « Samba » qui agira comme un contrôleur de domaine Active Directory.
Configuration de Samba sur le serveur
sudo aptitude install samba libpam-smbpass
Cette commande va installer et importer tous les comptes utilisateurs à utiliser avec Samba. De plus, les nouveaux utilisateurs seront automatiquement synchronisés avec Samba.
Créons un principal sur kerberos pour le service Samba. Sur le serveur, lancez la commande suivante
sudo kadmin.local -q « addprinc -randkey cifs/bidule.exemple.local »
sudo kadmin.local -q « addprinc -randkey cifs/bidule »
sudo kadmin.local -q « ktadd -k /etc/krb5.keytab -e rc4-hmac:normal cifs/bidule.exemple.local »
sudo kadmin.local -q « ktadd -k /etc/krb5.keytab -e rc4-hmac:normal cifs/bidule »
Assurez-vous de préciser le type de chiffrement en lançant la commande ktadd. Le chiffrement par défaut n’est pas compatible avec le « client utilities » de Samba.
Vous remarquerez que le nom FQDN et le nom Hostname du serveur a été ajouté. C’est le seul moyen (pour l’instant) d’être sûr que tout fonctionne.
Maintenant, nous allons configurer Samba :
sudo nano /etc/samba/smb.conf
Ce fichier contient une liste commentée de tous les paramètres de configuration de Samba. Il peut être intéressant de les parcourir tous.
Voici, les paramètres qu’il faut changer :
workgroup = exemple.local
security = user
realm = EXEMPLE.LOCAL
kerberos method = system keytab
domain logons = yes
logon path = \\%N\%U\windowsprofile
logon drive = H:
logon home = \\%N\%U
logon script = logon.cmd
add machine script = /usr/sbin/useradd -g machines -c « %u machine account » -d /var/lib/samba -s /bin/false %u
La plupart des paramètres ci-dessus sont simplement à décommenter en enlevant le « # » ou le « ; » au début de la ligne pour les activer.
Nous devons également activer quelques partages dans le fichier de configuration que nous trouverons vers la fin du fichier sous la partie “Share Definitions”
[homes]
comment = Home Directories
browseable = no
read only = no
valid users = %S[netlogon]
comment = Network Logon Service
path = /home/samba/netlogon
guest ok = yes
read only = yes
share modes = no
Maintenant, nous allons créer le répertoire « netlogon » et un fichier netlogon.cmd vide que nous pourrons utiliser plus tard pour lancer des commandes quand un utilisateur s’authentifie, pour monter un partage par exemple.
sudo mkdir -p /home/samba/netlogon
sudo touch /home/samba/netlogon/logon.cmd
Il suffit de redémarrer Samba pour que les modifications soient effectives.
sudo service smbd restart
sudo service nmbd restart
Nous allons aussi créer un groupe « machines » qui sera utilisé par Samba quand le script d’ajout de machine est lancé, c’est-à-dire quand une machine Windows joint le domaine.
sudo ldapaddgroup machines
Pour que les admins Unix soient reconnus comme admins Windows, nous devons associer le groupe des admins Windows au groupe des admins Unix, comme ceci :
sudo net groupmap add ntgroup= »Domain Admins » unixgroup=domainadmins rid=512 type=d
Il faut également donner explicitement les droits aux admins qui seront autorisés à ajouter des machines dans le domaine.
Les commandes suivantes vont donner à l’utilisateur MonUtilisateur la possibilité d’utiliser le script d’ajout des machines et d’ajouter des machines dans le domaine.
net rpc rights grant -U MonUtilisateur « exemple.local\Domain Admins » SeMachineAccountPrivilege SePrintOperatorPrivilege SeAddUsersPrivilege SeDiskOperatorPrivilege SeRemoteShutdownPrivilege
Vous aurez probablement une erreur d’authentification, vérifiez que vous avez ajouté les informations du royaume (realm) dans le fichier /etc/krb5.conf sur le serveur (voir la partie Kerberos). Fermez la session ssh et reloguez-vous. Cela va resynchroniser votre compte samba et votre compte LDAP
Configuration du client
Prérequis pour Windows 7
Windows 7 nécessite quelques changements dans la base de registre pour être connecté à un domaine samba.
Sur le client créez un fichier « Win7_Samba3DomainMember.reg » et ajoutez les lignes suivantes :
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters] "DNSNameResolutionRequired"=dword:00000000 "DomainCompatibilityMode"=dword:00000001
Enregistrez le fichier puis, exécutez-le pour modifier la base de registre. Redémarrez la machine.
Maintenant, vous pouvez également ajouter ces quelques modifications qui vont améliorer la vitesse de login, mais qui ne sont pas obligatoires.
Windows Registry Editor Version 5.00 ; Win7_Samba3DomainMember [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters] "DNSNameResolutionRequired"=dword:00000000 "DomainCompatibilityMode"=dword:00000001 ; Speedup settings [HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\System] "SlowLinkDetectEnabled"=dword:00000000 "DeleteRoamingCache"=dword:00000001 "WaitForNetwork"=dword:00000000 "CompatibleRUPSecurity"=dword:00000001 ; Can drive you nuts [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] "EnableLUA"=dword:00000000
Ajout de la machine client dans le domaine
Allez dans – panneau de configuration – système et sécurité – système
Sous « Paramètres de nom d’ordinateur, de domaine et de groupe de travail », cliquez sur « Modifier les paramètres »
Cliquez sur « modifier », sur le bouton en face de « Domaine » puis entrez le nom de domaine : exemple.local
Cliquez sur « Ok »
Une fenêtre va vous demander un nom d’utilisateur / mot de passe pour joindre la machine au domaine. Dans notre exemple, utilisez MonUtilisateur et son mot de passe associé.
Cela peut prendre du temps pour se connecter au domaine, mais vous devriez voir une fenêtre vous souhaitant la bienvenue dans le domaine exemple.local.
Redémarrez la machine et vous pourrez vous authentifier sur la machine avec n’importe quel utilisateur du domaine.
Si vous avez une erreur d’authentification, loggez-vous sur une machine Linux (ou sur le serveur via SSH) et vous devriez voir « Added user » s’afficher sur le terminal. L’utilisateur peut maintenant utiliser le domaine Samba.
Webographie :