GNU/Linux >> Tutoriales Linux >  >> Cent OS

Configure el servidor Samba en CentOS 8/RHEL 8 para compartir archivos

En este tutorial, aprenderemos cómo instalar y configurar un servidor samba en CentOS 8/RHEL8 para compartir archivos en la red local. Samba es una implementación de protocolo SMB/CIFS gratuita y de código abierto para Unix y Linux que permite compartir archivos e impresoras entre máquinas Linux, Windows y macOS en una red de área local.

Samba generalmente se instala y ejecuta en Linux. Comprende varios programas que tienen propósitos diferentes pero relacionados, los dos más importantes son:

  • smbd :proporciona servicio SMB/CIFS (uso compartido e impresión de archivos), también puede actuar como un controlador de dominio de Windows.
  • nmbd :este daemon proporciona el servicio de nombres NetBIOS, escucha las solicitudes del servidor de nombres. También permite que otras computadoras en la red encuentren el servidor Samba.

Cómo instalar el servidor Samba en CentOS 8/RHEL8

Samba está incluido en la mayoría de las distribuciones de Linux. Para instalar Samba en CentOS 8/RHEL8, ejecute el siguiente comando en la terminal.

sudo dnf install samba

Para verificar su versión de Samba, ejecute

smbd --version

Salida de muestra:

Version 4.10.4

Luego emita el siguiente comando para iniciar el smbd y nmbd servicio.

sudo systemctl start smb nmb

Habilite el inicio automático en el momento del arranque.

sudo systemctl enable smb nmb

Para verificar si el servicio Samba se está ejecutando, emita los siguientes comandos.

systemctl status smb nmb

Una vez iniciado, el smb el demonio estará escuchando en los puertos TCP 139 y 445. El nmbd estará escuchando en los puertos UDP 137 y 138.

  • TCP 139:utilizado para compartir archivos e impresoras y otras operaciones.
  • TCP 445:el puerto CIFS sin NetBIOS.
  • UDP 137:utilizado para la exploración de redes NetBIOS.
  • UDP 138:utilizado para el servicio de nombres NetBIOS.

Ejecute el siguiente comando para abrir los puertos anteriores en el firewall.

sudo firewall-cmd --permanent --add-service=samba

Vuelva a cargar el demonio de firwall para que el cambio surta efecto.

sudo systemctl reload firewalld

Crear un recurso compartido privado de Samba

En esta sección, veremos cómo crear un recurso compartido privado de Samba que requiere que el cliente ingrese el nombre de usuario y la contraseña para poder acceder. El archivo de configuración principal de Samba se encuentra en:/etc/samba/smb.conf . Puede editarlo en la terminal con un editor de texto de línea de comando como nano .

sudo nano /etc/samba/smb.conf

Por defecto, hay 4 secciones:

  • mundiales
  • casas
  • impresoras
  • imprimir$

En el [global] sección, el workgroup está configurado en SAMBA de forma predeterminada.

workgroup = SAMBA

Asegúrese de que el valor de workgroup es lo mismo con la configuración del grupo de trabajo de las computadoras con Windows. Puede encontrar la configuración en su computadora con Windows yendo a Control Panel> System and Security> System .

En este artículo, usaré el nombre de grupo de trabajo predeterminado de Windows.

workgroup = WORKGROUP

Se recomienda utilizar el hosts allow parámetro para crear una lista blanca de direcciones IP para evitar el acceso no autorizado. Agrega la siguiente línea en el [global] sección, que permitirá el host local y los clientes en el 192.168.0.0/24 red para acceder a los servicios de Samba. Si está utilizando un rango de red diferente, reemplace 192.168.0 con el tuyo.

hosts allow = 127. 192.168.0

Sugerencia:también puede usar la notación CIDR para el rango de red como hosts allow = 127.0.0.1 192.168.0.0/24

