Articles

Usar Samba para compartir archivos entre Linux y Windows

Su red doméstica puede tener algunas máquinas Windows en la planta baja, una Mac en un dormitorio de arriba, un PocketPC en una mesita de noche y una o dos cajas Linux en el sótano, todas conectadas en red con un enrutador genérico. Para todos los dispositivos de esta configuración familiar, o incluso para un escenario con miles de usuarios, la suite Samba es una solución ideal para compartir archivos e impresiones.

Existen varias soluciones multiplataforma para compartir archivos e impresiones, pero Samba y el protocolo SMB/CIFS pueden ser los más fáciles de implementar en un entorno de red doméstico. Máquinas Windows y Mac vienen con la funcionalidad para trabajar con con Samba fuera de la caja, y sólo es necesario instalar un solo paquete Samba para máquinas Linux. GNOME y KDE ofrecen funcionalidad de cliente Samba integrada en sus gestores de archivos predeterminados, Nautilus y Konqueror, respectivamente.

Nos centraremos en configurar y usar Samba para compartir archivos e impresiones en una red doméstica típica con máquinas Linux y Windows. Puede elegir entre varias GUI de configuración de Samba, pero seguiremos el camino tradicional y apuntaremos a nuestros editores de texto a smb.conf. El archivo de configuración se encuentra comúnmente en /etc/samba / smb.conf o / usr / local/samba / lib / smb.conf. Ten en cuenta que necesitarás ser root para editarlos, o usar sudo.

Samba se ejecutará en casi cualquier sistema tipo Unix y se puede encontrar en los repositorios de casi todas las distribuciones Linux. Comience por usar el administrador de paquetes de su distribución para asegurarse de que esté instalado.

Configurar Samba

Samba es un paquete muy maduro y complejo, por lo que su archivo de configuración puede ser largo y complicado. Tendrá que confiar en que su distribución le proporcionó una configuración predeterminada razonablemente sólida y centrarse en cambiar solo unas pocas líneas en smb.conf para asegurarse de que son apropiados para los propósitos de una red doméstica. Si quieres saber más sobre cualquier línea, consulte man smb.conf.

