Sécurisation du serveur de fichiers et d'impression
Profils de sécurité de Samba
Les deux niveaux de sécurité disponibles pour le protocole réseau CIFS (Common Internet Filesystem) sont user-level et share-level. La mise en œuvre des options de sécurité de Samba permet plus de flexibilité en fournissant quatre possibilités de sécurité au niveau de l'utilisateur plus une au niveau du partage :
-
security = user: requires clients to supply a username and password to connect to shares. Samba user accounts are separate from system accounts, but the libpam-winbind package will sync system users and passwords with the Samba user database.
-
security = domain: permet au serveur Samba d'apparaître aux clients Windows comme un contrôleur principal de domaine (PDC : Primary Domain Controller), un contrôleur de domaines de sauvegarde (BDC : Backup Domain Controller) ou un serveur membre du domaine (DMS : Domain Member Server). Consultez En tant que contrôleur de domaine pour plus d'informations.
-
security = ADS: permet au serveur Samba de joindre un domaine Active Directory. Consultez Integration Active Directory pour plus de détails.
-
security = server: est une option qui date de l'époque où Samba ne pouvait pas devenir un serveur membre et ne devait pas être utilisé en raison de plusieurs problèmes de sécurité. Consultez la section sécurité du serveur (en) du guide Samba pour plus de détails.
-
security= share : permet aux clients de se connecter aux partages sans fournir de nom d'utilisateur ni de mot de passe.
Le choix du mode de sécurité dépendra de votre environnement et de ce que vous attendez de votre serveur Samba.
Security = User
Cette section permet de reconfigurer le serveur de fichiers et d'impression Samba défini dans Serveur de fichiers et dans Serveur d'impression de façon à imposer une identification.
First, install the libpam-winbind package which will sync the system users to the Samba user database:
sudo apt install libpam-winbind
If you chose the Samba Server task during installation libpam-winbind is already installed.
Modifiez la section [share] du fichier /etc/samba/smb.conf :
guest ok = no
Pour terminer, redémarrez Samba afin que les nouveaux paramètres soient pris en compte :
sudo systemctl restart smbd.service nmbd.service
Vous devrez désormais fournir un nom d'utilisateur et un mot de passe quand vous vous connecterez à un dossier ou une imprimante partagée.
Si vous connectez un lecteur réseau au dossier partagé, vous pouvez cocher la case « Reconnecter au démarrage ». Vous n'aurez alors à saisir le nom d'utilisateur et le mot de passe qu'une seule fois, du moins jusqu'au changement de mot de passe.
Profil AppArmor pour Samba
Ubuntu est fourni avec le module de sécurité AppArmor, qui prévoit des contrôles d'accès obligatoires. Le profil par défaut d'AppArmor pour Samba doit être adapté à votre configuration. Pour plus de détails sur AppArmor voir AppArmor.
Il existe des profils par défaut pour les démons Samba /usr/sbin/smbd et /usr/sbin/nmbd. Ces profils font partie du paquet apparmor-profiles. Pour installer ce paquet, saisissez ceci dans un terminal :
sudo apt install apparmor-profiles apparmor-utils
Ce paquet contient des profils pour plusieurs autres exécutables.
Par défaut les profils pour smbd et nmbd sont dans le mode complain pour permettre à Samba de travailler sans modifier le profil et de journaliser les erreurs seulement. Pour placer le profil smbd dans le mode enforce et ainsi faire fonctionner Samba comme prévu, le profil doit être modifié de façon à tenir compte de tous les répertoires partagés.
Modifiez /etc/apparmor.d/usr.sbin.smbd en ajoutant les informations dans [share] à partir de l'exemple du serveur de fichiers :
/srv/samba/share/ r, /srv/samba/share/** rwkix,
Maintenant, placez le profil dans enforce et rechargez-le :
sudo aa-enforce /usr/sbin/smbd cat /etc/apparmor.d/usr.sbin.smbd | sudo apparmor_parser -r
Vous devriez pouvoir lire, écrire et exécuter les fichiers dans le dossier partagé et l'exécutable smbd n'aura accès qu'aux fichiers et dossiers configurés. Assurez vous d'avoir ajouté une entrée pour chaque dossier que vous voulez partager avec Samba. Quoi qu'il en soit, toutes les erreurs seront écrites dans le fichier journal /var/log/syslog.
Ressources
-
Pour des configurations plus élaborées de Samba, consultez les guides pratiques Samba (en)
-
Ce guide est également disponible en format papier.
-
Le manuel O'Reilly Using Samba (en anglais) est aussi une bonne référence.
-
Le chapitre 18 (en anglais) de la collection HOWTO de Samba est dédié à la sécurité.
-
Pour plus d'informations sur Samba et sur les ACLs, consultez la page Samba ACLs.
-
Page du Wiki Ubuntu consacrée à Samba.