Luego, desplácese hacia abajo hasta la parte inferior del archivo. (En el editor de texto nano, puede lograrlo presionando CTRL+W luego CTRL+V . ) Agregue una nueva sección como la siguiente.

[Private]
        comment = needs username and password to access
        path = /srv/samba/private/
        browseable = yes
        guest ok = no
        writable = yes
        valid users = @samba

donde:

  • Private es el nombre de la carpeta que se mostrará en la computadora con Windows. Puedes usar el nombre que quieras.
  • El comentario es una descripción de la carpeta compartida.
  • El parámetro ruta especifica la ruta a la carpeta compartida. Uso /srv/samba/private/ como ejemplo.
  • browseable = yes :permita que otras computadoras en la red vean el servidor Samba y el recurso compartido Samba. Si se establece en no, los usuarios deben conocer el nombre del servidor Samba y luego ingresar manualmente una ruta en el administrador de archivos para acceder a la carpeta compartida.
  • guest ok = no :deshabilitar el acceso de invitados. En otras palabras, debe ingresar el nombre de usuario y la contraseña en la computadora del cliente para acceder a la carpeta compartida.
  • writable = yes :Otorga permisos de lectura y escritura a los clientes.
  • valid users = @samba :Solo los usuarios del grupo de samba pueden acceder a este recurso compartido de Samba.

Guarde y cierre el archivo. (Para guardar el archivo en el editor de texto nano, presione Ctrl+O , luego presione Entrar para confirmar el nombre del archivo para escribir. Para cerrar el archivo, presione Ctrl+X .) Ahora necesitamos crear un usuario de Samba. Primero, necesitamos crear una cuenta de usuario estándar de Linux con el siguiente comando. Reemplazar username con su nombre de usuario deseado.

sudo adduser username

Se le pedirá que establezca una contraseña de Unix. Después de eso, también debe establecer una contraseña de Samba separada para el nuevo usuario con el siguiente comando:

sudo smbpasswd -a username

Crea el samba grupo.

sudo groupadd samba

Y agregue este usuario al samba grupo.

sudo gpasswd -a username samba

Cree la carpeta compartida privada.

sudo mkdir -p /srv/samba/private/

La samba el grupo necesita tener permisos de lectura, escritura y ejecución en la carpeta compartida. Puede otorgar estos permisos ejecutando el siguiente comando.

sudo setfacl -R -m "g:samba:rwx" /srv/samba/private/

También necesitamos etiquetar este directorio con samba_share_t para que SELinux permita que Samba lo lea y escriba.

sudo chcon -t samba_share_t /srv/samba/private/ -R

A continuación, ejecute el siguiente comando para comprobar si hay errores sintácticos.

testparm

Los archivos de configuración de Samba se recargan automáticamente cada minuto, si cambian. Puede reiniciar manualmente smbd y nmbd daemon para que los cambios surtan efecto inmediatamente.

sudo systemctl restart smb nmb

Cómo crear un recurso compartido público de Samba sin autenticación

Para crear un recurso compartido público sin requerir nombre de usuario y contraseña, se deben cumplir las siguientes condiciones.

  • Establecer security = user en la sección global del archivo de configuración de Samba.
  • Establecer map to guest = bad user en la sección global del archivo de configuración de Samba. Esto hará que smbd para usar una cuenta de invitado para autenticar a los clientes que no tienen una cuenta registrada en el servidor Samba. Dado que es una cuenta de invitado, los clientes de Samba no necesitan ingresar la contraseña.
  • Establecer guest ok = yes en la definición de recurso compartido para permitir el acceso de invitados.
  • Otorgar permiso de lectura, escritura y ejecución de la carpeta pública a nobody cuenta, que es la cuenta de invitado predeterminada.

Abra y edite el archivo de configuración de Samba.

sudo nano /etc/samba/smb.conf

En el [global] sección, asegúrese de que el valor de workgroup es lo mismo con la configuración del grupo de trabajo de las computadoras con Windows.

workgroup = WORKGROUP

