escribir delante
- Comparta algunas notas de construcción para PYMES
- Organizándose para los exámenes
- Si no entiende lo suficiente, ayúdeme a corregirlo.
Sólo existe una verdadera responsabilidad para todos: encontrarse a sí mismos. Luego mantenlo en tu corazón por el resto de tu vida, de todo corazón, y nunca te detengas. Todos los demás caminos están incompletos, huidas humanas, retornos cobardes a ideales populares, derivas, miedos internos - Hermann Hesse, "Demian"
Una breve introducción a las PYMES
SMB协议
Desarrollado originalmente Microsoft开发
y luego se convirtió en el protocolo para compartir archivos más utilizado en redes Windows. El protocolo SMB también se puede utilizar para compartir archivos con sistemas Unix o Linux. A través del paquete de software Samba, los sistemas Unix y Linux pueden proporcionar servicios de intercambio de archivos como servidores SMB, permitiendo que los sistemas Windows accedan a archivos e impresoras compartidos.
NFS
Permite que las máquinas Unix y Linux se comuniquen o que las máquinas Windows se comuniquen. SMB puede permitir que las máquinas Windows se comuniquen con máquinas Unix o Linux.
En el uso real, se usa SMB协议
más comúnmente Windows操作系统
en 文件共享协议
, lo que permite Windows系统
compartir archivos e impresoras entre .
Samba
Samba
SMB
Es un software gratuito que implementa el protocolo en un sistema Linux.Es 局域网上共享文件和打印机
un protocolo de comunicación y consta de programas de servidor y cliente.
Se pueden lograr las siguientes funciones:
文件共享
: Samba puede compartir archivos y directorios en sistemas Linux/UNIX con Windows, macOS y otros clientes que admitan el protocolo SMB/CIFS. Esto significa que puede utilizar Samba para compartir archivos y directorios entre diferentes sistemas operativos.打印机共享
: Samba le permite conectar una impresora a un sistema Linux/UNIX y compartirla con Windows, macOS y otros clientes a través del protocolo SMB/CIFS. De esta manera puede compartir la impresora en su red y permitir que varios usuarios utilicen la misma impresora.认证和授权
: Samba proporciona mecanismos de autenticación y control de acceso que le permiten configurar la autenticación de usuario, los permisos de acceso y los niveles de uso compartido. Puede crear cuentas de usuario, establecer políticas de contraseñas y especificar diferentes permisos de acceso para directorios compartidos.域控制器
: Samba puede actuar como controlador de dominio, proporcionando una funcionalidad similar a los dominios de Windows. Puede utilizar Samba para crear y administrar cuentas de usuario, grupos, políticas e implementar administración y autenticación centralizadas.家庭文件服务器
: Puede utilizar Samba para configurar un servidor de archivos en su red doméstica, permitiendo a los miembros de la familia compartir archivos y directorios y realizar control de acceso.安全性和加密
: Samba admite comunicación cifrada y proporciona protección de datos y transmisión segura. Puede configurar Samba para utilizar el protocolo de cifrado SSL/TLS para proteger la transmisión y el almacenamiento de datos.跨平台兼容性
: Samba proporciona una buena compatibilidad con las redes Windows, lo que permite que los sistemas Linux/UNIX se integren perfectamente con las redes Windows.
Explicación simple del proceso de acceso a samba.
- El servidor Samba se inicia y escucha en el puerto especificado (el puerto predeterminado es 445).
- El cliente inicia una solicitud de conexión para conectarse al servidor Samba.
- El servidor Samba recibe la solicitud de conexión y establece una conexión con el cliente.
- El cliente envía solicitudes SMB/CIFS al servidor Samba, solicitando acceso a recursos compartidos o para realizar operaciones específicas.
- El servidor Samba analiza la solicitud y realiza las operaciones correspondientes según el tipo y los parámetros de la solicitud.
- Si la solicitud implica acceso a un recurso compartido, el servidor Samba verifica la información de autenticación del cliente y determina si otorga acceso según las reglas de control de acceso en el archivo de configuración.
- El servidor Samba realiza la operación solicitada como leer, escribir, crear, eliminar archivos, etc.
- El servidor Samba genera una respuesta y la envía de vuelta al cliente.
- El cliente recibe la respuesta, la procesa y la muestra en consecuencia de acuerdo con el contenido de la respuesta.
El host puede actuar como 客户端
o para 服务器
acceder y proporcionar SMB
archivos compartidos:
- Como
客户端
, montarSMB
un archivo compartido requiere instalarcifs-utils
también el paquete samba-client. - Como
服务器
, compartir un directorio usandoSMB
el protocolo requiere instalarsamba
el paquete.
Los pasos básicos para la configuración del entorno Linux SMB共享
son los siguientes:
- Instale
samba
el paquete. - Preparar
Samba
usuarios - Prepare el directorio compartido.
- Configurar
/etc/samba/smb.conf
el archivo de configuración - Inicie
Samba
y abra el firewall local - Monte el recurso compartido desde el sistema cliente
SMB
para verificar su configuración.
Instalación e implementación
Configure serverd
como un SMB
servidor de archivos independiente que compartirá /smbshare
directorios. Puede utilizar multiuser
la opción de montaje para servera
configurar este SMB
recurso compartido para que se monte /designs
en un directorio.
Instale el paquete 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
Crear marketing
grupos y /smbshare
directorios. Directorio de configuración /smbshare
, otras configuraciones:
- Este directorio pertenece a este
marketing
grupo. - Este directorio tiene
SGID
bits configurados. - Todos tienen acceso de lectura al directorio, pero solo
marketing
el grupo puede escribir - El catálogo tiene
samba_share_t SELinux
tipo de contexto.
#创建 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
Edite /etc/samba/smb.conf
el archivo de configuración y configúrelo de acuerdo con los siguientes requisitos
- Establecer grupo de trabajo en MIEMPRESA
- Configure
Samba
según sea necesario加密流量
. - Solo se admite Force Samba
SMB 版本 3 和更⾼版本
. - Cree un recurso compartido con nombre de datos.
/smbshare
Directorio compartido .- Proteja el recurso compartido para que todos puedan acceder a él, pero solo los miembros del grupo de marketing tengan acceso de escritura.
Edite /etc/samba/smb.conf
el archivo y workgroup
establezca el comando enMYCOMPANY。
...output omitted...
[global]
workgroup = MYCOMPANY
...output omitted...
En la sección [global], 强制加密
y 最⼩协议版本
configúrelo en SMB3
.
...output omitted...
[global]
workgroup = MYCOMPANY
smb encrypt = required
server min protocol = SMB3
...output omitted...
Al final del archivo, agregue lo siguiente 块
para definir el nuevo recurso compartido.
...output omitted...
[data]
path = /smbshare
write list = @marketing ;配置项指定了具有写权限的用户或用户组。
Cuando termine, guarde y cierre el archivo.
Ejecute testparm
el comando para verificar /etc/samba/smb.conf
el archivo de configuración.
[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...
Cree una cuenta de usuario exclusiva de Samba developer1
y agréguela al marketing
grupo. Esta cuenta de usuario tiene acceso de escritura al recurso compartido porque es miembro del grupo de marketing.
[root@serverd ~]# useradd -s /sbin/nologin -G marketing developer1
Cree una cuenta de usuario de operador1 exclusiva de Samba. No lo agregue al marketing
grupo para que tenga acceso de solo lectura al recurso compartido. Establezca la contraseña SMB para ambas cuentas en redhat.
Agregue la cuenta de usuario desarrollador1 a Samba
[root@serverd ~]# smbpasswd -a developer1
operación completa
[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
Agregue smb
usuario, aquí use el usuario del sistema, primero cree el usuario del sistema y luego agregue el usuario smb correspondiente
[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.
Configurar smb
el inicio automático al arrancar
[root@serverd ~]# systemctl enable --now smb
Created symlink /etc/systemd/system/multi-user.target.wants/smb.service → /usr/lib/systemd/system/smb.service.
Consultar estado del servicio
[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>
pase de firewall
[root@serverd ~]# firewall-cmd --permanent --add-service=samba
success
[root@serverd ~]# firewall-cmd --reload
success
Monte permanentemente el recurso compartido de datos SMB bajo el punto de montaje servera
en /designs
. Para hacer esto, cree un archivo usando sambamount
las credenciales del usuario . /etc/samba/creds.txt
Utilice /etc/fstab
las opciones credentials、multiuser
y seal
montar para activar el modo multiusuario y cifrar las comunicaciones.
Instale cifs-utils
el paquete, que proporciona mount.cifs
el comando
[root@servera ~]# yum install cifs-utils
Cree /etc/samba/creds.txt
un archivo para proporcionar la cuenta y la contraseña utilizadas para montar el recurso compartido. Utilice sambamount
la cuenta y la contraseña es redhat.
username=sambamount
password=redhat
Proteger el archivo para que solo root
los usuarios puedan acceder a él
[root@servera ~]# chmod 600 /etc/samba/creds.txt
Crear /designs
punto de montaje
[root@servera ~]# mkdir /designs
Edite /etc/fstab
el archivo y agregue una entrada para el recurso compartido SMB. Defina el siguiente nuevo montaje en una sola línea, sin saltos de línea.
//serverd.lab.example.com/data /designs cifs credentials=/etc/samba/creds.txt,multiuser,seal 0 0
credentials=/etc/samba/cred.txt
: Especifica la ruta del archivo para la cuenta de usuario y la contraseña. El servicio Samba obtendrá información de autenticación de inicio de sesión del usuario de este archivo.
multiuser
: Indica que varios usuarios pueden iniciar sesión en este recurso compartido al mismo tiempo. Si no se especifica este parámetro, solo se permite que un usuario se conecte de forma predeterminada.
seal
: Indica que Samba almacena la información de la cuenta de usuario en el archivo cred.txt como texto sin formato en lugar de utilizar un método de cifrado más seguro.
Monte el sistema de archivos y verifique que el montaje sea exitoso.
[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
Pruebe el acceso al recurso compartido. Para hacer esto, inicie sesión como usuario desarrollador1, proporcione las credenciales SMB de ese usuario y luego confirme que puede escribir en el recurso compartido.
Ejecute la misma prueba que el usuario operador1. Esta cuenta de usuario solo tiene acceso de lectura porque no pertenece al grupo de marketing. Inicie sesión como usuario desarrollador1. El script de laboratorio ha creado esta cuenta de usuario para usted.
[root@servera ~]# su - developer1
[developer1@servera ~]$
Demostración completa
samba
Compartir configuración del servidor
servera
Prepárese para compartir en samba
:
- Crear carpeta compartida
/common
- La contraseña para la verificación del usuario
rob
escompede
- La contraseña para la verificación del usuario
brian
espostroll
Pasos de implementación:
- Instale el paquete de datos correspondiente
- Agregar el usuario smb correspondiente
- Autorización de directorio compartido
- configuración de SElinux
yum -y install samba samba-client
Garantice la seguridad de los usuarios locales y proporcione la configuración correspondiente para bash que no puede iniciar sesión
# id brian; id rob
# egrep 'brian|rob' /etc/passwd
# usermod -s /sbin/nologin brian
# usermod -s /sbin/nologin rob
agregar smb
usuario
[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
Cree una carpeta compartida. Aquí debe configurar los permisos correspondientes. Como arriba, agregue brian
un grupo y otorgue permisos GID.
mkdir /common
chown :brian /common
chmod 2775 /common
Verifique el tipo de relación de contexto, configuraciónSELinux
# 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/
Utilice varios usuarios para acceder a directorios compartidos de samba
Configure el servicio SMB en servera:
- Su
SMB
servidor debe serSTAFF
miembro del grupo de trabajo. - Compartir
/common
El nombre del directorio compartido debe sercommon
- Sólo
example.com
los clientes dentro del dominio pueden accedercommon
al recurso compartido common
Debe ser visible- Los usuarios
rob
deben poder leer el contenido compartido. - Los usuarios deben
rob
acceder al directorio en modo de solo lectura ybrian
pueden acceder al directorio en modo de lectura y escritura.
En , es necesario montar el directorio compartido a serverb
través del smb
modo multiusuario.common
/mnt/private
rob
Es necesario operar como usuario al montar el directorio compartido.- Es necesario que el directorio compartido se pueda montar automáticamente cada vez que se enciende la computadora.
# 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
Configuración del cliente
# 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
Referencia a parte de la publicación del blog.
© Los derechos de autor de los enlaces de referencia de este artículo pertenecen al autor original. Si hay alguna infracción, infórmenos :)
红帽服务管理与自动化(RH358)
Notas de lectura
© 2018-2023 [email protected] , Todos los derechos reservados. Mantener Attribution-NonCommercial-ShareAlike (CC BY-NC-SA 4.0)