====== Samba ====== Samba al ser un software libre y gratuito lo podemos obtener sin ningún costo y modificar sus configuraciones a gusto personal y enfocarlo a las necesidades especificas de una empresa. Se puede manejar desde un entorno no gráfico lo que permite de manera más rápida realizar sus funciones ya que necesita correr menos procesos y un entorno tan pesado como WS2003 produce mas problemas. Es precisamente por esta razón que se elige este software como el servidor de archivos. ===== ¿Que es Samba? ===== Específicamente, samba es una aplicación de red que se ejecuta en sistemas UNIX e implementa el Server Message Block (SMB) como protocolo de red, actualmente conocido como Common Internet Filesystem (CIFS). Lo cual permite que maquinas con Linux o Unix aparezcan dentro del “entorno de red de Windows”. Entre sus características principales esta que permite compartir archivos, directorios, impresoras, etc. Además, la actual versión, samba v.3 entre sus opciones se encuentra la posibilidad de validar usuarios actuando como Controlador Primario de Dominio, lo cual no se abarca en este proyecto. Es muy importante advertir que si lo que se requiere es una herramienta solamente para compartir recursos entre maquinas con Linux, se puede optar por el NFS. Sin embargo, en este caso se quiere explotar una red al máximo y samba nos proporciona multitudes de características y configuraciones. Esencialmente Samba consiste en dos programas denominados smbd y nmbd, y haciendo uso de estos programas, samba permite: * Servicios de acceso remoto a ficheros e impresoras. * Autenticación y autorización. * Resolución de nombres. * Anuncio de servicios. ===== Historia de Samba ===== Samba nació de la idea de Andrew Tridgell, quien es hoy en día en líder y principal desarrollador de esta herramienta. Al inicio fue simplemente un protocolo, pero debido a su impacto, fue implementado por la empresa Microsoft y por esta razón se le tuvo que cambiar el nombre al actual. Hasta la fecha, se encuentra en constante desarrollo y actualización por medio de una comunidad dedicada a mejor el entorno de red, y bajo la licencia GNU/GPL. ===== ¿Qué puede hacer Samba por mí? ===== Como se dijo anteriormente, 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 tu red: * No quieres pagar un servidor Windows NT para obtener las funcionalidades que este proporciona. * Puedes querer proporcionar un área común para datos o directorios de usuarios en orden a realizar una transición desde un servidor NT hacia un Unix, o viceversa. * Puede que desees compartir impresoras a entre clientes Windows y Unix. * Puede que quieras acceder a ficheros NT desde un servidor Unix. ===== Protocolos y demonios ===== El programa smbd (puerto TCP 139), se encarga de ofrecer los servicios de acceso remoto a ficheros e impresoras, así como de autorizar usuarios. Ofrece dos modalidades para compartir los recursos existentes en Windows: basado en usuarios o basado en recursos. * Basado en usuarios: la autorización del acceso a los recursos se realiza en función de nombres de usuarios registrados. * Basado en recursos: a cada recurso se le asigna una contraseña. El programa nmbd (puertos UDP 137, 138) permite que el sistema UNIX participe en los mecanismos de resolución de nombres propios de Windows. De esta manera el sistema logra aparecer en el “entorno de red”, publicando la lista de recursos que ofrece al resto, además que soporta el servicio de nombres NetBIOS y WINS. [[teaching:ie0117:proyectos:2012:i:linux:protocolo_smb_server_message_block]] [[teaching:ie0117:proyectos:2012:i:linux:protocolo_netbios]] ===== Niveles de seguridad ===== Uno de los aspectos mas importantes a la hora de diseñar samba es la selección del nivel de seguridad. Se puede decir que samba ofrece dos modos de seguridad básicos: * Share: Cada vez que el cliente quiere utilizar un recurso ofrecido por Samba, debe suministrar una contraseña de acceso asociada a dicho recurso. * User: el cliente debe establecer en primer lugar una seccion con el servidor samba, para lo cual se le suministra un nombre de usuario y contraseña. Una vez validado entonces el cliente ya obtiene permisos para acceder a los recursos disponibles. * Server: mediante este método de seguridad se delega la validación de usuarios desde otro ordenador, normalmente con un sistema Windows NT. Entonces cuando el cliente desee iniciar sección en Samba, Samba intenta iniciar sesión en el ordenador correspondiente y así las contraseñas no necesitan estar sincronizadas entre los sistemas Unix y Windows. * Domain: idéntico al anterior, pero en este caso el ordenador donde se delega la autorización debe ser un ordenador PDC. La seguridad se selecciona con la opción security como severa mas adelante. ===== Opciones de los recursos ===== #Opción Significado Valor por defecto read only Recurso de solo lectura Yes browseable El servicio aparece en la lista de recursos yes path Directorio asociado al servicio guest ok Permitir los accesos en modo invitado. no guest accoun Si un acceso se realiza como invitado, se utiliza el usuario especificado nobody guest only Cualquier acceso se realiza como invitado no hosts allow Lista de ordenadores a los que se les permite acceder -Lista vaciá- implica todos Hosts deny List de ordenadores a los que se les prohíbe el acceso -Lista vaciá- Valid users Lista de usuarios que pueden acceder a este recurso -lista vaciá- implica todos La tabla anterior muestra las opciones básicas que posee cualquier recurso compartido. Cabe la posibilidad de establecerlas en la sección global, en este caso serian las opciones por defecto. ====== Instalación de Samba ====== Desde una conexión a Internet, y preferiblemente con Debian instalado sin entorno grafico. se deben instalar los siguientes dos paquetes y , con el siguiente comando **#apt-get install samba samba-clien** El paquete samba contiene el servidor SMB El paquete samba-client contiene diversos paquetes para el protocolo SMB. A partir de este momento se puede suponer que ya el paquete se encuentra instalado en el ordenador. El sitio principal se encuentra en http://www.samba.org. ===== Aspectos básicos del fichero smb.conf ===== La configuración de Samba es bastante particular en relación con la mayoría de las aplicaciónes complejas, pues se realiza únicamente mediante un solo fichero, el cual se encuentra ubicado en: **/etc/samba/smb.conf** Antes de comenzar con la edición, se debe tener presente que cada vez que se modifique este fichero se debe reiniciar en servicio mediante la línea: **# /etc/init.d/samba restart** Además, para evitar errores de sintaxis, después de editar el fichero, utilizando en la línea de comandos: **testparm** Para un manejo más efectivo del fichero de configuración, este se encuentra divido por secciones, las cuales de identifican con títulos entre corchetes. Posee tres secciones: - [global] Define los parámetros generales de todo el servidor así como los parámetros por defecto en las siguientes secciones. - [homes] Define la forma de compartir un directorio personal. Por defecto está asociado con el directorio de conexión de cada usuario y automáticamente define un recurso de red por cada usuario conocido por Samba. - [printers] Define un recurso compartido por cada nombre de impresora conocido por samba. Una acción muy importante y de carácter obligatorio es verificar que el nombre del dominio/grupo de trabajo es el correcto. Determinado como: **workgroup** En cuanto a los recursos, por defecto samba suele traer predefinidos tres recursos básicos: directorio de cada usuario (home), impresoras (printers) y el recurso oculto donde se encuentran los controladores (print$). Cuando esta aplicación se instala posee una ventaja, y es que la mayoría de las configuraciones generales ya se encuentran dentro del fichero de configuración, lo que se debe hacer es ajustarlo a las necesidades propias del lugar y arquitectura en donde se vaya a poner en ejecución Samba. [[teaching:ie0117:proyectos:2012:i:linux:configuracion_avanzada_del_fichero_smb.conf]] [[teaching:ie0117:proyectos:2012:i:linux:configuracion_de_cuentas_de_usuarios]] [[teaching:ie0117:proyectos:2012:i:linux:configuracion_de_directorios_compartidos]] [[teaching:ie0117:proyectos:2012:i:linux:samba_y_shorewall|Índice]]