Está en la página 1de 23

Mdulo VI Servidores de archivos Introduccin En este mdulo se estudiar diferentes mtodos para compartir archivos y espacio en disco en Linux

en forma remota. NFS (Networks File Systems - Sistema de archivos de red) Linux, como casi todos los UNIX, implementan NFS. Este protocolo permite compartir archivos y espacio en disco entre mquinas de diferentes plataformas, en una forma completamente transparente para el usuario. Para los usuarios, un disco activado en forma remota con este protocolo, es un directorio ms. Configuracin Existen dos tipos de configuraciones, una es la que se realiza del lado del equipo que contiene el directorio a compartir (el servidor), y la otra es el equipo cliente que utilizar este directorio en forma remota. El servidor Existe un nico archivo donde se realiza toda la configuracin del servicio NFS. Este archivo es el /etc/exports. En este archivo se especificarn todos los directorios que se desean publicar para ser utilizados, desde los clientes NFS, con este protocolo. Formato del archivo /etc/exports: <directorio> <equipos_cliente>[(opciones)] directorio: Ac se especifica el directorio publicado. equipos_cliente: Ac se especifican qu equipos tendrn acceso al directorio referencia. Los equipos cliente se pueden especificar de cuatro formas, haciendo referencia a un equipo nicamente, utilizando comodines (asteriscos "*" y signos de pregunta "?"), utilizando nmeros de IP o haciendo referencia a grupos de red (combinando el uso con el servicio NIS). opciones: Ac se especifican las diferentes opciones que tendr cada equipo sobre este directorio. En este documento solo mencionaremos las ms utilizadas: (ro): Publica el directorio como de solo lectura. No permite que los clientes escriban sobre el directorio. (no_root_squash): Esta opcin permite al cliente grabar archivos a nombre del superusuario (root) si el usuario se conect al equipo cliente con root. (Nota: Cuando se utiliza NFS, desde el equipo cliente, el usuario no tiene los mismos permisos como si el directorio fuera un disco local) (rw): Con esta opcin se le permite a los clientes leer y escribir sobre el directorio publicado. (secure): Obliga a todos los clientes a hacer requerimientos de NFS por debajo del puerto 1024. Ejemplos: / master(rw)trusty(rw,no_root_squash) /projects proj*.local.domain(rw) /usr *.local.domain(ro) /pub (ro,insecure,all_squash) El cliente En un cliente Linux que desea utilizar espacio en disco de otros equipos va NFS solo debe activar los sistemas de archivos (file systems) utilizando este protocolo. La forma de realizarlo sera la siguiente: nfs -t nfs <servidor:directorio> <directorio_local_destino> De necesitar guardar esta configuracin en el archivo /etc/fstab, se debe escribir de la siguiente forma dentro del archivo: <servidor:directorio> <punto_de_montaje> nfs <opciones>

Existen algunas opciones del comando mount (como rsize y wsize) que ayudan a mejorar la performance utilizando NFS. Para ms informacin exports(5), nfsd(8), mountd(8)FTP (File Transfer Protocol - Protocolo de Transferencia de Archivos) El sistema de archivos de red El sistema de archivos de red (NFS) es un sistema que permite montar sistemas de archivos desde una computadora distinta sobre una red TCP/IP. Bajo NFS, se monta localmente un sistema de archivos de una computadora remota y de cara a los usuarios parece igual que un sistema de archivos local. Este tipo de sistemas tiene muchas aplicaciones. Por ejemplo, se puede tener una mquina en la red con mucho espacio en disco y que acte como servidor. Esta computadora tiene todos los directorios de inicio de todos los usuarios en sus discos locales. Si estos discos se montan va NFS en el resto de las computadoras, los usuarios pueden acceder a sus directorios iniciales desde cualquier computadora en la red. NSF tiene tres componentes esenciales: Las computadoras que contienen los sistemas de archivos que se quieren montar con NFS tiene que poder comunicarse unas con otras por medio de una red TCP/IP. Las computadoras que contienen los sistemas de archivos que se desea como local debe disponer de este sistema de archivos para montarlo. A esta computadora se la conoce como el servidor y al proceso de hacer disponible el sistema de archivos como exportacin del sistema de archivos. Las computadoras que contienen los sistemas de archivos exportado, conocido como cliente, tiene que montarlo como un sistema de archivos NFS, ya sea en el momento del arranque por medio del archivo /etc/fstab o de modo interactivo, por medio del comando mount. Las siguientes apartados tratan sobre la exportacin del sistema de archivos y su montaje local. Exportacin de un sistema de archivos NFS Para que los clientes puedan montar un sistema de archivos NFS, el servidor tiene que suministrrselo. Antes de que pueda suministrarse un sistema de archivos, debe comprobarse que est montado en el servidor. Si el sistema de archivos siempre va a un sistema de archivos NFS exportado, debe comprobarse que aparece listado en el archivo /etc/fstab del servidor, de modo que se monte automticamente cuando arranque el servidor. Una vez que montado el sistema de archivos, se puede suministrar va NFS. Este proceso consta de dos pasos. Primero, debe comprobar que los procesos daemon NFS rpc.mountd y rpc. Nfsd estn ejecutndose en el servidor. Esos daemons se inican normalmente desde el archivo de comandos de inicio/etc/rc.d/init.d/nfs scrpit. Generalmente, lo nico que tiene que hacer es comprobar que las lneas siguientes estn en su archivo: Daemon rcp. Mountd Daemon rcp. Nfsd El segundo lugar, debe introducir el sistema de archivos en un archivo de configuracin denominado /etc/exports. Este archivo contiene informacin sobre los sistemas de archivos que pueden exportarse, las computadoras que tienen permiso para acceder a ellos y sobre el tipo y nivel de acceso que est permitido. El archivo /etc/exports El archivo /etc/exports lo utiliza los procesos daemon mountd y nfsd para determinar los sistemas de archivos que van a exportarse y el tipo de restricciones que se les va a imponer. Los sistemas de archivos estn listados, uno por lnea en El archivo /etc/exports. El formato de cada lnea es el nombre del punto de montaje para un sistema local de archivos, seguido por la lista de computadoras en las que se permite su montaje. Una lista separadas por comas con las opciones de montaje entre parntesis puede acompaar tambin cada nombre de la lista. La Tabla 14.5 relaciones las opciones de montaje disponibles en el archivo /etc/exports. Tabla 14.5 Opciones de montaje disponibles en el archivo /etc/exports

