SAMBA. Soluciones para la red.


Te gustaría poder compartir tus carpetas o impresoras entre todos tus ordenadores independientemente de si estos tienen instalados sistemas operativos Windows, Mac o Linux.

Qué es SAMBA?

Samba es una implementación libre del protocolo de archivos compartidos de Microsoft Windows (antiguamente llamado SMB, renombrado recientemente a CIFS) para sistemas de tipo UNIX. De esta forma, es posible que ordenadores con GNU/Linux, Mac OS X o Unix en general se vean como servidores o actúen como clientes en redes de Windows. Samba también permite validar usuarios haciendo de Controlador Principal de Dominio (PDC), como miembro de dominio e incluso como un dominio Active Directory para redes basadas en Windows; aparte de ser capaz de servir colas de impresión, directorios compartidos y autentificar con su propio archivo de usuarios.

Cómo funciona SAMBA?

Samba es una implementación de una docena de servicios y una docena de protocolos, entre los que están: NetBIOS sobre TCP/IP (NetBT), SMB (también conocido como CIFS), DCE/RPC o más concretamente, MSRPC, el servidor WINS también conocido como el servidor de nombres NetBIOS (NBNS), la suite de protocolos del dominio NT, con su Logon de entrada a dominio, la base de datos del gestor de cuentas seguras (SAM), el servicio Local Security Authority (LSA) o autoridad de seguridad local, el servicio de impresoras de NT y recientemente el Logon de entrada de Active Directory, que incluye una versión modificada de Kerberos y una versión modificada de LDAP. Todos estos servicios y protocolos son frecuentemente referidos de un modo incorrecto como NetBIOS o SMB.

Samba configura directorios Unix y GNU/Linux (incluyendo sus subdirectorios) como recursos para compartir a través de la red. Para los usuarios de Microsoft Windows, estos recursos aparecen como carpetas normales de red. Los usuarios de GNU/Linux pueden montar en sus sistemas de archivos estas unidades de red como si fueran dispositivos locales, o utilizar la orden smbclient para conectarse a ellas muy al estilo del cliente de la línea de órdenes ftp. Cada directorio puede tener diferentes permisos de acceso sobrepuestos a las protecciones del sistema de archivos que se esté usando en GNU/Linux. Por ejemplo, las carpetas home pueden tener permisos de lectura y escritura para cada usuario, permitiendo que cada uno acceda a sus propios archivos; sin embargo, deberemos cambiar los permisos de los archivos localmente para dejar al resto ver nuestros archivos, ya que con dar permisos de escritura en el recurso no será suficiente.

La configuración de Samba se logra editando un solo archivo, ubicado en /etc/smb.conf o en /etc/samba/smb.conf.

Instalación de samba

Samba está compuesto por varios paquetes que deberemos instalar para poder disfrutar de manera completa de las posibilidades que Samba ofrece.

La lista de paquetes y dependencias de samba la podemos obtener de manera sencilla, ejecutando la siguiente instrucción:

sudo apt-cache search samba

Esta instrucción nos mostrará una pequeña descripción de cada uno de los paquetes y dependencias relacionados con Samba.

En cualquier caso, a continuación mostramos una lista con los paquetes fundamentales para poder implementar un servidor Samba:

• samba-common: Archivos destinados a ser utilizados por clientes y servidores.

• samba: Servidor de recursos para Unix.

• smbclient: Cliente simple para Unix.

swat: Herramienta de administración web

• samba-doc: Documentación.

• smbfs: Comando que nos permite gestionar unidades de red, montar y desmontar.

• winbind: Servicio para resolver información de usuarios y grupos de servidores Windows NT

Para proceder a la instalación de los paquetes ejecutaremos el siguiente conjunto de instrucciones:

sudo apt-get install samba-common

sudo apt-get install samba

sudo apt-get install smbclient

sudo apt-get install swat

sudo apt-get install samba-doc

sudo apt-get install smbfs

sudo apt-get install winbind

Herramientas Samba

Samba nos proporciono varias herramientas que nos pueden facilitar la configuración de nuestro servidor, puesto que disponen de un entorno gráfico. A continuación mostramos las más comunes:

1. Swat (Samba Web Administration Tols): esta aplicación nos permite gestionar, a través de un navegador web, la administración de Samba. Para ello introduciremos en nuestro navegador la siguiente dirección: http://localhost:901. (Hay que instalarla)

2. System-config-samba: Editor gráfico de configuración. (hay que instalarlo)

