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 p
osible 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.
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
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.
• -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:
http://tecnoloxiaxa.blogspot.com
Aún no hay trackbacks