Vous êtes sur la page 1sur 16

ADMINISTRACIN DE SISTEMAS OPERATIVOS. 2 ASIR.

CURSO 16/17

CONTENIDO

SAMBA .......................................................................................................................................................... 2
INTRODUCCIN. ....................................................................................................................................... 2
HISTORIA. ............................................................................................................................................. 2
CARACTERISTICAS. ................................................................................................................................ 3
INSTALACIN. ........................................................................................................................................... 3
CONFIGURANDO SAMBA. ......................................................................................................................... 3
SMB.CONF ............................................................................................................................................ 3
PUBLICACION DE CARPETAS DE FORMA ANONIMA. NO RECOMENDADA. ............... Error! Marcador no
definido.
PUBLICACION DE UNA CARPETA PARA UN UNICO USUARIO. .................................................................. 4
PUBLICACIN DE CARPETAS CON ACCESO RESTRINGIDO A VARIOS USUARIOS. ..................................... 6
PUBLICACION DE LAS CARPETAS HOME DE CADA USUARIO. ................................................................... 8
PUBLICACION DE CARPETAS ANONIMAS CON SEGURIDAD HABILITADA. ................................................ 9
PUBLICACIN DE IMPRESORAS. ............................................................................................................. 11
ACCESO A RECURSOS COMPARTIDOS COMO CLIENTE........................................................................... 12
MONTANDO RECURSOS COMPARTIDOS EN NUESTRA MAQUINA LINUX. ............................................. 15

Servidor SAMBA. Pgina: 1 de 16


ADMINISTRACIN DE SISTEMAS OPERATIVOS. 2 ASIR. CURSO 16/17

SAMBA

INTRODUCCIN .

Microsoft Windows utiliza un protocolo de red conocido como Server Message Block (SMB). Este
protocolo SMB fue originalmente desarrollado por IBM, y fue modificado por Microsoft. Antiguamente
este protocolo funcionaba directamente mediante NETBIOS sobre IPX/SPX, y fue modificado para poder
funcionar tambin sobre TCP, utilizando para ello el puerto 139.

Desde Windows 2000 Microsoft modific SMB para que funcionar directamente sobre TCP, sin necesitar
NETBIOS y usando el puerto 445. Tambin introdujo novedades como los enlaces duros, enlaces
simblicos, ficheros de mayor tamao, etc. Esta modificacin de Microsoft recibi el nombre de CIFS
(Common Internet File System) pero no se suele utilizar mucho, dado que no fue aprobada como estndar.

El proyecto SAMBA se origin con la idea de crear un protocolo compatible con SMB (propiedad de
Microsoft) y que pudiera ser distribuido como open source. Para ello se utiliz ingeniera inversa sobre
SMB por parte de Sun Microsystems. A causa de la importante difusin del protocolo SMB, SAMBA se ha
convertido en un protocolo tremendamente popular para poder comunicar directamente maquinas Linux
y maquinas Windows dentro de una red local.

En 2006 Microsoft introdujo SMB2 dentro del sistema operativo Windows Vista. Aunque SMB2 sigue
siendo software propietario, Microsoft ha publicado todas sus especificaciones para permitir que otros
sistemas interacten directamente con este nuevo protocolo. SMB2 mejora bastante el protocolo SMB,
que por la herencia de NETBIOS es un sistema bastante ineficiente. SMB2 es utilizado cuando se
comunican maquinas Windows Vista o Windows 7 entre s, usando SMB1 cuando dichas maquinas se
comunican con sistemas operativos anteriores como XP. Las versiones nuevas de SAMBA (desde la 3.6
soportan SMB2)

SAMBA tambin es capaz de emular las caractersticas de SMB que permiten conectarse a un controlador
de dominio, o incluso puede directamente validar usuarios dentro del dominio, realizando algunas
funciones especficas de los controladores de dominio.