Recuerde que cualquier línea en el archivo de configuración precedida por un punto y coma (;) o una marca de hash ( # ) es un comentario y no se reconocerá como un ajuste activo. Para activar la línea, elimine el punto y coma o el hash. Es una buena idea agregar sus propios comentarios precedidos por uno de estos caracteres para que recuerde la lógica detrás de su configuración la próxima vez que cargue smb.conf.

La primera opción a considerar es el nivel de seguridad de Samba. Esta línea aparecerá en la sección de smb.conf, donde se realiza toda la configuración de Samba. Las otras secciones, que se abordan más adelante en este artículo, se refieren a servicios Samba específicos (recursos compartidos). Lo más probable es que el nivel de seguridad se establezca en el valor user y se vea así:

security = user

Para una red doméstica, puede considerar establecer esto en share. La principal diferencia es que con la configuración user deberá iniciar sesión en el servidor Samba antes de poder navegar por sus recursos. Esta es una precaución sabia en redes no confiables, pero será inconveniente cuando use recursos a los que le gustaría que toda su familia tuviera acceso, como una impresora. Con share habilitado, aún puede requerir que los usuarios se autentiquen con una contraseña para acceder a recursos específicos.

Mientras aún estamos en la sección, pasemos a las impresoras. Si utiliza el Sistema de impresión UNIX Común (CUPS) (que la mayoría de las distribuciones usan por defecto), lo único que necesita hacer para que Samba reconozca sus impresoras es establecer las siguientes líneas en consecuencia:


printing = cups
printcap name = cups

Dado que puede estar configurando estas impresoras (y tal vez otros recursos) para que sean accesibles sin autenticación de usuario, es muy importante que restrinja el acceso solo a hosts conocidos y de confianza: los equipos de su hogar. Consulte el manual de su enrutador para obtener instrucciones sobre cómo asignar direcciones IP específicas a cada computadora de su red doméstica. Una vez que tenga una lista de hosts de confianza, introdúzcalos en las siguientes líneas de la sección :


hosts allow = computer1 computer2 computerN
hosts deny = ALL

a Pesar de que usted ha especificado que el ALL hosts ser negada, cualquier host aparece en el hosts allow línea seguirá teniendo acceso. El formato de las direcciones IP asignadas a cada computadora por su enrutador variará. Por ejemplo, si las máquinas de su red local reciben direcciones con el formato 192.168.0.x, las siguientes líneas restringirán el acceso a Samba a los hosts locales:

hosts allow = 192.168.0.
hosts deny = ALL

tenga en cuenta que el último dígito de la dirección IP se quedó en el hosts allow línea. Esto especifica que se permita cualquier dirección IP en ese rango. Para obtener seguridad adicional contra el acceso externo, busque bloquear puertos Samba con un firewall.

Compartir directorios e impresoras

Es hora de ir más allá de y configurar recursos compartidos específicos. Comience con la sección . De forma predeterminada, su distribución puede tener esta sección configurada para permitir a los usuarios acceder a su directorio personal en la máquina que ejecuta el servidor Samba.

Si tiene establecido security = share, es posible que esta función no funcione como se espera y que se presenten a los usuarios directorios personales sin iniciar sesión. Si usted es el único que tiene un directorio personal en la máquina que ejecuta el servidor Samba de todos modos, que probablemente se encuentre en un entorno de red doméstica, es recomendable eliminar o comentar (usando marcas de hash o punto y coma) la sección y agregar los directorios útiles como recursos compartidos individualmente más adelante.

Ahora puede comenzar a compartir directorios específicos. Utilice esto como plantilla para una carpeta compartida públicamente para la que no es necesario que los usuarios se autentiquen:


path = /location/of/directory
guest ok = yes
browseable = yes
read only = no

Share Name es el título que elija (para el cliente que accede a su servidor, este parecerá ser el nombre del directorio compartido). La línea guest ok = yes es la que especifica este recurso compartido como de acceso público. La línea browseable = yes hará que el recurso compartido aparezca disponible para todos los usuarios. Establezca browseable = no para forzar a los usuarios a escribir manualmente el nombre compartido para acceder a él. Por supuesto, puede configurar read only = yes para restringir que los usuarios realicen cambios en el directorio de forma remota.

Use esto como plantilla para recursos compartidos privados a los que los usuarios deben ingresar una contraseña para acceder:


path = /location/of/directory
valid users = user
read only = yes
browseable = no

Aquí,user es el nombre de usuario en la máquina que ejecuta el servidor Samba de la persona con privilegios de acceso al recurso compartido. Utilice estas dos plantillas para agregar recursos compartidos para todos los archivos a los que los usuarios deseen acceder desde el equipo servidor.

Su servidor debe estar completamente configurado ahora. Con lo que agregaste a los valores predeterminados proporcionados por tu distribución, tu smb completada.conf debería verse algo como esto:

security = shareworkgroup = HOMEserver string = %h serverlog file = /var/log/samba/log.%mmax log size = 1000dns proxy = Nohosts allow = 192.168.0.hosts deny = ALLprinting = cupsprintcap name = cupspath = /var/spool/sambaprintable = Yesbrowseable = Nopath = /var/lib/samba/printerspath = /Public/Filesguest ok = yesread only = nobrowseable = yespath = /private/files/valid users = meread only = yesbrowseable = no

Antes de salir de la máquina del servidor, tiene algunas tareas más rápidas. En primer lugar, introduzca los usuarios que accederán al servidor Samba en el siguiente comando:

smbpasswd -a user

Se le pedirá que introduzca una contraseña de Samba para cada usuario. Puede cambiar la contraseña en cualquier momento iniciando sesión como el usuario deseado y ejecutando smbpasswd. Ahora reinicie su servidor Samba con este comando:

/etc/init.d/samba restart

Acceso a recursos compartidos de Samba desde clientes de Windows

Diríjase a una máquina de Windows para probar su nueva configuración. Su nuevo servidor debe aparecer en los lugares de mi red de Windows (busque el acceso directo en su escritorio, de forma predeterminada). Alternativamente, abra el menú Inicio y haga clic en» Ejecutar Run», luego ingrese:

\server

Reemplazando server con el nombre o la dirección IP de la máquina que ejecuta su servidor Samba. Debería abrirse una ventana del explorador de Windows con los recursos compartidos que se pueden navegar desde su servidor. Si ha hecho un recurso compartido no navegable, acceda a él mediante este enlace:

\servershare name

Es fácil hacer que los directorios compartidos sean más accesibles. En Windows XP, haga clic con el botón derecho en compartir en el Explorador y elija «Asignar unidad de red Drive» Podrá asignarles una letra de unidad, como Z:, para que se puedan encontrar fácilmente en Mi computadora, incluso después de un reinicio.

En mis pruebas en Windows XP con el nivel de seguridad establecido en share, las impresoras se detectan automáticamente y están disponibles para su uso desde la máquina Windows. Con user nivel de seguridad establecido, era necesario iniciar sesión en el servidor en una ventana del explorador de Windows antes de intentar imprimir. Su experiencia en otras versiones de Windows puede variar.

Acceder a recursos compartidos SMB / CIFS desde otras máquinas Linux

Los recursos compartidos de Samba y Windows se pueden acceder fácilmente desde los administradores de archivos predeterminados de Gnome y KDE. Comenzaremos accediendo a recursos compartidos desde Nautilus en Gnome. Abra Nautilus y vaya a Archivo – > Conéctese al servidor.

Elija «Windows share» en el cuadro de lista e introduzca el nombre del servidor o la dirección IP de su servidor Samba. También puede hacer clic en el botón » Explorar red «y buscar en el directorio» Red de Windows » para buscar el servidor manualmente. Haga clic en «Conectar» y se abrirá una ventana Nautilus con los recursos navegables de su servidor Samba.

Acceder a los recursos compartidos de Samba con Konqueror es igual de sencillo. Para buscar su servidor, introduzca la URL remote:/ en Konqueror. Para acceso directo, escriba la URL del servidor directamente en este formato:

smb://user@server/share

Tenga en cuenta que el usuario y el recurso compartido son criterios opcionales.

Configurar impresoras a través de Samba es igualmente fácil en ambos entornos de escritorio. En Gnome, vaya a Sistema -> Administración> Imprimir. En la aplicación de configuración de impresora, seleccione Printer – > Agregar impresora. Se le solicitará su contraseña. En el asistente para agregar impresora, seleccione » Impresora de red «y, a continuación,» Impresora Windows SMB » en el cuadro de lista. Se le solicitará un nombre de usuario y una contraseña en su servidor Samba. Identifique el Host y la impresora en el servidor Samba y, a continuación, pase a la siguiente pantalla. Seleccione el modelo de impresora y, a continuación, haga clic en Aplicar.

Para hacer lo mismo en KDE, abra el centro de configuración lanzando el comando kcontrol. Vaya al módulo Impresoras y vaya a Add – > Agregar impresora/clase Add En el cuadro de diálogo resultante, haga clic en Siguiente y luego seleccione » Impresora compartida SMB (Windows).»Haga clic en Siguiente de nuevo y configure el nombre de usuario y la contraseña de una «cuenta normal» si usa user nivel de seguridad. Haga clic en Siguiente en otra ocasión y, a continuación, Escanee para buscar su servidor Samba.

Como alternativa, introduzca los detalles del servidor manualmente. En la siguiente pantalla, seleccione el modelo de impresora de la lista. Haga clic en las siguientes pantallas y dele a su impresora en red un título para terminar.

Solución de problemas

Si ha tenido algún problema para que esta funcionalidad funcione, consulte la lista de comprobación de solución de problemas de Samba. Un truco rápido tomado de ese documento para probar su archivo de configuración de Samba en busca de errores obvios es ejecutar el siguiente comando:

testparm smb.conf

De nuevo, la ruta exacta de su smb.conf puede variar según la distribución.

Aquí solo hemos explorado la funcionalidad básica de Samba, diseñada para una red doméstica. Los escenarios de uso más extremos se abordan en detalle en la guía de ejemplo de Samba.