3. Gadmin-samba: Editor gráfico para la configuración de un servidor Samba. Nos permite realizar una configuración avanzada. (hay que instalarlo)

Pero la mejor manera de configurar nuestro servidor Samba es editando el archivo smb.conf.

Configuración de Samba

Como ya hemos dicho, la manera más fiable de configurar Samba es mediante la edición del archivo smb.conf. Este archivo está dividido en secciones que definen el valor de un grupo de parámetros y determina cuáles serán los recursos compartidas y los permisos de los usuarios sobre dichos recursos (Carpetas, impresoras,…). Para localizar el archivo deberemos dirigirnos a:

/etc/samba/smb.conf

Para editar el archivo smb.conf utilizaremos el editor de texto vi, aunque podemos utilizar cualquier otro como vim o nano.

sudo vi /etc/samba/smb.conf

El archivo consta de diferentes secciones que podemos configurar según nuestras necesidades.

Samba permite modificar muchísimos parámetros y conseguir de esta manera cientos de configuraciones distintas, por ello tan sólo analizaremos y explicaremos los puntos más importantes del archivo smb.conf.

Modificar el grupo de trabajo

Para la modificación del grupo de trabajo, buscaremos la siguiente línea:

workgroup = MSHOME

Reemplazamos MSHOME por el nombre de nuestro grupo de trabajo.

Compartir una carpeta

Primero debemos crear el recurso con los permisos que queramos darle, por ejemplo:

sudo mkdir /home/prueba

sudo chmod 755 /home/prueba

Una vez creada la carpeta y asignados lo permisos nos dirigiremos al archivo smb.conf, desde donde configuraremos las opciones de Samba para poder compartir dicho recurso.

A continuación mostramos un pequeño ejemplo de configuración:

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

security = user               // Seguridad por usuarios

workgroup = group        // Grupo de trabajo ‘x’

encrypt passwords = yes /no  // Contraseñas encriptadas / no encriptadas

wins support = yes / no      // Samba será servidor wins / no será

log level = 1

read only = no / yes           // lectura y escritura / sólo lectura

load printers = yes / no      //Compartir impresoras /no compartir

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

comment = Carpetas home    // Comentario

browsable = no / yes                // No explorables / sí explorable

create mask = 0700               // Máscara de creación de archivos (permisos)

directory mask = 0700         // Máscara de creación de carpetas (permisos)

[printers]                                   // Sección printers, impresoras

path = /var/tmp

printable = yes / no                  // Nostrar recurso / no mostrar

Dentro del archivo de configuración, nos dirigimos al final y le agregamos, por ejemplo:

[Director]                      // Recurso común Prueba

path = /home/samba/prueba // Ruta de acceso del recurso compartido

browsable = yes /no                    // Explorable / no explorable

read only = no / yes                   // Lectura y escritura / sólo lectura

create mask = 0770                // Máscara de creación de archivos (permisos)

directory mask = 0770           // Máscara de creación de carpetas

valid user = usuario1, +gruop1     // Indicamos los usuarios que tienen acceso a este recurso. El símbolo “+” se utiliza para indicar que es un grupo.

Es interesante antes de modificar ningún parámetro del archivo smb.conf, que creemos una copia para realizar las configuraciones, de esta manera siempre conservaremos el archivo original y podremos restaurar nuestro samba a su momento inicial.

Secciones de Samba

Hay tres secciones a destacar: global, homes, printers, que acontinuación explicamos.

1. Sección [global]

En esta sección ([global]) es donde configuramos los parámetros generales que determinarán el comportamiento global del servidor samba. Los parámetros que no definamos, tomaran un valor por defecto asignado por Samba. Todos los parámetros que se omitan tomarán el valor predefinido por defecto. A continuación detallamos los siguientes:

• hosts allow =

Define el rango de IP’s que podrán acceder al servicio. Si ponemos 192.168.189 todas las IP’s que empiecen por 192.168.189 podrán acceder.

• hosts deny =

Nos permite definir los rangos o IP’s a las cuales se deniega el acceso.

• security = share/User/Domain/Server/Ads

Permite determinar el modo de compartición de recursos de samba. Disponemos de 5 posibilidades: share, user, domain, server y ads..

Share: compartimos los recursos con contraseña (como W95, 98,…).

User: gestiona los permisos por usuario (como W2000 y WXP).

Domain: gestiona los permisos por dominio.

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.

• 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