Puede encontrar la configuración en su computadora con Windows yendo a Control Panel> System and Security> System .

Agrega la siguiente línea en el [global] sección.

map to guest = bad user

Luego, desplácese hacia abajo hasta la parte inferior del archivo y pegue las siguientes líneas.

[public]
       comment = public share, no need to enter username and password
       path = /srv/samba/public/
       browseable = yes
       writable = yes
       guest ok = yes

Guarde y cierre el archivo. A continuación, cree el /srv/public/ carpeta.

sudo mkdir -p /srv/samba/public

Debe cambiar el permiso de esta carpeta a 777, si desea permitir la operación de escritura en el recurso compartido público.

sudo chmod 777 /srv/samba/public/ -R

También necesitamos etiquetar este directorio con samba_share_t para que SELinux permita que Samba lo lea y escriba.

sudo chcon -t samba_share_t /srv/samba/public/ -R

Reinicie smbd y nmbd.

sudo systemctl restart smb nmb

Acceso a la carpeta compartida de Samba desde Windows

En una computadora con Windows que esté en la misma red, abra el Explorador de archivos y haga clic en Network en el panel izquierdo. Si ve el siguiente mensaje, debe hacer clic en el mensaje y activar la detección de redes y el uso compartido de archivos.

File sharing is turned off. Some network computers and devices might not be visible.

A continuación, ingrese \\ seguido de la dirección IP del servidor Samba en la barra de direcciones del Explorador de archivos, así:\\192.168.0.102 . Verá una lista de recursos compartidos en el servidor Samba.

Luego haga doble clic en la carpeta compartida. Para acceder al recurso compartido privado, debe ingresar el nombre de usuario y la contraseña de samba. No es necesario que lo haga para acceder al recurso compartido público.

Una vez conectado, puede leer, escribir y eliminar archivos en la carpeta compartida de Samba.

Error de conexión

Si recibe el siguiente error:

You do not have permission to access \\hostname\share-name. Contact your network administrator to request access.

Puede intentar conectarse al recurso compartido de Samba desde el símbolo del sistema. Abra un símbolo del sistema, luego ejecute el siguiente comando para cerrar la sesión actual de Samba.

net use \\samba-server-ip\share-name /delete

A continuación, conéctese al recurso compartido de Samaba con el siguiente comando:

net use \\samba-server-ip\share-name /user:samba-username password

Una vez que el comando anterior se completó con éxito, vaya a la pestaña Red en el Explorador de archivos y ahora debería poder acceder al recurso compartido de Samba.

Asignación de unidades

Una característica del sistema operativo Windows es la capacidad de asignar una letra de unidad (como S:) a un directorio remoto. Para asignar la letra de unidad S: al recurso compartido de Samba, haga clic con el botón derecho en la carpeta compartida de Samba y seleccione Asignar unidad de red . Luego elija una letra de unidad y haga clic en Finalizar.

Una vez que se establece la asignación de unidades, las aplicaciones pueden acceder a los archivos en el recurso compartido de Samba a través de la letra de unidad S: . Y este recurso compartido de Samba se montará automáticamente cuando inicie sesión en su computadora con Windows.

Acceso a la carpeta compartida de Samba en Nautilus File Manager en Linux

Si está utilizando el administrador de archivos Nautilus, haga clic en Other Locations en el panel izquierdo. En la parte inferior verá una opción para conectarse al servidor . Para acceder a su recurso compartido de Samba, escriba smb:// seguido de la dirección IP del servidor Samba y presione Enter. Por ejemplo:

  • smb://192.168.0.102

Verá una lista de recursos compartidos en el servidor Samba.

Si hace clic en la carpeta compartida privada, deberá ingresar el nombre de usuario y la contraseña de Samba. Si hace clic en la carpeta pública compartida, elija conectarse como anónimo.

Montar automáticamente Samba Share desde la línea de comandos en Linux

