Servidor Samba PDF

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 11

¿Qué es samba?

Samba son un conjunto de aplicaciones libres para Linux que implementan el protocolo de
comunicación SMB utilizado por los sistemas operativos Microsoft Windows para compartir
carpetas e impresoras.
Básicamente samba permite a PCs que utilizan Linux conectarse a carpetas compartidas en PCs con
Windows y compartir carpetas como si de un Windows se tratara. Gracias a samba, en una red
podemos tener PCs con Windows y PCs con Linux de forma que puedan intercambiar información
en carpetas compartidas de la misma forma que se haría si todos los PCs fueran Windows.
Las funcionalidades de samba no se quedan solo en una simple compartición de archivos e
impresoras sino que permite a un PC con Linux comportarse como un controlador de dominio de
Windows para redes Microsoft con prestaciones superiores a las que nos ofrecería un servidor con
Windows NT Server 4.0. En las páginas siguientes veremos como hacer que un PC con Linux haga
las veces de controlador de dominio de nuestra red Windows.

Instalación de samba
La 'suite' completa de samba se compone de varios paquetes. Se pueden localizar en
http://packages.debian.org buscando 'samba' en la descripción de los paquetes. Destacamos los más
importantes:
• samba - Servidor de archivos e impresoras tipo LanManager para Unix.
• samba-common - Archivos comunes de samba utilizados para clientes y servidores.
• smbclient - Cliente simple tipo LanManager para Unix.
• swat - Herramienta de administración de Samba via web
• samba-doc - Documentación de Samba.
• smbfs - Comandos para montar y desmontar unidades de red samba
• winbind: Servicio para resolver información de usuarios y grupos de servidores Windows
NT
Instalaremos los paquetes necesarios para disfrutar del servicio. Para ello ejecutaremos:

#apt-get install samba samba-common smbclient samba-doc smbfs

así tendremos instalados y actualizados a la última versión, los paquetes básicos para disfrutar del
servicio SAMBA.

Colonia 892 of. 301 Página 1 de 11 www.centrolinux.com.uy


Configuración de samba
Introducción
Samba, al igual que todas las aplicaciones para Linux, dispone de un archivo de texto para su
configuración. Se trata del archivo:
// Archivo de configuración de samba
/etc/samba/smb.conf

La sintaxis del archivo de configuración de samba es bastante sencilla ya que está dividido en
secciones que se limitan a establecer el valor de unos cuantos parámetros y a determinar cuáles son
las carpetas compartidas y sus permisos. No obstante, para facilitar la configuración de samba
existe una herramienta llamada swat que permite, vía web, configurar la aplicación.
Puesto que editando el archivo smb.conf se pueden configurar más de 300 parámetros, dando lugar
a miles de configuraciones, nos limitaremos a analizar los parámetros más relevantes y a la
compartición de archivos e impresoras directamente.

Archivo smb.conf
A continuación analizaremos un sencillo archivo smb.conf:
# Ejemplo de archivo de configuración de samba smb.conf

[global] // Sección global, parámetros generales


security = user // Seguridad por usuarios
workgroup = Aula5 // Grupo de trabajo 'Aula5'
encrypt passwords = yes // Las contraseñas se deberán enviar encriptadas
wins support = yes // Samba será servidor wins
log level = 1
max log size = 1000
read only = no // Por defecto, lectura y escritura
load printers = yes // Se comparten también las impresoras

[homes] // Sección homes, carpetas home de usuarios


comment = Carpetas home // Comentario
browsable = no // No explorables
create mask = 0700 // Máscara de creación de archivos (rxw------)
directory mask = 0700 // Máscara de creación de carpetas

[printers] // Sección printers, impresoras


path = /var/tmp
printable = yes
min print space = 2000

Colonia 892 of. 301 Página 2 de 11 www.centrolinux.com.uy


[profesores] // Carpeta común profesores
path = /home/samba/profesores // Ruta de la carpeta compartida
browsable = yes // Explorable
read only = no // Lectura y escritura
create mask = 0770 // Máscara de creación de archivos (rxwrxw---)
directory mask = 0770 // Máscara de creación de carpetas

[alumnos] // Carpeta común alumnos


browsable = yes
read only = no
path = /home/samba/profesores/alumnos

[programas] // Carpeta común del centro (solo lectura)


browsable = yes
read only = yes
guest ok = yes // Se admiten invitados
path = /home/samba/programas

[laserjet5] // Parámetros impresora


path = /tmp
printable = yes // Se permite imprimir

