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 un Samba-AD RODC sur RedHat et dérivées

Note

La distribution EnterpriseLinux8 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.

## 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 l’adresse IP de votre serveur

- Définissez une adresse IP statique à l’aide de 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 n’est plus supporté 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 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 fonctionnera qu’avec les distributions dérivés. 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

Attention

Le support RODC, il est impératif d’utiliser une version de Samba supérieure à 4.9. Le support RODC est globalement fonctionnel mais il n’est pas complet, il manque notamment le forwarding d’authentification NTLM quand le hash de mot de passe n’a pas été synchronisé.

#### Mettre en place le service RODC

- Modifier `/etc/resolv.conf` pour qu’il pointe sur lui-même.

- Joindre la machine au domaine :

      samba-tool domain join mydomain.lan RODC -U MYDOMAIN\\Administrator

- Dans le fichier `/etc/samba/smb.conf`, rajouter le forwarder DNS :

      dns forwarder = 8.8.8.8

- Lancer le service Samba avec `systemctl start samba`.

- Modifier `/etc/resolv.conf` pour qu’il pointe sur lui-même :

      search mydomain.lan
      nameserver 127.0.0.1

#### Tester la réplication des mots de passe utilisateur sur le serveur RODC

- Sur srvads, ajouter un utilisateur en tant que membre du groupe Allowed RODC Password Replication Group.

- Sur srvrodc :

      samba-tool rodc preload myuser --server=srvads.mydomain.lan

- Si tout c’est bien passé :

      Replicating DN CN=myuser,CN=Users,DC=mondomaine,DC=lan
      Exop on[CN=myuser,CN=Users,DC=mondomaine,DC=lan] objects[1] linked_values[0]