Opcin Descripcin insecure Permite el acceso no autenticado desde esta mquina Secure Necesita autentificacin RPC desde esta mquina Root_ squash Asigna cualquier peticin desde el usuario root, UID 0 en el cliente, al UID NOBODY_UID en el servidor No_root_squash No asigna ninguna peticin desde el UID 0 (Comportamiento predeterminado) Ro Monta el sistema de archivos del tipo de slo lectura. (Comportamiento predeterminado) Rw Monta el sistema de archivos del tipo lectura y escritura. Link_relative Convierte los enlaces simblicos absolutos (donde el contenido del enlace empieza con la barra inclinada) en enlaces relativos, colocando delante del enlace el nmero de caracteres../que sean necesarios para ir del directorio que contiene el enlace al directorio raz del servidor. Link_absolute Deja todos los enlaces simblicos como estn. Este es el comportamiento normal de los servidores NFS Sun. (Comportamiento predeterminado en Linux) Map_daemon Asigna nombres locales y remotos as como los identificadores numricos, utilizando un proceso daemon ?name/uid map en el cliente donde se ha originado la peticin NFS. Se utiliza para asignar entre los espacios UID del cliente y del servidor. All-squash Asigna todos los identificadores de usuario y los identificadores de grupo a los usuarios annimos. Esta opcin es til para los directorios pblicos exportados NFS, como los que incluye FTP y los grupos de noticias. No-all-squash La opcin contraria al all.squachs Squash-uids Relaciona una lista de identificadores de usuarios sujetos a asignacin annima. Una lista vlida de identificadores se parece a la siguiente: squash uids0=15,20,25-50. Squash-gids Especifica una lista de identificadores de grupo sujetos a asignacin annima. Una lista vlida de identificadores se parece a la siguiente: squash gids=0-15,20,25-50. Anonuid Establece el identificador de usuario para una cuenta annima. Esta opcin es til para los clientes PC/NFS. Anongid Establece el identificador de grupo para una cuenta annima. Esta opcin es til para los clientes PC/NFS. Noaccess Se utiliza para excluir algunos subdirectorios desde un cliente. Impide que el cliente pueda acceder a que todo lo que se encuentre por debajo del directorio A continuacin se ofrece un ejemplo del archivo /etc/exports: /home bill.tristar.com(rw) fred.tristar.com(rw) george.tristaar.com(rw) /usr/local/bin/bin*.tristar.com(ro) /projects develop.tristar.com(rw) bill.tristar.com.(ro) /pub (ro, insecure,root_squash) En este ejemplo el servidor exporta cuatro sistemas de archivos distintos. /home se monta con acceso de lectura y escritura en tres computadoras distintas: bill, fred y george. Este directorio probablemente contiene los directorios iniciales de los usuarios. El sistema de archivos /usr/local/bin se exporta como slo de lectura, con acceso permitido desde todos las computadoras en el dominio triscar.com. El sistema de archivos projects se exporta con acceso de lectura y escritura para la computadora develop. Trista.com, pero slo con acceso de lectura para bill.tristar.com. Para el sistema de archivos /pub no hay una lista de sistemas principales a los que se permita el acceso. Esto quiere decir que est permitido montar este sistema de archivos en cualquiera de los sistemas principales. Se ha exportado como slo de lectura, permitindose el acceso no autenticado, y de servidor reasigna cualquier peticin del usuario root a una mquina remota que accede a este sistema de archivos. Montaje de los sistemas de archivos

El montaje de un sistema de archivos NFS es muy similar al de cualquier otro sistema de archivos. Los sistemas de archivos NFS se montan a travs del archivo /etc/fstab en el momento del arranque o de forma interactiva por medio del comando mount. Montaje de sistema de archivos NFS va /etc/fstab Cuando se especfica el sistema de archivos NFS en el archivo /etc/fstab, se identifica el sistema de archivo con el formato: Hostname: /file/system/path Donde hostname es el nombre del servidor donde est ubicado el sistema de archivos remoto y /file/system/path es el sistema de archivos en el servidor. El tipo de sistema de archivos se especifica como nfs en el campo opciones de montaje (mount options) de la entrada de sistemas de archivos. La Tabla 14.6 relaciona las opciones de mount que se utilizan con ms frecuencias. Tabla 14.6 Opciones de uso comn para montajes NFS Opciones Descripcin Rsize=n Especifican el tamao de bytes del datagrama utilizado por los clientes NFS en las peticiones de lectura. El valor predeterminado es 1.024 bytes. Wsize=n Especifican el tamao de bytes del datagrama utilizado por los clientes NFS en las peticiones de escritura. El valor predeterminado es 1.024 bytes. Timeo=n Establece el tiempo, en dcimas de segundos. Hard Monta este sistema de archivos utilizando un montaje hard. Este es el comportamiento determinado. Soft Monta este sistema de archivos utilizando un montaje soft Intr Permite que las seales interrumpan una llamada NFS. Esto es til cuando se desea abandonar una operacin porque un servidor NFS no contesta. Una entrada tpica del sistema de archivos NFS en el archivo /etc/fstab podra parecerse a sta: Mailserver: /ver/spool/mail /var/spool/mail nfs timeo=20, intr Esta entrada monta el sistema de archivos /var/spool/mail, que est ubicado en el servidor principal de correo, en el punto de montaje /ver/spool/mail. Especifica que el tipo de sistema de archivo es nfs. Adems fija el tipo de espera en 2 segundos (20 dcimas de segundo), impidiendo que se interrumpan las operacilones en este sitema de archivos. Montaje de sistemas de archivo NFS de forma interctiva Los sistemas de srchivos pueden montarse de forma interactiva, como sucede con el resto de sistemas de archivos. Sin embargo, debe tenerse en cuenta que el comando mount de NFS no es una opcin muy atractiva, debido a la gran cantidad de opciones que se pueden especificar en la lnea de comandos. El comando mount interactivo que se utiliza para montar el sistema de archivos /ver/spool/mail es el siguiente: # mount -t nfs -o timeo=20,intr mailserver: /ver/spool/mail /ver/spool/mail El comando interactivo mount puede complicarse mucho si hay que especificar tamaos de datagramas y tiempo de espera. Conviene ubicar estos sistemas de archivos en el archivo /etc/fstab para que se monten automticamente en el momento del arranque. Utilizacin de mkfs para construir un sistema de archivos Despus de haber creado una particin de sistemas de archivos con fdisk, debe construir un sistema de archivos en ella antes de poder utilizarla para almacenar datos. Para ello se utiliza el comando mkfs. Por ejemplo, supongamos que estamos construyendo un aparcamiento de coches, fdisk sera el que construye el aparcamiento y mkfs el que traza y pinta las lneas en el suelo para que los conductores sepan dnde aparcar. As como fsck es un programa de "aplicacin frontal de cara al usuario", para comprobar distintos tipos de sistemas de archivos, lo que realmente hace mkfs es llamar a varios programas para crear el sistema de archivos, en funcin del tipo de sistema que se desee. La sintaxis del comando mkfs es la

siguiente: Mkfs [-V] [-t fs -type] [fs -options] filesys [blocks] Donde filesys corresponde al nombre del sispositivo del sistema de archivos que desea construir, como /dev/hda1. PRECAUCIN: el comando mkfs tambin acepta el nombre de un punto de montaje como nombre de sistema de archivos, como/home. Debe tener mucho cuidado cuando utilice un punto de montaje. Si ejecuta mkfs en un sistema de archivos montado y "activo", puede daar seriamente la informacin de este sistema. La Tabla 14.10 relaciona los distintos parmetros de lnea de comandos que se pueden especificar con el comando mkfs. Tabla 14.10 parmetros de lnea de comandos para el comando mkfs. Opcin Descripcin -V Hace que mkfs produzca una salida detallada, incluyendo todos los comandos especficos del sistema de archivos que se ejecutan. Al especificar esta opcin ms de una vez, se inhibe la ejecucin de cualquier comando epecfico del sistema de archivos. -t fs -type Especifica el tipo de sistema que se va a construir. Si no se especifica el tipo de sistema archivos, mkfs trata de adivinarlo buscando filesys es /etc/fstab, utilizando la entrada correspondiente. Si no puede deducir el tipo, crea un sistema MINIX. Fs-options Opciones especficas del sistema de archivos que pasar''an al programa que construye el sistema de archivos. Aunque no se puede grantizar, las opciones siguientes estn admitidas por la mayora de los programas de construccin de sistemas de archivos. -C Antes de construir el sistema de archivos comprueba el dispositivo para ver si existen bloques incorrectos. -l file-name Lee desde file-name una lista de los bloques incorectos en el disco. -v Indica al constructor actual del sistema de archivos que genera una salida detallada. Filesys Especifica el dispositivo en el que se ubica el sistema de archivos. Este parmetro se le pedir. Block Especifica el nmero de bloques que utilizar el sistema de archivos. Aunque sea un argumento opcional, debera acostumbrarse a especificar el sistema de archivos, utilizando la opcin de lneas de comandos -t fs-type. Al igual que fsckv, mkfs trata de adivinar el tipo de sistema de archivos consultando el archivo /etc/fstab. Si no lo consigue, crea un sistema MINIX de forma predeterminada. Para un sistema de archivos normal de Linux, probablemente sera mejor tener una particin ext2. Configuracin del servidor FTP annimo para permitir la subida de archivos Un servidor ftp es quien permite publicar archivos para su transferencia, esto se puede hacer de una forma privada (utilizando usuarios, claves y restriccin de archivos y directorios), medianamente privada (utilizando usuarios y claves, pero sin restriccin de navegacin del disco) o pblica (permitiendo al pblico en general a ingresar al equipo para "bajar" archivos de un lugar determinado del disco). Configuracin El archivo /etc/ftpaccess es quien contiene toda la informacin sobre la configuracin del servidor ftp. Este archivo utiliza tres tipos de "clases" que definirn las tres formas de acceso descriptas anteriormente (privada, medianamente privada y pblica). Ejemplo class all real,guest,anonymous * compress yes all tar yes all chmod yes guest delete yes guest

