CONFIGURACIÓN BÁSICA DE SAMBA |
SOFTWARE - Servidores | ||||||||||||||||
Escrit per Raúl Juncos | ||||||||||||||||
dilluns, 4 de juliol de 2005 02:03 | ||||||||||||||||
There are no translations available. Samba es una suite de aplicaciones Unix que habilita el protocolo SMB (Server Message Block). Muchos sistemas operativos, incluídos Windows y OS/2, usan SMB para operaciones de red cliente-servidor. Mediante el soporte de este protocolo, Samba permite a los servidores Unix entrar en acción, comunicando con el mismo protocolo de red que los productos de Microsoft Windows. De este modo, una máquina Unix con Samba puede enmascararse como servidor en tu red Microsoft y ofrecer un conjunto de servicios. PreviosEl presente artículo asume que disponemos de una red de área local, con clientes con sistema operativo Microsoft Windows, y un servidor basado en GNU/Linux Debian. Ello implica un conocimiento mínimo de ambos entornos. Podemos encontrar cursos en línea gratuitos en ambas plataformas, tanto para MS Windows (por ejemplo, http://www.aulaclic.es/winxp/f_windowsxp.htm) como para GNU/Linux Debian (por ejemplo, http://laespiral.org/articulos/cursodebian/). Requerimientos de estudio previoEn el equipo servidorLa aplicación básica del paquete Samab (smbd), que permite acceder a los usuarios de PC al servidor tanto de impresoras como de discos, requiere mucha RAM, disco duro (evidentemente, como dispositivo parcialmente compartido) y una conexión de red muy optimizada; no obstante, el consumo de CPU es bajo. El equipo servidor irá en función, por tanto, del número de usuarios que deberán trabajar contra él; podemos estimar que el demonio principal puede ocupar unos 2Mb de RAM, y unos 760Kb por cada cliente que realice una conexión. La disponibilidad de RAM para el correcto de este servicio se perfila, como se ha expuesto, como crítica si tenemos muchos clientes accediendo de forma concurrente al servidor. En cuanto al estudio de cuellos de botella, deberemos estudiar las características de nuestra red de área local (LAN). Una Ethernet a 10Mb/seg puede manejar 1.100Kb/seg, mientras que una a 100Mb/seg llega a 65Mb/seg. Esto, junto con la capacidad de respuesta del disco duro nos dará una idea aproximada de la respuesta real. Sería deseable contar en el servidor con un disco duro SCSI o SerialATA. Requerimientos de redSi nuestra red la utilizamos para acceder de forma eventual, para guardar ficheros o imprimir algún documento, posiblemente una red Ethernet con concentradores básicos (HUBs) a 10Mb/seg sea suficiente. Si lo que queremos, por otro lado, es acceder a ficheros compartidos directamente desde nuestro servidor de disco, por ejemplo, reproduciendo vídeos, o montando nuestro directorio personal ('Mis Documentos' en MS Windows, o '/home/usuario' en el caso Linux), necesitaremos ya una estructura más potente. Como mínimo optaremos por concentradores tipo hub/switch a 100 Mb/seg. Hoy en día encontraremos en el mercado este tipo de componente sin ningún problema. 1. ¿Qué es Samba?Samba es una suite de aplicaciones Unix que habilita el protocolo SMB (Server Message Block). Muchos sistemas operativos, incluídos Windows y OS/2, usan SMB para operaciones de red cliente-servidor. Mediante el soporte de este protocolo, Samba permite a los servidores Unix entrar en acción, comunicando con el mismo protocolo de red que los productos de Microsoft Windows. De este modo, una máquina Unix con Samba puede enmascararse como servidor en tu red Microsoft y ofrecer los siguientes servicios:
Samba es la idea de Andrew Tridgell. El proyecto nació en 1991 cuando Andrew creó un programa servidor de ficheros para su red local, que soportaba un raro protocolo DEC de Digital Pathworks. Hoy, la suite Samba implica a un par de demonios que proporcionan recursos compartidos a clientes SMB sobre la red (las comparticiones son denominadas a veces también como servicios). Estos demonios son: smbd : Un demonio que permite compartición de archivos e impresoras sobre una red SMB y proporciona autentificación y autorización de acceso para clientes SMB. nmbd : Un demonio que busca a través del Windows Internet Name Service (WINS), y ayuda mediante un visualizador. Samba se encuentra actualmente mantenido y es ampliado por un grupo de voluntarios bajo la supervisión activa de Andrew Tridgell. Al igual que el sistema operativo Linux, Samba es considerado por sus autores Open Source software (OSS), y es distribuido bajo la the GNU General Public License (GPL). Como información adicional, podemos afirmar que es algo verdaderamente testimonial el que entidades tanto comerciales como no comerciales estén dispuestas a gastar dinero para dar soporte a un proyecto Open Source. Microsoft también ha contribuido materialmente poniendo a disposición su definición de SMB y del Internet-savvy Common Internet File System (CIFS), como Public Request for Comments (RFC), y otros documentos estandar. El protocolo CIFS es el nuevo nombre de las futuras versiones del protocolo SMB que serán usadas en los productos Windows. De hecho, podemos encontrar el protocolo escrito como "SMB/CIFS". 2. ¿Qué hace SAMBA?Visión desde clienteComo explicamos antes, Samba puede ayudar a las máquinas Windows y Unix a coexistir en la misma red. Sin embargo, existen algunas razones específicas por las cuales podrías desear instalar un servidor Samba en nuestra red:
Caso típico de utilización de SAMBA (en un centro educativo, por ejemplo). Asumiremos que tenemos la siguiente configuración básica de red: un servidor Samba sobre una máquina Unix (en nuestro caso GNU/Linux Debian), al cual le asignaremos el nombre bach, y varios clientes Windows, a los cuales les asignaremos los nombres pc01, pc02, lliure,o los nombres que selccione el administrador de la red, todos conectados vía red de área local (LAN). Asumamos también que bach también tiene una impresora de inyección conectada a él, lp, y una compartición de disco denominada downloads -ambos recursos podemos ofrecerlos a las otras máquinas cliente-. Un gráfico de esta red se muestra en la figura: Una configuración de red simple con un servidor Samba. En esta red, cada una de las computadoras comparten el mismo grupo de trabajo. Un Grupo de Trabajo es simplemente una etiqueta de nombre de grupo que identifica a una determinada colección de ordenadores y sus recursos sobre una red SBM. Pueden existir varios grupos de trabajo sobre la red al mismo tiempo, pero para nuestro ejemplo sólo tendremos uno: el grupo de trabajo CENTRO. La siguiente tabla relaciona los roles básicos que Samba puede asumir en un dominio Windows NT o en un dominio Windows para Trabajo en Grupos. Con las versiones 2.0. x, Samba ofrece soporte limitado para los protocolos de autentificación del controlador primario de dominio y está adquiriendo nuevas funcionalidades cada día (la versión actual, a fecha de realización del presente artículo, es la 3.0.9).
2.1 Obteniendo un Servicio de Disco e impresoras.Si todo está bien configurado, podremos poder ver al servidor Samba, bach, a través del visualizador de red (entorno de red) de la máquina Windows. De hecho, el visualizador de red de pc01 (como cliente) mostrará todas las máquinas de su grupo, incluyendo a pc02 y a cada una de las máquinas que residen en el grupo de trabajo CENTRO (en la figura, una máquina denominada lliure). Como mencionamos antes, pueden existir más grupos de trabajo sobre una red SMB al mismo tiempo. Si un usuario hace click sobre ese icono, verá una lista de todos los grupos de trabajo que actualmente existen en la red. Podemos entrar en el servidor bach con un doble click sobre su icono. Esta acción provoca que se contacte con bach y se le solicite una lista de sus recursos compartidos -impresora/s, disco,...- que proporciona la máquina. Una característca popular de Windows 95/98/NT es que es posible mapear una letra de unidad hacia un direcrotio de la red usando la opción "Conectar a Unidad de Red" desde el explorador de Windows. Una vez hecho, las aplicaciones podrán acceder a la carpeta a través de la red con una unidad de disco estándar. Una vez llegados a este punto, podremos almacenar datos en ella, instalar y ejecutar programas, e incluso protegerla mediante contraseña contra accesos no deseados. Una forma equivalente de representar un directorio en una máquina de la red es usando dos barras (backslashes), seguidas del nombre de la máquina de red, otra barra (backslash), y el directorio de red de la máquina, como se muestra a continuación: \\máquina-de-red\directorio Esto se conoce como notación UNC (Universal Naming Convention) en el mundo Windows. En nuestro ejemplo, podremos acceder mediante notación UNC desde Inicio->Ejecutar, tecleando: \\BACH\downloads Una vez la unidad de red está configurada, Windows y sus programas la verán y podrán usar como si ese directorio de red fuese un dico más. Si se tienen aplicaciones multiusuario, pueden instalarse sobre la unidad de red. 2.2 Encontrar la configuración de nombre de red en WindowsTenemos dos opciones para conseguir esta información (y poder cambiarla si somos administradores de la máquina):
3. Samba. Visión desde servidor.Como mencionamos antes, Samba actualmente contiene varios programas que sirven para diferentes pero determinados propósitos. Vamos a introducir una breve explicación de cada uno de ellos. La mayoría de los programas que vienen con la distribución de Samba se centran en sus dos demonios. Echemos un vistazo a las responsabilidades de cada demonio: smbd
nmbd
smbclient
smbtar
nmblookup
smbpasswd
smbstatus
testparm
testprns
3.1.¿Cómo puedo Obtener Samba?Samba está disponible en formato binario y fuente en una serie de mirrors en Internet. El sitio principal de Samba está localizado en http://www.samba.org. Sin embargo, para evitar esperar a que los paquetes lleguen desde otro país, los mirrors para Samba lpueden encontrarse en muchas direcciones de Internet. Existe una lista de ellos en la página principal del sitio oficial de Samba. Como usuario de la distribución de GNU/Linux Debian, va a ser sencillo. Según el método característico Debian de instalación, simplemente tecleando (como root): #apt-get install samba tendremos instalado el servicio. Aún así, debemos configurar el fichero correspondiente, así como dar de alta a los usuarios, para que sea funcional. El presente artículo asume, como se ha indicado, un servidor SAMBA basado en GNU/Linux Debian. Además, interesará tener instaladas algunas utilidades mencionadas anteriormente. Instalaremos también el paquete 'smbclient': #apt-get install smbclient 3.2 Un Fichero de Configuración Básico.La clave para configurar Samba está en un único fichero de configuración: smb.conf. Este fichero de configuración puede ser muy simple o extremadamente complejo. Por el momento, sin embargo, mostraremos cómo crear una configuración simple, la cual permitirá iniciar los demonios Samba y ver que todo está funcionando como debiera. El proceso de instalación no crea automáticamente un fichero de configuración smb.conf, aunque se incluyen varios de ejemplo en la distribución de Samba y en su web. Para testear el software del servidor, nosotros usaremos el siguiente fichero. Este debería llamarse smb.conf y estar ubicado en el directorio /etc/samba/ : [global]
[downloads]
Este breve fichero de configuración le dice al servidor Samba que ofrezca el directorio /downloads en el servidor como un recurso compartido SMB/CIFS llamado Downloads. El servidor también se convierte en parte del grupo de trabajo llamado CENTRO, donde cada uno de los clientes deben ser también miembros de él. Por ahora, completaremos la configuración ejecutando los siguientes comandos como root en el servidor: # mkdir /downloads Debemos señalar que, en términos de seguridad, esta es la peor configuración posible (estamos dando permisos de lectura, ejecución y escritura a todo el mundo). Por el momento, sin embargo, sólo deseamos testear Samba, así que dejaremos la seguridad para otro momento. También hay algunos problemas con la encriptación de contraseñas. Usando Windows 98 o Windows NT Service Pack 3 o anteriores, se debe añadir la siguiente entrada a la sección [global] del fichero de configuración de Samba: encrypt passwords = yes. Además, es obligatorio usar el programa smbpassword para reintroducir las combinaciones usuario/contraseña de aquellos usuarios que deberían tener capacidad de acceder a los recursos compartidos. Por ejemplo, si se quiere permitir al usuario Linux alumno acceder a recursos compartidos desde un cliente SMB, deberíamos teclear: #smbpasswd -a alumno Se debe recordar que poseer una cuenta en el sistema no implica poder acceder a recursos SAMBA. Debemos dar de alta a los usuarios SAMBA (como root, como se ha indicado) para que estos tengan acceso desde los clientes. Asegúrese de que las combinaciones usuario/contraseña que se añaden a la base de datos de contraseñas encriptadas coinciden con los usuarios y contraseñas de los clientes Windows. Ya estamos en disposición de probar nuestra primera configuración. Para iniciar los demonios Samba, teclearemos como root: #/etc/init.d/samba start Después de observar los resultados, podemos añadir a nuestro fichero de oncfiguración una sección que permita compartir nuestra impresora: [printers]
Dado que hemos realizado modificaciones de nuestra configuración, debemos reiniciar Samba para que los cambios tengan efecto con: #/etc/init.d/samba restart Observamos, ahora, que tambien accedemos a la impresora compartida desde nuestro servidor Samba. 3.3 Usando SWAT.Swat permite al administrador de un servicio SAMBA configurar el fichero smb.conf de una forma gráfica, vía navegador web. Además, la página de configuración de Swat oferta infinidad de enlaces a páginas locales de ayuda para cada uno de los parámetros configurables en el fichero, facilitando la visualización de los cambios de forma inmediata. Puede usar el navegador web para conectar a http://localhost:901, y logarte con la cuenta del usuario root. En sistemas Debian, la instalación de swat se realiza (como root) con la orden: #apt-get install swat Hecho esto, posiblemente, abramos el navegador web para teclear la dirección y el puerto swat sin obtener respuesta positiva. Ello es debido a que no hemos indicado al servicio inet.d la accesibilidada este puerto (para más información, teclear desde consola '$man swat'). Deberemos editar el fichero /etc/inetd.conf y añadir la línea (o descomentarla si la tenemos comentada): swat stream tcp nowait.400 root /usr/sbin/tcpd /usr/sbin/swat Y a continuación reiniciamos el servicio para que recoja la nueva configuración: #/etc/init.d/inetd restart Ahora sí debemos tener acceso (logados como root) a http://localhost:901 En este ejemplo, establece el campo grupo de trabajo a CENTRO y el campo security a USER. La otra opción que se necesita cambiar es la que determina qué sistema de los que hay en la red es el que resuelve las direcciones NetBIOS; este sistema es denominado servidor WINS. Al principio de la página, seleccionar la opción wins support y situarla a Yes, a menos que ya poseamos un servidor WINS en la red. Si es así, poner la dirección IP del servidor WINS en el campo wins server. Luego volver al principio de la página y pulsa sobre el borón Commit Changes para grabar los cambios en el fichero smb.conf. Podemos ir también a la sección Shares para observar nuestro directorio /downloads. Si le añadimos un comentario, podemos dirigirnos a View para obervar cúal es el estado de nuestro fichero de configuración (smb.conf). De forma análoga, podemos añadir nuevos discos compartidos. En la sección Printers observaremos nuestra/s impresoras. Comentar como significativas para nuestros propósitos las opciones Status, que nos permite arrancar/para/reiniciar servicios, View que nos muestra el estado actual de nuestro fichero de configuración smb.conf, y Password para la gestión de clientes. Y la fundamental, Home, que nos ofrece enlaces de ayuda para cualquier duda que nos surja. 3.4 Testeando los Demonios Samba.Ya hemos apuntado las posibilidades de configuración del servidor Samba. Y todo lo que queda por hacer es asegurarse de que todo está funcionando como debería. Una forma adecuada de hacer esta comprobación es usar el programa smbclient para examinar qué está ofreciendo el servidor a la red. Si todo se ha configurado correctamente, debería poder hacer lo siguiente: También debemos hacer un seguimiento de nuestro sistema de log's, en La orden: $smbclient -L nombre_del_servidor nos permite obtener información del estilo: 3.5 Otros entornos gráficos para administración de SambaExiste otro medio gráfico, muy extendido, para administrar de forma amable y sin enfrentarnos a una consola de texto nuestro servicio Samba. Se trata de Webmin (http://www.webmin.com/ ). Se trata de toda una suite de administración de nuestra máquina, que funciona en el puerto 10000. Esta aplicación posee, también, un módulo de administración del servicio samba. Para instalarlo en nuestro servidor, debemos instalar el paquete webmin-samba, que instalará las pertinentes dependencias. Es decir, teclearemos como root: #apt-get install webmin-samba Si todo ha ido bien, accediendo a la dirección web http://localhost:10000 desde nuestro navegador, se nos preguntará por nuestro usuario y contraseña, accediendo a continuación a configurar las opciones que nos ofrece (desde el idioma de webmin, hasta el propio samba). Para conocer qué módulos posee webmin, podemos visitar su sitio web, o realizar una búsqueda desde nuestro sistema debian, con la orden: $ apt-cache search webmin webmin - Web-based administration toolkit Dado que esta es una herramienta no exclusiva para administración Samba, se invita al futuro administrador a instalarla y disfrutar de todas sus posibilidades. Como apunte, básicamente, el módulo de adminstración Samba realiza (con otro entorno gráfico) las mismas funciones que Swat. No olvidemos que, a fin de cuentas, todos son entornos que trabajan contra nuestro fichero de configuración smb.conf Captura de la versión demo en www.webmin.com
# Global parameters [global]
[homes]
[printers]
[downloads]
Si hemos configurado con Swat, nuestro fichero aparecerá más completo, con referencias a la base de datos de contraseñas, fichero log,... En este artículo se muestra una pequeñísima parte del potencial de Samba. Podemos crearnos todo un sistema para compartir unidades de red, control de acceso por usuario, compartición de unidades externas, ACL's, servidores virtuales,... Fuentes de Información:Using Samba, 2nd Edition
Jay Ts, Robert Eckstein, David Collier-Brown
2ª Edición, Febrero 2003 O'Reilly & Associates, ISBN: 0-596-00256-4
TLDP-ES/LuCAS: servicios editoriales para la documentación libre en español http://es.tldp.org/Manuales-LuCAS/USANDO-SAMBA/ HOWTO Samba: http://de2.samba.org/samba/docs/man/Samba-HOWTO-Collection/ By Example: http://de2.samba.org/samba/docs/man/Samba-Guide/ HOWTO Install Samba: http://de2.samba.org/samba/docs/man/Samba-HOWTO-Collection/install.html Serveis de xarxa amb GNU/Linux http://jasper.xtec.es:7451/cdweb/dades/2003/2003matform_in/materials/td70/index.htm Ayuda (MAN) de las aplicaciones instaladas, especialmente:
Para conocer todas, consultar la página web de documentación oficial de samba, sección Man Pages |