Hide navigation sidebar
Hide table of contents sidebar
Skip to content
SAMBA 4.22
Back to top
View this page
Toggle table of contents sidebar

# Installer et configurer Samba-AD sur RHEL et ses dérivées

Note

La distribution EnterpriseLinux et ses dérivés n’intègrent pas les paquets Samba-AD. En effet, Samba-AD s’appuie sur Heimdal Kerberos pour la prise en charge d’Active Directory alors que RedHat ne distribue et ne prend en charge que les produits basés sur Kerberos-MIT.

Note

Les RPMs de Tranquil IT sont actuellements validés pour Redhat7, Redhat8, Redhat9 et Redhat10 (et ses dérivés comme CentOS, AlmaLinux, OracleLinux, etc.).

Si vous souhaitez vous en tenir à un dérivé de Redhat soutenu par la communauté, nous vous recommandons d’utiliser AlmaLinux8.4 que nous utilisons actuellement pour la construction et les tests.

## Choisir le suffixe DNS pour le domaine

Pour le choix du nom de domaine, il y a deux options :

- Utiliser un suffixe DNS terminant en `.lan`, par exemple `mydomain.lan`.

- Utiliser un sous domaine d’un domaine public que vous possédez, par exemple `ad.mycompany.com`.

Attention

Dans tous les cas il faut absolument éviter les suffixes en `.local` car ce suffixe a été approprié par Apple pour son protocole Bonjour / mDNS.

Dans les instructions ci-dessous, on prendra pour nom de domaine `mydomain.lan` que vous remplacerez avec le nom de domaine de votre choix.

## Installer le serveur RedHat10 ou dérivé

Pour installer une RedHat10 neuve (machine physique ou virtuelle) sans interface graphique et uniquement avec le service SSH installé (installation de type minimale), utiliser cette procédure pour RedHat.

Cette documentation est également valable pour un hôte RedHat ancienne.

Note

Nous recommandons l’installation de Samba-AD sur Linux (Debian / Redhat10 et dérivées), configuré selon les Recommandations de l’ANSSI pour configurer un système GNU / Linux.

Note

Assurez-vous que vous n’avez pas de dépendances à SSSD.

## Configurer les fonctions réseau de votre serveur

### Configurer le nom DNS

Indication

Le nom de de votre nouveau serveur Samba-AD ne doit pas dépasser 15 caractères (limite liée au `sAMAccountName` dans Active Directory). Dans cette documentation nous allons utiliser le nom srvads.

Le nom du serveur doit être un nom FQDN, c’est à dire la concaténation du nom de machine et du suffixe DNS.

- Modifier le fichier `/etc/hostname` et y renseigner le nom FQDN du serveur:

      srvads.mydomain.lan

- Modifier `/etc/hosts`, renseigner le nom FQDN et le nom court du serveur.

Indication

- Sur la ligne correspondant à l’adresse IP du serveur Samba-AD mettre d’abord le nom FQDN, puis ensuite le nom court.

- Ne pas modifier la ou les lignes contenant le terme `localhost` :

    # /etc/hosts of the Samba-AD server
    10.0.0.10 srvads.mydomain.lan srvads

### Configurer la sécurité de votre serveur

- Définissez une adresse IP Statique en utilisant la commande nmcli ou nmtui pour une interface semi-graphique (Cliquez ici pour plus d’information à propos de la commande nmtui). Le nom de l’interface peut être différent, comme `enp0s17`, `eth0` par exemple.

    nmcli con mod enp0s17 ipv4.method manual ipv4.addresses 10.0.0.10/24 ipv4.gateway 10.0.0.254 ipv4.dns 10.0.0.1

Indication

Si vous avez un proxy d’entreprise.

Pour rajouter le proxy pour installer des paquets Yum, rajouter les lignes suivantes à la fin de `/etc/yum.conf` en les adaptant à votre contexte :

    proxy=http://proxy.mydomain.lan:3128
    #proxy_username=
    #proxy_password=

