MISE EN PLACE D'UN CONTRÔLEUR DE DOMAINE SAMBA4
I. Aperçu
Les entreprises dans leur quête perpétuelle de sécurité et de bonne gestion des ressources, ont opté pour la centralisation de la gestion des comptes de ses employés en utilisant une seule machine (serveur) qui s’occupe de l’identification et aussi de l’authentification des employés de l’entreprise. Active Directory est un candidat idéal pour s’occuper de ces tâches.
Active Directory qu’est-ce que c’est ?
Un contrôleur de domaine Active Directory de Microsoft est une machine à partir de laquelle on peut gérer toutes les ressources de l’entreprise à savoir les ordinateurs, les imprimantes, les dossiers créés sur n’importe quelle machine de l’entreprise. L’objectif principal d’Active Directory est de fournir des services centralisés d’identification et d’authentification à un réseau d’ordinateurs utilisant le système Windows, macOS et encore Linux.
Qu’est-ce que samba ?
Samba est une suite de logiciels libres et open source qui implémente le protocole SMB/CISF (Server Message Block / Common Internet File System) dans les ordinateurs tournant sous le système GNU/Linux, il permet de partager des dossiers, des fichiers, d’accéder aux ressources d’un ordinateur quelconque, et même aux imprimantes au sein d’un réseau entre plusieurs ordinateurs fonctionnant avec des systèmes d’exploitation Windows, GNU/Linux ou autre. A partir de sa version 4 Samba peut également servir de contrôleur de domaine active directory et fournir des services d’authentification aussi bien à des postes Windows qu’à des postes GNU/Linux.
Samba3 vs Samba4
La vocation de samba3 est le partage de fichiers et l’impression centralisée, alors que samba4 se concentre sur la prise en charge d’Active Directory. Le but de ce TP est d’utiliser SAMBA-4 comme contrôleur de domaine, et pour qu’il soit un PDC (Primary Domain Controller), il lui faut trois composants :
- Un serveur DNS qui permet aux machines intégrant le domaine de connaître l’adresse du contrôleur à partir du nom de domaine grâce aux enregistrements de type SRV.
- Un annuaire LDAP utilisé comme système d’informations contenant l’ensemble des informations du domaine.
- Un serveur kerberos utilisé comme système d’authentification et d’identification des utilisateurs et des services en s’appuyant sur l’annuaire.Kerberos se base sur une tierce partie de confiance pour gérer l’authentification, le KDC (Key Distribution Center). Tous les utilisateurs et services du réseau font confiance à cette tierce partie. Pour réaliser la sécurité de l’authentification, Kerberos utilise un mécanisme de chiffrement basé sur des algorithmes à clef symétrique. Chaque sujet et service du réseau a une clé secrète partagée avec le KDC. Kerberos utilise un système de ticket pour réaliser l’authentification et introduit le principe de SSO (Single Sign On). L’utilisateur s’authentifie sur le KDC puis utilise un ticket pour s’authentifier sur chaque service demandé. L’utilisateur ne transmet jamais son mot de passe au service.
Fonctionnement de Samba
Samba fonctionne grâce à la collaboration de trois démons qui sont : smbd, nmbd et winbindd)
SMBD : Il fournit des services de partage de fichiers et d’impression aux clients Windows. Ce démon tourne sur TCP sur les ports 139 et 445. Il est géré par le service smb .
NMBD : Comprend et répond à toutes les requêtes de service de noms. Ce démon tourne en UDP sur le port 137 et est contrôlé par le service SMB.
Winbind : Il gère les informations relatives aux utilisateurs et aux groupes sur une machine Windows et les rend utilisables sur des plateformes UNIX, ceci permet aux utilisateurs Windows d’apparaître comme des utilisateurs linux sur une machine Linux. Ce démon est géré par le service winbind.
Installation de Samba
Avant l’installation de Samba, s’assurer que bind9, openLDAP et dnsmasq ne sont pas installés dessus sur le système car Samba vient avec ses propres composants.
Fixer l’adresse IP du serveur
# vim /etc/netplan/01-network-manager-all.yaml
Appliquer la configuration
# netplan apply
Redémarrer le service réseau par la commande :
# service networking restart
Faire une résolution de noms dans le fichier hosts comme suit : # vim /etc/hosts
Installation des prérequis :
Quelques paquets seront nécessaires, soit à la compilation de Samba, soit à son bon fonctionnement. On peut tous les installer en une fois de cette façon :
#apt update ; apt upgrade -y
# sudo apt install samba smbclient winbind libpam-winbind libnss-winbind krb5-kdc libpam-krb5 krb5-admin-server krb5-config -y
Répondre à la série de questions suivantes :
Renseigner le domaine
Configuration
Renommer les anciens fichiers de samba et kerberos
# mv /etc/samba/smb.conf /etc/samba/smb.conf.old
# mv /etc/krb5.conf /etc/krb5.conf.old
Approvisionnement du domaine S’assurer que nous n’avez pas de DNS, LDAP et les différents fichiers ci-dessus :
# samba-tool domain provision --use-rfc2307 --interactive
Configuration du kerberos en ajoutant une copie du fichier dans /etc
# cp /var/lib/samba/private/krb5.conf /etc/
Désactiver le service qui peut nous poser problème
# systemctl stop systemd-resolved # systemctl disable systemd-resolved # unlink /etc/resolv.conf
Un serveur Redémarrer la machine
# reboot
Un serveur Modifier le DNS # /etc/resolv.conf
# systemctl stop smbd nmbd winbind
Démasquer samba
# systemctl unmask samba-ad-dc
L’activer
# systemctl start samba-ad-dc
Le rendre disponible au démarrage de la machine
# systemctl enable samba-ad-dc
Redémarrer la machine
# reboot
Lancement de Samba
# testparm
Test du DNS intégré à SAMBA
Testons la résolution de noms
Test des enregistrements de type SRV
L’enregistrement de LDAP
On peut même afficher l’état de la base de données
Affichons de nouveau la liste des users :
Les commandes d’administration de comptes utilisateurs
Nous allons supprimer le compte morez
# timedatectl set-ntp off
# apt update
# apt install ntp -y
Configuration
# cp /etc/ntp.conf /etc/ntp.conf.old # nano /etc/ntp.conf
Cliquer sur Connexion au réseau local > Propriétés Clique droit sur Protocole Internet version 4 (TCP/IPv4) > Propriétés
On constate que le ping marche bien donc les deux pc peuvent se communiquer sans problème garce a son dns au niveau de la machine Windows .
La machine Windows est bien client dns du serveur ! Intégrons enfin la machine dans le domaine Clique droit sur Ce PC > Propriétés
partie client
après il entre les informations nom et son mot de passe boom !
La preuve :
Renseigner les informations suivantes dans le fichier smb.conf comme suit :
# nano /etc/samba/smb.conf
[global]
security = ads
realm = ECOLE.SN
workgroup = ECOLE
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
winbind use default domain = yes
restrict anonymous = 2
kerberos method = secrets and keytab
winbind refresh tickets = true
Redémarrer le service smb
# systemctl restart smbd.service
# samba
Faire les actions suivantes dans le fichier krb5.conf
# vim /etc/krb5.conf
[libdefaults] default_realm = ECOLE.SN
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
[realms]
ECOLE.SN= {
kdc = rtn
admin_server = rtn
}
Récapitulatif Gestion de Samba en ligne de commandes
Voici le résultat :
Donc on voit bien que le compte de BENAM est désactivé .
Et il ose de se connecter encore au niveau de la machine linux
Et lorsqu’il valide :
On dit le compte est bloqué, il faut contacter l’administrateur Système !
On voit bien que Benam s’est connecté il crée un fichier benam.txt dans son répertoire personnel
Benam change la photo de son profil
Donc on peut voir son compte en graphique . Et benam va se connecter aussi sur la machine Windows.
Microsoft fournit depuis longtemps des outils appelés Outils d’administration de serveur distant (RSAT) pour effectuer l’administration à distance de serveurs et de postes de travail. Ces outils sont pratiques si vous devez régulièrement examiner des configurations ou apporter des modifications pour des machines jointes à un domaine Microsoft Windows. Malheureusement, l’installation de ces outils n’est pas toujours aussi facile car Microsoft modifie la méthode d’installation avec chaque version de Microsoft Windows.L’un des outils indispensables de tout Administrateur Systèmes qui gèrent des serveurs Windows est bien entendu RSAT (Remote Server Administration Tools).Cet outil permet le contrôle des serveurs, sans avoir à passer par terminal serveur et sans avoir à se connecter depuis le serveur. Ainsi, avec RSAT, tous les outils tels que la console active directory, la gestion des DNS, DHCP ou encore la gestion des stratégies de groupe peut se faire sur votre ordinateur.
Ensuite Ouvrir un PowerShell en tant qu’administrateur et exécuter la ligne de commande suivante :
Puis la commande suivante :
Get-WindowsCapability -Online | Where-Object {$_.Name -like "Rsat*" -AND $_.State -eq "NotPresent"} | AddWindowsCapability -Onlin
Choisir utilisateurs et ordinateurs Active Directory et cliquer sur Ajouter puis Ok
Et voici notre domaine ecole.sn et les comptes des users
Nous pouvons même gérer les horaires d’accès d’un compte. Prenons le cas du compte bouki
user BENAM
Idem pour les autres comptes !
Sur le serveur on peut voir le fichier que BENAM a crée.
voici le 1er compte :
on précise son mot de passe et le mdp ne s’expire jamais selon l’administrateur BENAM
Sur cette capture on voit bien que le compte Samuel est bel et bien créer 2eme utilisateur :
l’utilisateur Samuel se connecte a son compte
Et il veut attacher son compte a son répertoire respectif pour pouvoir gérer les ressources mais dommage il n’est pas Administrateur donc il va demander a l’Admin de gérer ce cas.
Son espace de travail n’est pas créer et cette fois-ci il se déconnecte pour laisser l’Admin BENAM d’attcher son espace de travail a son répertoire respectif .
Cette fois-ci il se connecte
Pour accroître la sécurité, vous pouvez utiliser des stratégies de mot de passe afin de définir des règles spécifiant comment les utilisateurs créent leur mot de passe. Pour réduire les coûts d'assistance technique, vous pouvez également fournir aux utilisateurs des options de libre service pour les mots de passe oubliés et pour la réinitialisation de mots de passe.
User BENAM va se connecter et applique la politique de mot de passe a l’utilisateur OUYA donc il va appliquer une stratégie au compte de user OUYA a quel heure il doit se connecte.
Voici le compte de OUYA en-bas
On clique sur profil pour appliquer les horaires de connexion a son compte
sur cette capture on voit bien que l’utilisateur OUYA a interdiction totale sur son compte et tous les mardi il n’a pas le droit d’ouvrir une session a partir de 21h a 00:00 donc OUYA va se connecter a partir de 22h pour voir s’il n’a pas le droit d’ouvrir une session.
Il entre son login et mot de passe
On dit son compte possède une limitation horaire d’utilisation qui lui empêche de se connecter actuellement il faut ressayer ultérieurement.
cette partie L’Administrateur BENAM va désactiver le compte de bouki et il va ouvrir une session quelque part pour voir si son compte est opérationnel ou pas .
Bouki donne son login et mot de passe
On voit sur l’écran que votre compte a été désactivé. contactez l’administrateur de votre système. Cette fois-ci BENAM va activer son compte et il ressaye encore
bouki s’est connecté !
La 1ere tentative boom !!!
On lui demande de change son mot de passe et il clique sur Ok
wget https://github.com/christgau/wsdd/archive/master.zip
3- il faut Renommer wsdd.py en wsdd
mv wsdd-master/src/wsdd.py wsdd-master/src/wsdd
4-Copier vers notre application dans le dossier /usr/bin
cp wsdd-master/src/wsdd /usr/bin
5- ensuite on va Copier wsddvers dans /etc/systemd/system
cp wsdd-master/etc/systemd/wsdd.service /etc/systemd/system
6- on édite le fichier /etc/systemd/system/wsdd.service
nano /etc/systemd/system/wsdd.service
7- voici le contenu du fichier wsdd.service :
Enregistrer et quitter (appuyez sur CTRL+ X, appuyez sur O puis appuyez sur ENTER)
8- Recharger le démon wsdd : systemctl daemon-reload
9- on démarre le démon wsdd : systemctl start wsdd
10- on active le service wsdd : systemctl enable wsdd
11- on vérifie pour voir si le service wsdd est activé : service wsdd status
Maintenant Jean va essayer de se connecter au dossier Perso_Paul
On voit l’Accès refusé il n’a pas le droit de se connecter a ce dossier seul Paul
Paul vient entrer son login et mot de passe
PARTIE II
Étape 3 : Accéder à l’interface de l’application, Puisque c’est une application Web, donc pour y accéder il faut un navigateur. Il faudra donc accéder à l’interface de l’application afin de l’adapter à notre situation en saisissant dans le navigateur de la machine serveur localhost/lam
Si on clique sur Utilisateurs/Groupes
NB : Notre escapade à la découverte du fonctionnement de l'Active Directory et sa mise en place au travers de Samba 4 s'arrête là. Bien qu'il y ait encore beaucoup à dire, nous avons pu voir dans quelle mesure le projet avait avancé de manière impressionnante et avoir un premier aperçu de sa mise en place