Aller à : navigation, rechercher

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

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