Comment installer et configurer la samba sur rhel 8 / centos 8

Comment installer et configurer la samba sur rhel 8 / centos 8

Samba fournit des logiciels de serveur et client pour permettre le partage de fichiers entre les machines Linux et Windows. L'installation et la configuration sur RHEL 8 / Centos 8, est assez facile. Continuez à lire pour apprendre à partager un répertoire avec Samba et à y appliquer le contexte SELINUX approprié.

Dans ce tutoriel, vous apprendrez:

  • Comment installer samba sur rhel8
  • Comment activer et démarrer les démons SMB et NMB
  • Comment créer une part de samba
  • Comment configurer le pare-feu pour permettre à Samba Share d'accéder
  • Comment configurer le contexte SELINUX correct pour que Samba fonctionne correctement
Samba actions sur Rhel 8 / Centos 8

Exigences et conventions logicielles utilisées

Exigences logicielles et conventions de ligne de commande Linux
Catégorie Exigences, conventions ou version logicielle utilisée
Système Red Hat Enterprise Linux 8
Logiciel Samba, coreutils et packages politiques-python-utils
Autre Permission d'exécuter la commande avec les privilèges racine.
Conventions # - Exige que les commandes Linux soient exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande
$ - Exige que les commandes Linux soient exécutées en tant qu'utilisateur non privilégié régulier

Présentation de la samba

Samba, comme indiqué dans la page d'accueil du projet, est un logiciel open source, publié sous le GPL Licence, qui nous permet de partager des fichiers et d'imprimer des services à l'aide du SMB / CIFS protocole.

Le projet fournit à la fois le serveur et le logiciel client pour permettre l'interopération avec les machines Windows, représentant la solution idéale dans des environnements mixtes. Dans ce tutoriel, nous verrons comment installer Samba sur Red Hat Enterprise Linux 8, comment configurer un partage de samba, comment configurer le pare-feu pour permettre l'accès aux ressources partagées et comment appliquer le contexte Sélinux approprié.



Installation

La première chose que nous devons faire est d'installer Samba sur notre machine. Le package et les bibliothèques nécessaires sont disponibles dans les référentiels officiels RHEL 8 / CentOS 8, nous pouvons donc les installer simplement en utilisant Yum ou DNF. Dans cette version de Rhel / Centos, la première commande, c'est juste un «lien» vers le second:

$ sudo dnf installer samba samba-client

L'ensemble Samba-Client n'est pas strictement nécessaire, mais les utilitaires fournis par celui-ci peuvent être utiles. Une fois les packages installés, nous devons démarrer et activer le pME et le NMB démons à la botte. Le premier est le démon qui s'occupe de l'exécution des transferts réels et des opérations de partage, tandis que le second exécute le Netbios Nom Resolutions, permettant aux ressources d'apparaître lors de la navigation sur le réseau sous Windows. Nous pouvons maintenant activer et démarrer les deux services Systemd avec une seule commande:

$ sudo systemctl enable --now smb, nmb

Configuration du pare-feu

L'étape suivante est la configuration du pare-feu. Nous devons ouvrir les ports appropriés, afin que les ressources partagées en samba puissent être accessibles à partir d'autres machines. Le logiciel de gestion du pare-feu par défaut Onrhel 8 / Centos 8, est le pare-feu.

Heureusement pour nous, il n'est pas nécessaire d'ouvrir les ports manuellement: tout ce que nous avons à faire est d'ajouter le service «samba» à notre zone. Un «service» est juste une abstraction qui permettons de permettre le trafic à travers tous les ports nécessaires à un service, en faisant référence au nom du service, au lieu d'avoir à configurer (et à se souvenir) de chaque port utilisé par celui-ci. Dans le cas où nous voulons recueillir des informations sur un «service», nous pouvons exécuter:

$ sudo Firewall-CMD - Info-Service Samba Samba Ports: 137 / UDP 138 / UDP 139 / TCP 445 / TCP Protocoles: Source-Ports: Modules: NetBiOS-NS Destination: 

À partir de la sortie de la commande, nous constatons que le service permettra le trafic via les ports 173 / UDP, 138 / UDP, 139 / TCP et 445 / TCP. Pour ajouter en permanence le service à la zone par défaut, nous pouvons s'exécuter:

$ sudo Firewall-CMD - Permanent --Add-Service = Samba

Lors de l'exécution de la commande, nous avons utilisé le --permanent Communiquez afin de rendre notre changement persistant. Nous avons également supposé le défaut zone à utiliser. Si nous voulions spécifier une autre zone pour que l'action soit appliquée, nous aurions utilisé le --zone option, et a fourni le nom de zone comme argument (e.g. -zone = externe). Étant donné que notre modification est définie permanente, pour qu'il devienne efficace, nous devons recharger la configuration du pare-feu:

