Debian 10 64 Bits - Installation Samba AD DC - Bind-DLZ

Auteur : Vince NADUS
Date de publication : July 28, 2021
nextcloud SAMBA BIND

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"