HISTORIA.
Samba fue desarrollado originalmente para Unix utilizando un sniffer o capturador de trfico para
entender el protocolo SMB usando ingeniera inversa. El nombre viene de insertar dos vocales al protocolo
estndar que Microsoft usa para sus redes, el SMB o server message block. En un principio Samba tom
el nombre de smbserver pero tuvieron que cambiarlo por problemas con una marca registrada. El creador
busc en el diccionario de su mquina Unix alguna palabra que incluyera las 3 letras y de ah surgi el
nombre actual.

Servidor SAMBA. Pgina: 2 de 16


ADMINISTRACIN DE SISTEMAS OPERATIVOS. 2 ASIR. CURSO 16/17

CARACTERISTICAS.
Samba es una implementacin de una docena de servicios y protocolos, entre los que estn: NetBIOS
sobre TCP/IP (NetBT), SMB (tambin conocido como CIFS), DCE/RPC o ms concretamente, MSRPC, el
servidor WINS tambin 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 versin modificada de Kerberos
y una versin modificada de LDAP.

Samba configura directorios Unix y GNU/Linux (incluyendo sus subdirectorios) como recursos para
compartir a travs de la red. Para los usuarios de Microsoft Windows, estos recursos aparecen como
carpetas compartidas normales de red. Los usuarios de GNU/Linux pueden montar en sus sistemas de
archivos las carpetas compartidas en red de mquinas Windows como si fueran dispositivos locales, o
utilizar la orden smbclient para conectarse a ellas directamente.

INSTALACIN.

Es posible que nos encontremos con que SAMBA ya est instalado en nuestra mquina, podemos
comprobarlo fcilmente con la lnea de comando:

dpkg l | grep samba

Los paquetes que tenemos que instalar son los siguientes:

samba. El paquete samba, instalar tambin el paquete samba-common


cifs-utils. Permite utilizar los recursos samba directamente como un sistema de ficheros.
smbclient. Permite conectar el sistema a un recurso compartido, usndolo de forma parecida
al protocolo de ftp.

CONFIGURANDO SAMBA.

Toda la configuracin de samba se realiza modificando el fichero smb.conf que podemos encontrar
normalmente en /etc/samba. Cada vez que realicemos alguna modificacin en este fichero, tendremos
que reiniciar el demonio samba para que se efecten los cambios, esto lo podemos conseguir con el
comando /etc/init.d/samba restart en el caso de que contemos con un Linux de la familia Deban
(ejecutar esta orden como root).

SMB.CONF
Este fichero contiene secciones y parmetros. Cada seccin comienza con el nombre de la misma entre
corchetes y continua hasta que aparezca el siguiente nombre de seccin. Cada una de las secciones
contiene parmetros, con el formato nombre=valor.

Existe una seccin especial conocida como [global] donde se almacenan parmetros generales. Cada una
de las siguientes secciones especifica un recurso compartido. Existen dos secciones especficas que son
[homes] y [printers], siendo [homes] una seccin que se utiliza para compartir los homes de los usuarios
de Linux y [printers] una seccin desde donde se comparten todas nuestras impresoras.

Servidor SAMBA. Pgina: 3 de 16


ADMINISTRACIN DE SISTEMAS OPERATIVOS. 2 ASIR. CURSO 16/17

Existe un comando testparm que simplemente comprueba el fichero smb.conf y nos informa si existe

Los principales parmetros que colocamos en la seccin global son los siguientes:

Parmetro Valores Explicacin

workgroup El nombre del grupo de trabajo al que se conectar nuestro equipo.

netbios name El nombre netbios de nuestro equipo.

security user/share Especifica como samba autentifica principalmente a los usuarios. El


valor user se recomienda cuando el equipo Linux y los equipos
Windows tengan muchos identificadores de usuarios iguales, mientras
que share se recomienda cuando existan pocos identificadores
comunes. En general, se recomienda dejar el valor por defecto que es
user.

