https://samba.tranquil.it/doc/fr/samba_config_server/samba_conf_index.html
https://samba.tranquil.it/doc/fr/samba_config_server/debian/server_install_samba_debian.html
Installer Samba avec Tranquil IT
Récupérer les paquets nécessaires
apt-get install gnupg2 lsb-release
wget -O tissamba-pubkey.gpg http://samba.tranquil.it/tissamba-pubkey.gpg
sha256sum tissamba-pubkey.gpg
bd0f7140edd098031fcb36106b24a6837b067f1c847f72cf262fa012f14ce2dd tissamba-pubkey.gpg
apt-key add tissamba-pubkey.gpg
echo "deb https://samba.tranquil.it/debian/samba-4.14/ $(lsb_release -c -s) main" > /etc/apt/sources.list.d/tissamba.list
Installer les paquets
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install samba winbind libnss-winbind krb5-user smbclient ldb-tools python3-crypto
unset DEBIAN_FRONTEND
Editer le service Kerberos
nano /etc/krb5.conf
[libdefaults]
default_realm = DOMAIN.NET
dns_lookup_kdc = true
dns_lookup_realm = false
Editer la configuration de Samba
nano /etc/samba/smb.conf
[global]
server services = -dns
netbios name = SAMBA
realm = DOMAIN.NET
server role = active directory domain controller
workgroup = DOMAIN
security = USER
ldap server require strong auth = no
log file = /var/log/samba/%m.log
log level = 3 auth:3
ldap ssl = off
[sysvol]
path = /var/lib/samba/sysvol
read only = No
[netlogon]
path = /var/lib/samba/sysvol/domain.net/scripts
read only = No
Provisionnement de l'AD et chagement du mot de passe Administrateur
samba-tool domain provision --realm=DOMAIN.NET --domain DOMAIN --server-role=dc
samba-tool user setpassword administrator
Editer la configuration IP des DNS
nano /etc/resolv.conf
search nadus.fr
nameserver 127.0.0.1
nameserver 1.1.1.1
rm -f /var/lib/samba/private/krb5.conf
ln -s /etc/krb5.conf /var/lib/samba/private/krb5.conf
systemctl unmask samba-ad-dc
systemctl enable samba-ad-dc
systemctl disable samba winbind nmbd smbd
systemctl mask samba winbind nmbd smbd
Redémarrage du serveur
reboot
Test de connectivité à l'AD
kinit administrator
klist
Test de résolution des noms de domaines (service DNS)
apt-get install dnsutils
dig @localhost google.fr
dig @localhost samba.domain.net
dig -t SRV @localhost _ldap._tcp.domain.net
Installer et configurer Bind-DLZ pour Samba-AD avec le serveur DNS Bind9
https://samba.tranquil.it/doc/fr/samba_config_server/debian/server_install_binddlz_debian.html
Bien que Samba-AD vienne par défaut avec son propre serveur DNS interne, Tranquil IT recommande l’usage de Bind-DLZ.
Le serveur Samba-AD sera probablement sur un réseau NATé et il sera alors préférable de configurer un forwarder DNS :
Installer le paquet Bind :
apt-get install bind9
Editer les configuration de Bind
nano /etc/bind/named.conf.options (penser à modifier le forwarder) :
options {
directory "/var/cache/bind";
forwarders { 1.1.1.1; };
allow-query { any;};
dnssec-validation no;
auth-nxdomain no;
listen-on-v6 { any; };
tkey-gssapi-keytab "/var/lib/samba/bind-dns/dns.keytab";
minimal-responses yes;
};
nano /etc/bind/named.conf.local
dlz "nadus.fr" {
database "dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_10.so";
};
désactiver le bind en IPv6 sur le réseau local
nano /etc/default/bind9
RESOLVCONF=no
OPTIONS="-4 -u bind"
Editer les configuration de Samba
Le plugin DLZ doit accéder directement aux bases LDB de Samba (l’équivalent de NTDS.DIT). Ce mode de fonctionnement n’est certes pas optimal pour la séparation des services au sein de l’AD. Toutefois, il est nécessaire.
nano /etc/samba/smb.conf
[global]
...
server services = -dns
# dns forwarder =
...
Mise en relation de Smaba et Bind9
Les commandes suivantes vont créer un compte dans le serveur AD pour le serveur Bind. Cela n’est pas nécessaire si l’on ne veut pas bénéficier des mises à jour dynamiques (ce qui peut être éventuellement souhaitable).
créer deux répertoires dans /var/lib/samba :
mkdir /var/lib/samba/bind-dns
mkdir /var/lib/samba/bind-dns/dns
configurer les mises à jour dynamiques des entrées DNS
samba_upgradedns --dns-backend=BIND9_DLZ
enfin relancer les services samba et bind
systemctl restart samba-ad-dc
systemctl restart bind9
Vérifier la bonne configuration de Bind et de DLZ
Vérifier que c’est bien le serveur bind qui écoute sur le port 53
netstat -tapn | grep 53 tcp 0 0 192.168.149.11:53 0.0.0.0:* LISTEN 5291/named
Tester des requêtes locales et des requêtes en récursion :
dig @localhost google.fr
dig @localhost samba.domain.net
dig -t SRV @localhost _ldap._tcp.domain.net
Félicitations, votre configuration avance et vous venez de franchir un pas supplémentaire vers la solidité et l’efficacité de votre installation Samba-AD.
Maintenant, nous allons configurer le service NTP pour que votre Samba-AD et les stations de travail de votre réseau soient tous bien à la bonne heure et synchronisés !!
Installer et configurer NTP pour Samba-AD sur Debian10
Mise en place du service NTP
Active Directory est basé sur le protocole Kerberos qui nécessite une quasi parfaite synchronisation des horloges entre les stations de travail membres du domaine et le contrôleur de domaine Samba-AD. NTP sert à assurer la synchronisation entre les horloges des différents appareils du réseau.
Installer les paquets NTP et choisir un serveur de temps sur Internet
apt-get install ntpdate ntp ntpdate -bu pool.ntp.org
Rajouter les lignes suivantes à /etc/ntp.conf pour gérer le NTP signé utilisé par les postes windows pour qu’ils synchronisent automatiquement leurs horloges avec le service NTP
ntpsigndsocket /var/lib/samba/ntp_signd restrict default mssntp
Changer le propriétaire du répertoire contenant la socket samba servant à authentifier le service NTP
chgrp ntp /var/lib/samba/ntp_signd
Relancer NTP
systemctl restart ntp
Installation des RSAT tools (administration graphique de l'AD via poste Windows)
Get-WindowsCapability -Online | ? Name -like 'RSAT*'|Where{$_.State -eq 'NotPresent'} |foreach {Add-WindowsCapability -online -name $_.Name}
Pour aller plus loin avec Samba
Autoriser Nextcloud a se connecter
nano /etc/samba/smb.conf
[global]
server services = -dns
netbios name = SAMBA
realm = DOMAIN.NET
server role = active directory domain controller
workgroup = DOMAIN
security = USER
ldap server require strong auth = no
Tester la connexion au serveur LDAP
apt-get install ldap-utilsldapsearch -D "CN=Administrator,CN=Users,DC=domain,DC=net" -w P@ssword -p 389 -h samba.domain.net -b "DC=domain,DC=net"