Pour disposer d’une gestion complète des utilisateurs, il est conseillé de mettre en oeuvre un domaine Windows. Ce document décrit comment joindre une machine Linux en tant que controlleur de domain sur un domaine existant.
NB:
Sélectionnez un domaine DNS pour votre forêt AD. Il est déconseillé d’utiliser le domaine de premier niveau de votre organisation. En effet, le domaine utilisé lors de l’installation de Samba sera résolu en contrôleur de domaine. Par exemple : si votre organisation utilisait EXAMPLE.COM comme domaine et que ce domaine avait été utilisé lors de l’installation de Samba, le site web public ne serait plus accessible (à condition que ce site web public ne soit pas exécuté sur le contrôleur de domaine, ce qui est normal !). Il serait judicieux de définir un sous-domaine pour votre contrôleur de domaine. Dans ce tutoriel, SAMDOM.EXAMPLE.COM est utilisé. Cependant, en laboratoire, il n’est pas nécessaire de posséder un domaine public et .INTERNAL pourrait être utilisé. Ce nom sera également utilisé comme domaine Kerberos AD.
Assurez-vous de provisionner l’AD avec un domaine DNS qui ne nécessitera pas de modification. Samba ne prend pas en charge le changement de nom de la zone DNS AD et du domaine Kerberos. N’utilisez pas .local pour le TLD ; ce dernier est utilisé par Avahi.
Pour plus d’informations, consultez la FAQ sur la dénomination Active Directory.
Sélectionnez un nom d’hôte pour votre contrôleur de domaine AD comportant moins de 15 caractères (limite NetBIOS). DC1 est un excellent nom d’hôte.
N’utilisez pas de termes réservés à NT4 comme nom d’hôte, tels que PDC ou BDC. Ces modes n’existent pas dans un AD et peuvent prêter à confusion.
Définissez une adresse IP statique sur le contrôleur de domaine et effectuez la réservation associée sur votre routeur.
Important : Le contrôleur de domaine Samba deviendra votre résolveur DNS pour tous les postes de travail rattachés au domaine. Par conséquent, il peut être nécessaire d’attribuer cette adresse IP en dehors de votre pool DHCP.
Désactivez les outils, tels que resolvconf, qui mettent automatiquement à jour votre fichier de configuration de résolveur DNS /etc/resolv.conf. Les contrôleurs de domaine AD et les membres du domaine doivent utiliser un serveur DNS capable de résoudre les zones DNS AD.
Vérifiez que le fichier /etc/hosts du contrôleur de domaine résout correctement le nom de domaine complet (FQDN) et le nom d’hôte court en adresse IP LAN du contrôleur de domaine. Par exemple :
127.0.0.1 localhost
10.99.0.1 DC1.samdom.example.com DC1
Le nom d’hôte et le nom de domaine complet ne doivent pas correspondre à l’adresse IP 127.0.0.1 ni à une adresse IP différente de celle utilisée sur l’interface LAN du contrôleur de domaine.
Supprimez tout fichier smb.conf existant. Pour afficher le chemin d’accès au fichier :
smbd -b | grep "CONFIGFILE"
CONFIGFILE: /usr/local/samba/etc/samba/smb.conf
Chronyd est un serveur de temps pour Linux. Il faut que les systêmes soient synchronisés avant toute opération.
apt install chrony ntpdate
systemctl start chrony
Pour avoir plus de détail, lancer chronyc -n sources -v :
root@dc02:/etc/chrony# chronyc -n sources -v
.-- Source mode '^' = server, '=' = peer, '#' = local clock.
/ .- Source state '*' = current best, '+' = combined, '-' = not combined,
| / 'x' = may be in error, '~' = too variable, '?' = unusable.
|| .- xxxx [ yyyy ] +/- zzzz
|| Reachability register (octal) -. | xxxx = adjusted offset,
|| Log2(Polling interval) --. | | yyyy = measured offset,
|| \ | | zzzz = estimated error.
|| | | \
MS Name/IP address Stratum Poll Reach LastRx Last sample
===============================================================================
^* 192.168.100.241 1 6 17 30 +15us[ +71us] +/- 10.7s
Editer le fichier /etc/chrony.conf :
server win-samba.mydomain.com iburst
driftfile /var/lib/chrony/drift
maxdistance 16.0 # <--- if your NTP is a Windows Server, then use this as starting value. Adapt if necessary.
makestep 1.0 3
rtcsync
keyfile /etc/chrony.keys
leapsectz right/UTC
logdir /var/log/chrony
Il est conseillé d’utiliser Bind9 plutot que le DNS interne.
apt install bind9
Modifier /etc/default/bind9 pour avoir :
OPTIONS="-u bind -4"
Modifier le fichier option (/etc/bind/named.conf.options) :
acl internals {
127.0.0.0/8;
192.168.100.0/24;
};
options {
directory "/var/cache/bind";
version "Go Away 0.0.7";
notify no;
empty-zones-enable no;
auth-nxdomain yes;
forwarders {
192.168.100.254;
8.8.8.8;
};
allow-transfer {
none;
};
dnssec-validation no;
// If you only use IPv4.
listen-on-v6 {
none;
};
// listen on these ipnumbers.
listen-on port 53 {
192.168.100.242;
127.0.0.1;
};
minimal-responses yes;
// Add any subnets or hosts you want to allow to use this DNS server
allow-query {
"internals";
};
allow-query-cache {
"internals";
};
// Add any subnets or hosts you want to allow to use recursive queries
recursion yes;
allow-recursion {
"internals";
};
// https://wiki.samba.org/index.php/Setting_up_a_BIND_DNS_Server
// DNS dynamic updates via Kerberos (optional, but recommended)
// The following lines should be enabled AFTER you provision or join a DC with bind9_dlz
//tkey-gssapi-keytab "/var/lib/samba/bind-dns/dns.keytab";
};
Modifier le fichier /etc/bind/named.conf.local
//
// Do any local configuration here
//
// include "/var/lib/samba/bind-dns/named.conf";
et relancer bind :
systemctl restart named
Vérifier que le fichier /etc/krb5.conf contient les lignes suivantes :
[libdefaults]
dns_lookup_realm = false
dns_lookup_kdc = true
default_realm = AIPICE.LOCAL
...
Puis valider le bon fonctionnement :
root@dc02:/etc/bind# kinit admin-sn
Password for admin-sn@AIPICE.LOCAL:
root@dc02:/etc/bind# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: admin-sn@AIPICE.LOCAL
Valid starting Expires Service principal
24/04/2025 10:47:41 24/04/2025 20:47:41 krbtgt/AIPICE.LOCAL@AIPICE.LOCAL
renew until 25/04/2025 10:47:32