Manual Samba para ASIR File

Anuncio
ADMINISTRACIÓN DE SISTEMAS OPERATIVOS.
2º ASIR.
CURSO 14/15
CONTENIDO
SAMBA .......................................................................................................................................................... 2
INTRODUCCIÓN. ....................................................................................................................................... 2
HISTORIA. ............................................................................................................................................. 2
CARACTERISTICAS. ................................................................................................................................ 3
INSTALACIÓN. ........................................................................................................................................... 3
CONFIGURANDO SAMBA. ......................................................................................................................... 3
SMB.CONF ............................................................................................................................................ 3
PUBLICACION DE CARPETAS DE FORMA ANONIMA. NO RECOMENDADA. .............................................. 4
PUBLICACION DE UNA CARPETA PARA UN UNICO USUARIO. .................................................................. 6
PUBLICACIÓN DE CARPETAS CON ACCESO RESTRINGIDO A VARIOS USUARIOS. ..................................... 7
PUBLICACION DE LAS CARPETAS HOME DE CADA USUARIO. ................................................................... 9
PUBLICACION DE CARPETAS ANONIMAS CON SEGURIDAD HABILITADA. .............................................. 10
PUBLICACIÓN DE IMPRESORAS. ............................................................................................................. 12
ACCESO A RECURSOS COMPARTIDOS COMO CLIENTE........................................................................... 13
MONTANDO RECURSOS COMPARTIDOS EN NUESTRA MAQUINA LINUX. ............................................. 16
Servidor SAMBA.
Página: 1 de 17
ADMINISTRACIÓN DE SISTEMAS OPERATIVOS.
2º ASIR.
CURSO 14/15
SAMBA
INTRODUCCIÓN .
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 también 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. También introdujo novedades como los enlaces duros, enlaces
simbólicos, ficheros de mayor tamaño, etc. Esta modificación de Microsoft recibió el nombre de CIFS
(Common Internet File System) pero no se suele utilizar mucho, dado que no fue aprobada como estándar.
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ó ingeniería inversa sobre
SMB por parte de Sun Microsystems. A causa de la importante difusión 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 interactúen 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 también es capaz de emular las características de SMB que permiten conectarse a un controlador
de dominio, o incluso puede directamente validar usuarios dentro del dominio, realizando algunas
funciones específicas de los controladores de dominio.
HISTORIA.
Samba fue desarrollado originalmente para Unix utilizando un sniffer o capturador de tráfico para
entender el protocolo SMB usando ingeniería inversa. El nombre viene de insertar dos vocales al protocolo
estándar 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 máquina Unix alguna palabra que incluyera las 3 letras y de ahí surgió el
nombre actual.
Servidor SAMBA.
Página: 2 de 17
ADMINISTRACIÓN DE SISTEMAS OPERATIVOS.
2º ASIR.
CURSO 14/15
CARACTERISTICAS.
Samba es una implementación de una docena de servicios y 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.
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 compartidas normales de red. Los usuarios de GNU/Linux pueden montar en sus sistemas de
archivos las carpetas compartidas en red de máquinas Windows como si fueran dispositivos locales, o
utilizar la orden smbclient para conectarse a ellas directamente.
INSTALACIÓN.
Es posible que nos encontremos con que SAMBA ya está instalado en nuestra máquina, podemos
comprobarlo fácilmente con la línea de comando:
dpkg –l | grep samba
Los paquetes que tenemos que instalar son los siguientes:
•
samba. El paquete samba, instalará también 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, usándolo de forma parecida
al protocolo de ftp.
CONFIGURANDO SAMBA.
Toda la configuración de samba se realiza modificando el fichero smb.conf que podemos encontrar
normalmente en /etc/samba. Cada vez que realicemos alguna modificación en este fichero, tendremos
que reiniciar el demonio samba para que se efectúen 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 Debían
(ejecutar esta orden como root).
SMB.CONF
Este fichero contiene secciones y parámetros. Cada sección comienza con el nombre de la misma entre
corchetes y continua hasta que aparezca el siguiente nombre de sección. Cada una de las secciones
contiene parámetros, con el formato nombre=valor.
Existe una sección especial conocida como [global] donde se almacenan parámetros generales. Cada una
de las siguientes secciones especifica un recurso compartido. Existen dos secciones específicas que son
[homes] y [printers], siendo [homes] una sección que se utiliza para compartir los homes de los usuarios
de Linux y [printers] una sección desde donde se comparten todas nuestras impresoras.
Servidor SAMBA.
Página: 3 de 17
ADMINISTRACIÓN DE SISTEMAS OPERATIVOS.
2º ASIR.
CURSO 14/15
Existe un comando testparm que simplemente comprueba el fichero smb.conf y nos informa si existe
Los principales parámetros que colocamos en la sección global son los siguientes:
Parámetro
Valores
Explicación
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
cuenta
La cuenta de usuario que se usará para introducir usuarios anónimos
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 parámetros para indicar las interfaces de red que se van a utilizar, nombres de servidores
WINS, etc. Pueden ser consultados en la documentación de samba.
PUBLICACION DE CARPE TAS DE FORMA ANONIMA . NO RECOMENDADA.
Para crear un servidor de samba que permita acceso anónimo a los recursos compartidos, simplemente
tenemos que darle al parámetro global security el valor share, de modo que nuestro servidor no exigirá
que los usuarios que se quieran conectar tengan que autentificarse. Veamos el siguiente fichero de
configuración:
Servidor SAMBA.
Página: 4 de 17
ADMINISTRACIÓN DE SISTEMAS OPERATIVOS.
2º ASIR.
CURSO 14/15
En este caso estamos creando un recurso compartido con el nombre datos en nuestro grupo de trabajo
ASIR. Este recurso aparecerá compartido por la maquina con nombre equipo.
La carpeta datos en realidad será la carpeta de nuestro Linux /almacen, que debe de existir
evidentemente, y además debe tener permisos para que los usuarios anónimos puedan acceder a dicha
carpeta.
Además, en el fichero de configuración anterior especificamos que los usuarios solo podrán leer la carpeta
(read only). Con el parámetro public indicamos que permitimos que los usuarios anónimos puedan
acceder a la carpeta.
Con estas órdenes, crearíamos la carpeta /almacen que vamos a compartir, y daríamos permisos para que
todos los usuarios pudieran leer y escribir en dicha carpeta. Fijaros como aunque aquí indicamos que se
pueda leer y escribir, los usuarios solo podrán leer, ya que lo hemos indicado así en el fichero smb.conf.
Esta forma de crear un servidor anónimo no es recomendable, ya que tenemos muy poco control sobre
todo el proceso. Posteriormente veremos una forma de realizar esto mismo, de forma mucho más
controlada.
Servidor SAMBA.
Página: 5 de 17
ADMINISTRACIÓN DE SISTEMAS OPERATIVOS.
2º ASIR.
CURSO 14/15
PUBLICACION DE UNA C ARPETA PARA UN UNICO USUARIO.
En esta configuración, compartimos un recurso con nombre privado_jose, que en realidad es la carpeta
/almacen_jose, que no es de solo lectura, que no es publica, y donde SOLO podrá acceder el usuario jose.
Esto lo conseguimos pasando la seguridad de samba de share 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 contraseña. Con la cláusula valid users le indicamos al recurso que
usuarios pueden acceder al mismo.
Este usuario jose no sólo 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
física, donde evidentemente debemos hacer que el usuario jose tenga permisos de acceso.
Servidor SAMBA.
Página: 6 de 17
ADMINISTRACIÓN DE SISTEMAS OPERATIVOS.
2º ASIR.
CURSO 14/15
PUBLICACIÓN DE CARPE TAS CON ACCESO RESTRINGIDO A VARIOS USUARIOS.
i 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 parámetro 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 más 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.
Página: 7 de 17
ADMINISTRACIÓN DE SISTEMAS OPERATIVOS.
2º ASIR.
CURSO 14/15
Con esta configuración, podemos acceder al recurso compartido privado_varios 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 están situados dichos usuarios, en nuestro ejemplo el grupo varios. Para
ello, basta con escribir directamente el nombre del grupo precedido por el símbolo de la arroba.
Servidor SAMBA.
Página: 8 de 17
ADMINISTRACIÓN DE SISTEMAS OPERATIVOS.
2º ASIR.
CURSO 14/15
PUBLICACION DE LAS C ARPETAS HOME DE CADA USUARIO.
Una sección 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 también 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 sección para cada carpeta home de usuario.
Si no colocamos ningún parámetro path en la sección 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, también podemos
poner el parámetro valid user = %S.
Servidor SAMBA.
Página: 9 de 17
ADMINISTRACIÓN DE SISTEMAS OPERATIVOS.
2º ASIR.
CURSO 14/15
PUBLICACION DE CARPE TAS ANONIMAS CON SEGURIDAD HABILITADA.
Cuando asignamos el valor user al parámetro security, que es el valor recomendado, Samba funciona de
la siguiente manera: Cuando se realiza una conexión a un recurso compartido, pide el nombre de usuario
y contraseña 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 más 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
anónimo a recursos compartidos pero manteniendo security = user.
Los parámetros importantes de la anterior configuración son:
guest account = nobody Le indica a Samba que cuenta de usuario ha de usarse internamente para los
invitados, es decir, los usuarios anónimos. Puede ser cualquier cuenta que deseemos, pero obviamente
debe estar creada en el sistema, se suele utilizar nobody porque esta cuenta se suele crear
automáticamente con la instalación 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 automáticamente 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 público, y además que permitimos los
invitados. (En realidad estas opciones son redundantes y teóricamente con una de ellas bastaría)
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 contraseña. Para crear una cuenta sin contraseña en Samba se usa el parámetro
n en smbpasswd.
Servidor SAMBA.
Página: 10 de 17
ADMINISTRACIÓN DE SISTEMAS OPERATIVOS.
2º ASIR.
CURSO 14/15
# smbpasswd –an nobody
Cosas a tener en cuenta al realizar esta práctica:
1) En este ejemplo hemos dado acceso anónimo a Carpeta_Publica. Desde la máquina Windows se
tendrá acceso directo y anónimo a \\equipo\Carpeta_Publica, pero no tendremos acceso directo
y anónimo 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 contraseña, no se le aplicará
el parámetro map to guest = bad user por lo que se le denegará el acceso. Esto se puede
solucionar modificando ese parámetro, de la siguiente forma:
Servidor SAMBA.
Página: 11 de 17
ADMINISTRACIÓN DE SISTEMAS OPERATIVOS.
2º ASIR.
CURSO 14/15
PUBLICACIÓN DE IMPRESORAS.
Samba simplemente es un intermediario entre el sistema de impresión de Linux, y el sistema de impresión
de Windows. Vamos a ver en primer lugar el modo “tradicional” de trabajar con impresoras en Samba, y
posteriormente veremos un método más moderno y funcional utilizando CUPS. (Common UNIX Printing
System).
Aquí vemos una configuración típica, que nos permite compartir las impresoras que YA estén reconocidas
e instaladas en Linux. Como decimos, esta forma de trabajar ya no se recomienda.
No vamos a tratar más este tema de impresoras en Samba, por que como ya hemos comentado es mucho
más razonable usar otras soluciones para compartir impresoras, como pueden ser CUPS o el protocolo
directo de impresión por red. Si se desea obtener más información, en la propia documentación de Samba
se indican muchísimos más parámetros que están disponibles a la hora de trabajar con impresoras.
Servidor SAMBA.
Página: 12 de 17
ADMINISTRACIÓN DE SISTEMAS OPERATIVOS.
2º ASIR.
CURSO 14/15
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 tenéis 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 línea de comandos. Así por ejemplo, para examinar
los recursos compartidos por un equipo, podemos hacer lo siguiente:
El parámetro –L de smbclient indica que queremos listar todos los recursos compatibles de un host. En
nuestro ejemplo dicho host es la máquina 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.
Página: 13 de 17
ADMINISTRACIÓN DE SISTEMAS OPERATIVOS. 2º ASIR.
CURSO 14/15
El host XPJOANCADI responde a dicho intento de conexión, preguntándonos la contraseña 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 ningún 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 conexión (-U).
La contra barra (\) es un símbolo especial en Linux, y no basta con escribirlo directamente, tenemos que
“escapar” de dicho carácter especial y esto se consigue repitiendo el carácter contra barra. (En resumen,
para escribir en símbolo 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: \> indicándonos 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.
Página: 14 de 17
ADMINISTRACIÓN DE SISTEMAS OPERATIVOS.
2º ASIR.
CURSO 14/15
Algunos de los comandos más usados son:





ls
cd
lcd
get
put
Servidor SAMBA.
– Muestra un listado del recurso compartido remoto o
– Cambia de directorio en el recurso compartido remoto o
– Cambia de directorio en nuestro ordenador local o
– Descarga un fichero del recurso compartido remoto al equipo local
– Envía un fichero del equipo local al recurso compartido remoto
Página: 15 de 17
ADMINISTRACIÓN DE SISTEMAS OPERATIVOS.
2º ASIR.
CURSO 14/15
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 línea 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 contraseña 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 dirección 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 también 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 autentificación, es decir, del nombre de usuario y contraseña 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 opción –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 hacía antiguamente y ya no es válido).
Dicho fichero tendrá sus permisos establecidos de forma que sólo podrá ser leído por el usuario root, con
lo cual nuestras contraseñas y nombres de usuario no podrán ser leídas ni vistas por usuarios normales
del sistema.
Servidor SAMBA.
Página: 16 de 17
ADMINISTRACIÓN DE SISTEMAS OPERATIVOS.
2º ASIR.
CURSO 14/15
El ejemplo anterior es perfecto cuando queremos montar un recurso momentáneamente, pero no
funciona si queremos un montaje permanente, puesto que al abrir y cerrar sesión nuestro recurso
desaparecerá. Para que se mantenga en el tiempo, tenemos que añadir una línea en el fichero /etc/fstab
indicando en dicha línea 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 máquina.
Servidor SAMBA.
Página: 17 de 17
Descargar