guest account Nombre de La cuenta de usuario que se usar para introducir usuarios annimos
cuenta en los recursos de samba.

hosts allow Una lista de hosts que pueden conectarse al servidor. Si se omite, se
pueden conectar todos los hosts. Ejemplo: hosts allow = 127.0.0.1
192.168.2.0/24 192.168.3.0/24

hosts deny Una lista de hosts que tienen prohibido conectarse al servidor. Ej:
hosts deny = 0.0.0.0/0

log file Fichero Fichero donde se almacenar el log de samba. (Es aconsejable
consultar el log para detectar posibles errores).
Existen otros parmetros para indicar las interfaces de red que se van a utilizar, nombres de servidores
WINS, etc. Pueden ser consultados en la documentacin de samba.

PUBLICACION DE UNA C ARPETA PARA UN UNICO USUARIO.

En esta configuracin, compartimos un recurso con nombre privado, que en realidad es la carpeta
/almacen_jose, donde se puede escribir y donde SOLO podr acceder el usuario jose. Esto lo conseguimos
en primer lugar pasando la seguridad de samba a user, que es la manera recomendada de trabajar con
samba. Con ese cambio obligamos a los usuarios que deseen acceder a samba a que se presenten con su
nombre de usuario y contrasea. Con la clusula valid users le indicamos qu usuarios pueden acceder al
mismo.

Servidor SAMBA. Pgina: 4 de 16


ADMINISTRACIN DE SISTEMAS OPERATIVOS. 2 ASIR. CURSO 16/17

Este usuario jose no slo debe ser un usuario creado normalmente en Linux, sino que TAMBIEN debe ser
creado dentro del sistema samba. Esto lo conseguimos con el comando smbpasswd.

smbpasswd a nombre_de_usuario

Una vez que hemos creado al usuario, tanto en Linux como en samba, tenemos que preparar la carpeta
fsica, donde evidentemente debemos hacer que el usuario jose tenga permisos de acceso.

Servidor SAMBA. Pgina: 5 de 16


ADMINISTRACIN DE SISTEMAS OPERATIVOS. 2 ASIR. CURSO 16/17

PUBLICACIN DE CARPE TAS CON ACCESO RESTRINGIDO A VARIOS USUARIOS.

Si queremos que un recurso compartido no sea simplemente accedido por un solo usuario, sino por varios,
tenemos que modificar en el ejemplo anterior el valor del parmetro valid user.

En este ejemplo vemos como en valid users hemos colocado directamente el nombre de 3 usuarios. Como
ya sabemos, estos usuarios deben de existir tanto en Linux (adduser) como en Samba (smbpasswd ).

Los permisos de la carpeta /almacen_varios deben de estar configurados de modo que permita que los 3
usuarios puedan leer y escribir en ella. Lo ms simple es crear un grupo, introducir a los tres usuarios en
el mismo y darle la propiedad a dicho grupo sobre esa carpeta, configurando los permisos de grupo para
que permitan lectura y escritura:

Servidor SAMBA. Pgina: 6 de 16


ADMINISTRACIN DE SISTEMAS OPERATIVOS. 2 ASIR. CURSO 16/17

Con esta configuracin, podemos acceder al recurso compartido usando los usuarios jose, juana o paco,
siendo imposible acceder a dicho recurso con cualquier otro usuario.

Podemos mejorar un poco el smb.conf anterior, y en lugar de escribir los nombres de los usuarios, escribir
directamente el grupo donde estn situados dichos usuarios, en nuestro ejemplo el grupo varios. Para
ello, basta con escribir directamente el nombre del grupo precedido por el smbolo de la arroba.

Servidor SAMBA. Pgina: 7 de 16


ADMINISTRACIN DE SISTEMAS OPERATIVOS. 2 ASIR. CURSO 16/17

PUBLICACION DE LAS C ARPETAS HOME DE CADA USUARIO.