$ sudo Firewall-CMD - Reload


Nous pouvons vérifier que le service «samba» fait désormais partie de notre zone, en fonctionnant:

$ sudo Firewall-Cmd - list-Services Cockpit DHCPV6-CLIENT HTTP samba ssh 

Encore une fois, si aucune zone n'est spécifiée, la commande est appliquée à la zone par défaut.

Configuration d'un répertoire partagé accessible par les invités

Disons que nous voulons partager un répertoire via Samba, et que nous voulons laisser un accès gratuit à ce répertoire aux utilisateurs invités, sans qu'ils aient à fournir un mot de passe. Pour obtenir le résultat souhaité, nous devons apporter quelques modifications au / etc / samba / smb.confli déposer et ajouter une «strophe» pour notre part. Ouvrez le fichier avec votre éditeur préféré et dans le [mondial] Section, ajoutez le texte en surbrillance:

[Global] Workgroup = Samba Security = User PassDB Backend = TDBSAM Printing = Cups Printcap Name = Cups Load Printers = Yes Cups Options = Raw map à invité = mauvais utilisateur 

Le map à invité = mauvais utilisateur instruction, mappera les tentatives de connexion avec de mauvais noms d'utilisateur à l'utilisateur invité par défaut, qui, par défaut, est par défaut personne. Cela est nécessaire pour permettre un accès anonyme sans avoir à fournir un mot de passe.

Après ce changement, nous devons ajouter une nouvelle strophe dédiée à notre part à la fin du fichier. Nous nommerons la ressource partagée «LinuxConfig»:

[LinuxConfig] PATH = / mnt / invité partagé uniquement = oui 

Avec la configuration ci-dessus, nous avons déclaré que nous voulons partager le contenu du / mnt / partagé répertoire, sans avoir besoin d'authentification des utilisateurs. Cette configuration est évidemment risquée, et est ici signalée uniquement comme exemple: dans un scénario du monde réel, vous voudrez peut-être au moins refuser l'accès en écriture aux clients (vous pouvez le faire en ajoutant le Writable = Non instruction). Pour rendre les changements efficaces, nous devons redémarrer les démons:



$ sudo systemctl redémarrer smb, nmb

Configurer un partage accessible uniquement par les utilisateurs enregistrés

Pour protéger l'accès à une ressource avec une invite de connexion, lorsque Samba s'exécute en tant que serveur autonome, nous devons ajouter un utilisateur existant à la base de données Samba. Les informations d'identification de cet utilisateur seront nécessaires pour accéder au répertoire partagé. Pour des raisons de sécurité, c'est une bonne pratique de créer un utilisateur dédié pour la tâche, d'omettre la création de son répertoire d'origine et de lui attribuer un faux shell:

$ sudo addUser -m sambauser -s / sbin / nologin

Le -M L'option transmise à la commande est le formulaire court pour --sans création, qui est assez explicite; le -s L'option, à la place, spécifions un shell, dans ce cas un non valide à des fins: / sbin / nologine. À ce stade, l'utilisateur n'a même pas besoin d'avoir un mot de passe sur notre système.

Une fois l'utilisateur créé, nous devons l'ajouter à la base de données Samba: nous pouvons effectuer l'opération en utilisant le smbpasswd commande:

$ sudo smbpasswd -a sambauser Nouveau mot de passe SMB: Retyper le nouveau mot de passe SMB: Ajout de l'utilisateur Sambauser. 

Après avoir exécuté la commande, nous sommes invités à attribuer un mot de passe à l'utilisateur, et à le confirmer: ce mot de passe ne sera valable que dans le contexte de la samba, n'a rien à voir avec le compte d'utilisateur sur notre système. Pour restreindre la part que nous avons créée précédemment, nous devons apporter un petit changement dans la section dédiée:

[LinuxConfig] Path = / mnt / partagé invité ok = non 

Nous pouvons vérifier que notre configuration est valide, en utilisant le comparmage commande:



$ testParm Chargez des fichiers de configuration smb à partir de / etc / samba / smb.Conf rlimit_max: augmentation de rlimit_max (1024) à la section de traitement minimale de la limite de fenêtres (16384) "[Homes]" Section de traitement "[Printeurs]" Section de traitement "[Print $]" Section de traitement "[LinuxConfig]" Fichier de services chargé OK OK. Rôle du serveur: Role_standalone 

