Installation et configuration d’un serveur Samba-AD sur CentOS 7

L’installation d’un serveur Samba-AD sur CentOS 7 est une excellente solution pour gérer les identités et les politiques au sein d’un réseau, en simulant ainsi les fonctionnalités d’un Active Directory de Microsoft. Ce guide détaillé vous accompagnera étape par étape, depuis la préparation initiale du système avec CentOS 7 jusqu’à la finalisation de l’installation de Samba-AD. Vous apprendrez comment configurer les interfaces réseau pour une connectivité optimale, désactiver SELinux pour éviter les conflits de permissions, et ajuster les paramètres de votre pare-feu pour sécuriser votre serveur. En suivant ce tutoriel, vous serez en mesure de mettre en place un domaine fonctionnel et sécurisé, prêt à intégrer des clients Windows et à gérer efficacement les utilisateurs et les ressources réseau.

1.Préparation de CentOS7

Configuration:

  • Nom de domaine : dc1.domaine.lan
  • Administrateur CentOS : root
  • Administrateur Samba : administrator

Configuration réseau:

  • CentOS:
    • eth0: NAT, DHCP (accès internet)
    • eth1: 192.168.64.1/24 (interne)
  • Windows7:
    • eth0: 192.168.64.10/24 (interne)

1.1 Changement du nom d’hôte :

  • Modifiez le fichier /etc/hostname pour changer le nom d’hôte :
vim /etc/hostname
  • Vérifiez la modification :
cat /etc/hostname

1.2 Modification du fichier /etc/hosts,
Modifiez le fichier /etc/hosts pour y ajouter les informations nécessaires, tout en veillant à ne pas modifier les lignes contenant localhost :

vim /etc/hosts 

1.3 Configuration de l’adresse IP statique

Dans cette configuration, nous allons utiliser DHCP pour l’interface eth0 (ou ens32 i vous utilisez VMware) afin d’accéder à Internet.

Modifiez le fichier de configuration réseau pour l’interface eth0 (ou ens32 pour VMware) :

nano /etc/sysconfig/network-scripts

 

Pour l’interface eth1 (ou ens33 si vous utilisez VMware), nous allons configurer une adresse IP statique (192.168.64.1/24).

nano /etc/sysconfig/network-scripts

Aucune configuration de proxy n’est nécessaire !

Vous pouvez également utiliser l’outil nmtui pour configurer le réseau de manière interactive.

Une fois la configuration terminée, vérifiez les paramètres réseau avec la commande suivante

ip a

1.4 Désactivation de SELinux

Pour éviter les conflits de permissions, assurez-vous que SELinux est désactivé. SELinux (Security-Enhanced Linux) est un module de sécurité intégré dans le noyau Linux qui fournit un mécanisme de contrôle d’accès basé sur des politiques de sécurité. Il renforce la sécurité du système en appliquant des politiques strictes qui contrôlent quelles actions chaque programme et utilisateur peuvent effectuer sur le système.

Dans certains cas, SELinux peut restreindre des opérations légitimes, en particulier lors de configurations de réseau ou de services, ce qui peut entraîner des conflits de permissions. C’est pourquoi il est souvent recommandé de désactiver SELinux lors de configurations spécifiques pour éviter ces problèmes.

Ouvrez le fichier de configuration de SELinux :

vim /etc/selinux/config

Assurez-vous que la ligne suivante est bien présente et configurée comme suit :

selinux=disabled

Redémarrage et vérification de SELinux

reboot

Une fois le système redémarré, vérifiez le statut de SELinux avec la commande suivante :

sestatus

Activer le mode routeur et le NAT

Activer temporairement le mode routeur

Nous allons configurer le NAT (Network Address Translation) en utilisant firewalld. firewalld est un outil de gestion des pare-feux sous Linux, qui permet de configurer et de gérer les règles de pare-feu de manière dynamique, sans avoir à redémarrer le service. Il utilise des zones pour définir le niveau de confiance des connexions réseau et offre une interface simple pour appliquer des politiques de sécurité réseau.
Pour activer le transfert IP temporairement, utilisez la commande suivante :

sysctl -w net.ipv4.ip_forward=1

Activer le mode routeur de manière permanente
Pour rendre ce changement permanent, ajoutez la ligne suivante dans le fichier de configuration :

Ouvrez le fichier /etc/sysctl.conf :

vim /etc/sysctl.conf

Ajoutez ou modifiez la ligne suivante :

net.ipv4.ip_forward = 1

Enregistrez et fermez le fichier.

Appliquer les changements

Pour appliquer les changements immédiatement, exécutez la commande suivante :

/sbin/sysctl -p

ou

Redémarrez le système avec :

reboot

Activer le NAT

Le nœud interne doit maintenant pouvoir accéder à l’Internet public via le serveur de passerelle.

Pour cela, l’IP masquerading doit être activé avec iptables. Assurez-vous d’utiliser la bonne adresse IP et l’interface réseau appropriée.

Activez le NAT en exécutant la commande suivante :

firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o eth0 -j MASQUERADE -s 192.168.64.0/24 firewall-cmd --reload

 