Una seccin especial es [homes] la cual nos permite que los usuarios de Linux entren directamente a sus
directorios home desde la red.

Con el anterior smb.conf conseguimos lo siguiente: Cuando un usuario intente acceder desde la red a
nuestro servidor, samba comprobar si dicho usuario tiene creado un directorio en /home/ con su propio
nombre, si es un usuario reconocido de Linux y si tambin es un usuario creado en samba con smbpasswd.
En caso de ser as, se le permitir el acceso a su carpeta home como si estuviera compartida. De esta
forma, nos ahorramos tener que crear una seccin para cada carpeta home de usuario.

Si no colocamos ningn parmetro path en la seccin homes, samba establecer por defecto el path a
/home/%S (%S es una variable que toma como valor el nombre de usuario que est intentando entrar).
Podemos darle otro valor a path, de forma que estos perfiles se creen en otro sitio.

Para asegurarnos de que solo sea el usuario el que pueda entrar a su directorio home, tambin podemos
poner el parmetro valid user = %S.

Servidor SAMBA. Pgina: 8 de 16


ADMINISTRACIN DE SISTEMAS OPERATIVOS. 2 ASIR. CURSO 16/17

PUBLICACION DE CARPE TAS ANONIMAS CON SEGURIDAD HABILITADA.

Cuando asignamos el valor user al parmetro security, que es el valor recomendado, Samba funciona de
la siguiente manera: Cuando se realiza una conexin a un recurso compartido, pide el nombre de usuario
y contrasea que se est intentando conectar. En caso de que dicho usuario no sea reconocido por el
sistema, directamente deniega el acceso.

Windows por ejemplo (si se configura adecuadamente) es bastante ms permisivo, ya que si no reconoce
a un usuario que intente entrar, lo convierte directamente en invitado y comprueba si la cuenta invitado
tiene derecho a acceder al recurso.

Vamos a configurar Samba para que imite este comportamiento de Windows, y podamos realizar acceso
annimo a recursos compartidos pero manteniendo security = user.

Los parmetros importantes de la anterior configuracin son:

guest account = nobody Le indica a Samba que cuenta de usuario ha de usarse internamente para los
invitados, es decir, los usuarios annimos. Puede ser cualquier cuenta que deseemos, pero obviamente
debe estar creada en el sistema, se suele utilizar nobody porque esta cuenta se suele crear
automticamente con la instalacin del paquete samba.

map to guest = bad user Le indica a Samba que convierta en invitado a cualquier usuario que intente
entrar en nuestro sistema y no sea reconocido. Permite que cuando un usuario desconocido intente
entrar, convirtamos dicho usuario automticamente en guest, que por lo visto en el punto anterior,
realmente lo transforma en el usuario nobody.

Posteriormente en el recurso indicamos que se permite el acceso pblico, y adems que permitimos los
invitados. (En realidad estas opciones son redundantes y tericamente con una de ellas bastara)

Es evidente que la carpeta que deseamos compartir debe tener asignados sus permisos de modo que el
usuario nobody pueda leer o escribir, dependiendo del tipo de acceso que deseemos. Estos permisos
deben coincidir con los permisos que indiquemos para dicho recurso en smb.conf.

Un punto importante es que la cuenta de usuario que usemos para guest account (en nuestro ejemplo
nobody) no debe tener contrasea. Para crear una cuenta sin contrasea en Samba se usa el parmetro
n en smbpasswd.

Servidor SAMBA. Pgina: 9 de 16


ADMINISTRACIN DE SISTEMAS OPERATIVOS. 2 ASIR. CURSO 16/17

# smbpasswd an nobody

Cosas a tener en cuenta al realizar esta prctica:

1) En este ejemplo hemos dado acceso annimo a Carpeta_Publica. Desde la mquina Windows se
tendr acceso directo y annimo a \\equipo\Carpeta_Publica, pero no tendremos acceso directo
y annimo a \\equipo.

