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 exemplemydomain.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 RedHat8 ou dérivé
Pour installer une Redhat8 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 RedHat7.
Note
Nous recommandons l’installation de Samba-AD sur Linux (Debian / Redhat8 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
Modifier le fichier
/etc/sysconfig/network-scripts/ifcfg-eth0
et définir une adresse IP statique. Le fichier à modifier peut être différent, par exempleifcfg-ens0
:# /etc/sysconfig/network-scripts/ifcfg-eth0 du serveur Samba-AD TYPE="Ethernet" BOOTPROTO="static" NAME="eth0" ONBOOT="yes" IPADDR=10.0.0.10 NETMASK=255.255.255.0 GATEWAY=10.0.0.254 DNS1=10.0.0.1
Appliquer la configuration réseau en redémarrant la machine avec un reboot.
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 :
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
Update the distribution and install the EPEL repository and some essential tools (subscription-manager commands are only available on RedHat distros, not derivative):
yum update -y
yum install -y epel-release
yum install -y wget sudo screen nmap telnet tcpdump rsync net-tools bind-utils htop
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
Vous pouvez maintenant passer à l’étape suivante et installer Samba-AD sur votre distribution RedHat8 ou dérivée.
Les paquets de la dernière version 4.20 validé par l’équipe Tranquil IT peuvent être téléchargés depuis l’url https://samba.tranquil.it/redhat9/samba-4.20/.
Quand il sera necessaire d’upgrader en Samba-4.21, juste changerl’url du repo vers https://samba.tranquil.it/redhat9/samba-4.21/ 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 :
wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-7 https://samba.tranquil.it/RPM-GPG-KEY-TISSAMBA-7
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-7
echo "[tis-samba]
name=tis-samba
baseurl=https://samba.tranquil.it/redhat7/samba-4.20/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-8" > /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.20/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-8" > /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.20/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-9" > /etc/yum.repos.d/tissamba.repo
Vérifier l’empreinte de la clé avec sha256sum :
# For RHEL7 / RHEL8 : sha256sum /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-8 b3cd8395e3d211a8760e95b9bc239513e9384d6c954d17515ae29c18d32a4a11 /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-8 # For RHEL9 : sha256sum /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-9 05f21f368bdeb01453e37c3af2b8fcabba8986e2ce2b0d0298df6456a0bef60a /etc/pki/rpm-gpg/RPM-GPG-KEY-TISSAMBA-8
Install the Samba-AD packages for RedHat9 and derivative distributions :
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 will only work with derivative distros. If you are using a RedHat distro, please use the following command to enable crb repo:
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]