Rechargez la configuration du pare-feu pour appliquer les changements :

firewall-cmd --reload

Vérification
Après avoir installé Windows et joint une machine au domaine, vous pouvez vérifier la connectivité à Internet en utilisant la commande suivante :

ping 8.8.8.8

Installation de Samba-AD sur CentOS 7

Configurer les règles de pare-feu

Commencez par configurer les règles de pare-feu nécessaires pour le bon fonctionnement de Samba-AD :

systemctl start firewalld systemctl enable firewalld

Ajoutez les ports nécessaires pour Samba-AD :

firewall-cmd --zone=public --add-port=53/tcp --add-port=53/udp --permanent
firewall-cmd --zone=public --add-port=88/tcp --add-port=88/udp --permanent
firewall-cmd --zone=public --add-port=135/tcp --permanent
firewall-cmd --zone=public --add-port=389/tcp --add-port=389/udp --permanent
firewall-cmd --zone=public --add-port=445/tcp --permanent
firewall-cmd --zone=public --add-port=464/tcp --add-port=464/udp --permanent
firewall-cmd --zone=public --add-port=636/tcp --permanent
firewall-cmd --zone=public --add-port=3268/tcp --permanent
firewall-cmd --zone=public --add-port=3269/tcp --permanent
firewall-cmd --zone=public --add-port=50000-51000/tcp --permanent
firewall-cmd --zone=public --add-port=49152-65535/tcp --permanent

Redémarrez le pare-feu pour appliquer les changements :

systemctl restart firewalld

Pour vérifier que les règles ont été correctement appliquées, utilisez la commande suivante :

firewall-cmd --list-ports

Désactivation d’Avahi-daemon
Désactivez le service avahi-daemon (protocole mDNS / bonjour) pour éviter les interférences :

systemctl stop avahi-daemon.service avahi-daemon.socket 

systemctl disable avahi-daemon.service avahi-daemon.socket

Ajouter le dépôt EPEL

yum update -y 

yum install -y epel-release 

yum install -y wget sudo screen nmap telnet tcpdump rsync net-tools bind-utils htop

 

Récupérer les paquets nécessaires pour Samba-AD

Téléchargez et installez la clé de signature RPM et configurez le dépôt YUM :

wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-7  http://samba.tranquil.it/RPM-GPG-KEY-TISSAMBA-7 

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-7

 

Créez un nouveau fichier de dépôt YUM :

echo "[tis-samba] 

name=tis-samba 

baseurl=http://samba.tranquil.it/centos7/samba-4.11/ 

gpgcheck=1 

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-7" > /etc/yum.repos.d/tissamba.repo

 

Vérifiez l’empreinte de la clé avec sha256sum :

sha256sum /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-7 

b3cd8395e3d211a8760e95b9bc239513e9384d6c954d17515ae29c18d32a4a11  /var/www/samba/RPM-GPG-KEY-TISSAMBA-7

 

Installez les paquets Samba-AD :

yum install -y samba samba-winbind samba-winbind-clients krb5-workstation ldb-tools bind chrony bind-utils samba-client python3-crypto

Instancier le domaine Active Directory Samba

Configurer Kerberos

Modifiez le fichier /etc/krb5.conf et remplacez son contenu par les lignes suivantes en précisant le domaine Active Directory de votre organisation (dans cet exemple, dc1.domaine.lan) :

[libdefaults] 
  default_realm = DOMAINE.LAN 
  dns_lookup_kdc = false 
  dns_lookup_realm = false

[realms]
  DOMAINE.LAN = { 
  kdc = 127.0.0.1 
  }

Configurer Samba

Supprimez le fichier /etc/samba/smb.conf s’il existe déjà, car il sera régénéré par la commande d’instanciation :

rm -f /etc/samba/smb.conf

Configurez Samba avec le rôle de contrôleur de domaine en utilisant la commande suivante. Remplacez le nom du royaume Kerberos et le nom court du domaine (nom NetBIOS) par les valeurs appropriées :

samba-tool domain provision --realm=MYDOMAINE.LAN --domain MYDOMAINE --server-role=dc

 

Réinitialisez le mot de passe de l’utilisateur administrator :

samba-tool user setpassword administrator

 

Vérifiez la ligne dns forwarder = xxx.xxx.xxx.xxx dans votre fichier /etc/samba/smb.conf :

vim /etc/samba/smb.conf

 

Elle doit pointer vers un serveur DNS valide, par exemple :

dns forwarder = 1.1.1.1

 Reconfigurer la résolution DNS pour la machine locale

Pour assurer que la machine locale utilise le serveur DNS Samba-AD, vous devez reconfigurer la résolution DNS.

Ouvrez le fichier de configuration de l’interface réseau concernée, par exemple /etc/sysconfig/network-scripts/ifcfg-xxxx, où xxxx représente le nom de l’interface réseau.

Remplacez ou ajoutez la ligne suivante pour définir le serveur DNS local :

DNS1=127.0.0.1

Relancer NetworkManager pour prendre en compte les changements

systemctl restart NetworkManager

