A la recherche d’une alternative crédible et simple à mettre en place je suis tombé sur Samba-AD de Tranquil IT. Connaissant déjà l’entreprise Nantaise à travers son outil phare WAPT, et étant un inconditionnel de ce dernier, je n’ai pas hésité une seule seconde à essayer cette solution.
Comme indiqué sur la page de présentation : « Samba Active Directory embarque les mêmes fonctionnalités que Microsoft Active Directory. Vous profitez donc des outils RSAT comme les GPO, les outils de contrôle DHCP et DNS, etc.
Samba Active Directory est un service dont l’utilisation est gratuite. Vous n’aurez pas besoin de payer de droit d’utilisation comme avec les CAL de Microsoft.«
Pré requis
Pour des besoins de production nous installerons Samba-AD sur une Debian 10, avec 2 vCPU et 2 go de RAM. Il est indiqué dans la documentation officielle qu’au delà de 100 utilisateurs il faudra passer à 4 vCPU et à plus de 1000 passer à 4 go de RAM.
La particularité de Samba-AD c’est qu’il n’est pas multi-threadé, en soit augmenter le nombre de CPU ne permettra pas d’augmenter les performances. Il faudra préférer le déploiement d’une instance secondaire.
Installation de Samba-AD
Préparation de Debian 10
Le domaine que nous installerons sera domaintest.loc
Le serveur aura le nom FQDN dc01.domaintest.loc renseigné dans /etc/hostname.
nano /etc/hostname dc01.domaintest.loc
L’adresse IP sera fixe (ici 192.168.1.100).
nano /etc/network/interfaces # The primary network interface auto enp0s3 iface enp0s3 inet static address 192.168.1.100/24 gateway 192.168.1.1
Le nom FQDN sera renseigné dans le fichier /etc/hosts.
nano /etc/hosts 127.0.0.1 localhost 127.0.1.1 debian # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters 192.168.1.100 dc01.domaintest.loc
Tranquil IT préconise l’installation de la langue anglaise afin de faciliter la recherche dans les logs. Nous l’installerons et vérifierons son installation avec les commandes suivantes:
apt-get install -y locales-all localectl set-locale LANG=en_US.utf8 localectl status
Nous désactiverons avahi-daemon:
systemctl stop avahi-daemon.service avahi-daemon.socket systemctl disable avahi-daemon.service avahi-daemon.socket
Enfin nous installerons les outils suivants:
apt-get install -y wget sudo screen nmap telnet tcpdump rsync net-tools dnsutils htop apt-transport-https vim gnupg
Installation de Samba-AD
Nous commencerons par installer les dépôts Tranquil IT:
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.10/ $(lsb_release -c -s) main" > /etc/apt/sources.list.d/tissamba.list
Puis nous installerons 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
Nous configurerons Kerberos:
nano /etc/krb5.conf [libdefaults] default_realm = DOMAINTEST.LOC dns_lookup_kdc = true dns_lookup_realm = false
Le default_realm
doit absolument être écrit en lettres MAJUSCULES.
Puis nous configurerons Samba. Nous commencerons par retirer la configuration existante
rm -f /etc/samba/smb.conf
Puis nous configurerons Samba avec le rôle de contrôleur de domaine:
samba-tool domain provision --realm=DOMAINTEST.LOC --domain DOMAINTEST --server-role=dc
Nous modifierons le mot de passe du compte « administrator »:
samba-tool user setpassword administrator
Dans le fichier /etc/samba/smb.conf nous modifierons le dns forwarder :
nano /etc/samba/smb.conf dns forwarder = 8.8.8.8
Nous reconfigurerons la résolution DNS du serveur:
nano /etc/resolv.conf search domaintest.loc nameserver 127.0.0.1
On supprimera le fichier généré inutilement par le script d’installation et on le remplacera par un lien symbolique:
rm -f /var/lib/samba/private/krb5.conf ln -s /etc/krb5.conf /var/lib/samba/private/krb5.conf
On activera Samba afin qu’il démarre avec la machine:
systemctl unmask samba-ad-dc systemctl enable samba-ad-dc systemctl disable samba winbind nmbd smbd systemctl mask samba winbind nmbd smbd
Nous redémarrerons notre machine:
systemctl reboot
Puis nous testerons notre installation avec le compte administrateur:
kinit administrator
Si tout va bien le système devrait nous donner la date d’expiration du mot de passe.
Notre contrôleur de domaine est a présent fonctionnel et prêt à accueillir de nouveaux postes. Vous pouvez d’ailleurs d’ores et déjà en intégrer un qui pourra vous servir de console d’administration.
Fin de la première partie…
Dans la seconde partie nous verrons comment manager notre contrôleur de domaine avec les RSAT Windows.
Dans la troisième partie nous verrons comment renforcer la sécurité de notre serveur.
Comments are closed