MISE EN PLACE D'UN CONTRÔLEUR DE DOMAINE SAMBA4

Publié le par berenger benam

 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 :

 
$regPath="Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\
System"; $propertyName="FilterAdministratorToken"; [int]$curValue = 0;
try{ $curValue=[int]::Parse((Get-ItemPropertyValue -Path $regPath -Name $propertyName -ErrorAction
SilentlyContinue));} catch{} if($curValue -lt 1){ Set-ItemProperty -Path $regPath -Name $propertyName
-Value 1}
 

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 :

[Unit]
Description=Web Services Dynamic Discovery host daemon
; Start after the network has been configured
After=network-online.target
Wants=network-online.target
; It makes sense to have Samba running when wsdd starts, but is not required
;Wants=smb.service
[Service]
Type=simple
ExecStart=/usr/bin/wsdd --shortlog
; Replace those with an unprivledged user/group that matches your environment,
; like nobody/nogroup or daemon:daemon or a dedicated user for wsdd
; User=nobody
; Group=nobody
; The following lines can be used for a chroot execution of wsdd.
; Also append '--chroot /run/wsdd/chroot' to ExecStart to enable chrooting
;AmbientCapabilities=CAP_SYS_CHROOT
;ExecStartPre=/usr/bin/install -d -o nobody -g nobody -m 0700 /run/wsdd/chroot
;ExecStopPost=rmdir /run/wsdd/chroot
[Install]
WantedBy=multi-user.target

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

URL de la base de données: jdbc:mysql://localhost:3306/openfire?rewriteBatchedStatements=true
Nom d’utilisateur : openfire
Mot de passe : openfire

 

 

 

 

 

 

 

 

 

 

 

Si on clique sur Utilisateurs/Groupes

 

 

 

 

 

http://www.igniterealtime.org/downloads/index.jsp

 

 

 

 

 

on prend un navigateur et on tape juste http://ip_serveur_openfire:7070/ofmeet/
l’utilisateur Jean s’est connecté

 

 

 

 

 

 

 

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

 

Pour être informé des derniers articles, inscrivez vous :
Commenter cet article