écrire devant
- Partagez quelques notes de construction pour les PME
- Organisation des examens
- Si vous ne comprenez pas suffisamment, aidez-moi à le corriger.
Il n’y a qu’une seule véritable responsabilité pour chacun : se retrouver. Ensuite, tenez-vous-en à cela dans votre cœur pour le reste de votre vie, de tout cœur, et ne vous arrêtez jamais. Tous les autres chemins sont incomplets, fuites humaines, retours lâches aux idéaux populaires, dérives, peurs intérieures - Hermann Hesse, "Demian"
Une brève introduction à la PME
SMB协议
Développé à l'origine Microsoft开发
, il est ensuite devenu le protocole de partage de fichiers le plus couramment utilisé sur les réseaux Windows. Le protocole SMB peut également être utilisé pour le partage de fichiers avec les systèmes Unix ou Linux. Grâce au progiciel Samba, les systèmes Unix et Linux peuvent fournir des services de partage de fichiers en tant que serveurs SMB, permettant aux systèmes Windows d'accéder aux fichiers et imprimantes partagés.
NFS
Il permet aux machines Unix et Linux de communiquer ou aux machines Windows de communiquer. SMB peut permettre aux machines Windows de communiquer avec les machines Unix ou Linux.
En utilisation réelle, il SMB协议
est plus couramment Windows操作系统
utilisé dans 文件共享协议
, ce qui permet Windows系统
de partager des fichiers et des imprimantes entre .
Samba
Samba
SMB
C'est un logiciel gratuit qui implémente le protocole sur un système Linux . 局域网上共享文件和打印机
C'est un protocole de communication composé de programmes serveur et client.
Les fonctions suivantes peuvent être réalisées :
文件共享
: Samba peut partager des fichiers et des répertoires sur les systèmes Linux/UNIX avec Windows, macOS et d'autres clients prenant en charge le protocole SMB/CIFS. Cela signifie que vous pouvez utiliser Samba pour partager des fichiers et des répertoires entre différents systèmes d'exploitation.打印机共享
: Samba vous permet de connecter une imprimante à un système Linux/UNIX et de la partager avec Windows, macOS et d'autres clients via le protocole SMB/CIFS. De cette façon, vous pouvez partager l'imprimante sur votre réseau et permettre à plusieurs utilisateurs d'utiliser la même imprimante.认证和授权
: Samba fournit des mécanismes d'authentification et de contrôle d'accès qui vous permettent de configurer l'authentification des utilisateurs, les autorisations d'accès et les niveaux de partage. Vous pouvez créer des comptes d'utilisateurs, définir des politiques de mot de passe et spécifier différentes autorisations d'accès pour les répertoires partagés.域控制器
: Samba peut agir comme un contrôleur de domaine, offrant des fonctionnalités similaires aux domaines Windows. Vous pouvez utiliser Samba pour créer et gérer des comptes d'utilisateurs, des groupes, des politiques et mettre en œuvre une gestion et une authentification centralisées.家庭文件服务器
: Vous pouvez utiliser Samba pour configurer un serveur de fichiers sur votre réseau domestique, permettant aux membres de la famille de partager des fichiers et des répertoires et d'effectuer un contrôle d'accès.安全性和加密
: Samba prend en charge la communication cryptée et assure la protection des données et la transmission sécurisée. Vous pouvez configurer Samba pour qu'il utilise le protocole de cryptage SSL/TLS afin de protéger la transmission et le stockage des données.跨平台兼容性
: Samba offre une bonne compatibilité avec les réseaux Windows, permettant aux systèmes Linux/UNIX d'être intégrés de manière transparente aux réseaux Windows.
Explication simple du processus d'accès à Samba
- Le serveur Samba démarre et écoute sur le port spécifié (la valeur par défaut est le port 445).
- Le client lance une demande de connexion pour se connecter au serveur Samba.
- Le serveur Samba reçoit la demande de connexion et établit une connexion avec le client.
- Le client envoie des requêtes SMB/CIFS au serveur Samba, demandant l'accès aux ressources partagées ou pour effectuer des opérations spécifiques.
- Le serveur Samba analyse la requête et effectue les opérations correspondantes en fonction du type de requête et des paramètres.
- Si la demande implique l'accès à une ressource partagée, le serveur Samba vérifie les informations d'authentification du client et détermine s'il doit accorder l'accès en fonction des règles de contrôle d'accès du fichier de configuration.
- Le serveur Samba effectue l'opération demandée telle que lire, écrire, créer, supprimer des fichiers, etc.
- Le serveur Samba génère une réponse et renvoie la réponse au client.
- Le client reçoit la réponse, la traite et l'affiche en conséquence en fonction du contenu de la réponse.
L'hôte peut agir en tant que 客户端
, ou pour 服务器
accéder et fournir SMB
des partages de fichiers :
- Comme
客户端
, le montageSMB
d'un partage de fichiers nécessitecifs-utils
également l'installation du package samba-client. - Comme
服务器
, le partage d'un répertoire à l'aideSMB
du protocole nécessite l'installationsamba
du package.
Les étapes de base pour la configuration de l'environnement Linux SMB共享
sont les suivantes :
- Installez
samba
le paquet. - Préparer
Samba
les utilisateurs - Préparez le répertoire partagé.
- Configurer
/etc/samba/smb.conf
le fichier de configuration - Démarrez
Samba
et ouvrez le pare-feu local - Montez le partage à partir du système client
SMB
pour vérifier votre configuration.
Installation et déploiement
Configurez- serverd
le en tant que SMB
serveur de fichiers autonome qui partagera /smbshare
des répertoires. Vous pouvez utiliser multiuser
l'option de montage pour servera
configurer ce SMB
partage afin qu'il soit monté /designs
sous un répertoire.
Installez le paquet samba.
[root@serverd ~]# yum install samba -y
Red Hat Enterprise Linux 8.1 BaseOS (dvd) 21 MB/s | 2.2 MB 00:00
Red Hat Enterprise Linux 8.1 AppStream (dvd) 32 MB/s | 5.6 MB 00:00
Créez marketing
des groupes et /smbshare
des répertoires. Répertoire de configuration /smbshare
, autres configurations :
- Ce répertoire appartient à ce
marketing
groupe - Ce répertoire a
SGID
des bits définis - Tout le monde a un accès en lecture au répertoire, mais seul
marketing
le groupe peut écrire - Le catalogue a
samba_share_t SELinux
un type de contexte
#创建 marketing 组。
[root@serverd ~]# groupadd marketing
#创建 /smbshare ⽬录。
[root@serverd ~]# mkdir /smbshare
#将 /smbshare ⽬录的组所有权更改为 marketing。
[root@serverd ~]# chgrp marketing /smbshare
#在⽬录上设置 SGID 位,并且仅向该 marketing 组授予写⼊权限。
[root@serverd ~]# chmod 2775 /smbshare
#在 SELinux 策略中添加⼀条规则,使 /smbshare ⽬录及其内容的上下⽂类型为
samba_share_t。
[root@serverd ~]# semanage fcontext -a -t samba_share_t '/smbshare(/.*)?'
#将 SELinux 规则应⽤到 /smbshare ⽬录。
[root@serverd ~]# restorecon -Rv /smbshare
Relabeled /smbshare from unconfined_u:object_r:default_t:s0 to
unconfined_u:object_r:samba_share_t:s0
#验证⼯作成果。组权限、组所有权和 SELinux 类型应与以下输出匹配。
[root@serverd ~]# ls -ldZ /smbshare
drwxrwsr-x. 2 root marketing unconfined_u:object_r:samba_share_t:s0 6 May 22
08:10 /smbshare
Modifiez /etc/samba/smb.conf
le fichier de configuration et configurez-le selon les exigences suivantes
- Définir le groupe de travail sur MYCOMPANY
- Configurez
Samba
selon vos besoins加密流量
. - Forcer Samba est uniquement pris en charge
SMB 版本 3 和更⾼版本
. - Créez un partage nommé data.
/smbshare
Répertoire partagé .- Protégez le partage afin que tout le monde puisse y accéder, mais que seuls les membres du groupe marketing disposent d'un accès en écriture.
Modifiez /etc/samba/smb.conf
le fichier et workgroup
définissez la commande surMYCOMPANY。
...output omitted...
[global]
workgroup = MYCOMPANY
...output omitted...
Sous la section [global], 强制加密
, et 最⼩协议版本
défini sur SMB3
.
...output omitted...
[global]
workgroup = MYCOMPANY
smb encrypt = required
server min protocol = SMB3
...output omitted...
À la fin du fichier, ajoutez ce qui suit 块
pour définir le nouveau partage.
...output omitted...
[data]
path = /smbshare
write list = @marketing ;配置项指定了具有写权限的用户或用户组。
Une fois terminé, enregistrez et fermez le fichier.
Exécutez testparm
la commande pour vérifier /etc/samba/smb.conf
le fichier de configuration
[root@serverd ~]# testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
Enter
...output omitted...
Créez un compte utilisateur Samba uniquement developer1
et ajoutez-le au marketing
groupe. Ce compte utilisateur dispose d'un accès en écriture au partage car il est membre du groupe marketing.
[root@serverd ~]# useradd -s /sbin/nologin -G marketing developer1
Créez un compte utilisateur Operator1 réservé à Samba. Ne l'ajoutez pas au marketing
groupe afin qu'il ait un accès en lecture seule au partage. Définissez le mot de passe SMB pour les deux comptes sur redhat.
Ajouter le compte utilisateur Developer1 à Samba
[root@serverd ~]# smbpasswd -a developer1
opération complète
[root@serverd ~]# groupadd marketing
[root@serverd ~]# mkdir /smbshare
[root@serverd ~]# chgrp marketing /smbshare
[root@serverd ~]# chmod 2775 /smbshare
[root@serverd ~]# semanage fcontext -a -t samba_share_t '/smbshare(/.)?'
[root@serverd ~]# restorecon -Rv /s
sbin/ smbshare/ srv/ sys/
[root@serverd ~]# restorecon -Rv /s
sbin/ smbshare/ srv/ sys/
[root@serverd ~]# restorecon -Rv /smbshare
Relabeled /smbshare from unconfined_u:object_r:default_t:s0 to unconfined_u:object_r:samba_share_t:s0
[root@serverd ~]# ls -ldZ /smbshare
drwxrwsr-x. 2 root marketing unconfined_u:object_r:samba_share_t:s0 6 Jul 6 20:43 /smbshare
[root@serverd ~]# vim /etc/samba/smb.conf
[root@serverd ~]# testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
# Global parameters
[global]
printcap name = cups
security = USER
server min protocol = SMB3
workgroup = MYCOMPANY
idmap config * : backend = tdb
cups options = raw
smb encrypt = required
[homes]
browseable = No
comment = Home Directories
inherit acls = Yes
read only = No
valid users = %S %D%w%S
[printers]
browseable = No
comment = All Printers
create mask = 0600
path = /var/tmp
printable = Yes
[print$]
comment = Printer Drivers
create mask = 0664
directory mask = 0775
force group = @printadmin
path = /var/lib/samba/drivers
write list = @printadmin root
[data]
path = /smbshare
write list = @markting
Ajoutez smb
un utilisateur, utilisez ici l'utilisateur système, créez d'abord l'utilisateur système, puis ajoutez l'utilisateur smb correspondant
[root@serverd ~]# useradd -s /sbin/nologin -G marketing developer1
[root@serverd ~]# smbpasswd -a developer1
New SMB password:
Retype new SMB password:
Added user developer1.
[root@serverd ~]# useradd -s /sbin/nologin operator1
[root@serverd ~]# smbpasswd -a operator1
New SMB password:
Retype new SMB password:
Added user operator1.
[root@serverd ~]# useradd -r -s /sbin/nologin sambamount
[root@serverd ~]# smbpasswd -a sambamount
New SMB password:
Retype new SMB password:
Added user sambamount.
Configurer smb
le démarrage automatique au démarrage
[root@serverd ~]# systemctl enable --now smb
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
Vérifier l'état du service
[root@serverd ~]# systemctl status smb
● smb.service - Samba SMB Daemon
Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2023-07-06 21:17:54 CST; 18s ago
Docs: man:smbd(8)
man:samba(7)
man:smb.conf(5)
Main PID: 2822 (smbd)
Status: "smbd: ready to serve connections..."
Tasks: 4 (limit: 11251)
Memory: 8.3M
CGroup: /system.slice/smb.service
├─2822 /usr/sbin/smbd --foreground --no-process-group
├─2824 /usr/sbin/smbd --foreground --no-process-group
├─2825 /usr/sbin/smbd --foreground --no-process-group
└─2826 /usr/sbin/smbd --foreground --no-process-group
Jul 06 21:17:54 serverd.lab.example.com systemd[1]: Starting Samba SMB Daemon...
Jul 06 21:17:54 serverd.lab.example.com smbd[2822]: [2023/07/06 21:17:54.189066, 0] ../../lib/util/be>
Jul 06 21:17:54 serverd.lab.example.com systemd[1]: Started Samba SMB Daemon.
Jul 06 21:17:54 serverd.lab.example.com smbd[2822]: daemon_ready: daemon 'smbd' finished starting up>
passe du pare-feu
[root@serverd ~]# firewall-cmd --permanent --add-service=samba
success
[root@serverd ~]# firewall-cmd --reload
success
Montez de manière permanente le partage de données SMB sous le point de montage servera
sur /designs
. Pour ce faire, créez un fichier en utilisant sambamount
les informations d'identification de l'utilisateur . /etc/samba/creds.txt
Utilisez /etc/fstab
les options de montage credentials、multiuser
et seal
pour activer le mode multi-utilisateur et crypter les communications.
Installez cifs-utils
le package qui fournit mount.cifs
la commande
[root@servera ~]# yum install cifs-utils
Créez /etc/samba/creds.txt
un fichier pour fournir le compte et le mot de passe utilisés pour monter le partage. Utilisez sambamount
le compte et le mot de passe est redhat.
username=sambamount
password=redhat
Protégez le fichier afin que seuls root
les utilisateurs puissent y accéder
[root@servera ~]# chmod 600 /etc/samba/creds.txt
Créer /designs
un point de montage
[root@servera ~]# mkdir /designs
Modifiez /etc/fstab
le fichier et ajoutez une entrée pour le partage SMB. Définissez le nouveau montage suivant sur une seule ligne, sans saut de ligne.
//serverd.lab.example.com/data /designs cifs credentials=/etc/samba/creds.txt,multiuser,seal 0 0
credentials=/etc/samba/cred.txt
: Spécifie le chemin du fichier pour le compte utilisateur et le mot de passe. Le service Samba obtiendra les informations d'authentification de connexion de l'utilisateur à partir de ce fichier.
multiuser
: Indique que plusieurs utilisateurs sont autorisés à se connecter à ce partage en même temps. Si ce paramètre n'est pas précisé, un seul utilisateur est autorisé à se connecter par défaut.
seal
: Indique que Samba stocke les informations du compte utilisateur dans le fichier cred.txt sous forme de simple texte brut au lieu d'utiliser une méthode de cryptage plus sécurisée.
Montez le système de fichiers et vérifiez que le montage a réussi.
[root@servera ~]# mount /designs
[root@servera ~]# df /designs
Filesystem 1K-blocks Used Available Use% Mounted on
//serverd.lab.example.com/data 10474476 2289868 8184608 22% /designs
Testez l’accès au partage. Pour ce faire, connectez-vous en tant qu'utilisateur développeur1, fournissez les informations d'identification SMB de cet utilisateur, puis confirmez que vous pouvez écrire sur le partage.
Exécutez le même test que l’utilisateur Operator1. Ce compte utilisateur dispose uniquement d'un accès en lecture car il n'appartient pas au groupe marketing. Connectez-vous en tant qu'utilisateur développeur1. Le script de laboratoire a créé ce compte utilisateur pour vous.
[root@servera ~]# su - developer1
[developer1@servera ~]$
Démo complète
samba
Partage de configuration de serveur
servera
Préparez-vous à partager sursamba
:
- Créer un dossier partagé
/common
- Le mot de passe pour la vérification de l'utilisateur
rob
estcompede
- Le mot de passe pour la vérification de l'utilisateur
brian
estpostroll
Étapes de déploiement :
- Installez le package de données correspondant
- Ajouter l'utilisateur PME correspondant
- Autorisation du répertoire partagé
- Configuration SElinux
yum -y install samba samba-client
Assurer la sécurité des utilisateurs locaux et fournir la configuration correspondante pour bash qui ne peut pas se connecter
# id brian; id rob
# egrep 'brian|rob' /etc/passwd
# usermod -s /sbin/nologin brian
# usermod -s /sbin/nologin rob
ajouter smb
un utilisateur
[root@servera ~]# pdbedit -L
[root@servera ~]# smbpasswd -a brian
New SMB password: `postroll`
Retype new SMB password: `postroll`
Added user brian.
[root@servera ~]# (echo compede; echo compede) | smbpasswd -a rob
New SMB password:
Retype new SMB password:
Added user rob.
[root@servera ~]# pdbedit -L
brian
rob
Créez un dossier partagé. Ici, vous devez configurer les autorisations correspondantes. Comme ci-dessus, ajoutez brian
un groupe et accordez les autorisations GID.
mkdir /common
chown :brian /common
chmod 2775 /common
Vérifiez le type de relation de contexte, la configurationSELinux
# vim /etc/samba/smb.conf.example
# yum provides semanage
# yum -y install policycoreutils-python-utils
查上下文关系命令
# man semanage fcontext | grep \#
# semanage fcontext -a -t samba_share_t "/common(/.*)?"
# restorecon -Rv /common
# ls -ldZ /common/
drwxrwsr-x. 2 root brian unconfined_u:object_r:`samba_share_t`:s0 6 Aug 7 13:05
/common/
Utilisez plusieurs utilisateurs pour accéder aux répertoires partagés Samba
Configurez le service SMB sur le serveur :
- Votre
SMB
serveur doit êtreSTAFF
membre du groupe de travail - Partager
/common
Le nom du partage de répertoire doit êtrecommon
- Seuls
example.com
les clients du domaine peuvent accédercommon
au partage common
Doit être visible- Les utilisateurs
rob
doivent pouvoir lire le contenu du partage - Les utilisateurs doivent
rob
accéder au répertoire en mode lecture seule etbrian
peuvent accéder au répertoire en mode lecture-écriture.
Sur , il est nécessaire de monter le répertoire partagé serverb
via smb
le mode multi-utilisateur.common
/mnt/private
rob
Il est nécessaire d'opérer en tant qu'utilisateur lors du montage du répertoire partagé.- Il est nécessaire que le répertoire partagé puisse être automatiquement monté à chaque fois que l'ordinateur est allumé.
# vim /etc/samba/smb.conf
...
workgroup = STAFF
...
[common]
path = /common
hosts allow = 127. 172.25.
browseable = Yes
write list = @brian
# systemctl enable --now smb nmb
# firewall-cmd --permanent --add-service=samba
# firewall-cmd --reload
# smbclient -L //servera -N
Anonymous login successful
Sharename Type Comment
--------- ---- -------
...
`common` Disk
...
# smbclient -L //servera -U rob%compede
# smbclient //servera/common -U rob%compede
Configuration des clients
# yum search cifs
# yum search samba
# yum -y install cifs-utils samba-client
# smbclient -L //servera -N
# smbclient -L //servera -U rob%compede
# mkdir /mnt/private
# man mount.cifs
# vim /etc/samba/cred.txt
username=rob
password=compede
# chmod 600 /etc/samba/cred.txt
# ll /etc/samba/cred.txt
-rw-------. 1 root root 30 Aug 7 13:31 /etc/samba/cred.txt
# vim /etc/fstab
...
//servera/common /mnt/private cifs credentials=/etc/samba/cred.txt,multiuser,seal 0 0
# mount –a
# df -ht cifs
Filesystem Size Used Avail Use% Mounted on
//servera/common 10G 2.2G 7.9G 22% /mnt/private
# ls /mnt/private/
# touch /mnt/private/ro.txt
touch: cannot touch '/mnt/private/ro.txt': Permission denied
# su - brian
$ cifscreds add servera
Password: `postroll`
$ touch /mnt/private/rw.txt
$ ls /mnt/private/rw.txt
-rwxr-xr-x. 1 brian brian 0 Aug 7 13:41 /mnt/private/rw.txt
Référence à une partie du billet de blog
© Le droit d'auteur des liens de référence dans cet article appartient à l'auteur original. En cas de violation, veuillez nous en informer :)
红帽服务管理与自动化(RH358)
Notes de lecture
© 2018-2023 [email protected] , Tous droits réservés. Conserver Attribution-NonCommercial-ShareAlike (CC BY-NC-SA 4.0)