Samba sólo reconocerá passwords encriptados. Los password encriptados de samba se guardan en otro archivo: smb passwd.

= /etc/smbpasswd

• logon script = INICIO.BAT

Indica el script que ejecutarán los clientes windows al logarse.

• password server = 192.168.189.10

Indica contra que servidor autenticarán los usuarios.

• wins server = 192.168.189.10

Indica 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.

2. Sección [homes]

Sección donde se configuran los parámetros para compartir la carpeta home 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 de forma automática su perfil.

3. 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.

Otros parámetros de configuración

Globales

yescheck password script: permite definir un script que verificará la complejidad de la contraseña definida, retornando 0 si es aprobada por el programa indicado.

debug uid: permite registrar los uid, gid, euid y egid del usuario que solicita un recurso en el log del servidor.

domain master: habilita a nmbd con un nombre NetBios específico que lo identifica como maestro de dominio del grupo de trabajo indicado.

guest account: usuario utilizado para acceder a los recursos que tienen definido “guest ok”.

include: incluye otro archivo de configuración complementario.

debuglevel o log level: permite definir el nivel de detalle del log; incluso por módulo: all, tdb, printdrivers, lanman, smb, rpc_parse, rpc_srv, rpc_cli, passdb, sam, auth, winbind, vfs, idmap, quota, acls, locking, msdfs, dmapi, registry.

map to guest: le indica al servidor la acción a tomar cuando falla el inicio de sesión de un usuario. inútil en security = share o server.

max log size: tamaño máximo del log.

message command: le indica al servidor la acción al recibir un mensaje tipo WinPopup.

netbios name: nombre netbios del servidor samba.

null passwords: permite el acceso a usuarios con contraseñas vacías.

panic action: comando a realizar al caerse smbd o nmbd.

prefered master o preferred master: indica si samba es preferencialmente maestro en el grupo de trabajo.

security: determina cómo los clientes responden el logeo (usuario y contraseña) según el “security mode bit” enviado en las negociaciones de protocolo.

share: clientes se registran al solicitar un recurso (permite ver la lista de recursos para visitas).

user: clientes se registran al solicitar la lista de recursos o solicitar un recurso.

domain: idéntico al anterior, pero los datos de registro se consultan con controlador de dominio.

server: idéntico al anterior, pero los datos de registro se consultan con servidor SMB.

server string: texto desplegado como nombre completo del servidor.

Usershares

Parámetros de configuración aplicables a las carpetas compartidas a través de nautilus (“Opciones de compartición”):

• usershare allow guests: las carpetas compartidas serán accedidas por los usuarios sin registrarse.

• usershare max shares: número máximo de carpetas compartidas por usuario.

• usershare owner only: permite compartir sólo las carpetas pertenecientes al usuario.

• usershare path: ruta donde se almacenan las carpetas compartidas por cada usuario (los permisos de la carpeta indicada controlan quienes pueden compartir a través de este medio).

• usershare prefix allow list: lista separada por comas de las rutas absolutas permitidas para compartir (incluye directorios dentro de estas rutas).