2) Si desde una maquina Windows intenta entrar un usuario que da la casualidad que tiene el mismo
nombre que un usuario de nuestro sistema Linux pero con distinta contrasea, no se le aplicar
el parmetro map to guest = bad user por lo que se le denegar el acceso. Esto se puede
solucionar modificando ese parmetro, de la siguiente forma:

Servidor SAMBA. Pgina: 10 de 16


ADMINISTRACIN DE SISTEMAS OPERATIVOS. 2 ASIR. CURSO 16/17

PUBLICACIN DE IMPRE SORAS.

Samba simplemente es un intermediario entre el sistema de impresin de Linux, y el sistema de impresin


de Windows. Vamos a ver en primer lugar el modo tradicional de trabajar con impresoras en Samba, y
posteriormente veremos un mtodo ms moderno y funcional utilizando CUPS. (Common UNIX Printing
System).

Aqu vemos una configuracin tpica, que nos permite compartir las impresoras que YA estn reconocidas
e instaladas en Linux. Como decimos, esta forma de trabajar ya no se recomienda.

No vamos a tratar ms este tema de impresoras en Samba, por que como ya hemos comentado es mucho
ms razonable usar otras soluciones para compartir impresoras, como pueden ser CUPS o el protocolo
directo de impresin por red. Si se desea obtener ms informacin, en la propia documentacin de Samba
se indican muchsimos ms parmetros que estn disponibles a la hora de trabajar con impresoras.

Servidor SAMBA. Pgina: 11 de 16


ADMINISTRACIN DE SISTEMAS OPERATIVOS. 2 ASIR. CURSO 16/17

ACCESO A RECURSOS CO MPARTIDOS COMO CLIEN TE.

Para acceder a los recursos compartidos por SMB desde una maquina Linux, debemos usar el programa
smbclient. En primer lugar comprobad que tenis instalado dicho paquete, porque no se suele instalar
directamente con el paquete samba.

Para echar un vistazo a nuestra red smb, podemos utilizar el comando smbtree:

El programa smbclient se utiliza directamente desde lnea de comandos. As por ejemplo, para examinar
los recursos compartidos por un equipo, podemos hacer lo siguiente:

El parmetro L de smbclient indica que queremos listar todos los recursos compatibles de un host. En
nuestro ejemplo dicho host es la mquina con nombre XPJOANCADI.

Ante este host, nuestra maquina Linux se va a intentar autentificar con el nombre del usuario que ha
ejecutado la orden smbclient en Linux, que como vemos en el ejemplo es usuario.

Servidor SAMBA. Pgina: 12 de 16


ADMINISTRACIN DE SISTEMAS OPERATIVOS. 2 ASIR. CURSO 16/17
El host XPJOANCADI responde a dicho intento de conexin, preguntndonos la contrasea de dicho
usuario, como vemos por pantalla.

Posteriormente, la orden smbclient nos muestra todos los recursos compartidos que dicho host
XPJOANCADI tiene compartidos en red mediante smb. Vemos como al final nos indica todos los equipos
del grupo de trabajo (en nuestro ejemplo, no hay ningn equipo).

Intentemos ahora conectarnos directamente al recurso compartido C1 por ejemplo:

Dado que el recurso C1 en Windows solo esta compartido con el usuario joancadi, vemos como en la
orden smbclient le he indicado que use dicho usuario para la conexin (-U).

La contra barra (\) es un smbolo especial en Linux, y no basta con escribirlo directamente, tenemos que
escapar de dicho carcter especial y esto se consigue repitiendo el carcter contra barra. (En resumen,
para escribir en smbolo de comandos una contra barra, tenemos que escribir dos).

Una vez que entramos con smbclient en un recurso compartido, vemos como nos aparece un prompt del
sistema smb: \> indicndonos que a partir de este momento se admiten comandos especiales de smb.
Podemos escribir help para que nos muestre una lista de los comandos que se pueden usar.