Todas las líneas que comienzan por almoadilla (#) o punto y coma (;) son líneas de comentarios y
son ignoradas por samba.
El archivo smb.conf está dividido en secciones identificadas con corchetes [ ] . Ninguna de las
secciones son obligatorias aunque normalmente suelen tener las siguientes secciones:

Sección [global]
En la sección [global] se configuran los parámetros generales (globales) que determinarán el modo
de comportamiento general del servidor samba. Todos los parámetros que se omitan tomarán el
valor predefinido por defecto. Existen unos 300 parámetros que se pueden configurar en ésta
sección. A continuación exponemos los parámetros más significativos y ejemplo de valor:
• hosts allow = 192. 127.
• Permite especificar desde qué direcciones IPs se podrá acceder al servicio. Ej.: Si
ponemos 192.168. significa todas las que empiecen por 192.168.
• Se pueden poner IPs concretas
• hosts deny = 10.
• Igual que hosts allow pero para especificar los rangos no permitidos
• security = share
• Permite determinar el modo de compartición de recursos de samba. Hay cinco
opciones posibles: share, user, domain, server y ads.
• 'Share' significa compartir los recursos con contraseña (como W95, 98,...).
• 'User' gestiona los permisos por usuario (como W2000 y WXP).
• 'Domain' gestiona los permisos por dominio.

Colonia 892 of. 301 Página 3 de 11 www.centrolinux.com.uy


• 'Server' indica que los permisos son gestionados por otro servidor.
• 'Ads' hace que samba se comporte como un miembro de un dominio Active Directory
y por lo tanto requiere un servidor W2000 Server o W2003 Server.
• Samba no puede actuar como controlador de dominio de Active Directory, es decir,
no puede sustituir a Windows 2000 Server, pero sí puede actuar como controlador de
dominio de Windows NT.
• domain logons = yes
• Para que samba sea autentificador del dominio. En este caso, habrá que poner
'security = user' porque no tiene sentido que el samba sea servidor de dominio y que
comparta los recursos con contraseña.
• domain master = yes
• Para que samba sea controlador de dominio. Lo lógico es que domain logons esté a
'yes'
• encrypt passwords = yes
• Hace que samba solo reconozca passwords encriptados. Las primeras versiones de
W95 enviaban las contraseñas en texto plano pero tanto las últimas versiones de
Windows 95 como W98, 2000 y XP las encriptan. Se puede impedir que W98 las
encripte cambiando un valor del registro (ver encription.txt en samba) pero lo
recomendable es que se envíen encriptadas para impedir que otros usuarios puedan
descubrirlas capturando paquetes de datos (sniffing). Los password encriptados de
samba se guardan en otro archivo:
• smb passwd file = /etc/smbpasswd
• Archivo que guarda las contraseñas encriptadas de acceso a samba. Para que un
usuario pueda acceder a samba debe existir en el sistema pero no tiene por qué
coincidir la contraseña de un usuario en el sistema linux con la de samba aunque es
aconsejable.
• logon script = INICIO.BAT
• Indica el script que ejecutarán los clientes windows al loguearse
• password server = 192.168.0.10
• Indica qué servidor autentificará a los usuarios
• wins server = 192.168.0.10
• Indica quién es el servidor de nombres wins
• wins support = yes
• Hace que nuestro samba sea servidor wins
• load printers = yes
• Para que automáticamente comparta todas las impresoras del sistema

Sección [homes]
En ésta sección se configuran los parámetros para compartir la carpeta home (carpeta donde se
almacena el perfil y todos los documentos) de cada usuario. Esta sección es opcional. Si no existe,
no se compartirán las carpetas home de cada usuario. Se utiliza cuando se desean crear perfiles
móviles de forma que cuando se identifique el usuario en cualquiera de los PCs de la red, se mapee

Colonia 892 of. 301 Página 4 de 11 www.centrolinux.com.uy


de forma automática su perfil.

Sección [printers]
En ésta sección se configuran los parámetros para compartir las impresoras o colas de impresión
disponibles en el servidor.

Una sección por cada carpeta compartida


Cada vez que se comparte una carpeta, hay que crear una sección denominada como se desee ya que
dicho nombre será el nombre del recurso compartido. Ejemplo, si deseamos compartir la carpeta
/home/samba/alumnos crearemos una sección [alumnos] donde se configurará dicho recurso
compartido con los parámetros específicos para dicho recurso. Parámetros destacables:
• browseable = yes
• Indica si el recurso compartido será visible cuando se escanea la red, por ejemplo
haciendo clic en 'Mis sitios de red' en Windows
• create mask = 0770
• Establece la máscara de creación de archivos, igual con directory mask para la
creación de carpetas
• guest ok = yes
• Indica que cualquier usuario sin contraseña tiene permiso de acceso
• valid users = pepe, juan
• Indica qué usuarios pueden acceder al recurso

Consejos

Es conveniente crear en /home una carpeta llamada samba y que cuelguen de ella todas las carpetas
compartidas, para tener todos los datos de usuario dentro de /home y sea sencillo hacer las copias de
seguridad.
Si somos servidores de dominio y vamos a tener en nuestra red clientes Windows, es conveniente
crear un recurso compartido llamado netlogon para poder almacenar scripts de inicio y archivos de
políticas ya que los clientes Windows están preconfigurados para acceder a dicho recurso
compartido:
// Si samba es controladores de dominio se recomienda crear recurso 'netlogon'
[netlogon]
path = /home/samba/netlogon
public = no
writeable = no
browsable = no

Colonia 892 of. 301 Página 5 de 11 www.centrolinux.com.uy


Si deseamos almacenar los drivers de impresora para los clientes Windows crearemos una sección
[print$]
Samba analiza cada 60 segundos el archivo smb.conf y si ha habido cambios, estos tomarán efecto.
Es conveniente crear una copia de seguridad del archivo smb.conf antes de hacer ningún cambio
para poder retornar al estado anterior en caso de que hagamos una modificación incorrecta del
archivo que impida que arranque el servicio.
Para comprobar que nuestro archivo smb.conf está correcto, podemos utilizar el comando testparm
que analiza cada línea en busca de errores.
Para tener una descripción detallada de todos los parámetros se puede consultar la página del
manual de smb.conf:
// Página del manual de smb.conf
$ man smb.conf

Arranque y parada manual

Samba, al igual que todos los servicios en Debian, dispone de un script de arranque y parada en la
carpeta /etc/init.d.
Si deseamos iniciar o reiniciar el servidor samba, debemos ejecutar:
// Iniciar o reiniciar el servidor samba

# /etc/init.d/samba restart

Este comando reiniciará los dos demonios (procesos residentes) necesarios que necesita samba para
su funcionamiento: nmbd y smbd.
Si deseamos detener el servidor samba, debemos ejecutar:
// Parada del servidor samba

# /etc/init.d/samba stop

Si deseamos reiniciar el servidor samba, debemos ejecutar: :


// Iniciar o reiniciar el servidor samba

# /etc/init.d/samba restart

Colonia 892 of. 301 Página 6 de 11 www.centrolinux.com.uy


Arranque automático de samba al iniciar el sistema.

// Tras situarnos en el directorio /etc/init.d


# update-rc.d samba defaults

Colonia 892 of. 301 Página 7 de 11 www.centrolinux.com.uy


Gestión de usuarios, grupos y permisos de
samba
Samba es un servicio que requiere de administración de usuarios para poder gestionar los permisos
de éstos. En función del usuario que acceda, samba se comportará de una forma u otra ya que
cuando accede un usuario normal, generalmente tiene unos permisos limitados y cuando accede un
usuario administrador, deberá disponer de todos los permisos.
Para que esa administración sea posible, samba dispone de su propia base de datos de 'usuarios
samba' pero como los usuarios utilizan otros recursos del servidor como carpetas e impresoras, es
necesario que estén creados en el sistema Unix. Resumiendo, podemos decir que para poder ser
usuario de samba, es necesario disponer de una cuenta de usuario en Unix y de una cuenta de
usuario en samba.

Gestión de usuarios de samba


La gestión de usuarios de samba se realiza con el comando smbpasswd. Con él podremos crear y
eliminar usuarios, cambiar su contraseña y algunas cosas más.

Creación de un usuario de samba


Para crear un usuario de samba debemos utilizar el comando smbpasswd, pero antes debemos haber
creado el usuario en Unix. Ejemplo, supongamos que queremos crear en Unix al usuario pepe:

// Creación de un usuario en unix


# useradd pepe

Si deseamos que pepe pueda disfrutar de los servicios samba, debemos crear a pepe como usuario
de samba ejecutando el siguiente comando:

// Creación de un usuario de samba


# smbpasswd -a pepe

Con la opción -a indicamos que añada al usuario. Acto seguido nos preguntará dos veces la
contraseña que deseamos poner al usuario. Lo razonable es que sea la misma contraseña que tiene el
usuario en Unix. A continuacion veremos un ejemplo de utilización:

Colonia 892 of. 301 Página 8 de 11 www.centrolinux.com.uy


root@knoppix36:~# smbpasswd -a pepe
New SMB password: // Establecemos contraseña
Retype new SMB password: // Repetimos la contraseña'''
Added user pepe.

Eliminar un usuario de samba


Para eliminar un usuario de samba debemos ejecutar smbpasswd con la opción -x, ejemplo:

// Eliminar un usuario de samba


# smbpasswd -x pepe

Inmediatamente el usuario habrá desaparecido de la base de datos de 'usuarios samba' aunque


seguirá siendo un usuario de Unix.

Otras opciónes de smbpasswd


• -d: Deshabilitar un usuario
• -e: Habilitar un usuario
• -n: Usuario sin password. Necesita parámetro null passwords = yes en sección 'global' del
archivo de configuración de samba.
• -m: Indica que es una cuenta de máquina (equipo)
Para más información se puede consultar la página del manual de smbpasswd:

// Manual de smbpasswd
$ man smbpasswd

Colonia 892 of. 301 Página 9 de 11 www.centrolinux.com.uy


Gestión de grupos y permisos con samba
La gestión de grupos y permisos de usuarios y grupos es sustancialmente diferente en Sistemas
Unix y en Sistemas Microsoft Windows.
En los Sistemas Unix, la gestión de los permisos que los usuarios y los grupos de usuarios tienen
sobre los archivos se realiza mediante un sencillo esquema de tres tipos de permisos (lectura,
escritura y ejecución) aplicables a tres tipos de usuarios (propietario, grupo propietario y resto). Este
sencillo esquema se desarrolló en los años 70 y aún hoy resulta adecuado para la gran mayoría de
los sistemas en red que podamos encontrar en cualquier tipo de organización, desde pequeñas redes
a las más grandes. Es cierto que tiene algunas limitaciones pero la ventaja de ser sencillo hace que
su administración sea fácil y su rendimiento muy elevado.
En los Sistemas Microsoft Windows, la gestión de los permisos que los usuarios y los grupos de
usuarios tienen sobre los archivos, se realiza mediante un complejo esquema de listas de control de
acceso (ACLs = Access Control Lists) para cada carpeta y cada archivo. El sistema de ACLs tiene la
ventaja de ser mucho más flexible que el sistema Unix ya que se pueden establecer más tipos de
permisos, establecer permisos solo a algunos usuarios y algunos grupos, denegar permisos, etc...,
pero como hemos comentado anteriormente, en la mayoría de los casos, con las prestaciones del
Sistema Unix es suficiente. En el lado contrario, el sistema de ACLs es más complejo de
administrar y más lento ya que antes de acceder a las carpetas o archivos, el sistema debe
comprobar listas mientras que en Unix hace una operación lógica de los bits que especifican los
permisos lo cual es muchísimo más rápido.
Samba tiene también implementado el sistema de ACLs y se gestiona utilizando el comando
smbcacls, no obstante, la recomendación es utilizar el sistema de gestión de permisos de Unix.
Aunque existan carpetas compartidas con samba, en última estancia imperan los permisos de Unix.
Por ejemplo, si tenemos compartida una carpeta llamada 'profesores' con permisos de escritura para
el grupo profesores, todos los usuarios que pertenezcan al grupo profesores podrán realizar cambios
en la carpeta, pero si dentro de dicha carpeta existe otra llamada 'confidencial' sobre la cual no tiene
permiso para entrar el grupo profesores, ningún profesor podrá ver su contenido aunque esté dentro
de una carpeta compartida.
Para realizar una gestión eficaz de usuarios, grupos y permisos, se recomienda utilizar los
permisos de Unix que permiten asignar permisos de lectura, escritura y ejecución al usuario
propietario del archivo, al grupo propietario del archivo y al resto de usuarios del sistema.

Colonia 892 of. 301 Página 10 de 11 www.centrolinux.com.uy


Sobrecarga de permisos
Puede ocurrir que exista contradicción entre los permisos del sistema Unix y los permisos del
recurso compartido en samba, por ejemplo, podemos tener una carpeta compartida llamada
almacen-software con permisos Unix de lectura, escritura y ejecución para todos, en cambio si en
el archivo de configuración de samba, dicho recurso tiene el parámetro read only = yes, no será
posible realizar cambios ya que está compartido con permiso de 'solo lectura'. Cuando los permisos
Unix se contradicen con los permisos samba, el permiso efectivo es el más restrictivo de los dos.
Para simplificar la administración de los permisos, se recomienda no ser restrictivos en los permisos
de recurso compartido con samba y aplicar los permisos en el Sistema Unix, de ésta forma, además
de ser efectivos cuando accedemos a través de samba, también lo seguirán siendo si accedemos de
otra forma como por ssh, ftp, o nos sentamos en la consola del servidor.

Colonia 892 of. 301 Página 11 de 11 www.centrolinux.com.uy

También podría gustarte