Está en la página 1de 6

Samba

Instalación
Necesitaremos tener instalados los siguientes paquetes:
• samba: Servidor SMB.
• samba-client: Diversos clientes para el protoclo SMB.
• samba-common: Archivos necesarios para cliente y servidor.

$ sudo apt-get install samba samba-client cifs-utils smbclient

Es un conjunto de aplicaciones libres para Linux que implementan el protocolo SMB


utilizado por Windows para compartir carpetas e impresoras. Microsoft Windows
networking utiliza un protocolo que se llamaba originalmente el Server Message Block
(SMB).
Desde hace algún tiempo, en torno a 1996, dicho protocolo se conoce como Common
Internet Filesystem (CIFS).
Instalaremos el paquete:
samba: Servidor SMB // se instalarán también los paquetes samba-client y samba-common

Alta de cuentas de usuario

Se asignará una clave de acceso al usuario root. // podrá ser distinta a la utilizada en el
sistema.

smbpasswd -a root

Es importante sincronizar las cuentas entre el servidor Samba y los equipos Windows .

Nota: Si en un equipo con Windows iniciamos sesión como el usuario pepe con clave de
acceso 123, en el servidor Samba deberá existir también dicha cuenta con ese mismo
nombre y la misma clave de acceso. Como la mayoría de las cuentas de usuario que se
utilizarán para acceder hacia Samba no requieren acceso al intérprete de mandatos del
sistema, no es necesario asignar clave de acceso con el mandato passwd y se deberá
definir /sbin/nologin o bien /bin/false como intérprete de mandatos para la cuenta de
usuario involucrada.

useradd -s /sbin/nologin usuario-windows


smbpasswd -a usuario-windows
Parámetros principales del archivo smb.conf.
Editar el archivo /etc/samba/smb.conf

$ sudo nano /etc/samba/smb.conf

