Desde hace muchos años, sobre todo desde aquella polémica alianza entre Novell y Microsoft, GNU/Linux ha estado luchando por mejorar la interoperabilidad con el vilipendiado Windows, siendo en mi opinión los puntales de este proceso NTFS-3G y Samba. Al principio muchos dijeron que Microsoft adquiriría Novell, otros dijeron que aquel acuerdo era el principio del fin de Linux, entre otras muchas historias ‘conspiranoicas’. Pese a todo la realidad ha sido muy diferente: Microsoft no ha destruido Linux ni por asomo y es más, hasta ha dado apoyo para mejorar Samba y ha desarrollado el driver Hyper-V para el kernel de Linux con el fin de virtualizar nuestro querido sistema sobre su plataforma Azure.
A día de hoy la interoperabilidad entre Windows y GNU/Linux es muy buena, tanto que Samba puede dar el pego en una red Windows en producción, por eso quiero compartir un par de tutoriales sobre esta implementación libre del protocolo SMB, dedicando el primero a Ubuntu, la distribución más utilizada de todas y que cuenta con una gran implementación de Samba, posiblemente la mejor tras la de openSUSE, y es que yo he tenido un ordenador con Ubuntu en producción a través de Samba, con grandes resultados además.
¿Qué es Samba?Samba es, básicamente, una implementación libre del protocolo SMB, que es el que utiliza Microsoft Windows para interconexión de nodos en redes de áreal local (LAN), permitiendo compartir ficheros e impresoras. Es Software Libre y la versión más reciente es la 4, que está liberada bajo GPLv3.
Soy de esas personas que desean que GNU/Linux sea lo más asequible posible, por eso suelo buscar las vías más sencillas y sobre todo gráficas para resolver los problemas. Samba por suerte se porta muy bien en este sentido y aunque es cierto que se necesita algún aprendizaje, puedo decir que la consola es (casi) totalmente prescindible para lo que vamos a realizar.
Instalando Samba
En primer lugar toca instalar la herramienta necesaria para compartir nuestras carpetas. En Ubuntu yo utilizo una hecha en GTK llamada System Config Samba, que se instala a través del paquete «system-config-samba» desde el Centro de Software de Ubuntu.
Una vez instalado, procedemos a iniciar System Config Samba introduciendo nuestra contraseña de usuario. Si lo hemos instalado desde el Centro de Software de Ubuntu nos tendría que aparecer en la barra lateral, aunque siempre podemos localizarlo escribiendo samba en el lanzador de aplicaciones.
La imagen de arriba corresponde a la herramienta que vamos a utilizar para poder compartir ficheros y directorios. Como podéis comprobar, su interfaz es simple y fácil de entender, no tiene muchos detalles y eso ayuda mucho en la configuración de Samba, ya que así no nos perdemos en detalles.
Configuración de la primera carpeta (accesible a todo el mundo)
Aquí voy a mostrar cómo configurar una carpeta en Samba para que sea accesible a cualquier equipo Windows o GNU/Linux (Apple ha eliminado la instalación por defecto en OS X desde el relicenciamiento de Samba a GPLv3). Tengo que avisar que con esta configuración cualquier ordenador que esté en nuestro mismo grupo de trabajo podrá ver el contenido de la carpeta compartida, así como modificarlo, así que tened mucho cuidado a la hora de elegir qué compartís, porque a lo mejor os podéis arrepentir luego, más si os conectáis a wifis públicas.
En primer lugar nos dirigimos a Preferencias y luego Configuración del servidor, después nos aparecerá la ventana de abajo.
En Grupo de trabajo nos tenemos que asegurar de usar el mismo que usa la red de Windows. Esto no es case sensitive, o sea, no distingue entre mayúsculas y minúsculas, así que da igual si el nombre de éste está en minúsculas, mayúsculas o una mezcla de estas, mientras el nombre coincida. La descripción corresponde a la del equipo en la red SMB a la cual vamos a acceder.
En la pestaña Seguridad nos dirigimos a Modo de Autenticación y seleccionamos Recurso Compartido, tal y como sale en la siguiente imagen. Después de configurar esto tendremos que hacer clic sobre el botón Aceptar.
Configurado nuestro servidor Samba, ya podemos añadir nuestro primer recurso compartido. Para ello tendremos que hacer clic sobre el símbolo «+» que aparece en la parte izquierda de la ventana.
Nos aparecerá el siguiente formulario, a través del cual ya podemos configurar la carpeta a compartir. Como podéis ver, es muy sencillo e intuitivo, aparte de bastante autodescriptivo.
No hará falta que explique cómo se maneja el formulario, ¿verdad? Aún así, al final del artículo tenéis un vídeo con este proceso explicado paso a paso. Dicho esto, directamente pondré la configuración empleada en la pestaña Básico, donde he cogido la carpeta Vídeos de la carpeta personal del usuario. Luego le he quitado la tilde en el nombre del recurso por si las moscas; en la descripción he puesto algo que me he inventado y es prescindible y hay que marcar los checkbox Permiso de Escritura y Visible.
En la pestaña Acceso seleccionamos Permitir acceso a todos y luego pulsamos sobre el botón Aceptar.
Ya tenemos configurado el recurso compartido. Sin embargo con esta configuración al intentar escribir nos mostrará permiso denegado, ya que a nivel del sistema también le tendremos que dar permisos de escritura a los otros, ya que el usuario invitado de Samba no es un usuario definido del sistema y se autentica como nobody.
Esto mismo se puede con cualquiera de estos dos comandos:
chmod -R o+w carpetacompartida
chmod -R 757 carpetacompartida
Con todo ya configurado, el ordenador con Windows con el que queremos interactuar debe abrir el Explorador de Windows (o Windows Explorer), dirigirse a la sección de Red, buscar el equipo Ubuntu que está compartiendo («ubuntubox» en este ejemplo) e ir a la carpeta compartida, sobre la cual tiene permisos totales, cosa que tiene sus riesgos, pero también sus beneficios si queremos compartir ficheros de forma simple, rápida y sin limitaciones.
Desde Windows a Ubuntu
Ya he explicado cómo compartir de forma sencilla y sin restricciones desde Ubuntu, ahora viene el proceso contrario, compartir desde Windows a un GNU/Linux con Samba. No se cómo ni por qué, el proceso desde Windows Vista (creo) se ha vuelto mucho más complejo, exigiendo un usuario autenticado para poder acceder a un recurso desde un ordenador Windows.
Para ello tendremos que dirigirnos al Panel de Control en Windows y crear un usuario de tipo administrador, en este caso «desdewindows» y con la contraseña la que le hayamos puesto.
Por desgracia el proceso de creación de usuarios cambia según la versión de Windows, pero vaya, es un proceso que creo que es muy común y si Windows 8.0 os tiene liados, en el vídeo podréis ver cómo crearlo y configurarlo de forma correcta para este propósito.
Para evitar problemas os recomiendo para el nombre de usuario usar solo minúsculas y sin espacios y no usar espacios para las contraseñas.
Ya configurado el usuario podremos compartir recursos desde Windows con él. En primer lugar tenéis que probar la opción Uso compartido de carpetas y archivos de red en las Propiedades de la carpeta, haciendo clic en el botón Compartir.
Luego seleccionamos el usuario creado para compartir ficheros desde Windows («desdewindows») y hacemos clic sobre el botón Agregar.
Después le damos al usuario los permisos convenientes, en este caso Lectura y escritura, para luego pulsar sobre el botón Compartir.
Siguiendo estos pasos en teoría ya tendríamos que tener nuestra carpeta compartida con el usuario de Samba, sin embargo si esto falla podemos optar por el plan b, seleccionado Uso de compartido avanzado en las propiedades de la carpeta, y en la ventana que nos aparece haremos clic sobre el botón Permisos. Este plan b hay que ejecutarlo después de hacer los pasos anteriores de forma obligatoria.
El siguiente paso hay que hacer clic sobre el botón Agregar.
Luego hacer clic sobre el botón Opciones avanzadas.
En la siguiente ventana debemos pulsar sobre el botón Buscar ahora y buscar nuestro usuario de Windows para Samba en la lista de abajo. Una vez encontrado nuestro usuario hacemos doble clic sobre él. Luego tendremos que pulsar sobre el botón Aceptar.
En la ventana de permisos seleccionamos aquellos que deseamos y pulsamos sobre el botón Aceptar.
Luego hacemos clic sobre el botón Aceptar hasta que nos salga el botón de Cerrar en las Propiedades de carpeta y con todo esto ya tendríais que estar compartiendo la carpeta con Samba. Solo tenéis que ir a la sección de red de vuestro explorador de archivos en GNU/Linux y buscar en la red SMB/Samba el grupo y el equipo. Cuando intentéis acceder al ordenador Windows os pedirá usuario y contraseña, ahí debéis introducir los datos del usuarios de Windows que hemos creado para este propósito.
Compartir con autenticación de usuario forzosa
Ya hemos explicado cómo compartir de forma permisiva de Ubuntu a Windows y cómo compartir de Windows a un ordenador que usa Samba, sin embargo, ¿y si queremos más seguridad y que todo quede autenticado a nivel de usuario? El proceso para lograr esto desde Windows ya ha sido explicado, sin embargo desde System Config Samba tendremos que realizar unos pasos para pedir autenticación a nivel de usuario a los ordenadores Windows.
En primer lugar, en Ubuntu, tendremos que dirigirnos a Preferencias – Configuración del servidor. Una vez allí hacemos clic en la pestaña Seguridad y seleccionamos Usuario como Modo de Autenticación. Realizadas estas acciones tendremos que hacer clic sobre el botón Aceptar.
Después nos dirigimos a Preferencias – Usuarios Samba y cuando nos salga la ventana hacemos clic sobre nuestro usuario personal y sobre el botón Modificar Usuario.
En la siguiente ventana tendremos que definir los datos de acceso del usuario Samba, que simulará un usuario de Windows en la red SMB. Cabe mencionar que estos no son los datos de acceso del usuario del sistema, sino los datos a emplear para acceder desde Windows.
Es muy importante que cambiar tanto el nombre del usuario como la contraseña para así salvaguardar vuestra seguridad, ya que si usáis los mismos datos estaréis vendidos ante un simple intento de acceso a través de SSH si tenéis dicho servicio activo. Una vez que tengáis los datos de acceso definidos, hacéis clic sobre el botón Aceptar. Si queréis crear más usuarios para Samba tendréis que crear más usuarios a nivel del sistema.
Definido ya nuestro usuario de Samba tendremos que seleccionar un recurso compartido, cuyos pasos de creación ya hemos descrito, pero en la pestaña Acceso tendremos que seleccionar la opción Solo permitir acceso a usuarios específicos, marcando nuestro usuario a nivel del sistema en base al cual hemos configurado el usuario de Samba y luego pulsando sobre el botón Aceptar.
Ya configurado el usuario y el recurso, cuando intentemos acceder a éste desde Windows nos saldrá el siguiente formulario de acceso, en el cual tendremos que poner el nombre de usuario y la contraseña que hayamos definido para el usuario de Samba a través de System Config Samba.
Conclusión
Hasta aquí ha llegado nuestro tutorial de Samba para Ubuntu. Solo espero que os sea útil y nos vemos en la próxima entrega, donde explicaré los pasos para compartir a través de Samba en openSUSE, y es que los que fueron los principales impulsores de la interoperabilidad entre Windows y GNU/Linux no se podían quedar al margen.
Os dejo con el vídeo.