overwrite yes guest rename yes guest chmod no anonymous delete no anonymous overwrite no anonymous rename no anonymous Existe tres tipos de clases de usuarios predefinidas, real (usuarios locales generalmente, forma medianamente privada), anonymous (usuarios que entran en la categora de annimo ya que no necesitan identificarse con un usuario real, forma pblica) y guest (usuarios que poseen nombre de usuario y clave individuales y que tienen permitido navegar un espacio del disco en particular, forma privada) La primer lnea del archivo define una nueva clase que integra a las tres clases predefinidas, esta nueva clase recibe el nombre de all, pero como no es un nombre reservado se podra utilizar cualquier otro. Las clases se pueden definir tambin dependiendo de donde vienen, en este caso, al utilizar el asterisco "*", se especifica que la clase all sern todos los usuarios que provengan de todos los nmero de IP. En las lneas subsiguientes se define que acciones podr realizar cada clase: compress: Agrega capacidades de compresin a los archivos tar: Agrega capacidades de archivos en formato tar chmod: Permite o no cambiar los permisos a los archivos delete: Permite o no borrar archivos overwrite: Permite o no sobrescribir archivos rename: Permite o no mover o renombrar archivos Armado de usuarios de acceso annimo Para configurar el usuario de acceso annimo se tienen que seguir los siguientes pasos: 1.Crear un usuario ftp, sin shell y sin clave 2.Crear los directorios "bin", "lib" y "etc" en el home del usuario ftp 3.Copiar los archivos "ls", "tar", "compress", "gzip" al directorio "bin" recientemente creado 4.Copiar los archivos "ld-2.1.1.so", "libc-2.1.1.so", "libnsl-2.1.1.so" y "libnss_files-2.1.1.so" 5.Armar links simblicos de las bibliotecas: 6.ld-linux.so.2 -> ld-2.1.1.so 7.libc.so.6 -> libc-2.1.1.so 8.libnsl.so.1 -> libnsl-2.1.1.so 9.libnss_files.so.2 -> libnss_files-2.1.1.so 10.En el directorio "etc" copiar el archivo /etc/passwd quitndole los usuarios locales (dejando slo los estndar) Armado de usuarios de acceso privado Para el armado de usuarios de acceso privado debemos editar el archivo /etc/ftpaccess para indicarle al ftpd cual es el directorio privado del usuario y tambin que chequee el UID y GID del usuario. Para tal efecto, agregar las ultimas 3 lineas del siguiente listado: class all real,guest,anonymous * email root@localhost loginfails 5 readme README* login readme README* cwd=*

message /welcome.msg login message .message cwd=* compress yes all tar yes all chmod no guest,anonymous delete no guest,anonymous overwrite no guest,anonymous rename no guest,anonymous log transfers anonymous,real inbound,outbound shutdown /etc/shutmsg passwd-check rfc822 warn guest-root /home/pepe restricted-uid pepe restricted-gid pepe Armado de usuarios de acceso medianamente privado Estos usuarios no llevan ningn tipo de configuracin porque son usuarios normales, simplemente hay que darlos de alta. Existen muchas opciones dentro del archivo /etc/ftpaccess que permiten adaptar el servicio de FTP a casi cualquier instalacin. Se recomienda leer la pgina del manual en lnea ftpaccess(5) para informacin ms detallada. Restricciones a la subida de archivos Para la siguiente prctica se asume que el archivo /etc/passwd contiene un usuario para FTP annimo de la siguiente forma: ftp:*:95:95::/home/ftp: En caso de no figurar este usuario la mquina no est configurada para FTP annimo. Adicionalmente, si aparecen los usuarios 'ftp' o 'anonymous' en el archivo /etc/ftpusers, no estar permitido el FTP annimo. En el archivo /etc/ftpaccess necesitaremos una clase de acceso annimo. La siguiente lnea permite el FTP annimo desde cualquier origen: class anonftp anonymous * Para prevenir que los usuarios de FTP annimo intenten un ataque de denegacin de servicio (Denial of Service = DoS) contra su sistema, debe crearse un sistema de archivos especial (una particin o disco) para recibir los archivos que se suban. Este sistema de archivos separado proteger el servidor limitando el tamao total de todos los archivos que se suban y previniendo que estos archivos ocupen el espacio disponible en el servidor. Para este ejemplo, montaremos el sistema de archivos en el punto /home/ftp/incoming Por defecto el servidor no permite la subida de archivos a los usuarios FTP annimo. Solamente para estar seguros y para no olvidarlo, agregamos al /etc/ftpaccess la siguiente lnea: upload /home/ftp * no

Esto significa "para cualquier usuario cuyo home directory sea el rea de FTP annimo, /home/ftp, no permitir la subida de archivos". Como se dijo, esto es as por defecto, pero lo agregamos para no olvidarlo. Ahora permitiremos la subida de archivos en el sistema de archivos incoming. DEBEMOS agregar una lnea permitiendo este privilegio a los usuarios de FTP annimo. Por ahora no queremos permitirles que creen directorios (se recomiendo JAMAS permitir esto, pero igual mostraremos cmo hacerlo). Se quiere asegurar que el servidor est seguro y no es usado como un punto de trnsito para piratas informticos (warez traders), de modo que setearemos los permisos de directorios del rea incoming para prevenir que cualquiera vea qu hay all y haremos el rea de slo escritura para usuarios annimos. Primero, necesitamos un administrador del servicio FTP, alguien que sea el owner de los archivos, pero que no sea el usuario root o el annimo. Algo como la siguiente lnea en /etc/passwd funcionar: ftpadmin:*:96:96::/home/ftp: Setearemos los permisos del rea incoming y el owner con valores seguros. Se recomienda lo siguiente: chown ftpadmin /home/ftp/incoming chgrp ftpadmin /home/ftp/incoming chmod 3773 /home/ftp/incoming En realidad ftpadmin puede ser el owner de ms directorios, pero por ahora slo contemplamos la seccin de subida de archivos. Finalmente permitiremos la subida de archivos. Una ltima consideracin, ya sea que se permita la bajada de directorios completos mediante tar o no, hay que asegurarse que nadie pueda bajar toda el rea incoming usando tar. Para hacer esto crearemos un archivo especial llamado '.notar' en los directorios FTP e incoming: touch /home/ftp/.notar chmod 0 /home/ftp/.notar touch /home/ftp/incoming/.notar chmod 0 /home/ftp/incoming/.notar El archivo .notar de longitud cero puede confundir algunos clientes de web y proxies, de modo que lo haremos imposible de bajar. noretrieve .notar Ahora si permitiremos la subida, ingresar lo siguiente en /etc/ftpaccess: upload /home/ftp /incoming yes ftpadmin ftpadmin 0440 nodirs Hay que remarcar que el directorio para la subida es relativo al punto de vista del usuario durante la sesin FTP. Lo que esto dice es "Para cualquier usuario cuyo home directory es el rea de FTP annimo, /home/ftp, permitir la subida de archivos en el directorio /incoming pero no permitir la creacin de nuevos directorios. Cambie todos los archivos subidos para que el owner sea el administrador de FTP, marcarlos como archivos de slo lectura para que no est permitida su bajada". Si los archivos subidos deben estar disponibles para ser bajados lo ms seguro es pedirle al administrador de FTP que los mueva a un rea de acceso pblico ymodifique los permisos despus de validarlos y aprobarlos. S que esto puede sonar excesivo, pero a la larga es lo mejor. Algunos sitios FTP prefieren vivir peligrosamente y permiten a los usuarios annimos la creacin de directorios. Yo no lo recomiendo; no puede hacerse con absoluta seguridad. Si insisten, sin embargo, Ud. puede al menos limitarlos a un slo nivel de directorios. Por ejemplo, reemplazando