Dentro de este archivo, encontraremos información que será de utilidad comentada con
almohadillas (símbolo #) y varios ejemplos comentados con punto y coma (;), siendo estos
últimos los que se pueden tomar como referencia para configurar.

Parámetro workgroup.
Se establece el grupo de trabajo definiendo el valor del parámetro workgroup asignando
un grupo de trabajo deseado:

workgroup = 2SMR

Parámetro netbios name.

De manera opcional, se puede establecer con el parámetro netbios name otro nombre
distinto para el servidor, si acaso ésto fuese necesario, pero siempre tomando en cuenta
que dicho nombre deberá corresponder con el establecido en el archivo /etc/hosts.

netbios name = servidor

Parámetro server string.

Este parámetro es de carácter descriptivo. Puede utilizarse un comentario breve que de


una descripción del servidor.

server string = Servidor Samba

Parámetro security
security = [ user | share | server | ads | ]

user
• La seguridad a nivel de usuario es la configuración por
defecto para Samba.
• Si el servidor acepta la combinación de nombre de
usuario/contraseña del cliente, el cliente puede montar
múltiples recursos compartidos sin tener que especificar una
contraseña para cada instancia.
• Samba también puede aceptar solicitudes de nombre de
usuario/contraseña basadas en la sesión. El cliente mantiene
múltiples contextos de autenticación usando un único UID por
cada inicio de sesión.

share:
• Con la seguridad a nivel de recurso compartido o servicio, el servidor acepta
solamente una contraseña sin un nombre de usuario explícito desde el
cliente.
• El servidor espera una contraseña para cada recurso compartido,
independientemente del nombre de usuario.
• Han surgido informes recientes de clientes Microsoft Windows con
problemas de compatibilidad con servidores de seguridad a nivel de recurso
compartido. Los desarrolladores de Samba no recomiendan el uso de la
seguridad a este nivel

server
Se utilizó el modo de seguridad de servidor previamente cuando Samba no fue
capaz de actuar como un servidor miembro de dominio
Aviso:Se recomienda que no utilice este modo puesto que existen numerosas
desventajas desde el punto de vista de la seguridad.

ads
Si tiene un entorno Active Directory, es posible unirse al dominio
como un miembro nativo de Active Directory. Aún si una política de
seguridad limita el uso de protocolos de autenticación compatibles
con NT, el servidor Samba se puede unir al ADS utilizando Kerberos.
Samba en un modo de miembro de Active Directory puede aceptar
tícket's Kerberos.

Parámetro hosts allow.


• Se definirá qué máquinas, o redes, podrán acceder hacia el servidor.
• Si la red consiste en las máquinas con dirección IP desde 192.168.70.1 hasta
192.168.70.126, el rango de direcciones IP que se definirá en hosts allow será
192.168.70. de modo tal que sólo se permitirá el acceso dichas máquinas. En el
siguiente ejemplo se definen las redes 192.168.70.0/24 y 192.168.37.0/24,
definiendo los tres primeros octetos de la dirección IP de red, así como cualquier
dirección IP de la red 127.0.0.0/8 (retorno del sistema o loopback):

hosts allow = 127., 192.168.70., 192.168.37.


Compartiendo directorios a través de Samba
Encontraremos ejemplos de situaciones particulares en el archivo smb.conf. En general,
puede utilizar el siguiente ejemplo que funcionará para la mayoría:

[nombre_carpeta]
comment = Comentario
path = /home/usuario/carpeta_compartida

El volumen puede utilizar cualquiera de las siguientes opciones:

guest ok
Define si se permitirá el acceso como usuario invitado. El valor puede ser Yes o No.
guest ok = Yes
public
Es un equivalente del parámetro guest ok, es decir define si se permitirá el acceso como
usuario invitado. El valor puede ser Yes o No.

browseable
Define si se permitirá mostrar este recurso en las listas de recursos compartidos. El valor
puede ser Yes o No.
browseable = no
writable
Define si se permitirá la escritura. Es el parámetro contrario de read only. El valor puede
ser Yes o No. Ejemplos: «writable = Yes» es lo mismo que «read only = No». Obviamente
«writable = No» es lo mismo que «read only = Yes»

valid users
Define los usuarios, o grupos, que podrán acceder al recurso compartido. Los valores
pueden ser nombres de usuarios separados por comas, o bien nombres de grupo
antecedidos por una @. Ejemplo: ana, juan, @grupo_so

write list
Define los usuarios, o grupos, que podrán acceder con permiso de escritura. Los valores
pueden ser nombres de usuarios separados por comas, o bien nombres de grupo
antecedidos por una @. Ejemplo: ana, juan, @grupo_sor

admin users
Define los usuarios, o grupos, que podrán acceder con permisos administrativos para el
recurso. Es decir, podrán acceder hacia el recurso realizando todas las operaciones como
super-usuarios. Los valores pueden ser nombres de usuarios separados por comas, o
bien
nombres de grupo antecedidos por una @. Ejemplo: ana, juan, @grupo_sor

directory mask
Es lo mismo que directory mode. Define qué permiso en el sistema tendrán los
subdirectorios creados dentro del recurso. Ejemplos: 1777

create mask
Define que permiso en el sistema tendrán los nuevos archivos creados dentro del recurso.
Ejemplo: 0644

Ejemplo: se compartirá a través de Samba el recurso denominado publico, el cual está


localizado en el directorio /home/jose/publico del disco duro. Se permitirá el acceso a
cualquiera pero será un recurso de sólo lectura

Creamos una carpeta con permisos:

$ sudo mkdir /home/jose/publico


$ sudo chmod 755 /home//jose/publico
Damos de alta una sección en el fichero smb.conf
[publico]
comment = Datos públicos
path = /home/jose/publico
public = yes
writable = no

Se edita el archivo /etc/samba/smb.conf, y se añade, hasta el final de éste, el siguiente


contenido:

[datos]
comment = Directorio de Datos
path = /var/samba/datos
guest ok = Yes
read only = Yes
write list = juan, administrador
directory mask = 0755
create mask = 0644
Práctica:
> servidor
• Instalar samba
• Configurar samba y crear una carpeta (modo security=user)
• Permitir/denegar usuarios y/o IP's
> cliente
• Montar la carpeta compartida del servidor sobre una carpeta local.
• Montar dicha carpeta automáticamente al inicio de la sesión
• Indicar la contraseña en el comando de montaje para que no se la
solicite al usuario.
• Crear fichero de credenciales para utilizarlo en el proceso de montaje.

Montar una carpeta:


sudo mount -t cifs //192.168.0.XX/DIRECTORIO /directorio/carpeta

Desmontar una carpeta:


sudo umount /directorio/carpeta

Para averiguar los recursos compartidos en un equipo:


smbclient -L 192.168.0.XX
Montar carpeta remota especificando el usuario:

mount //192.168.0.xx/directorio /directorio/carpeta -o username=jose%123