• usershare prefix deny list: lista separada por comas de las rutas absolutas no permitidas para compartir (incluye directorios dentro de estas rutas.

Recursos

• administrative share: recurso administrativo. creado por defecto en sistemas MS. Por Ejemplo: C$ , D$ , IPC$.

• admin users: lista de usuarios con total permiso sobre los recursos (no aplica si secury = share).

• browsable o browseable: define si el recurso es apreciable en la lista de recursos del servidor.

• comment: permite definir un comentario aplicado al recurso, desplegable en los recursos de toda la red; a través de net view o de smbclient.

• create mode o create mask: permite restringir los permisos de los archivos/directorios creados en un recurso a través de una máscara de permisos.

• force create mode: permite aplicar permisos a los archivos/directorios creados en un recurso.

• directory mode o directory mask: similar a create mode o create mask, aplicado a directorios.

• force directory mode: similar a force create mode, aplicado a directorios.

• directory security mask: mascara de permisos aplicado a clientes Windows NT.

• group o force group: grupo utilizado como gid del usuario conectado.

• user o force user: usuario utilizado como uid del usuario conectado.

• guest ok: permite acceder a un recurso sin identificarse.

• only guest o guest only: permite acceder sólo a usuarios sin identificación. requiere el parámetro “guest ok”.

• allow hosts o hosts allow: lista de equipos permitidos de acceder al recurso. puede aplicar como global.

• deny hosts o hosts deny: lista de equipos no permitidos de acceder al recurso. puede aplicar como global.

• invalid users: lista de usuarios no permitidos de acceder al recurso.

• only user: permite el acceso sólo a los usuarios en la lista user.

• directory o path: ruta del recurso indicado.

• read list: lista de usuarios que tienen acceso de sólo lectura.

• read only o writeable: no se permite crear ni modificar los archivos/directorios del recurso.

• user , users o username: usuarios con los cuales se probará la contraseña entregada.

• valid users: lista de usuarios permitidos de acceder al recurso.

• invalid users: lista de usuarios no permitidos de acceder al recurso.

• writable o writeable: permite escribir/modificar en el recurso indicado.

Recursos de Impresión

• print ok o printable: clientes pueden enviar trabajos de impresión a la carpeta indicada.

• printer o printer name: nombre de la impresora a la cual serán enviados los trabajos.

Recursos compartidos

Es necesario crear una sección por cada recurso que queramos compartir, puesto que cada uno de dichos recursos dispondrá de sus propias opciones de configuración.

Netlogon

Si estamos configurando un servidor de dominio con clientes Windows, es interesante crear un recurso compartido llamado netlogon, donde podremos almacenar scripts de inicio y políticas.

[netlogon]

path = /home/samba/netlogon

public = no

writeable = no

browsable = no

Si deseamos almacenar los drivers de impresora para los clientes Windows crearemos una sección.

Arrancar, reiniciar y parar samba

Arrancar el servicio (dependiendo de la versión):

sudo /etc/init.d/samba start

sudo /etc/init.d/smbd start

sudo service smbd start

Reiniciar el servicio (dependiendo de la versión):

sudo /etc/init.d/samba restart

sudo /etc/init.d/smbd restart

sudo service smbd restart

Recargar el servicio (dependiendo de la versión):

sudo /etc/init.d/samba reload

sudo /etc/init.d/smbd reload

sudo service smbd reload

Detener el servicio (dependiendo de la versión):

sudo /etc/init.d/samba stop

sudo /etc/init.d/smbd stop

sudo service smbd stop

Gestión de usuarios samba

Creación de un usuario de samba

Para crear un usuario de samba debemos utilizar el comando smbpasswd, pero hay que recordar que para que exista un usuario Samba, en primer lugar, debe existir el mismo usuario creado en Unix. Estos son los pasos a seguir:

1. Creamos el usuario Unix:

sudo useradd nombre-usuario

2. Agregamos el usuario a samba

sudo smbpasswd -a nombre-usuario

La opción -a significa agregar.

Cuando pulsaemo intro, el terminal nos pedirá que introduzcamos un pasword para el usuario de Samba que acabamos de crear.

New SMB password: 123456

Retype new SMB password: 123456

Eliminar un usuario de samba

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

sudo smbpasswd -x nombre-usuario

Inmediatamente el usuario habrá desaparecido de la base de datos de ‘usuarios samba’ aunque seguirá siendo un usuario de Unix.

Otras opciones 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).

Cambiar contraseña de un dominio Windows

Samba nos permite cambiar desde un entorno Linux, la contraseña de un usuario de dominio de windows. Para hacerlo sólo hay que abrir un terminal y ejecutar el siguiente comando:

sudo smbpasswd -r (dirección-del-controlador-dominio) -U nombre-usuario

Cambiar contraseña usuario Windows

Ahora que ya tenemos compartiendo la carpeta, nos queda crear un nombre de usuario y contraseña en el servidor Samba para que el ordenador con Windows pueda acceder a dicha carpeta, para ello abrimos una consola e introducimos:

sudo useradd -s /sbin/nologin usuario-windows

Si /sbin/nologin no existe, probar con /usr/sbin/nologin.

Si no encuentras el fichero nologin, también puedes crear tu usuario normalmente y luego ejecutar la sentencia:

sudo passwd -d usuario-windows

A continuación introducimos

sudo smbpasswd -a usuario-windows

Y nos pedirá la contraseña que queramos asignar a dicho usuario.

Fuentes:

www.wikipedia.com

www.samba.org

https://wiki.archlinux.org

www.guia-ubuntu.org

http://tecnoloxiaxa.blogspot.com

  1. Aún no hay trackbacks

Deja un comentario

Fill in your details below or click an icon to log in:

Logo de WordPress.com

You are commenting using your WordPress.com account. Log Out / Cambiar )

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.