la sentencia upload recientemente agregada con lo siguiente: upload /home/ftp /incoming yes ftpadmin ftpadmin 0440 dirs 3773 upload /home/ftp /incoming/* yes ftpadmin ftpadmin 0440 nodirs La primer lnea permite que se creen directorios en el rea incoming y fuerza el uso de permisos seguros en ella. La segunda previene la creacin de otros subdirectorios. Ntese que uno de los problemas con la creacin de directorios es que no existe una forma de crear automticamente un archivo '.notar' en el nuevo directorio, de modo que un usuario hbil puede bajarlo de todas formas utilizando la compresin tar sobre la marcha. Una ltima consideracin: dado que el rea incoming no debe permitir la bajada de archivos, y dado que es un sistema de archivos, existir un rea lost+fount; sera deseable agregar la siguiente sentencia para estar seguros que no ocurrir la bajada de archivos: noretrieve /home/ftp/incoming o, como mnimo, agregar lo siguiente para prevenir la bajada de los archivos ubicados en /lost+found: noretrieve /home/ftp/incoming/lost+found Restricciones de subida para usuarios invitados (guest) La configuracin del servidor FTP para usuarios invitados est cubierta en el Guest-HOWTO. No es mi propsito cubrir aqu el mtodo para setear el acceso invitado. Si an no lo ha hecho, revise la informacin en: ftp://ftp.fni.com/pub/wu-ftpd/guest-howto Para este ejemplo, asumir que Ud. tiene entradas similares a las siguientes en el archivo /etc/passwd de su sistema: dick:*:1010:1010::/home/users/./dick:/bin/sh jane:*:1011:1011::/home/users/./jane:/bin/sh Por defecto, el servidor WU-FTPD le brindar privilegios de subida de archivos a todos los usuarios invitados. Los usuarios de ejemplo estn con chroot (raz cambiada) al directorio /home/users y no pueden acceder otra rea del sistema de archivos fuera de esa estructura de directorios. Lo que nosotros queremos, por lo tanto, es simplemente proteger las reas del entorno chroot de las cuales deseamos mantener alejados a los usuarios. En una instalacin mnima, deben existir los subdirectorios bin, etc y dev en el directorio /home/users. Pueden existir otros archivos y subdirectorios dependiendo de los requerimientos de su sistema operativo. No queremos que los usuarios puedan subir archivos en estas reas. En caso que algo les suceda a los permisos de las mismas (Ud. sete los permisos a valores seguros,no?), Ud. deber denegar los privilegios de subida de archivos en su archivo ftpaccess. En su caso, tendra lo siguiente: upload /home/users/* / no upload /home/users/* /bin no upload /home/users/* /etc no upload /home/users/* /dev no Mientras estamos en esto, podemos prevenir la bajada de archivos con noretrieve. No olvide prevenir la bajada de directorios completos con tar creando los archivos .notar en cada directorio. noretrieve /home/users/bin noretrieve /home/users/etc

noretrieve /home/users/dev Restricciones a la subida de archivos para usuarios reales Primero que nada, djeme decir que Ud. no debe tener ningn usuario de tipo real en su servidor FTP. O, siendo ms realista, el nico usuario real ser el administrador del servidor. Dicho esto, los usuarios reales deben estr restringidos solamente a subir archivos en reas especficas. Comencemos con un usuario real en el /etc/passwd: ftpadmin:*:109:109::/home/users/ftpadmin:/bin/sh Nuevamente, por defecto, el server permitir la subida de archivos en cualquier lado, de modo que comience por revocar esto y luego permita solamente lo que queremos: upload /home/users/ftpadmin * no upload /home/users/ftpadmin /tmp yes nodirs upload /home/users/ftpadmin /home/users/ftpadmin yes upload /home/users/ftpadmin /home/users/ftpadmin/* yes upload /home/users/ftpadmin /home/ftp/incoming yes ftpadmin ftpadmin 0440 nodirs Acerca de las reglas de coincidencia Tenga mucho cuidado al armar reglas de coincidencia utilizando comodines. Puede ser tentador, por ejemplo, utilizar lo siguiente: upload /home/users/ftpadmin /home/users/ftpadmin* yes Pero, si lo hace, habr consecuencias no esperadas. En el ejemplo, estamos intentando restringir los privilegios de subida de archivos solamente al directorio home del usuario ftpadmin. Considere, sin embargo, que esto coincidir con los siguientes directorios: /home/users/ftpadmin /home/users/ftpadmin/mirrors /home/users/ftpadministration Este ltimo directorio no es deseado. En cambio utilice: upload /home/users/ftpadmin /home/users/ftpadmin yes para hacer coincidir el directorio home del usuario ftpadmin en si, utilice: upload /home/users/ftpadmin /home/users/ftpadmin/* yes para que coincidan todos los subdirectorios dentro del home del ftpadmin. Uso de Samba Con Samba se puede: Compartir un sistema de archivos de Linux con Windows 95, 98, o NT. Compartir un sistema de archivos de Windows 95, 98, o NT con Linux Compartir una impresora conectada al sistema de Linux con los sistemas Windows 95, 98, o NT. Samba es el protocolo que utilizan los sitemas operativos de Microsoft para compartir archivos y servicios de impresin. Microsoft e Intel desarrollaaron el sistema de protocolo SMB en 1987, y posteriormente Andrew Tridgell lo integr a los distintos sistemas UNIX y despus a Linux. NOTA: en la actualidad, Microsoft propone otro estndar para la comparticin de archivos, llamado common Internet File System (Sistemas Comn de Archivos de Internet, CIFC). Este estndar se ha presentado ante el Grupo de Trabajo Especial de ingeniera de Internet (Internet Engineering Task

Forcel) pero CIFS todava no se ha adoptado de forma generalizada, y menos an por la comunidad de desarrollo de Linux. La suite de samba est formada por varios componentes. El demonio smbd proporciona los servicios de archivo e impresin a clientes de SMBD, como Windows para Grupos de Trabajo, Windows NT, o LanManager. El archivo de configuracin para ste demonio se describe en smb.conf. El demonio nmdb suministra el Servicio de Nombres de Dominio de NetBIOS (Sistema Bsico de Entrada/Salida para Red) as como soporte para la navegacin en internet. Tambin puede ejecutarse de firma interactiva para consultar otros demonios de servicio de nombres. El programa smbclient implementa un cliente de tipo FTP simple. Esto resulta de gran actvidad para compartir SMB con otros servidores compatibles, como las computadoras Windows, y puede utilizarse tambin para que una mquina UNIX utilice una impresora conectada a un servidor SMB, como un PC que ejecute Windows 98. La utilidad testparm permite probar el archivo de configuracin smb.conf. la utilidad smbstatus, por su parte, permite saber quin est utilizando el servidor smbd en un determinado momento. Instalacin Samba Samba puede instalarse durante el proceso de instalacin del sistema, o posteriormente mediante RPM. Si necesita instalar el paquete, primero debe descargar la versin actual desde el web de Red Hat (www.redhat.com) Despus puede instalar el paquete (la actual versin es samba 1.9.18p1i386.rpm) utilizando el comando siguiente: Rpm -ivh samba-1.9.18p-1i386.rpm El paquete debe incluir todos los archivos necesarios para ejecutar Samba, incluidos los dos programas primarios smbd y nmbd. Sin embargo, si utiliza otra distribucin es posible que tenga que volver a compilar los distintos programas. La seccin [global] La seccin [global] controla los parmetros para todo el servidor smb. Esta seccin tambin proporciona los valores por defecto para el resto de secciones. [global] ; workgroup = NT -Domain-Name, eg: REDHAT4 workgroup = WORKGROUP ; coment es the equivalent of the NT Description field coment = RedHat Samba Server ; volume = used to emulate a CDRom label (can be set on a per share basis) volume = RedHat4 La primera lnea de la seccin global que se presenta en el Listado 15.1 define el grupo de trabajo al que pertenecer la computadora en la red. Despus, el archivo incluye un comentario para el sistema e identifica una etiqueta de volumen. ; printing = BSD or SYSV or AIX, etc printing = nsd printcap name = /etc/printcap lasd printers = yes La entrada siguiente indica al servidor Samba el tipo de sistema de impresin que se encuentra disponible en su servidor, y la lnea siguiente informa de la ubicacin del archivo de configuracin de la impresora. La lnea que sigue a continuacin ordena a Samba que ponga a disposicin de la red todas las impresoras definidas en el archivo printcap. ; Uncomment this if you want a guest accoount ; gues account = poguest log file = /var/log/samba-log=%m ; Put a capping on the siza of the log files (in Kb) max log size = 50

la entrada siguiente proporciona el nombre de usuario para una cuenta de invitado o guest en el servidor. Esta cuenta se utiliza para autenticar a los usuarios que deseen utilizar los servicios Samba disponibles para las conexiones guest. La entrada de archivo de registro especifica la ubicacin del archivo de registro para cada cliente que acceda a los servicios Samba. El parmetro %m indica al servidor Samba que cree un archivo de registro aparte para cada cliente. La entrada max log size establece un tamao mximo de archivo para todos los registros creados. La seccin [inicios] La seccin [inicios] permite a los clientes de red conectarse a un directorio inicial de usuario en su servidor sin tener una entrada especfica en el archivo smb.conf. Cuando se solicita el servicio, el servidor Samba busca el archivo smb.conf para la secin especfica correspondiente al servicio solicitado. Si no encuentra el servicio en cuestin, Samba comprueba la existencia de una seccin [inicios]. Si dicha seccin existe, Samba busca el archivo de contrasea para localizar el directorio inicial del usuario que est realizando la consulta. Si no lo encuentra, este directorio pasa a compartirse con la red. [homes] comment se muestra a los clientes para que sepan qu comparticiones estn disponibles. La entrada browseable indica a Samba como debe mostrar dicha comparticin en una lista de navegacin por red. El parmetro red-only controla la creacin y modificacin de archivos por parte de ususarios en el directorio inicial cuando este est siendo compartido en la red. Los parmetros preserve case y short preserve case indican al servidor que respete el tipo de letra de cualquier informacin escrita referida al servidor. Esto es importante porque aunque los sistemas de archivo de Windows normalmente no son sencibles al uso de maysculas y minsculas, los sistemas de archivo de Linux si lo son. La ltima entrada detremina los permisos para cualquier archivo creado en el directorio compartido. La seccin [impresoras] La seccin [impresoras] define la forma en que se controlan los servicios de impresin si no se encuentran entradas especficas en el archivo smb.conf. Al igual que la sseccin [inicios], si no se localiza una entrada especfica para un servicio de impresin, Samba utiliza la seccin [impresoras] (si existe) para permitir que un usuario pueda conectarse a cualquier impresora definida en el archivo /etc/printcap. [printers] comment = All Printers path = /var/spool/samba browseable = no printable = yes ; Set public = yes to allow 'guest account ' to print public = no writable = no create mode = 0700 Las entrada comment, browseable y crete mode tienen el mismo significado en el especificado anteriormente en la seccin [inicios]. La entrada path indica la ubicacin del archivo de espera que debe utilizarse al ejecutar una peticin de impresin va SMB. Si el valor printable esta detrerminado como S, significa que dicho recurso de impresin puede utilizarse para imprimir. La entrada public controla el acceso a las tareas de impresin para las cuentas de guest. Comparticin de directorios Una vez configurados los valores por defecto para el servidor Samba, pueden crearse directorios compartidos especificos, restringuiendo o no su acceso a otros usuarios. Por ejemplo, supongamos

que quisiera crear un directorio al que slo pudiera acceder un usuario. Para ello, tendra que crear un anueva seccin y suministrar la informacin pertinente. Por lo general, tendra que especificar al servidor SMB los datos del usuario, la ruta del directorio y la informacin de configuracin, tal y como se muestra a continuacin: [jacksdir] comment = Jack's remote source code directory path = /usr/local/src callid users = tackett browsable = yes public = no writable = yes create mode = 0700 Con el ejemplo anterior se creara el directorio compartido denominado jacksdir. La ruta del directorio en el servidor local es /usr/local/ssrc. Puesto que la entrada browsable est configurada de forma afirmativa (S), jacksdir aparecer en la lista de navegacin de la red. Sin embargo, como la entrada public tiene asignada el valor No, slo el usuario llamado tackett puede acceder a este directorio utilizando Samba. Podra permitir que otros usuarios accedieran a este direectorio con slo incluirlos en la entrada valid users. Prueba del archivo smb.conf Una vez creado el archivo de configuracin, conviene probarlo para asegurarse de qu est correcto con el programa testparm, testparm es un programa sencillo de prueba que permite comprobar la correccin interna del archivo de configuracin /etc/smb.conf. Si el programa no detecta ningn fallo, puede utilizar el archivo de configuracin con la certeza de que smnd cargar sin problemas el archivo de configuracin. PRECAUCIN: El uso de testparm NO garantiza que los servicios especificados en el archivo de configuracin estarn disponibles o se ejecutarn satisfactoriamente. Testparm tiiene asignada la siguiente lnea de comandos: tstparm [configfile [hostaname hostip] ] donde confgfile indica la ubicacin del archivo smb.conf si ste no se encuentra en su ubicacin predeterminada (/etc/smb.conf). el parmetro opcional hostname hostIP ordena testparm que compruebe si le sistema central tiene acceso a los servicios prestados en el archivo smb.conf. El ejemplo siguiente ofrece un resultado de muestra de la ejecucin de testparm. Si el archivo smb.conf contiene algn error, el programa lo detectar generando el correspondiente mensaje de error. # testparm Load smb confg file from /etc/smb.conf Processing section "[homes]" Processing section "[printers] Loaded services file OK. Press enter to see a dump of you service difinitions Al pulsar la tecla <Intro>, testparm empezar a evaluar cada una de las secciones definidas en el archivo de configuracin. Ejecucin del servidor Samba El servidor Samba est formado por dos demoninos, smbd y nmbd. El demonio smbd prporciona los servicios de comparticin de archivos e impresin. El demonio nmbd, por su parte, suministra el soporte para el servidor de nombres NetBIOS. El servidor Samba puede ejecutarse desde los guiones INIT o desde inetd como un servicio de sistema. Puesto que Red Hat y Caldera inician los servicios SMB desde los guiones INIT en lugar de hacerlo como un servicio desde initd, puede utilizar el comando siguiente para iniciar o detener el servidor SMB.

/etc/re.d/init.d/samba start;start Uso de smbclient El programa smbclient permite a los usuarios de Linux acceder a comparticiones de SMB, generalmente ubicadas en computadoras Windows. Esto es posible ya que si se desea acceder a archivos ubicados en otras mquinas de Llinux, pueden utilizarse una gran variedad de mtodos como FTP, NFS, o los comandos r- (como rcp). Smbclient proporciona una interfaz de tipo FTP que permite transferir archivos por medio de una red compartida a otra computadora que ejecute un servidor SMB. Por desgracia a diferencia de NFS, smbclient no permite montar otra comparticin como un directorio local. smbclient facilita opciones de lnea de comandos para realizar consultas en un servidor en relacin con los directorios compartidos o para intercambiar archivos. Para conocer en ms detalles las opciones de lnea de comandos disponibles, consulte la pgina del manual para smbclient. Utilice el comando siguiente para obtener una lista de todas las comparticiones disponibles en la mquina win. net.harf.com: smbclient -L -I win. net.harf.com El comando -L se encarga de solicitar la lista. El parmetro -I ordena a smbclient que trate los siguientes nombres de mquinas como una entrada especfica de DNS (Servidor de nombres de Dominio) en vez de una entrada de NetBIOS. Para transferir un archivo, primero tiene que conectarse al servidor Samba utilizando el comando siguiente: Smbclient ?\\WORKGROUP\PUBLIC? -I win. net.harf.com -U tackett El parmetro ?\\WORKGROUP\PUBLIC? especifica el servicio remoto en la otra computadora. Normalmente se trata de un directorio de sistema de archivos o de una impresora. La opcin -U permite especificar el nombre del usuario con el que se desea conectar. Samba solicita entonces una contrasea (si as lo requiere la cuenta) y muestra en pantalla el indicador siguiente: Smb: \ Donde \ indica el directorio actual del trabajo. Desde esta lnea de comandos, puedes emitir cualquiera de los comandos especificados en la Tabla 15.1 para transferir y trabajar con archivos. Tabla 15.1 Comandos de smbclient Comando Parmetro Descripcin o help [comando] Genera un mensaje de ayuda cuando as se requiere, o de forma general si no se especifica ningn comando. ! [comando de shell] Ejecuta el comando de shell especificado o pone al usuario en un indicador de shell. Cd [directorio] Cambia al directorio especificado en la computadora del servidor (no en la computadora local). Si no se especifica ningn directorio, smbclient registrar el directorio actual de trabajo. Lcd [directorio] Cambia al directorio especificado en la computadora local. Si no se especifica ningn directorio, smbclient registrar el directorio actual de trabajo en la computadora local. Del [archivos] Los archivos especficos en el servidor se eliminarn si el usuario tiene permiso para hacerlo. Los archivos pueden contener caracteres comodn. Dir o ls [archivos] Relaciona en una lista los archivos especficados. Tambin puede utilizarse el comando ls para obtener una lista de archivos. Exit o quit None Sale del programa smbclient Get [archivo remoto] [nombre local] Recupera el archivo remoto especificado y lo almacena en el servidor local. Si se especifica un nombre local, el archivo copiado se guardar con este nombre de archivo en vez de con el nombre de archivo que tena en el servidor remoto. Mget [archivos] Copia todos los archivos especificados -incluidos los que coincidian con algn carcter comodn-en la computadora local. Md o mkdir [directorio] Crea el directorio especificado en la computadora remota.

Rd o rmdir [directorio] Elimina el directorio especificado de la computadora remota. Put [archivo] Copia el archivo especificado de la computadora local al servidor. Mput [archivo] Copia todos los archivos especificados de la computadora local al servidor. Print [archivo] Imprime el archivo en cuestin en la computadora remota. Queue None Muestra todos los trabajos en espera de ser imprimidos en el servidor remoto. Samba (Compartiendo archivos con sistemas operativos MS-Windows 3.11/95/98/NT) Linux tiene la capacidad de entender los protocolos utilizados por Microsoft en sus sistemas operativos ms populares (Windows 3.11/95/98/NT). Estos protocolos son SMB (Server/Session Message Block), NetBios y LanManager. En este documento se explicar como hacer para que mquinas Windows vean discos de Linux y tambin sus impresoras. Se defini ver esta pequea porcin de todas las cosas que se puede hacer con Samba, ya que es la ms comn y utilizada. (extracto del archivo Samba-Como, http://www.linux.org.ar/LuCAS/COMO-I...MOs/Samba-Como) Configuracin General (/etc/smb.conf) La configuracin de Samba en un Linux (u otra mquina UNIX) es controlada por un solo fichero, /etc/smb.conf. Este fichero determina qu recursos del sistema quieres compartir con el mundo exterior y que restricciones deseas poner en ellos. Como las siguientes secciones 'direccionarn' la comparticin de unidades e impresoras de Linux con mquinas Windows, el fichero smb.conf mostrado en esta seccin es lo ms simple posible, solo para propsitos introductorios. No te preocupes por los detalles, an. Otras secciones ms adelante introducirn los conceptos ms importantes. Cada seccin del fichero empieza con una cabecera como [global], [impresoras], etc. La seccin [global] define unas pocas variables que Samba usar para definir la comparticin de todos los recursos. La seccin [homes] permite a los usuarios remotos acceder a sus respectivos directorios principales en la mquina Linux local (cada uno al suyo nada ms). Esto es, si un usuario de Windows intenta conectar a este recurso desde su mquina Windows, ser conectado a su directorio personal. A tener en cuenta que para hacer esto, tiene que tener una cuenta en la mquina Linux. ;-) El fichero smb.conf que viene debajo como ejemplo permite a los usuarios remotos acceder a su directorio principal en la mquina local y escribir en un directorio temporal. Para que un usuario de Windows vea estos recursos, la mquina Linux debe estar en la red local. Entonces el usuario simplemente conecta una unidad de red desde el Explorador de Windows o el Windows File Manager. Fjate que en las siguientes secciones, se darn entradas adicionales a este fichero para permitir la comparticin de ms recursos. ; /etc/smb.conf ; ; Reinicia el servidor cada vez que hagas cambios a este fichero, ej: ; /etc/rc.d/init.d/smb parar ; /etc/rc.d/init.d/smb empezar [global] ; Quita el comentario a la siguiente lnea si quieres cuentas de invitado ; guest account = nobody log file = /var/log/samba-log.%m lock directory = /var/lock/samba share modes = yes [homes] comment = Directorios principales

browseable = no read only = no create mode = 0750 [tmp] comment = Espacio de ficheros temporales path = /tmp read only = no public = yes Compartiendo Una Unidad Linux Con Mquinas Windows Como se muestra en el fichero smb.conf anterior, compartir una unidad Linux con usuarios Windows es fcil. De todas maneras, como todo lo dems con Samba, puedes tener las cosas MUY controladas. Aqu tienes unos pocos ejemplos: Para compartir un directorio con todo el mundo, crea una copia de la seccin [tmp] aadiendo algo como esto al smb.conf: [public] comment = Cosas publicas path = /home/public public = yes writable = yes printable = yes Para que este directorio lo pueda leer todo el mundo, pero que slo lo puedan cambiar gente del grupo 'laborales', modifica la entrada de esta manera: [public] comment = Cosas publicas path = /home/public public = yes writable = yes printable = no write list = @laborales Para aprender otros trucos con que jugar con las unidades compartidas, mira la documentacin de Samba o las pginas del man. Compartiendo Una Unidad Windows Con Mquinas Linux Se incluye un programa cliente de SMB para mquinas UNIX con la distribucin de Samba. Provee un interfaz estilo ftp para la lnea de comandos. Puedes usar esta utilidad para transferir ficheros entre un 'servidor' Windows y un cliente unix. Para ver qu recursos estn disponibles en un host dado, ejecuta: /usr/sbin/smbclient -L host donde 'host' es el nombre de la mquina que quieres 'ver'. Esto devolver un lista de nombres de 'servicios' --esto es, nombres de unidades o impresoras que puede compartir contigo--. A menos que el servidor SMB no tenga la seguridad configurada, te preguntar por una clave. Dale la clave de la cuenta de 'invitados' o de tu cuenta personal en esa mquina. Por ejemplo: smbclient -L 10.10.3.80 - U user La salida de este comando debera ser algo parecido a esto: Server time is Sat Aug 10 15:58:27 1996 Timezone is UTC+10.0 Password:

Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51] Server=[EQUIPONT] User=[] Workgroup=[WORKGROUP] Domain=[] Sharename Type Comment --------- ---- ------ADMIN$ Disk Remote Admin public Disk Public C$ Disk Default share IPC$ IPC Remote IPC OReilly Printer OReilly print$ Disk Printer Drivers This machine has a browse list: Server Comment --------- ------HOPPER Samba 1.9.15p8 KERNIGAN Samba 1.9.15p8 LOVELACE Samba 1.9.15p8 RITCHIE Samba 1.9.15p8 ZIMMERMAN La lista muestra otros servidores SMB con recursos para compartir con la red. Para usar el cliente, ejecuta: /usr/sbin/smbclient servicio <password> donde 'servicio' es una mquina y un servicio. Por ejemplo, si ests intentando entrar en un directorio que ha sido compartido como 'public' en una mquina llamada zimmerman, el servicio debera llamarse \\zimmerman\public. De todas maneras, debido a restricciones del shell, necesitars poner las barras invertidas con secuencias de escape, por lo que al final saldr algo parecido a esto: smbclient \\\\zimmerman\\public - U user donde 'miclave' es una cadena literal con tu password. Entonces te aparecer el 'prompt' del smbclient: Server time is Sat Aug 10 15:58:44 1996 Timezone is UTC+10.0 Domain=[WORKGROUP] OS=[Windows NT 3.51] Server=[NT LAN Manager 3.51] smb: \> Escribe 'h' para obtener una ayuda de como usar el cliente: smb: \> h ls dir lcd cd pwd get mget put mput rename more mask del rm mkdir md rmdir rd prompt recurse translate lowercase print printmode queue cancel stat quit q exit newer archive tar blocksize tarmode setmode help ? ! smb: \> Si sabes usar el ftp, no deberas necesitar las pginas del man del smbclient.Compartiendo Una Impresora Linux Con Mquinas Windows Para compartir una impresora Linux con mquinas Windows, necesitas asegurarte de que la

impresora est preparada para trabajar bajo Linux. Si puedes imprimir desde Linux, preparar una 'comparticin' SMB de la impresora es automtico. Echa un vistazo el COMO Imprimir (Printing HOWTO) para poner a punto la impresora con Linux. Como el autor usa una impresora conectada a una mquina Windows NT, esta seccin no debera ser vista como algo definitivo, sino como mera sugerencia. Cualquiera que tenga detalles que compartir con el autor, por favor, que los mande a dwood@plugged.net.au para que esta seccin pueda ser completada. Aade la configuracin de la impresora a tu smb.conf: [global] printing = bsd printcap name = /etc/printcap load printers = yes log file = /var/log/samba-log.%m lock directory = /var/lock/samba [printers] comment = Todas las impresoras security = server path = /var/spool/lpd/lp browseable = no printable = yes public = yes writable = no create mode = 0700 [ljet] security = server path = /var/spool/lpd/lp printer name = lp writable = yes public = yes printable = yes print command = lpr -r -h -P %p %s Asegrate de que el 'path' de la impresora (en este caso bajo [ljet]) se corresponde al directorio de 'spool' en /etc/printcap! NOTA: Hay algunos problemas compartiendo impresoras conectadas a UNIX con mquinas Windows NT usando Samba. Un problema es que NT 'vea' la impresora compartida correctamente. Para conseguirlo, mrate las notas en la distribucin de Samba en el fichero docs/WinNT.txt. El otro va con problemas con las claves. Mrate los comentarios en ese mismo fichero para conseguir una molesta ganancia de conocimientos y fallos (jejeje) para arreglar el problema. Documentacin de referencia Existen muchos sitios dedicados a las diferentes configuraciones de Samba y SMB, pero el sitio que centraliza todo el proyecto Samba es http://www.samba.org Diagnsticos a un servidor Samba Fuente de informacin: DIAGNOSIS.txt for Samba release 2.0.6 Fecha: 11/Nov/99 Autor: Andrew Tridgell

Este archivo contiene una lista de tests que se pueden realizar para validar un servidor Samba. Permite conocer cual es la posible causa de problemas si falla uno de estos pasos. Si todos los tests se pasan satisfactoriamente es probable que el servidor funcione bien. Deben realizarse TODOS los tests, en el orden mostrado. Se ha tratado de elegirlos cuidadosamente de tal forma que los ltimos tests usen solamente funciones verificadas en los primeros tests. Cualquier adicin a este juego de tests es bienvenida. Por favor enviar adiciones por e-mail a samba-bugs@samba.org. En caso de enviar un e-mail diciendo "no funciona" sin haber seguido este procedimiento de testeo, no hay que sorprenderse si el e-mail es ignorado. ASUNCIONES ----------En todos los testeos se asume que Ud. tiene un servidor Samba llamado BIGSERVER y una PC llamada ACLIENT. Tambin se asume que la PC esta corriendo Windows for Workgroups con una copia reciente del stack TCP/IP de Microsoft. Alternativamente la PC puede estar corriendo Windows 9x o Windows NT (Workstation o Server). El procedimiento es similar para otros tipos de clientes. Se asume que Ud. conoce el nombre de un directorio compartido disponible en su smb.conf. Se asume que ese recurso se llama "tmp". Ud. puede agregar un recurso tipo "tmp" agregando lo siguiente al smb.conf: [tmp] comment = archivos temporarios path = /tmp read only = yes ESTOS TESTS ASUMEN LA VERSIN 1.9.16 O POSTERIOR DEL KIT SAMBA. ALGUNOS COMANDOS MOSTRADOS NO EXISTAN EN VERSIONES ANTERIORES. Por favor preste atencin a los mensajes de error recibidos. Si cualquier mensaje de error reporta que su servidor esta siendo poco amistoso ("Your server software is being unfriendly") lo primero a chequear es que la resolucin de nombres IP este seteada correctamente, por ej.: asegrese de que su archivo /etc/resolv.conf apunta a servidores de nombre que realmente existen. Asimismo, si Ud. no tiene acceso a un servidor DNS para resolucin de nombres, por favor chequee que el seteo en su archivo smb.conf sea "dns proxy = no". La mejor forma de chequear esto es con "testparm smb.conf". TEST 1: ------En el directorio donde se encuentra el archivo smb.conf, correr el comando "testparm smb.conf". En caso de reportar cualquier error entonces el smb.conf tiene alguna falla. Nota: Su archivo smb.conf puede encontrarse en: /etc O en: /usr/local/samba/lib

TEST 2: ------Corra el comando "ping BIGSERVER" desde la PC y "ping ACLIENT" desde el servidor Linux. Si no obtiene una respuesta valida entonces el software de TCP/IP no esta correctamente instalado. Note que Ud. debe arrancar una ventana "DOS prompt" en la PC para correr ping. Si se obtiene un mensaje diciendo "host not found" o similar, entonces el software de DNS o el archivo /etc/hosts no estn correctamente seteados. Es posible correr samba sin entradas DNS para el server y el cliente, pero se asume que hay entradas correctas para los tests siguientes. Otra razn por la cual ping puede fallar es si el anfitrin esta corriendo algn tipo de software de firewall. Deben aligerarse las reglas de entrada a la estacin de trabajo en cuestin, tal vez brindando acceso desde otra subred (en Linux esto se hace con ipdwadm o ipchains). TEST 3: ------Corra el comando "smbclient -L BIGSERVER" en la maquina Linux. Debe obtenerse una lista de los directorios compartidos disponibles. Si se obtiene un mensaje de error conteniendo la cadena "Bad password" entonces probablemente este incorrecta una de las lneas "hosts allow", "hosts deny" o "valid users" en el smb.conf, o la cuenta de invitado no es vlida. Chequee que la cuenta de invitado este usando "testparm" y remueva temporalmente cualquier lnea "hosts allow", "hosts deny", "valid users" o "invalid users". Si se obtiene como respuesta "connection refused" entonces el servidor smbd no esta corriendo. Si lo instal en el inetd.conf es probable que haya editado ese archivo en forma incorrecta. Si lo instal como demonio entonces chequee que est corriendo, y chequee que el puerto netbios-ssn est en estado LISTEN usando "netstat -a". Si obtiene "session request failed" entonces el server rechaz la conexin. Si dice "Your server software is being unfriendly" es probable que se deba a parmetros invlidos en la lnea de comando de smbd, o algn otro problema fatal similar en el arranque inicial de smbd. Tambin chequee el archivo de configuracin (smb.conf) contra errores de sintaxis con "testparm" y que los diferentes directorios donde samba guarda sus logs y archivos de lockeo existan. Existe un nmero de razones por las cuales smbd puede rechazar o declinar un pedido de sesin. Las mas comunes involucran una o ms de las siguientes entradas en el smb.conf: hosts deny = ALL hosts allow = xxx.xxx.xxx.xxx/yy bind interfaces only = Yes En el ejemplo arriba, no se permite el ingreso a ningn pedido de sesin que se traslada automticamente a la direccin del adaptador loopback 127.0.0.1. Para solucionar el problema, cambie esas lneas a: hosts deny = ALL hosts allow = xxx.xxx.xxx.xxx/yy 127.

NO utilice el parmetro "bind interfaces only" cuando se quiera utilizar el cambio de password samba, o donde smbclient deba acceder a servicios locales para resolucin de nombres o para conexin de recursos locales. (Nota: la deficiencia del parmetro "bind interfaces only" que no permite conexiones a la direccin loopback ser reparada pronto). Otro causa comn de esos dos errores es tener algo corriendo previamente en el puerto 139, como ser Samba (es decir: smbd ya corriendo desde inetd) o algo como Digital's Pathworks. Chequee el archivo inetd.conf antes de intentar arrancar smbd como demonio, puede evitarle un montn de frustracin! Otra posible causa para la falla del TEST 3 es cuando la mscara de la subred y/o la direccin de broadcast estn mal seteadas. Por favor chequee que la direccin IP / direccin broadcast / mscara de subred de la interfaz de red estn correctamente seteadas y que Samba las vea correctamente segn el archivo log.nmb. TEST 4: ------Correr el comando "nmblookup -B BIGSERVER __SAMBA__". Debera obtener la direccin IP del servidor Samba. En caso de no obtenerla nmbd est incorrectamente instalado. Chequee su inetd.conf en caso de haberlo arrancado desde all, o que el demonio est corriendo y con el puerto UDP 137 abierto. Un problema comn es que muchas implementaciones de inetd no pueden tomar muchos parmetros en la lnea de comandos. En caso de que este sea el problema, cree un script de una lnea que contenga los parmetros correctos y crralo desde inetd. TEST 5: ------Corra el comando "nmblookup -B ACLIENT '*'" Debera obtener la direccin IP de la PC. En caso contrario entonces el software cliente en la PC no est instalado correctamente, o no est arrancado, o Ud. puso mal el nombre de la PC. TEST 6: ------Corra el comando "nmblookup -d 2 '*'" Aqu se esta intentando lo mismo que en el test anterior pero con un broadcast a la direccin de broadcast por defecto. Deberan responder un cierto nmero de clientes Netbios/TCPIP en la red, aunque Samba puede no captar todas las respuestas en el corto tiempo durante el cual escucha. Ud. debera ver una serie de mensajes "got a positive name query response" provenientes de diferentes clientes. Si esto no da un resultado similar al test anterior entonces nmblookup no est obteniendo correctamente la direccin de broadcast mediante su mecanismo automtico. En este caso se puede experimentar utilizando la opcin "interfaces" en el smb.conf para configurar manualmente la direccin IP, la de broadcast, y la mscara de red.

Si su PC y el servidor no estn en la misma subred entonces debe utilizarse la opcin -B para setear la direccin de broadcast a aquella utilizada por la subred de la PC. Este test tiene muchas probabilidades de fallar si la mscara de la subred y la direccin de broadcast no son correctas (ver las notas del TEST 3 arriba). TEST 7: ------Corra el comando "smbclient '\\BIGSERVER\TMP'". Al hacer esto debera requerirse un password. Debe utilizarse el password de la cuenta con la cual Ud. est logueado en la maquina Linux. En caso de querer testear con otra cuenta deber agregarse la opcin -U al final de la lnea de comandos, por ej.: smbclient \\BIGSERVER\TMP -Ujuanperez Nota: es posible especificar el password conjuntamente con el nombre de usuario de la siguiente manera: smbclient \\BIGSERVER\TMP -Ujuanperez%mypassword Una vez ingresado el password debera verse el prompt "smb>". En caso de no obtenerse este resultado revisar los mensajes de error. En caso que diga "invalid network name" entonces el servicio "tmp" no est correctamente seteado en el smb.conf. Si dice "bad password" entonces las posibles causas son: - esta utilizando shadow passwords (u otro sistema de passwords) pero no ha compilado el soporte adecuado en el smbd - su configuracin de "valid users" es incorrecta - el password es una mezcla de maysculas y minsculas pero no se habilitado la opcin "password level" a un nivel suficientemente alto - la lnea "path =" en el smb.conf es incorrecta. Chequelo con testparm - se ha habilitado la encriptacin de passwords pero no se ha creado el archivo de passwords encriptados de SMB Una vez conectado Ud. debera poder usar los comandos "dir", "get", "put", etc. Tipee "help" para obtener instrucciones. En particular debe chequearse que la cantidad de espacio libre en disco sea correcta cuando se ejecuta el comando "dir". TEST 8: ------En la PC tipee el comando "net view \\BIGSERVER". Esto deber hacerse desde una ventana "DOS prompt". Debera obtenerse una lista de recursos compartidos en el servidor. Si se obtiene un error "network name not found" o similar entonces la resolucin de nombres por Netbios no est trabajando. Esto usualmente es causado por un problema en el nmbd. Para evitar esto puede tomarse una de las siguientes acciones (solo es necesario utilizar una): - reparar la instalacin de nmbd - agregar la direccin IP de BIGSERVER a la lista "wins server" en el seteo avanzado de TCP/IP en la PC. - habilitar la resolucin de nombres de Windows mediante DNS en la seccin de seteo avanzado de TCP/IP - agregar BIGSERVER al archivo lmhosts en la PC

Si se obtiene un error "invalid network name" o "bad password error" entonces se aplican las mismas soluciones utilizadas para el test "smbclient -L" arriba. En particular, asegrese de que la lnea "hosts allow" sea correcta (ver las man pages). De todas formas, no olvide que cuando la PC solicita la conexin al servidor Samba intentar conectarse utilizando el nombre con el cual Ud. este logueado en la mquina Windows. Hay que asegurarse de que esa cuenta exista en el servidor Samba con exactamente el mismo nombre y password. Si se obtiene "specified computer is not receiving requests" o algo similar probablemente significa que el anfitrin no puede ser contactado mediante servicios TCP. Chequee si el anfitrin esta utilizando tcp wrappers, y en caso afirmativo agregue una entrada en el archivo

También podría gustarte