SAMBA - Augmenter la sécurité de votre infrastructure Samba Active Directory
Pour accéder aux autres documentations Samba4, cliquez ici : Autres documentations Samba
Besoins d'accompagnement, n'hésitez pas à nous contacter chez http://www.tranquil.it
Sommaire
Désactivation des connexions null session
Samba4 AD hérite d'un comportement des domaines NT4 qui n'est pas plus nécessaire en mode Active Directory.
En effet, on peut récupérer la liste des utilisateurs sans être loggué sur le domaine, ce qui n'est pas très élégant.
Par exemple, la commande suivante renvoie l'ensemble des utilisateurs du domaine (remplacer l'adresse ip par celle de votre contrôleur de domaine et appuyer sur "enter" au moment du prompt)
rpcclient -U "" -c enumdomusers 10.0.0.11
Pour éviter ce listing, rajouter la ligne suivante dans la section [global] du fichier smb.conf
restrict anonymous = 2
Désactivation NetBIOS
Si la configuration DNS est correctement faite, on peut désactiver les anciens protocols NetBIOS qui ne sont plus nécessaire. Dans la section [global], on rajoute
disable netbios = yes smb ports = 445
Configuration Firewall sur CentOS7
Configuration firewall sur un serveur AD
Cette configuration marche uniquement si vous utilisez le serveur DNS interne de Samba. Il y a plus de règle à mettre en place si l'on utilise Bind DLZ
Ré-activer le firewall
systemctl start firewalld systemctl enable firewalld
Ouvrir les ports nécessaire
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
Il y a aussi un range de port pour le dynamic port mapping de MS-RPC à ouvrir. Il n'y a pas vraiment de borne supérieur actuellement. L'implémentation MS-RPC actuelle prend le premier port disponible au dessus de 1024. Empiriquement, on peut estimer qu'il n'y aura pas plus de 1024 connections et ouvrir le range suivant
firewall-cmd --zone=public --add-port=1024-2048/tcp --permanent
Si l'on utilise encore le protocol NetBIOS, il faut aussi ouvrir les ports suivant (normalement on le désactive et ce n'est pas nécessaire)
firewall-cmd --zone=public --add-port=137/udp --permanent firewall-cmd --zone=public --add-port=138/udp --permanent firewall-cmd --zone=public --add-port=139/tcp --permanent
Configuration sur un serveur de fichiers
Ré-activer le firewall
systemctl start firewalld systemctl enable firewalld
Ouvrir les ports
firewall-cmd --zone=public --add-port=135/tcp --permanent firewall-cmd --zone=public --add-port=445/tcp --permanent
Si l'on utilise encore le NetBIOS, il faut aussi ouvrir les ports
firewall-cmd --zone=public --add-port=137/udp --permanent firewall-cmd --zone=public --add-port=138/udp --permanent firewall-cmd --zone=public --add-port=139/tcp --permanent
Configuration SELinux sur Centos7 avec Samba4
Configuration sur serveur de fichier
Réactivation selinux. Attention, ré-étiquettage au démarrage puis reboot
sed -i 's/SELINUX=disabled/SELINUX=enforcing/' /etc/selinux/config reboot
Vérification que selinux est bien activé (la commande echo doit renvoyer 0)
selinuxenabled echo $?
Activation des policy selinux pour Samba
semanage fcontext -a -t samba_share_t '/home/partages(/.*)?' restorecon -R /home/partages
Configuration sur serveur AD
Attention, l'extension Bind DLZ ne supporte pas actuellement une configuration SELinux. Si vous utilisez Bind DLZ (ce qui est recommandé), il ne faut pas activer SELinux sur votre contrôleur de domaine.
Réactivation selinux. Attention, ré-étiquettage au démarrage puis reboot
sed -i 's/SELINUX=disabled/SELINUX=enforcing/' /etc/selinux/config reboot
Vérification que selinux est bien activé (la commande echo doit renvoyer 0)
selinuxenabled echo $?
Activation des policy selinux pour Samba
yum install policycoreutils-python setsebool -P samba_domain_controller on semanage fcontext -a -t samba_share_t '/var/lib/samba/sysvol(/.*)?' restorecon -R /var/lib/samba/sysvol
Protection des champs DNS wpad et isatap
Les serveurs AD Windows dispose d'une DNS Global Query Block List avec deux entrées : wpad et isatap. La clef de registre GlobalQueryBlockList liste les deux enregistrements DNS en question pour éviter qu'un utilisateur malveillant sur le réseau local ne crée ces enregistrement et déroute le trafic internet. WPAD est configuré par défaut sur les navigateurs Internet Explorer.
Même si les configuration wpad et isatap ne sont pas utilisés, il est quand même important de créer ces entrées pour éviter qu'elle puisse être utilisé. Il n'y a pas de manière de bloquer la création d'entrée comme sous AD.
samba-tool dns add `hostname -s` `hostname -d` wpad A 127.0.0.1 -U Administrator samba-tool dns add `hostname -s` `hostname -d` isatap A 127.0.0.1 -U Administrator
Pour en savoir plus : https://technet.microsoft.com/en-us/library/cc794902%28v=ws.10%29.aspx