Cómo instalar y configurar Samba en Rhel 8 / Centos 8

Cómo instalar y configurar Samba en Rhel 8 / Centos 8

Samba proporciona software de servidor y cliente para permitir el intercambio de archivos entre las máquinas Linux y Windows. Instalarlo y configurarlo en Rhel 8 / Centos 8 es bastante fácil. Sigue leyendo para aprender a compartir un directorio con Samba y cómo aplicarle el contexto de Selinux apropiado.

En este tutorial aprenderás:

  • Cómo instalar samba en rhel8
  • Cómo habilitar y comenzar los demonios SMB y NMB
  • Cómo crear una compartir samba
  • Cómo configurar el firewall para permitir que se acceda a samba compartir
  • Cómo configurar el contexto Selinux correcto para que Samba funcione correctamente
Samba comparte en Rhel 8 / Centos 8

Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Red Hat Enterprise Linux 8
Software Samba, coreutils y policycoreutils-python-uTils paquetes
Otro Permiso para ejecutar el comando con privilegios raíz.
Convenciones # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

Presentación de samba

Samba, como se indica en la página de inicio del proyecto, es un software de código abierto, lanzado bajo el GPL licencia, que nos permite compartir archivos e imprimir servicios utilizando el SMB/CIFS protocolo.

El proyecto proporciona software de servidor y cliente para permitir la interoperación con las máquinas de Windows, que representa la solución ideal en entornos mixtos. En este tutorial veremos cómo instalar Samba en Red Hat Enterprise Linux 8, cómo configurar una Samba Share, cómo la configuración del firewall para permitir el acceso a los recursos compartidos y cómo aplicar el contexto de Selinux apropiado.



Instalación

Lo primero que tenemos que hacer es instalar samba en nuestra máquina. El paquete y las bibliotecas necesarias están disponibles en los repositorios oficiales de Rhel 8 / Centos 8, por lo tanto, podemos instalarlas simplemente usando YUM o DNF. En esta versión de RHEL/CentOS, el primer comando es solo un "enlace" al segundo:

$ sudo dnf install samba samba-client

El paquete samba-client no es estrictamente necesario, pero las utilidades proporcionadas por este pueden ser útiles. Una vez que se instalan los paquetes, tenemos que iniciar y habilitar el SMB y el NMB demonios al arranque. El primero es el demonio que se encarga de realizar las transferencias reales y las operaciones de intercambio, mientras que el segundo realiza el Netbios Resoluciones de nombre, permitiendo que los recursos aparezcan al navegar por la red en Windows. Ahora podemos habilitar e iniciar ambos servicios de Systemd con solo un comando:

$ sudo systemctl Enable - -now SMB, NMB

Configuración del firewall

El siguiente paso es la configuración del firewall. Debemos abrir los puertos apropiados, para que los recursos compartidos con samba puedan ser accesibles desde otras máquinas. El software de administración de firewall predeterminado Onrhel 8 / Centos 8 es Firewalld.

Afortunadamente para nosotros, no hay necesidad de abrir puertos manualmente: todo lo que tenemos que hacer es agregar el servicio "samba" a nuestra zona. Un "servicio" es solo una abstracción que nos permite permitir el tráfico a través de todos los puertos que necesitan un servicio, haciendo referencia al nombre del servicio, en lugar de tener que configurar (y recordar) cada puerto utilizado por él. En caso de que queramos recopilar información sobre un "servicio", podemos ejecutar:

$ sudo firewall-cmd-Info-Service Samba Samba Ports: 137/UDP 138/UDP 139/TCP 445/TCP Protocolos: Fuente de puertos: Módulos: Netbios-NS Destino: 

Desde la salida del comando, vemos que el servicio permitirá el tráfico a través de los puertos 173/UDP, 138/UDP, 139/TCP y 445/TCP. Para agregar permanentemente el servicio a la zona predeterminada, podemos ejecutar:

$ sudo firewall-cmd --Permanent --add-service = samba

Al ejecutar el comando usamos el --permanente cambiar para que nuestro cambio sea persistente. También asumimos el por defecto Zona para estar en uso. Si quisiéramos especificar otra zona para la acción que se aplicará, habríamos usado el --zona opción, y proporcionó el nombre de la zona como argumento (e.gramo. -zona = externo). Dado que nuestro cambio está configurado para ser permanente, para que sea efectivo, debemos volver a cargar la configuración del firewall:

$ sudo firewall-cmd--Reload


Podemos verificar que el servicio "samba" ahora sea parte de nuestra zona, ejecutando:

$ sudo firewall-cmd-cabina de servicios de lista dhcpv6-client http samba ssh 

Nuevamente, si no se especifica ninguna zona, el comando se aplica a la zona predeterminada.

Configuración de un directorio compartido accesible por los invitados

Digamos que queremos compartir un directorio a través de Samba, y queremos dejar que el acceso gratuito a este directorio a los usuarios invitados, sin que tengan que proporcionar una contraseña. Para obtener el resultado deseado, debemos hacer algunos cambios en el /etc/samba/SMB.confusión archivo y agregue una "estrofa" para nuestra parte. Abra el archivo con su editor favorito y en el [global] Sección, agregue el texto resaltado:

[Global] Workgroup = Samba Security = User PassDB Backend = TDBSAM Printing = Cups PrintCap Name = Cups Load Impresoras = Yes Cups Opciones = RAW mapa a invitado = mal usuario 

El mapa a invitado = mal usuario instrucción, mapeará los intentos de inicio de sesión con los nombres de usuario incorrectos al usuario invitado predeterminado, que, por defecto, es nadie. Esto es necesario para permitir el acceso anónimo sin tener que proporcionar una contraseña.

Después de este cambio, debemos agregar una nueva estrofa dedicada a nuestra acción al final del archivo. Nombraremos el recurso compartido "LinuxConfig":

[LinuxConfig] ruta = /mnt /solo de invitado compartido = sí 

Con la configuración anterior declaramos que queremos compartir el contenido del /mnt/compartido directorio, sin la necesidad de autenticación de usuarios. Esta configuración es obviamente arriesgada, y aquí se informa aquí solo como un ejemplo: en un escenario del mundo real, es posible que desee al menos negar el acceso de escritura a los invitados (puede hacerlo agregando el Escribible = No instrucción). Para hacer que los cambios sean efectivos, debemos reiniciar los demonios:



$ sudo systemctl reiniciar SMB, NMB

Configurar una acción accesible solo por usuarios registrados

Para proteger el acceso a un recurso con un mensaje de inicio de sesión, cuando Samba se ejecuta como servidor independiente, debemos agregar un usuario existente a la base de datos de Samba. Las credenciales de este usuario serán necesarias para acceder al directorio compartido. Por razones de seguridad, es una buena práctica crear un usuario dedicado para la tarea, omitir la creación de su directorio de origen y asignarle un caparazón falso:

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

El -METRO La opción pasada al comando es el formulario corto para --no creativo, que se explica por sí mismo; el -s Opción, en cambio, especifiquemos un shell, en este caso uno inválido a propósito: /sbin/nologin. En este punto, el usuario ni siquiera necesita tener una contraseña establecida en nuestro sistema.

Una vez que se crea el usuario, necesitamos agregarlo a la base de datos de Samba: podemos realizar la operación utilizando el SMBPASSWD dominio:

$ sudo smbpasswd -a sambauser nueva SMB Contraseña: Recuperar Nueva SMB Contraseña: Se agregó el usuario Sambauser. 

Después de ejecutar el comando, se nos solicita que asignemos una contraseña para el usuario y también confirmemos: esta contraseña solo será válida en el contexto de Samba, no tiene nada que ver con la cuenta del usuario en nuestro sistema. Para restringir la parte que creamos anteriormente, tenemos que hacer un pequeño cambio en la sección dedicada:

[LinuxConfig] ruta = /mnt /compartido Invitado OK = No 

Podemos verificar que nuestra configuración sea válida, utilizando el parque de pruebas dominio:



$ testparm cargue archivos de configuración SMB de/etc/samba/smb.conf rlimit_max: Aumento de rlimit_max (1024) al límite mínimo de Windows (16384) Sección de procesamiento "[Homes]" Sección de procesamiento "[Impresoras]" Sección de procesamiento "[Imprima $]" Sección de procesamiento "[LinuxConfig]" Archivo de servicios cargados OK. Rol de servidor: role_standalone 

De nuevo, debemos reiniciar el SMB y NMB demonios para que nuestros cambios sean efectivos. El directorio compartido ahora será accesible solo después de proporcionar las credenciales correctas.

