Configurar Samba

SambaEn la oficina estoy configurando un servidor con SAMBA para compartir ficheros entre los equipos de la oficina, windows y linux, y como he visto que la información que existe en internet a veces no es muy detallada y con ejemplos más o menos claros, así que voy a intentar detallar los pasos que he seguido para poner el SAMBA a funcionar.

Como sabemos, y si no lo sabemos aquí queda esta pequeña introducción, SAMBA es una implementación libre del protocolo de compartición de archivos de Microsoft Windows para sistema *nix. Podéis ampliar todos los detalles en la web oficial de SAMBA, http://wwww.samba.org.

De esta forma podemos montar un servidor en Mac OS X ó *nix que actúe como PDC (Primary Domain Controller, Controlador Primario de Dominio), como miembro de dominio y como un Dominio de Active Directory para redes basadas en Microsoft Windows, además es capaz de gestionar colas de impresión, directorios compartidos y autenticar usuarios.

Este pequeño manual está basado en una distribución CentOS pero creo que es extensible a cualquier distribución y la dificultad es de usuario «no avanzado», aunque sí con algunos conocimientos sobre comandos linux..

Samba se compone de tres demonios que se encargan de ofrecer los servicios del servidor Samba

  • SMBD. Se encarga de los recursos compartidos, ficheros, impresoras… y también del control a estos recursos gestionando los permisos de los diferentes usuarios.
  • NMBD. Se encarga de informar a las máquinas de la red de los servicios disponibles en el servidor Samba. También se encarga de manejar la resolución de nombres de NetBIOS ( Network Basic Input/Output System ) por lo que si es necesario puede comunicarse con un servidor WINS ( Windows Internet Naming Service ).
  • WINBINDD. Este demonio se inicia cando Samba es miembro de un dominio Windows NT 4 ó AD ( Active Directory ) o cuando existen relaciones de confianza con otro/s dominio/s.

Después de esta breve introducción vamos a la práctica.

Lo primero de todo, lógicamente, es instalar el servidor si no lo tenemos instalado, para ello, debemos ejecutar, siempre como root, el siguiente comando en consola:

# yum -y install samba samba-client samba-common

Una finalizada la instalación tendremos que configurar nuestro SAMBA, para ello es necesario editar el fichero smb.conf que se encuentra en el directorio /etc/samba.

El fichero de configuración se divide en secciones encabezadas por un nombre entre llaves, por ejemplo [global], y cada sección se compone de varias llaves y sus valores, pero lo mejor es verlo con un ejemplo, a continuación veremos un fichero de configuración sencillito. Algunas de las claves que comentaremos a continuación no aparecen en nuestro fichero de ejemplo, pero sí deberían aparecer en configuraciones más avanzadas.

[global]
workgroup = CASA
security = user
netbios name = mi_pc

[Documentos]
path = /home/compartido1
read only = no
guest ok = yes

[Musica]
path = /home/compartido2
comment = La descripcion del directorio compartido2
read only = yes
guest ok = yes

En este ejemplo sencillito vemos que tenemos 3 secciones, global, compartido y compartido2. En la sección global establecermos las configuraciones generales de SAMBA y el resto, siempre por debajo, estableceremos los diferentes recursos compartidos.

En nuestro ejemplo la persona que se conecte a nuestro PC verá dos carpetas compartidas, compartido y compratido2.

Veamos ahora lo que significa cada una de las claves que aparecen en nuestro fichero de configuración

  • workgroup: Con esta clave definimos el grupo de trabajo.. El grupo de trabajo es la forma que tenemos para agrupar un conjunto de PCs de la red. Para poder compartir recursos todos los PCs de la red deben pertenecer a este grupo de trabajo.
  • security: Con esta clave definiremos el tipo de compartición que SAMBA va a utilizar, compartir sin contraseñas, «share», o compartir con contraseñas «user». Al usar «user» será necesario crear usuarios y contraseñas ( veremos como hacerlo más adelante ).
  • netbios name: Con esta clave le daremos un nombre a nuestro PC en la red
  • path: Esta clave se utiliza para indicar a SAMBA la ruta ( path ) al directorio que queremos compartir, no tiene porque ser el mismo nombre de sección que el del directorio a compartir, como vemos en nuestro ejemplo. Pero si es necesario aplicar al directorio los permisos necesarios para poder leer y/o escribir en el.
  • read only: Con esta clave estableceremos que el directorio compartido es de solo-lectura. Aún si tenemos permisos 777 al directorio SAMBA no dejará escribir en el.
  • guest ok: Con esta clave estableceremos si un usuario sin contraseña puede acceder al directorio o no. OJO esta clave puede suponer un riesgo de seguridad alto.
  • comment: Con esta clave podemos introducir una pequeña descripción del recurso compartido.
  • read list: Con esta clave definimos la lista de usuarios o usuarios específicos que tienen acceso de solo-lectura al recurso compartido.
  • valid users: Con esta clave definimos la lista de usuarios o usuarios específicos que pueden iniciar sesión en este servicio.
  • write list: Con esta clave definimos el grupo de usuarios o usuarios específicos que tienen permisos de escritura en el recurso compartido.
  • encrypt passwords: Con esta clave le indicamos a SAMBA si queremos encriptar las contraseñas de los usuarios.

Ahora veremos como añadir usuarios a SAMBA. El proceso consta de dos partes,

  • Añadir usuario al sistema, para ello emplearemos el siguiente comando,
  • # sudo useradd -s /sbin/nologin nombreusuario
    En este caso añadimos a nuestro sistema el usuario «nombreusuario» sin acceso al sistema.
  • # sudo useradd -s -M /sbin/nologin nombreusuario
    Este caso es igual al anterior salvo que no se creará el directorio personal del usuario ( /home/nombreusuario ), esta opción es útil cuando no queremos que los usuarios tengan un directorio personal, tanto en el sistema, si tenemos muchos usuarios se nos «llenará» el directorio /home con muchos subdirectorios que no se usarán.
  • Ahora debemos añadir el usuario a SAMBA, para ello emplearemos el siguiente comando,
  • # smpasswd -a nombreusuario
    El sistema nos pedirá insertar la contraseña para SAMBA dos veces.

Como podéis comprobar la forma de poner a funcionar SAMBA es relativamente sencilla, a partir de este punto, podemos complicar la configuración prácticamente hasta el infinito gracias a la multitud de opciones de las que dispone el sistema.

Recordaros también que existe un paquete llamado swat que permite la configuración vía web del servidor SAMBA. Esta aplicación escucha el puerto 901 y además de realizar diferentes configuraciones también nos permitirá reiniciar los demonios, ver quien está conectado y que recursos está utilizando y los errores que devuelve el sistema, «accesos denegados», «errores de acceso», etc…

Para ver «lo que está haciendo» el servidor SAMBA también podemos echar un vistazo a los logs que, generalemente, están en el directorio /var/log/samba.

Espero que este mini-tutorial os sirva para iniciaros en el servidor SAMBA, no dudéis en plantearnos vuestras dudas y siempre tenéis la completa documentación oficial en su página oficial.

Deja una respuesta