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.

Categories:

Comments are closed