Encore une fois, nous devons redémarrer le pME et NMB démons pour que nos changements soient efficaces. Le répertoire partagé ne sera désormais accessible qu'après avoir fourni les informations d'identification correctes.

Configuration de SELINUX POUR SAMBA

Selinux est souvent vu comme une complication et handicapé tout de suite. Ce n'est pas nécessaire: nous devons seulement apprendre à le configurer et profiter de l'amélioration de la sécurité qu'il offre. Pour que notre part de Samba fonctionne lorsque Selinux est en mode «application», nous devons attribuer le contexte approprié à notre répertoire et à nos fichiers partagés:

$ sudo chcon -r -t samba_share_t / mnt / partagé

Dans l'exemple ci-dessus, nous avons utilisé le chcon commande avec le -t option, pour modifier le TAPER Section du contexte SELINUX à samba_share_t. Nous avons également utilisé le -R Communiquez pour rendre la commande récursive. Ce changement survivra à un redémarrage, mais pas à un relances.

Si nous voulons que notre changement survit à un événement de relances, nous devons ajouter notre règle à la politique. Nous pouvons le faire en utilisant le sémanage commande:

$ sudo semanage fcontext -a -t samba_share_t "/ mnt / shared (/.*)?"

Puisque nous avons utilisé le (/.*)? Regex, la règle sera appliquée à tout le contenu du répertoire «partagé» et au répertoire lui-même. Nous pouvons vérifier que notre règle a été ajoutée à la politique en répertoriant les étiquettes utilisées sur notre système:

$ sudo Semanage fContext -l | grep / mnt / shared / mnt / partagé (/.*)? Tous les fichiers System_u: objet_r: samba_share_t: s0 

Nous devrions maintenant avoir une configuration de samba fonctionnelle. Pour modifier davantage la configuration de la samba, nous devrons peut-être également manipuler SELINUX BOOLEANS. Par exemple, lors de l'ajout d'utilisateurs existants à Samba, pour laisser partager leurs répertoires domestiques, nous devons activer le SELINUX BOOLEAN dédié. Pour énumérer tous les booléens liés à la samba, nous pouvons courir:



$ sudo semanage booléen -l | grep samba samba_create_home_dirs (off, off) permettre à la samba de créer des directeurs de maison samba_domain_controller (off, off) permettent à la samba de contrôler le domaine samba_enable_home_dirrs (off, off) permettre à la samba de permettre de permettre à la maison dire Autoriser la samba à exporter tous les ro samba_export_all_rw (off, off) permettez à Samba d'exporter tous les RW Samba_load_libgfapi (off, off) permettent à Samba de charger libgfapi samba_portmapper (off, off) permettre à Samba de permettre à Samba de faire fonctionner Samba_Run_unconfined (off, off) samba_share_fusefs (off, off) permettez à la samba de partager les fusibles samba_share_nfs (off, off) permettent à la samba de partager nfs Sanlock_use_samba (off, off) permettre à Sashlock d'utiliser Samba tmpereper_use_samba (off, off) permettre à tmperreat d'utiliser samba use_samba_home_dirs (office) off) Autoriser l'utilisation à Samba Home Dirs Virt_use_samba (off, off) A permettre de Virt d'utiliser Samba 

Dans la sortie ci-dessus, la deuxième colonne indique la valeur actuelle du booléen, tandis que le troisième par défaut (les deux sont désactivés, dans ce cas). Le booléen que nous voulons activer, pour permettre le partage des répertoires de la maison, est samba_enable_home_dirs. Nous pouvons effectuer l'opération en utilisant le Setsebool commande:

$ sudo setsebool samba_enable_home_dirs = 1

Conclusions

Dans ce tutoriel, nous avons vu comment installer Samba sur un système RHEL 8 / Centos 8. Nous avons également vu comment partager un répertoire, permettant d'accéder aux invités ou de le restreindre aux utilisateurs authentifiés. Nous avons également vu comment configurer le pare-feu afin que le partage soit accessible à partir d'autres machines du réseau.

Enfin, nous avons vu comment effectuer les modifications nécessaires afin d'avoir une configuration de samba fonctionnelle avec SELINUX en mode «application». Si vous êtes intéressé SELINUX, vous pouvez également lire notre article sur le sujet.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Masterring Bash Script Loops
  • Comment doubler Kali Linux et Windows 10
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Comment configurer Samba Server et Client sur Almalinux
  • Comment configurer un serveur OpenVPN sur Ubuntu 20.04
  • Liste des clients FTP et installation sur Ubuntu 22.04 Linux…
  • Ubuntu 20.04 Guide