Configurer Kerberos avec Samba
Pour assurer que Kerberos utilise la configuration correcte, supprimez le fichier krb5.conf de Samba et remplacez-le par un lien symbolique vers le fichier /etc/krb5.conf :

rm -f /var/lib/samba/private/krb5.conf 

ln -s /etc/krb5.conf /var/lib/samba/private/krb5.conf

Activer Samba pour le démarrage automatique
Pour que Samba démarre automatiquement au prochain reboot, activez le service et démarrez-le immédiatement :

systemctl enable samba 

systemctl start samba

Redémarrer la machine
Redémarrez la machine pour que toutes les configurations soient prises en compte :

reboot

Tester Kerberos
Pour vérifier que Kerberos est correctement configuré, utilisez les commandes suivantes :

Connectez-vous avec le compte administrator que vous avez configuré précédemment en utilisant samba-tool pour définir le mot de passe. Si aucune erreur ne s’affiche ou si vous recevez un message concernant l’expiration du mot de passe, la configuration est correcte :

kinit administrator

Vérifiez le ticket Kerberos avec :

 klist

 

Tester les DNS
Une fois votre configuration terminée, il est important de vérifier que votre serveur DNS fonctionne correctement. Pour ce faire, utilisez les commandes dig suivantes :

Pour tester la résolution DNS de Google via votre serveur local :

dig @localhost google.com

Pour vérifier la résolution DNS de votre domaine Active Directory :

dig @localhost srvads.domaine.lan

Pour tester l’enregistrement SRV de votre service LDAP sur le domaine :

dig -t SRV @localhost _ldap._tcp.domaine.lan

Ces tests vous permettront de confirmer que votre serveur DNS Samba-AD est correctement configuré et résout les requêtes comme prévu.

 

Joindre une machine au domaine et installer RSAT

Installation de Windows 7

  • Installez Windows 7 sur la machine client.
  • Configurez le réseau avec une adresse IP statique dans la même plage que votre serveur CentOS 7, par exemple : 192.168.64.10/24.

Joindre Windows au domaine

  1. Accédez aux paramètres système de Windows et sélectionnez l’option pour modifier le nom de l’ordinateur et rejoindre un domaine.
  2. Entrez le nom du domaine que vous avez configuré avec Samba-AD.
  3. Lorsque vous y êtes invité, entrez les identifiants de l’administrateur Samba (utilisateur administrator et le mot de passe configuré précédemment)

 

4.Redémarrez la machine Windows.

Connexion au domaine

Après le redémarrage, vous pouvez vous connecter au domaine en tant qu’administrateur Samba :

  • Sélectionnez “Autre utilisateur” à l’écran de connexion.
  • Entrez administrator comme nom d’utilisateur et utilisez le mot de passe configuré pour Samba.

 

 

Installation de RSAT

Pour gérer votre nouveau domaine Samba-AD, il est recommandé d’installer les outils d’administration à distance (RSAT) sur un poste Windows. Bien que la ligne de commande Samba soit efficace pour de nombreuses tâches d’administration, les interfaces graphiques RSAT offrent un complément pratique.

Étapes d’installation: 

  • Télécharger RSAT :  Télécharger le pack d’outils RSAT depuis le site officiel de Microsoft.
  • Installer RSAT : Une fois le téléchargement terminé, procédez à l’installation en suivant les instructions fournies par Microsoft.
  • Activer les fonctionnalités Windows : Après l’installation, accédez au Panneau de configuration -> Programmes -> Programmes et Fonctionnalités. Cliquez sur le lien Activer ou désactiver des fonctionnalités Windows dans le menu de gauche. Dans la liste, sélectionnez les outils RSAT que vous souhaitez utiliser.

Vérification finale

Une fois RSAT installé, vous pourrez accéder à la console de gestion MMC pour effectuer les actions suivantes :

  • Gestion DNS : Créer et supprimer des enregistrements DNS directement depuis la console DNS d’Active Directory.
  • Gestion des utilisateurs et ordinateurs : Créer et supprimer des comptes utilisateurs ainsi que des comptes machine via la console Utilisateurs et Ordinateurs d’Active Directory.
  • Gestion des GPO : Créer et gérer de nouvelles politiques de groupe (GPO) pour votre domaine.

 

Félicitations ! Si vous êtes parvenu jusqu’à cette étape, cela signifie que votre nouveau domaine Samba Active Directory est désormais opérationnel. Vous avez mis en place une infrastructure prête à gérer des utilisateurs, des ressources réseau, et des politiques de sécurité.

Bonne chance!

Mes sources d’inspiration:

How to Install and Configure Samba on CentOS 7

Installer et configurer Samba-AD sur CentOS7

How to Configure CentOS 7 Network Settings – Serverlab

Article suivant Installer les outils d’administration (RSAT) sous Windows 7.

Installer Samba 4 – Active Directory sous Linux – Ubuntu Debian – Jj World

Samba AD DC Port Usage – SambaWiki

How to Install and Configure Samba on CentOS 7

Configuring a CentOS 7 Kerberos KDC – RH254