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: impose aux clients de fournir un nom d'utilisateur et un mot de passe pour se connecter aux partages. Les comptes utilisateurs Samba sont différents des comptes système, mais le paquet libpam-smbpass permet de synchroniser les utilisateurs et mots de passe du système avec la base de données des utilisateurs Samba.
-
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.
Tout d'abord, installez le paquet libpam-smbpass qui synchronisera les utilisateurs système avec la base de données des utilisateurs Samba :
sudo apt-get install libpam-smbpass
Si vous avez sélectionné la tâche Samba Server lors de l'installation, libpam-smbpass est déjà installé.
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 restart smbd sudo restart nmbd
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-get 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.