Servidor SAMBA. Pgina: 13 de 16


ADMINISTRACIN DE SISTEMAS OPERATIVOS. 2 ASIR. CURSO 16/17

Algunos de los comandos ms usados son:

ls Muestra un listado del recurso compartido remoto o


cd Cambia de directorio en el recurso compartido remoto o
lcd Cambia de directorio en nuestro ordenador local o
get Descarga un fichero del recurso compartido remoto al equipo local
put Enva un fichero del equipo local al recurso compartido remoto

Servidor SAMBA. Pgina: 14 de 16


ADMINISTRACIN DE SISTEMAS OPERATIVOS. 2 ASIR. CURSO 16/17

MONTANDO RECURSOS COMPARTIDOS EN NUESTRA MAQUINA LINUX.

Podemos montar directamente un recurso compartido de Windows dentro de nuestro servidor Linux, de
modo que aparezca en nuestro sistema como un directorio local.

Para realizar el montaje de un recurso compartido directamente desde nuestra lnea de comandos
utilizaremos el comando mount, pero anteriormente debemos tener instalado el paquete cifs-utils que
nos permitir trabajar directamente con los recursos smb.

La forma de utilizar el comando mount es:

mount t cifs o username=user,password=pass \\\\NOMBRE-PC\\NOMBRE-RECURSO carpeta

Carpeta es el directorio donde montaremos el recurso compartido. Es necesario indicar el nombre de


usuario y contrasea ya que en caso contrario nos lo pedir.

En el ejemplo anterior vemos como en lugar del nombre del pc hemos usado en la URL la direccin IP del
equipo. Esto es necesario hacerlo si el nombre del equipo no se reconoce en la red cifs. (Esto suele pasar
muy frecuentemente al principio de configurar la red, con los minutos termina funcionando todo bien).

Vemos tambin como usamos el comando mount indicando como tipo de sistema de ficheros cifs.

Si el sistema nos indica que no tenemos permiso para acceder al recurso, normalmente ser problema de
la autentificacin, es decir, del nombre de usuario y contrasea que hemos indicado que no son
reconocidos por el sistema al que pertenece el recurso compartido.

Si el sistema nos indica que no se encuentra el recurso o servidor remoto, normalmente el problema
estar en el nombre del equipo Windows o en el nombre del recurso

Como vemos en el ejemplo, un fallo de este sistema es que tenemos que escribir directamente en la orden
el nombre de usuario y el password, y esto es francamente peligroso y un fallo de seguridad bastante
peligroso. Una forma de remediar esto consiste en utilizar un fichero de credenciales, de la siguiente
forma:

Como vemos, indicamos en la opcin o que en lugar de escribir directamente el username y el password,
vamos a utilizar un fichero de credenciales que en nuestro caso hemos creado en /root con el nombre
paso. (En este ejemplo vemos como sistema de ficheros hemos indicado smbfs en lugar de cifs, esto es
como se haca antiguamente y ya no es vlido).

Dicho fichero tendr sus permisos establecidos de forma que slo podr ser ledo por el usuario root, con
lo cual nuestras contraseas y nombres de usuario no podrn ser ledas ni vistas por usuarios normales
del sistema.

Servidor SAMBA. Pgina: 15 de 16


ADMINISTRACIN DE SISTEMAS OPERATIVOS. 2 ASIR. CURSO 16/17

El ejemplo anterior es perfecto cuando queremos montar un recurso momentneamente, pero no


funciona si queremos un montaje permanente, puesto que al abrir y cerrar sesin nuestro recurso
desaparecer. Para que se mantenga en el tiempo, tenemos que aadir una lnea en el fichero /etc/fstab
indicando en dicha lnea que queremos realizar el montaje.

Para comprobarlo, podemos ejecutar un mount a para indicar que se monten las unidades en este
momento, y no cuando reiniciemos la mquina.

Servidor SAMBA. Pgina: 16 de 16