Si necesita montar automáticamente el recurso compartido de Samba en el momento del arranque, puede usar la línea de comando para montar y luego agregar una entrada en /etc/fstab expediente. Para hacerlo, debe instalar cifs-utils paquete.

CentOS/RHEL

sudo dnf install cifs-utils

Debian/Ubuntu

sudo apt install cifs-utils

Luego cree un punto de montaje para el recurso compartido de Samba.

sudo mkdir /mnt/samba-private

Ahora puede usar el siguiente comando para montar una carpeta compartida privada.

sudo mount -t cifs -o username=your_samba_username //192.168.0.102/private /mnt/samba-private/

Le pedirá que ingrese la contraseña de Samba. Después de eso, se montará en /mnt/samba-private/ directorio.

Para montar automáticamente el recurso compartido de Samba, edite /etc/fstab archivo.

sudo nano /etc/fstab

Agregue la siguiente línea en el archivo.

//192.168.0.102/private  /mnt/samba-private   cifs    x-systemd.automount,_netdev,credentials=/etc/samba-credential.conf,uid=1000,gid=1000,x-gvfs-show   0   0

donde:

  • //192.168.0.102/privado :la dirección IP del servidor Samba y el nombre compartido.
  • /mnt/samba-privado :punto de montaje para el recurso compartido de Samba.
  • cifs :tipo de sistema de archivos
  • x-systemd.montaje automático :esta opción le dice a systemd que cree una unidad de montaje automático para el sistema de archivos. Usamos esto porque nos da la capacidad de montar un sistema de archivos remoto después de que haya acceso a la red.
  • _netdev :Esto especifica que el montaje requiere red.
  • credenciales= :Linux debe buscar las credenciales en /etc/samba-credential.conf archivo.
  • uid=1000,gid=1000 :De forma predeterminada, el sistema de archivos montado sería propiedad del usuario raíz. Usamos uid y gid para cambiar la propiedad del sistema de archivos. Normalmente usas tu propio uid y gid , que son 1000 por defecto.
  • x-gvfs-espectáculo :si está utilizando el entorno de escritorio GNOME o sus derivados, puede usar esta opción para mostrar el sistema de archivos montado en el administrador de archivos.

Guarde y cierre el archivo. Luego cree el archivo de credenciales.

sudo nano /etc/samba-credential.conf

Agregue las siguientes líneas en el archivo.

username=your_samba_username
password=samba_password
domain=WORKGROUP

Guarde y cierre el archivo. Asegúrese de que solo el usuario raíz pueda leer este archivo.

sudo chmod 600 /etc/samba-credential.conf

Si reinicia su computadora Linux ahora, el recurso compartido de Samba se montará automáticamente.

Consejo para solucionar problemas

Si su servidor Samba no funciona como se esperaba, puede consultar los archivos de registro en /var/log/samba/ directorio. Puede agregar la siguiente línea en la sección [global] del archivo /etc/samba/smb.conf para aumentar el nivel de registro, si desea registrar más información.

log level = 2

Cent OS
  1. Cómo crear un archivo Kickstart para CentOS/Fedora/RedHat (RHEL)

  2. Cómo instalar Puppet en RHEL 8/CentOS 8

  3. CentOS / RHEL 7:Cómo abrir el puerto de Firewall para el servidor Samba usando FirewallD

  4. Cómo configurar children-max para el servicio udev en CentOS/RHEL 7

  5. Cómo configurar el servidor VNC para nuevos usuarios en CentOS/RHEL 5

Parte 4:configurar SPF y DKIM con Postfix en el servidor de correo CentOS 8/RHEL 8

Instalar y configurar el servidor Samba en Ubuntu para compartir archivos

Cómo instalar Varnish Cache para Apache en CentOS/RHEL 8

Cómo configurar el servidor y el cliente NFS en CentOS 8

Panel web de CentOS:panel de control de alojamiento web gratuito todo en uno para CentOS/RHEL 6

Cómo configurar SSH en CentOS y RHEL