Pour configurer le proxy pour les différentes commandes de l’utilisateur root, rajouter les lignes suivantes à la fin de `/root/.bashrc` :

    export http_proxy=http://proxy.mydomain.lan:3128
    export https_proxy=http://proxy.mydomain.lan:3128
    export ftp_proxy=http://proxy.mydomain.lan:3128
    #export no_proxy=.lan,.local

Pour prendre en compte immédiatement cette modification, faites source /root/.bashrc.

### Configurer la sécurité de votre serveur

- Après le redémarrage, configurer la langue du système en anglais afin de faciliter la recherche de problèmes dans les logs :

      dnf upgrade -y
      dnf install langpacks-en glibc-langpack-en -y
      localectl set-locale LANG=en_US.utf8
      localectl status

- Vérifier que SELinux est désactivé :

      vi /etc/selinux/config

  Puis dans le fichier, remplacer la valeur actuelle par (attention, il faut modifier la ligne SELINUX= et non la ligne SELINUXTYPE=!) :

      SELINUX=disabled

  Après reboot, vérifier que SELinux est bien désactivée, la commande sestatus doit renvoyer :

      SELinux status: disabled

- Configurer les règles de pare-feu pour ouvrir les ports nécessaires au fonctionnement de Samba-AD :

      systemctl start firewalld
      systemctl enable firewalld
      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
      systemctl restart firewalld

- Désactiver avahi-daemon (protocole mDNS / bonjour):

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

### Ajouter des outils utiles pour votre serveur

- Mettre à jour la distribution et installer le dépôt EPEL et quelques outils indispensables :

    subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms
    dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
    yum install -y wget sudo screen nmap telnet tcpdump rsync net-tools bind-utils htop

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

Vous pouvez maintenant passer à l’étape suivante et installer Samba-AD sur votre distribution RedHat10 ou dérivée.

Les paquets de la dernière version 4.22 validé par l’équipe Tranquil IT peuvent être téléchargés depuis l’url redhat-samba-4.22.

Quand il sera necessaire d’upgrader en Samba-4.23, juste changerl’url du repo vers redhat-samba-4.23 et suivre les notes de mises à jour sur la page de mises à jour.

- Récupérer la clé de signature RPM et configurer un dépôt YUM. (Note : CentOS7 est en fin de vie avec Samba 4.20) :

    wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-10 https://samba.tranquil.it/RPM-GPG-KEY-TISSAMBA-10
    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-10
    echo "[tis-samba]
    name=tis-samba
    baseurl=https://samba.tranquil.it/redhat10/samba-4.22/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-10" > /etc/yum.repos.d/tissamba.repo

    wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-9 https://samba.tranquil.it/RPM-GPG-KEY-TISSAMBA-9
    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-9

    echo "[tis-samba]
    name=tis-samba
    baseurl=https://samba.tranquil.it/redhat9/samba-4.22/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-9" > /etc/yum.repos.d/tissamba.repo

    wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-8 https://samba.tranquil.it/RPM-GPG-KEY-TISSAMBA-8
    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-8

    echo "[tis-samba]
    name=tis-samba
    baseurl=https://samba.tranquil.it/redhat8/samba-4.22/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-8" > /etc/yum.repos.d/tissamba.repo

- Vérifier l’empreinte de la clé avec sha256sum :

      # For RHEL9 / RHEL10 :
      sha256sum /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-9 || sha256sum /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-10
          05f21f368bdeb01453e37c3af2b8fcabba8986e2ce2b0d0298df6456a0bef60a /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-{[9-10]}

      # For RHEL8 :
      sha256sum /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-8
          b3cd8395e3d211a8760e95b9bc239513e9384d6c954d17515ae29c18d32a4a11 /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-8

- Installez les paquets Samba-AD pour RedHat et ses distributions dérivées :

      yum --enablerepo=crb install -y samba samba-dc samba-winbind samba-winbind-clients krb5-workstation ldb-tools bind chrony bind-utils samba-client python3-markdown

  Avertissement

  –enablerepo=crb ne fonctionne qu’avec les dérivés de RedHat. Si vous utilisez une distribution RedHat, utilisez cette commande pour activer le repo crb :

      subscription-manager repos --enable codeready-builder-for-rhel-9-$(arch)-rpms