Configurar Selinux para samba

Selinux a menudo se ve como una complicación y se discape de inmediato. Esto no es necesario: solo debemos aprender a configurarlo y aprovechar la mejora en la seguridad que proporciona. Para que nuestra Samba Share funcione cuando Selinux está en el modo "Hacer cumplir", debemos asignar el contexto apropiado a nuestro directorio y archivos compartidos:

$ sudo chcon -r -t samba_share_t /mnt /compartido

En el ejemplo anterior, usamos el chcon comando con el -T opción, para cambiar el TIPO Sección del contexto de Selinux a samba_share_t. También usamos el -Riñonal cambiar para hacer que el comando sea recursivo. Este cambio sobrevivirá a un reinicio, pero no una reabastecimiento del sistema si existe una política predeterminada para nuestro directorio y archivos, porque en tal caso la configuración predeterminada se volvería a aplicar.

Si queremos que nuestro cambio sobrevivan a un evento de relabinación, debemos agregar nuestra regla a la política. Podemos hacer esto usando el semanago dominio:

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

Desde que usamos el (/.*)? regex, la regla se aplicará a todo el contenido del directorio "compartido" y al directorio en sí. Podemos verificar que nuestra regla se haya agregado a la política enumerando las etiquetas en uso en nuestro sistema:

$ sudo semanage fcontext -l | Grep/Mnt/Shared/Mnt/Shared (/.*)? Todos los archivos system_u: object_r: samba_share_t: s0 

Ahora deberíamos tener una configuración de samba en funcionamiento. Para ajustar aún más la configuración de Samba, es posible que también necesitemos manipular los booleanos Selinux. Por ejemplo, al agregar usuarios existentes a Samba, para dejar que sus directorios de inicio se compartan, debemos habilitar el Selinux Boolean dedicado. Para enumerar todos los booleanos relacionados con Samba, podemos ejecutar:



$ sudo semanage boolean -l | grep samba samba_create_home_dirs (Off, Off) Permitir que Samba cree directores de inicio samba_domain_controller (OFF) Permitir samba al controlador de dominio samba_enable_home_dirs (OFF, OFF) Permitir que samba de samba samba_export_all (off, off, off, off) Permitir que Samba exporte todo RO samba_export_all_rw (apagado) Permitir que samba exporte todo RW samba_load_libgfapi (apagado) permita Samba_share_fusefs (OFF) Permitir que Samba comparta fusefs samba_share_nfs (OFF) Permitir que Samba comparta NFS sanLlock_use_samba (OFF) Permitir que Sanlock use samba tmpreeper_use_samba (off, off) permita que TMPREAPER use samba_samba_home_dirs (off) (off). Permitir usar a Samba Home Dirs virt_use_samba (Off, Off) Permitir que Virt use Samba 

En la salida anterior, la segunda columna indica el valor actual del booleano, mientras que el tercero el predeterminado (ambos están apagados, en este caso). El booleano que queremos activar, para permitir el intercambio de directorios de hogares, es samba_enable_home_dirs. Podemos realizar la operación utilizando el setsebool dominio:

$ sudo setsebool samba_enable_home_dirs = 1

Conclusiones

En este tutorial vimos cómo instalar samba en un sistema Rhel 8 / Centos 8. También vimos cómo compartir un directorio, permitiendo el acceso a los invitados o restringirlo a usuarios autenticados. También vimos cómo configurar el firewall para que la acción sea accesible desde otras máquinas en la red.

Finalmente, vimos cómo realizar los cambios necesarios para tener una configuración de Samba en funcionamiento con Selinux en modo "Ejecución". Si está interesado en Selinux, también puede leer nuestro artículo sobre el tema.

Tutoriales de Linux relacionados:

  • Cosas para instalar en Ubuntu 20.04
  • Una introducción a la automatización, herramientas y técnicas de Linux
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Mastering Bash Script Loops
  • Cómo arrancar dual Kali Linux y Windows 10
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • Cómo configurar el servidor Samba y el cliente en Almalinux
  • Cómo configurar un servidor OpenVPN en Ubuntu 20.04
  • Lista e instalación de clientes FTP en Ubuntu 22.04 Linux ..
  • Ubuntu 20.04 Guía