Configuración de SAMBA 1/10
1. INTRODUCCIÓN
SAMBA es un producto que se ejecuta en sistemas UNIX, permitiendo a sistema UNIX
conversar con sistemas Windows a través de la red de forma nativa. De esta forma, el
sistema UNIX aparece en el “entorno de red”, y clientes Windows pueden acceder a sus
recursos de red e impresoras compartidas como si de otro sistema Windows se tratase. Para
ello implementa los protocolos NetBIOS y SMB. NetBIOS es un protocolo del nivel de sesión
que permite establecer sesiones entre dos ordenadores. SMB (Server Message Block),
implementado sobre NetBIOS, es el protocolo que permite a los sistemas windows compartir
ficheros e impresoras.
1.1 LA DISTRIBUCIÓN SAMBA
SAMBA contiene varios programas que sirven para diferentes propósitos. La mayoría de
los programas que vienen con la distribución de SAMBA se centran en dos demonios:
• El demonio smbd es responsable de manejar los recursos compartidos entre la
máquina servidora SAMBA y sus clientes. Proporciona servicios de archivos, impresión
y visualización a los clientes SMB a través de una o más redes.
• El demonio nmbd es un sencillo servidor de nombres que imita la funcionalidad
de los servidores WINS y de resolución de nombres NetBIOS.
1.2 INSTALACION Y CONFIGURACION DE SWAT Y SAMBA
• Primero que nada instalamos los paquetes samba, swat y netkit-inetd de los
repositorios oficiales de Ubuntu.
aptitude install samba samba-client smbfs smbclient
• Iniciar el proceso swat escuchando el puerto predeterminado 901
update-inetd --enable 'swat'
• Establecemos una contraseña al usuario root
sudo –s
passwd P@ssw0rd
• Instalalar el gestor de usuarios samba en ubuntu
system-config-samba
2. CONFIGURACIÓN DE SAMBA
La clave para configurar SAMBA está en un único fichero de configuración:
/etc/samba/[Link]. Este fichero de configuración puede ser muy simple o
extremadamente complejo. Por el momento mostraremos cómo crear una configuración
simple, más adelante veremos cómo configurar SAMBA para tareas más complejas.
La distribución de SAMBA incluye varios ejemplos de configuración [Link]. Para
comprobar el software del servidor, podemos usar el siguiente fichero [Link].
[global]
workgroup = SIMPLE
netbios name = A26o21
[test]
comment = For testing only, please
path = /export/SAMBA/test
read only = no
guest ok = yes
Configuración de SAMBA 2/10
Este breve fichero de configuración le dice al servidor SAMBA que ofrezca el directorio
/export/SAMBA/test en el servidor como un recurso compartido llamado test. El
servidor también se convierte en parte del grupo de trabajo llamado SIMPLE, donde cada uno
de los clientes deben ser también miembros de él.
Para los clientes Windows xp Service Pack 3 o posteriores, debe añadirse la siguiente
entrada a la sección [global] del fichero de configuración de SAMBA: encrypt
passwords=yes. En adición, debe usarse el programa smbpassword (normalmente
localizado en /usr/local/SAMBA/bin/) para reintroducir las combinaciones
usuario/contraseña de aquellos usuarios que deberían tener capacidad de acceder a los
recursos compartidos. Por ejemplo, si el usuario Unix steve tiene que acceder a recursos
compartidos desde un cliente SMB, se debería teclear: smbpassword -a steve. La
primera vez que un usuario es añadido, el programa generará un error indicando que la base
de datos de contraseñas encriptadas no existe, y entonces el programa creará la entrada.
Las combinaciones usuario/contraseña de la base de datos de contraseñas encriptadas
DEBEN coincidir con los usuarios y contraseñas de los clientes Windows.
2.1 ESTRUCTURA DEL FICHERO DE CONFIGURACIÓN.
Echemos otro vistazo al fichero de configuración, esta vez a un nivel más general:
[global]
...
[homes]
...
[printers]
...
[test]
...
Los nombres encerrados entre corchetes delimitan secciones únicas del fichero
[Link]; cada nombre de sección da nombre al recurso (o servicio) a la que ser refiere la
sección. Por ejemplo, las secciones [test] y [homes] son cada una de ellas
comparticiones de disco únicas; contienen opciones que mapean a directorios específicos del
servidor SAMBA. La sección [printers] contiene opciones que mapean a varias
impresoras del servidor. Todas las secciones definidas en el fichero [Link], con la
excepción de la sección [global], estarán disponibles como discos o impresoras
compartidas para los clientes del servidor SAMBA.
El resto de líneas son opciones individuales de configuración para cada recurso. Estas
opciones continuarán hasta que se encuentre una nueva sección rodeada entre corchetes, o
hasta el final del fichero. Cada opción de configuración sigue un formato muy simple:
opción = valor
2.2 ESPACIOS EN BLANCO Y USO DE
MAYÚSCULAS/MINÚSCULAS
Los espacios en blanco en la parte del valor son significativos. Por ejemplo, considera la
siguiente opción:
volume = The Big Bad Hard Drive Number 3543
SAMBA desprecia los espacios entre la e final de volume y la primera T en The. Son no
significativos. El resto de espacios son significativos y serán reconocidos y preservados por
SAMBA cuando lea el fichero.
La capitalización no es importante en el fichero de configuración de SAMBA excepto en
lugares donde estas podrían llevar a confusión al sistema operativo que lo aloja. Por ejemplo,
asumamos que se ha incluido la siguiente opción en un recurso que apunta a
/export/samba/simple:
PATH = /EXPORT/SAMBA/SIMPLE
Configuración de SAMBA 3/10
SAMBA no tendría problemas con la opción de configuración path si esta apareciera
íntegramente en mayúsculas. Sin embargo, cuando intente conectar a dicho directorio, podría
fallar porque el sistema operativo UNIX es sensible a mayúsculas/minúsculas.
2.3 CONTINUACIÓN DE LÍNEA
Se puede continuar una línea en el fichero de configuración de SAMBA usando la barra
“\” o "backslash", como sigue:
comment = The first share that has the primary copies \
of the new Teamworks software product.
A consecuencia de la barra estas dos líneas serán tratadas como una sola por SAMBA.
2.4 COMENTARIOS
Los comentarios se introducen en el fichero [Link] antecediéndolos por una
almohadilla “#” o por un punto y coma “;”. Ambos caracteres son equivalentes.
3. LA SECCIÓN [GLOBALS]
La sección [globals] aparece en todos los ficheros de configuración de SAMBA,
aunque no es obligatoria su definición. Cualquier opción de esta sección se aplicará al resto
de recursos. Sólo una salvedad: otras secciones pueden contener la misma opción pero con
distinto valor; lo último prevalece siempre sobre lo antiguo, así que ese último valor
prevalecerá sobre el establecido en la sección [globals].
3.1 NETBIOS NAME
La opción netbios name te permite establecer el nombre NetBIOS del servidor. Por
ejemplo:
netbios name = YORKVM1
3.3 SERVER
El parámetro server string define un literal descriptivo que aparecerá junto al nombre
del servidor tanto desde el Entorno de Red (cuando muestra la Vista/Detalles) y la entrada de
comentario del gestor de impresión de Microsoft Windows. Se pueden usar las variables
estándar para proporcionar información en la descripción. Por ejemplo:
[global]
server string = SAMBA %v on (%h)
3.4 WORKGROUP
El parámetro workgroup establece el actual grupo de trabajo o dominio donde el servidor
SAMBA aparecerá. Lo clientes que quieran acceder a sus recursos deberán pertenecer al
mismo grupo de trabajo NetBIOS.
workgroup = SIMPLE
3.5 HOST ALLOW
La opción hosts allow especifica las máquinas que podrán acceder a los recursos del
servidor SAMBA, escritas como lista de IPs separadas por comas o espacios en blanco.
También es posible especificar la dirección de una subred en ésta opción. Por ejemplo:
hosts allow = 192.168.220. [Link]
También se ha colocado la dirección de localhost tras la dirección de subred. Uno de los
errores más comunes cuando se usa la opción hosts allow es desactivar al servidor
SAMBA para comunicar consigo mismo. El programa smbpasswd necesita conectar como
cliente para cambiar una contraseña de usuario encriptada.
Pueden especificarse cualquiera de los siguientes formatos para esta opción:
• Nombres de hosts, tales como [Link]
• Direcciones IP
Configuración de SAMBA 4/10
• Nombres de Dominio, que pueden ser diferenciados de nombres individuales de
máquinas porque estos empiezan por un punto. Por ejemplo: .[Link] representa a
todas las máquinas dentro del dominio [Link].
• Subredes, las cuales terminan con un punto. Por ejemplo, 130.63.9. significa todas las
máquinas cuyas direcciones IP comiencen por 130.63.9.
• La palabra clava ALL, que permite el acceso a cualquier cliente.
• La palabra clave EXCEPT seguida por uno o más nombres, direcciones IP, nombres de
dominio o subredes. Por ejemplo, podrías especificar que SAMBA permita acceso a
todas las máquinas excepto a aquellas en la subred 192.168.110 con
hosts allow = ALL EXCEPT 192.168.110.
# NO olvidar el punto final para indicar una subred
3.6 HOST DENY
La opción hosts deny especifica máquinas que no tienen permiso para acceder a
recursos, escritas en forma de lista de nombres de máquinas o de IPs separadas por una
coma o espacio en blanco. Usa el mismo formato que la opción hosts allow. Por ejemplo,
para restringir el acceso al servidor para todo el mundo excepto al dominio [Link] se
escribiría:
hosts deny = ALL EXCEPT .[Link]
3.9 LOG FILE
SAMBA manda la información de registro a ficheros de texto especificado en la opción
log file
[global]
log file = /usr/local/logs/[Link]
Pueden usarse sustitución con variables para crear ficheros de registro específicos para
usuarios o clientes individuales.
3.10 LOG LEVEL
La opción log level establece la cantidad de información a registrar. Normalmente se
mantiene a 0 ó 1. Sin embargo, si se tiene un determinado problema puede especificarse el
nivel 3, el cual proporciona la información más útil de depuración que podría necesitarse para
resolver un problema. Los niveles por encima de 3 proporcionan información dirigida a los
programadores y ralentizan el rendimiento del servidor.
3.11 MAX LOG SIZE
La opción max log size establece el tamaño máximo, en kilobytes, del fichero de
registro que mantiene SAMBA. Cuando el fichero de registro excede ese tamaño, el actual
fichero es renombrado y se le añade la extensión .old
[global]
log file = /usr/local/logs/[Link].%m
log level = 3
max log size = 1000
4. COMPARTICIÓN DE DISCOS
Este capítulo introduce en la estructura del fichero de configuración de SAMBA y muestra
cómo usar estas opciones para crear y modificar discos compartidos.
[global]
workgroup = SIMPLE
netbios name = A26o21
[test]
path = /export/SAMBA/test
volume = test drive
Configuración de SAMBA 5/10
comment = network drive
browseable = yes
read only = yes
guest ok = yes
4.1 PATH
La opción path indica la ruta desde la raíz del recurso de disco. Se Puede seleccionar
cualquier ruta en el servidor SAMBA, mientras que el propietario del proceso SAMBA que
está corriendo tenga permisos de lectura/escritura sobre el directorio.
4.2 GUEST
La opción guest se trata más adelante en el tema 6: USUARIOS, SEGURIDAD Y
DOMINIO
4.3 COMMENT
La opción comment permite introducir un comentario que será enviado al cliente cuando
intente navegar por el recurso. El usuario puede ver el comentario seleccionando la opción
"Vista/Detalle" en la ventana de Entorno de Red.
4.5 READ ONLY
Las opciones read only y writeable son dos formas de decir lo mismo, pero desde
polos opuestos. Por ejemplo, se puede establecer cualquiera de estas opciones en la sección
[global] o en la de un recurso determinado:
read only = yes
writeable = no
Si se definen como las opciones de arriba, los datos podrán ser leídos desde el recurso,
pero no se podrá escribir en él. La opción sólo lectura es la opción por defecto para los
recursos; si se quiere habilitar la escritura sobre un recurso, se debe indicar explícitamente
especificando una de las dos siguientes opciones en el fichero de configuración para cada
recurso:
read only = no
writeable = yes
Si se especifica más de una ocurrencia de la misma opción, SAMBA usará el último valor
que encuentre para el recurso.
4.6 BROWSEABLE
La opción browseable indica si el recurso referenciado debería aparecer en la lista de
recursos disponibles de la máquina en la cual residen. Esta opción siempre está establecida
a yes por defecto. Si se quiere evitar que un recurso sea visible para un cliente, es necesario
cambiar este valor a no. Esto no previene contra el acceso al recurso usando otros
métodos, tales como, especificar una ruta completa UNC “//A21o23/test” en el
Explorador de Windows. Sólo evita que el recurso sea listado bajo la lista de recursos de la
máquina investigada.
5 CONTROL DE ACCESO A LOS RECURSOS
COMPARTIDOS
Frecuentemente, por razones de seguridad, es necesario restringir los usuarios que
pueden acceder a un determinado recurso compartido. Esto es muy fácil de hacer con
SAMBA, dado que contiene gran cantidad de opciones para crear prácticamente cualquier
configuración de seguridad.
Empezamos con un único usuario. La forma más fácil de configurar un cliente es crear
una cuenta UNIX para ese cliente en el servidor, y notificar a SAMBA la existencia de ese
usuario. Posteriormente en el fichero de configuración de SAMBA se creará un recurso de
Configuración de SAMBA 6/10
disco compartido que apunte al directorio personal del usuario y restringiremos su acceso a
través de la opcion valid. Por ejemplo:
[global]
…
# contraseñas encriptadas.
encrypted password = yes
…
[dave]
path = /home/dave
comment = Dave’s Home Directory
writeable = yes
valid users = dave
La opción valid users especifica que usuarios pueden tener acceso al recurso
compartido. En este caso sólo el usuario dave es autorizado a acceder a él. En capítulos
anteriores, especificamos que cualquier usuario podía acceder a un recurso compartido de
disco usando el parámetro guest ok.
También es posible especificar un grupo de usuarios UNIX mediante el carácter @ al
principio del grupo.
valid users = @alumnos
5.1 GUEST
5.1.1 GUEST OK
Esta opción permite o prohíbe accesos anónimos a un recurso. El valor por defecto es
no. Si se establece a yes, significa que no se necesita nombre de usuario ni contraseña para
conectar al recurso. La cuenta por defecto a la que SAMBA ofrece el recurso es nobody. Sin
embargo, esto puede ser cambiado con la opción de configuración guest account.
Los usuarios aún pueden conectar al recurso usando una combinación nombre de
usuario/contraseña válidos. Ellos mantendrán los derechos de acceso garantizados por su
propia cuenta y no por la cuenta de anónimo. Si un usuario intenta autentificarse y falla, sin
embargo, obtendrá los permisos establecidos para un usuario anónimo. Puedes obligar a que
todo usuario que conecte al recurso lo haga como anónimo estableciendo la opción guest
only = yes.
5.1.2 GUEST ACCOUNT
La opción guest account, señala la cuenta UNIX que se asignará a los usuarios
invitados cuando conecten con el servidor SAMBA. El valor por defecto para esta opción se
establece durante la compilación, y normalmente es nobody.
guest account = ftpuser
guest ok
Las conexiones a los recursos realizados por usuarios anónimos accederán al sistema
operativo mediante la identidad del usuario ftpuser. Consecuentemente se accederá a los
archivos del recurso compartido con los permisos de este usuario.
5.1.3 GUEST ONLY
Si se quiere restringir el acceso, en un recurso determinado, sólo a los usuarios
invitados- dicho de otra forma, todos los usuarios se conectarán como usuarios invitados
cuando accedan a ese recurso - puede utilizarse la opción guest only unida a la opción
guest ok, como muestra el siguiente ejemplo:
[compras]
path = /home/compras
comment = departamento de compras
writeable = yes
guest ok = yes
guest account = ftpuser
Configuración de SAMBA 7/10
guest only = yes
5.1.4 VALID USERS
Esta opción permite indicar los usuarios y grupos que tienen acceso a un determinado
recurso. Se puede utilizar una lista de usuarios separados por comas, o indicar un grupo
UNIX que ira precedido por el símbolo @.
valid users = pepe carlos @profes
5.2 CONTRASEÑAS EN SAMBA
Actualmente se usan dos sistemas de encriptación: Uno para los clientes Windows 95 y
98 que sigue utilizando el estilo de Microsoft LAN Manager, y otro distinto para Windows NT
clientes y servidores. Windows 95 y 98 utilizan un viejo sistema de encriptación derivado del
programa de red LAN Manager, mientras que los sistemas Windows NT tanto clientes como
servidores utilizan un sistema nuevo. Si las contraseñas encriptadas están soportadas,
SAMBA las almacena en un fichero llamado smbpasswd. Al mismo tiempo, los clientes
almacenan una versión encriptada de la contraseña del usuario en su propio sistema. La
contraseña sin encriptar (en texto plano) nunca se almacena en ningún sistema. Cada uno de
ellos almacena la contraseña encriptada según un algoritmo conocido cuando esta se
establece o cambia.
Puedes configurar SAMBA para aceptar contraseñas encriptadas añadiendo lo siguiente
en la sección [global] del fichero [Link]. Ten en cuenta que especificamos completa
la ruta del fichero de contraseñas de SAMBA:
[global]
…
encrypt passwords = yes
…
5.5.1 EL FICHERO SMBPASSWD
SAMBA almacena sus contraseñas encriptadas en un fichero llamado smbpasswd.
Este fichero ha de ser guardado tan celosamente como el fichero passwd; debe ser colocado
en un directorio donde solo el usuario root tenga derechos de lectura/escritura. Todos los
demás usuarios no deberán ser capaces de leer el directorio. Además el fichero ha de tener
todos los accesos cerrados a todo el mundo excepto a root.
[Link] AÑADIR UNA ENTRADA EN SMBPASSWD
Puede usarse el programa smbpasswd con la opción -a para añadir automáticamente
cualquier usuario que ya posea un cuenta estándar UNIX en el sistema.
smbpasswd –a usuario
6. ACCEDER A LOS RECURSOS COMPARTIDOS DESDE
LINUX
Linux dispone de soporte para el sistema de ficheros SMB. De esta forma LINUX puede
montar un recurso SMB ofrecido por un servidor SMB (Un sistema Windows o un servidor
SAMBA).
La manera más práctica de acceder a un recurso compartido es crear un punto de
montaje asociado al recurso remoto. Esto se puede realizar con la orden smbmount.
smbmount //computer_name/datos /mnt/datos/
Si la máquina Windows® requiere un usuario y una contraseña, será necesario añadir a
la orden anterior las opciones -username=usuario -password=contraseña
-workgroup=grupo_de_trabajo_o_dominio. Por ejemplo:
smbmount //SRVA23/datos /mnt/datos/ -o username=uno,
password=, workgroup=DOMA23
Si la distribución de Linux es reciente, también puede utilizarse la orden mount:
Configuración de SAMBA 8/10
mount -t smbfs -o username=uno,workgroup=DOMA23,password=
//SRVA23/datos /mnt/datos/
Puede añadirse también una entrada en /etc/fstab de modo que sólo tenga que ser
tecleado mount /mnt/datos.
Para desmontar el recurso compartido utilizaremos las ordenes smbumount y umount
indicando únicamente el directorio donde se monto la unidad
smbumount /mnt/datos
umount /mnt/datos
Ejemplo. Montar la carpeta documentos en un ordenador con linux distinto al
vuestro en el directorio /mnt/documentos
En el pc destino procedemos:
mkdir /mnt/vips
smbmount //[Link]/documentos /mnt/documentos –o
username=jefe1,password=stucom
De esta forma solo el usuario jefe1 tendra acceso a ella
Configuración de SAMBA 9/10
7. EJEMPLO
[global]
# Definimos el grupo de trabajo o dominio mediante workgroup
workgroup = DOMA23
# Definimos el nombre de la maquina dentro de la red
netbios name = A23o21
server string = SAMBA SERVER A23o21
# Los passwords se envian encriptados
encrypt passwords = yes
# Configura el entorno de red
# permite el acceso a todos los ordenadores cuya IP
# sea 100.200.23.*
host allow = 100.200.23. [Link]
# Configura el archivo de logs
# Especifica la ruta completa del archivo de logs donde se
# almacenará el registro.
log file = /usr/samba/log/[Link]
# Especifica la cantidad de información que se guarda en el archivo
log level = 1
# Especifica el tamaño máximo del archivo de configuración
# (en Kbytes)
max log size = 1000
# Definició de un recurso compartido llamado publico
[publico]
# Indicamos donde se encuentra la carpeta
path = /export/datos
# Añadimos un comentario para el recurso compartido
comment = información publica de la empresa
# El recurso aparecerá en la lista de recursos disponibles.
browseable = yes
# Los usuarios tienen acceso de lectura únicamente.
read only = yes
# Definimos el modo de acceso, se permite el acceso anonimo.
guest ok = yes
# Establece que cuenta de usuario UNIX se usará para acceder al
# sistema de archivos.
guest account = anonimo
# Definición de un recurso compartido llamado privado
[privado]
# Indicamos donde se encuentra la carpeta
path = /export/privado
# Información reservada
comment = información publica de la empresa
# El recurso aparecerá en la lista de recursos disponibles.
browseable = yes
# Los usuarios tienen acceso de lectura y escritura.
read only = no
valid users = @jefes
A continuación será necesario renicializar el sistema mediante la orden del shell
/etc/init.d/samba restart
También será necesario introducir todos los usuarios que tendrán acceso al servidor
SAMBA mediante la orden smbpasswd. Este programa modifica el archivo de texto
smbpasswd (no confundir con la orden que tiene el mismo nombre). La contraseña de red
tiene que ser la misma que la contraseña del sistema.
Configuración de SAMBA 10/10
adduser usuario
passwd usuario //introducimos la contraseña “stucom”.
smbpasswd –a usuario //introducimos la contraseña “stucom”