#### Instancier le domaine Active Directory Samba

## Configurer Kerberos

- Modifier le fichier `/etc/krb5.conf` et remplacer tout son contenu par les 4 lignes suivantes en précisant le domaine Active Directory de votre organisation (ici MYDOMAIN.LAN) :

Attention

Le `default_realm` doit absolument être écrit en LETTRES MAJUSCULES !!

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

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

## Configurer Samba

- Dffacer le fichier `/etc/smb/smb.conf` s’il a déjà été généré (il sera régénéré par la commande d’instanciation) :

      rm -f /etc/samba/smb.conf

- Configurer Samba avec le rôle de contrôleur de domaine. Dans la ligne qui suit, vous penserez à changer à la fois le nom du royaume kerberos, et le nom court du domaine (nom netbios) :

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

- Réinitialiser le mot de passe administrator :

      samba-tool user setpassword administrator

- Vérifier la ligne `dns forwarder = xxx.xxx.xxx.xxx` dans votre fichier `/etc/samba/smb.conf`. Elle doit pointer vers un serveur DNS valide, par ex. :

      dns forwarder = 1.1.1.1

- Reconfigurer la résolution DNS pour la machine locale. Dans le fichier `/etc/sysconfig/network-scripts/ifcfg-xxxx` de l’interface réseau, remplacer la ligne suivante :

- Reconfigurer la resolution DNS pour la machine locale en utilisant la commande nmcli ou nmtui pour une interface semi-graphique (Cliquez ici pour plus d’information à propos de la commande nmtui). Le nom de l’interface peut être différent, comme `enp0s17`, `eth0` par exemple.

      nmcli con mod ens18 ipv4.dns 127.0.0.1

- Relancer NetworkManager pour prendre en compte les changements et vérifier que le resolver a bien été reporté dans `/etc/resolv.conf` :

      systemctl restart NetworkManager

- Le script de création de domaine Samba crée un fichier `/var/lib/samba/private/krb5.conf` inutile. Il faut le supprimer et le remplacer 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 qu’il démarre automatiquement au prochain reboot :

      systemctl enable samba
      systemctl start samba

- Redémarrer la machine avec un reboot pour vérifier que Samba redémarre bien :

      reboot

- Après redémarrage, tester que le kerberos est bien configuré et que vous obtenez bien un TGT. Taper le mot de passe du compte administrator que vous avez défini ci-dessus avec la commande samba-tool setpassword. Si ça ne renvoie rien ou que vous obtenez un message concernant l’expiration du mot de passe, c’est que c’est bon).

      kinit administrator
      klist

  Attention

  Samba-AD a fait le choix judicieux de ne pas implémenter la traduction des comptes système. L’Administrateur par défaut est donc administrator en anglais.

- Tester les DNS :

      dig @localhost google.fr
      dig @localhost srvads.mydomain.lan
      dig -t SRV @localhost _ldap._tcp.mydomain.lan

## Valider la nouvelle installation avec un client Windows

Vous pouvez désormais joindre un poste client Windows dans votre nouveau domaine.

Pour gérer votre nouveau domaine, il faut installer les interfaces de management sur un poste Windows. La ligne de commande Samba est efficace pour de nombreuses tâches d’administration, et les interfaces graphiques RSAT sont un bon complément à la ligne de commande.

Pour l’installation des outils RSAT, suivre la page installer RSAT sur votre machine de management.

Une fois RSAT installé :

- Créer et supprimer un enregistrement DNS à partir de la console DNS Active Directory.

- Créer et supprimer un compte utilisateur ou un compte machine à partir de la console Utilisateurs et Ordinateurs Active Directory.

- Créer une nouvelle GPO.

Super, si vous êtes parvenu jusqu’à cette étape, c’est que tout se passe bien et que vous avez un nouveau domaine Samba Active Directory opérationnel.

Maintenant, nous allons configurer le service DNS en mode BindDLZ pour améliorer les performances de votre Samba-AD.