Ftp An�nimo COMO
 Rodolfo Garc�a Pe�as, [email protected]
 v1.0-Sayaka, 1 Septiembre 1998

 Este COMO describe c�mo instalar, configurar y mantener un servidor
 ftp de una manera f�cil y r�pida.
 ______________________________________________________________________

 �ndice General:

 1.      Editor.

 1.1.    Copyright y cosas de esas.

 1.2.    Dedicatorias ;-).

 1.3.    Colaboraciones.

 1.4.    Realizaci�n.

 2.      Requisitos.

 3.      Instalaci�n.

 4.      Configuraci�n.

 4.1.    Cuenta de usuario.

 4.2.    /etc/ftpusers

 5.      La shell.

 6.      El directorio del ftp.

 6.1.    /home/ftp

 6.2.    /home/ftp/bin

 6.3.    /home/ftp/etc

 6.4.    /home/ftp/lib

 6.5.    /home/ftp/pub

 6.5.1.  /home/ftp/pub/incoming

 7.      El arranque.

 8.      Los archivos a ofrecer.

 9.      Configuraci�n avanzada.

 9.1.    El archivo ftpaccess .

 9.1.1.  Mensajes.

 9.1.2.  Informaci�n del servidor de ftp.

 10.     Accesos.

 10.1.   Modificaci�n de archivos.

 10.2.   Archivos no bajables.

 10.3.   Subidas al servidor.

 10.4.   El archivo ftpconversions .

 11.     Puntos clave a recordar.

 12.     Archie.

 13.     Anexo: El INSFLUG
 ______________________________________________________________________

 1.  Editor.

 La idea inicial de escribir este documento ha sido sin duda el irc.
 Hay mucha gente que entra y dice que quiere poner un servidor ftp
 corriendo en su sistema y claro est� que eso no se hace en 10 minutos.

 1.1.  Copyright y cosas de esas.

 Este como ha sido escrito por Rodolfo Garc�a (anda!! si soy yo!!),
 pero simplemente para mantener una misma l�nea de trabajo me gustar�a
 que si hay que hacer modificaciones de algo, se me indique y yo muy
 gustosamente lo har�a. Esto permitir� que dentro de 2 a�os nos
 encontremos con 16 Cacho-A-Ftp-Anonimo-HowTo incompletos y se tenga
 que perder un tiempo para organizarlo. Por otro lado no me hago
 responsable de los posibles problemas, p�rdidas, ... de datos o de
 seguridad por seguir este Como.

 1.2.  Dedicatorias ;-).

 Pues si, este ftp va dedicado a todo el mundo del canal #linux de irc-
 hispano, a los que trabajan por Linux en Espa�a, en especial a Ismael
 Olea, Paco Pepe Pukka :-) (ehh y a su preciosa Viki :-P), a Juan Jos�
 Amor Iglesias y a Ram�n Guti�rrez/, CamuS :-).

 A Sayaka, una gran amiga de la cual no creo pueda nunca olvidarme, por
 ello este como lleva su nombre en el principio (v1.0-Sayaka).

 Por otro lado quiero saludar a mis compa�eros y amigos de universidad
 (http://www.upco.es).

 1.3.  Colaboraciones.

 En especial, quiero dar las gracias a Ignacio Arenaza, que me permiti�
 hacer unos ajustes a este COMO y a Francisco Jos� Montilla, el cual me
 corrigi� dos errores muy gordos.

 1.4.  Realizaci�n.

 Para editar este COMO, no he seguido nada, lo he escrito desde el
 principio con lo que sab�a, con mi poca experiencia y mirando manuales
 y dem�s. Una vez escrito, lo he complementado, ajustado,... con la FAQ
 sobre ftp an�nimo que ha escrito Christophe R. Klaus ([email protected]).

 2.  Requisitos.

 1. Tener instalado Linux, con un kernel 2.0.x (al menos), pero no he
    probado con menos, se aceptan reclamaciones.

 2. Tener un paquete de ftp apropiado, en mi caso instalar� wu-ftp en
    Debian, aunque lo explicar� para todas las distribuciones.

 3.  Instalaci�n.

 La instalaci�n en las distintas distribuciones es muy variable, pero
 todas se basan en lo mismo. Por ello empezar� en Debian que es la que
 yo uso, y pasar� a RedHat y SlackWare hasta donde vea que puedo.

 En Debian es muy f�cil, buscamos donde tenemos el paquete, y
 ejecutamos lo siguiente:

      dpkg -i "nombre de paquete"

 En mi caso, ser�a:

      dpkg -i wu-ftpd-academ_2.4.2.16-9.deb

 Una vez realizado esto, se nos preguntar�n unas cuestiones.

      Do you want to set up or update an anonymous FTP account now? [n]

 Esta pregunta nos indica si queremos crear una cuenta de ftp an�nimo
 en este momento. Nosotros indicaremos que s�, puesto que queremos una
 configuraci�n de este tipo, pero si no la deseamos decimos que no y no
 ocurre nada m�s.

 Al decir que s�, nos pregunta de nuevo:

      Enter the name of the FTP home directory: [/home/ftp]

 Debemos indicar d�nde situaremos el directorio por defecto del ftp,
 por defecto /home/ftp , donde nosotros lo dejaremos.

      /home/ftp does already exist, should I use it? [n]

 Diremos que s� para crear el directorio ra�z del ftp. La siguiente
 pregunta, ser� si deseamos crear un directorio para permitir que nos
 suban cosas, nosotros diremos que s�, aunque luego se explicar� c�mo
 configurarlo para activar o desactivar esta cuesti�n.

 Con todo esto, tendr�amos instalado el ftp, pero queda configurarlo.

 Para comprobar que est� correcto, realizaremos lo siguiente:

      <kix@hell>$ ftp 127.0.0.1
      Connected to 127.0.0.1.
      220-Welcome, archive user [unknown]@localhost !
      220-
      220-The local time is: Mon Jul 27 22:04:24 1998
      220-
      220-This is an experimental FTP server.  If have any unusual problems,
      220-please report them via e-mail to <[email protected]>.
      220-
      220-If you do have problems, please try using a dash (-) as the first
      220-character of your password -- this will turn off the continuation
      220-messages that may be confusing your ftp client.
      220-
      220 hell.darkness.org FTP server (Version wu-2.4.2-academ[BETA-16](1) Sat
      May 23 19:56:02 CEST 1998) ready.
      Name (127.0.0.1:root):

 Si est� usando RedHat, Slackware o cualquier otra distribuci�n, no se
 preocupe, posteriormente se indicar� c�mo configurar todo a mano. Aun
 as�, indicare como se instala:

      rpm -i "nombre_del_paquete_ftpd.rpm"
      rpm -i "nombre_del_paquete_anon-ftp.rpm"

 Esto es debido a que son dos paquetes, el del ftp an�nimo, que en
 RedHat 5 se llama anonftp-2.5-1.i386.rpm y el del demonio avanzado de
 ftp, para nosotros el wu-ftpd, wu-ftpd-2.4.2b16-4.i386.rpm.

 SlackWare:

      tar -xvzf "nombre_del_paquete.tgz"

 4.  Configuraci�n.

 La configuraci�n de un ftp es cosa f�cil, pero debemos estar atentos
 por la seguridad del sistema.

 4.1.  Cuenta de usuario.

 Lo primero ser� a�adir el usuario ftp, que en Debian se ha creado;
 pero deber�amos repasar como est�, en RedHat tambi�n aparece, pero en
 SlackWare no se crea. Para ello editaremos el archivo /etc/passwd y
 miraremos si tenemos una l�nea parecida a esta:

      ftp:*:100:101::/home/ftp:/bin/false

 Si no fuera as�, la crear�amos.

 1. ftp:  ser�a el nombre de usuario. (F�jese que siempre es ftp, sin
    distinci�n del nombre del servidor de ftp --- wu-ftpd en nuestro
    caso --- ).

 2. *: Anulamos la capacidad de acceso shell al sistema del usuario
    ftp. Como el demonio ftp necesita una, le pondremos una falsa, de
    este modo el acceso al sistema como usuario ftp queda estrictamente
    limitada a la funci�n de ejecutar el demonio.

 3. 100:      UID de usuario, puede variar.

 4. 101: Grupo del usuario, que es variable tambi�n.

 5. /home/ftp:  Este es el directorio ra�z del ftp para el usuario
    anonymous. Si en este campo apareciera "/" compartir�amos todo
    nuestro linux, muy inseguro. En el caso de usuarios del sistema, el
    directorio home ser�a el del usuario en cuesti�n.

 6. /bin/false: Este ser� el nombre del shell a ejecutar.  Como
    queremos limitar el acceso shell del usuario ftp, pero el demonio
    ftp necesita una shell que exista ponemos /bin/false, asegur�ndonos
    de que exista. Si no es as�, la creamos:

      #!/bin/sh
      exit 1

 Los permisos recomendables para este fichero son rwxr-xr-x.

 Adem�s, esta shell ha de aparecer listada en el fichero /etc/shells,
 por lo que la habremos de a�adir si no lo est�.

 4.2.  /etc/ftpusers

 Lo segundo es restringir los nombres de usuario que nunca deben entrar
 al ftp. Para ello editaremos el archivo /etc/ftpusers e introduciremos
 los que queramos:

   # /etc/ftpusers: list of users disallowed ftp access. See ftpusers(5).

   root
   daemon
   bin
   sys
   .....

 Con esto cuando un usuario incluido en este archivo intente entrar, el
 acceso le ser� denegado.

 Si mantenemos un servidor para distintos usuarios, cuando se
 introduzca un nombre y un password v�lido, el usuario aparecer� en su
 directorio $HOME, y podr� acceder a aquellas partes del sistema a las
 que tendr�a acceso por shell.

 Si no queremos que acceda al servidor por ftp, a�adiremos su nombre de
 usuario a este archivo.

 5.  La shell.

 El shell de usuario debe aparecer en /etc/shells pero si no aparece no
 ocurre nada y adem�s deber� tener en cuenta que la restricci�n de no
 ponerlo no aumenta la seguridad.

 6.  El directorio del ftp.

 El directorio /home/ftp en nuestro caso debe cumplir lo siguiente,
 para que sea seguro:

 6.1.  /home/ftp

 El directorio ra�z del ftp (/home/ftp) debe ser propiedad del usuario
 root y con acceso de escritura prohibido al resto de usuarios, pero s�
 de ejecuci�n para todos (chmod 555)

 Como ejemplo:

      dr-xr-xr-x   6 root     root          1024 Jul 19 21:16 ftp

 Es importante saber que algunas revistas, y manuales sobre ftp
 recomiendan que el usuario propietario de /home/ftp sea ftp, pero esto
 es un error enorme si queremos tener un servidor seguro.

 6.2.  /home/ftp/bin

 El directorio /home/ftp/bin debe ser propiedad del root y sin acceso
 de escritura al resto de los usuarios. Como ejemplo:

      d--x--x--x   2 root     root         1024 Jul 27 21:48 bin

 Dentro de este directorio, los archivos que tendremos ser�n todos los
 ejecutables, en mi caso son:

      ---x--x--x   1 root     root        15204 Oct 24  1997 compress
      ---x--x--x   1 root     root        46324 Nov  6  1997 cpio
      ---x--x--x   1 root     root        45660 Jul 27 21:48 gzip
      ---x--x--x   1 root     root        29404 Jul 27 21:48 ls
      ---x--x--x   1 root     root        62692 Oct 20  1997 sh
      ---x--x--x   1 root     root       103968 Jul 27 21:48 tar

 Como se puede ver todos ellos son pertenecientes a root y con permisos
 de s�lo ejecuci�n para todo el mundo (modo 111). Los comandos de este
 directorio son los mismos que usamos en nuestro sistema, por ejemplo
 "ls", los copiamos aqu� si no los tenemos y les aplicamos los
 permisos.

 6.3.  /home/ftp/etc

 El directorio /home/ftp/etc tendr� permiso de solo ejecuci�n y ser�
 propiedad de root:

      d--x--x--x   2 root     root         1024 Jul 27 23:42 etc

 Los archivos siguientes son los que tendremos en este directorio:

      -r--r--r--   1 root     root           18 Jul 27 21:48 group
      -r--r--r--   1 root     root         8376 Nov  6  1997 ld.so.cache
      -r--r--r--   1 root     root           44 Jul 27 21:48 passwd
      -r--r--r--   1 root     root          172 Jul 19 21:16 pathmsg

 Todos los archivos deben ser de s�lo lectura (modo 111).

 Tanto el archivo group como el archivo passwd de este directorio deben
 contener la informaci�n m�nima posible. Un ejemplo claro ser�a:

 passwd:

      root:*:0:0:root::
      ftp:*:10::Anonymous FTP::

 group:

      root::0:
      staff:::

 El archivo pathmsg es un archivo de informaci�n para el usuario cuando
 introduce alg�n car�cter no valido. Es editable por nosotros para que
 ponga lo que queramos.

 pathmsg Original:

      You used an illegal filename. The filenames for anonymous
      users must be made of only the characters  A-Z,  a-z, 0-9
      and "._-+" and may not begin with a "." or a "-".

 pathmsg m�o actual:

      Baby estas usando un nombre d'archivo erroneo. A ver zi te
      enteras ke solo puedes usar los caracteres A-Z, a-z, 0-9
      y "._-+" pero sin empezar por "." o "-".

 Fuera de las co�as y dem�s, es ``algo'' m�s inteligible que en ingl�s.

 El archivo ld.so.cache contiene los nombres de las librer�as
 necesarias, recomiendo no tocarlo si no es necesario.

 6.4.  /home/ftp/lib

 El directorio /home/ftp/lib donde las librer�as son contenidas, debe
 tener propiedades de solo ejecuci�n (d--x--x--x). En el interior
 encontraremos librer�as y links a las mismas. Debemos tener en cuenta
 que deben tener permisos de s�lo lectura, pero que los links tienen
 todos los permisos activados.

 Como ejemplo:

      -r--r--r--   1 root     root       164803 Jul 27 21:48 ld-2.0.5.so
      lrwxrwxrwx   1 root     root           11 Jul 14 02:23 ld-linux.so.2 -> ld-2.0.5.so

 6.5.  /home/ftp/pub

 El directorio /home/ftp/pub es donde se alojar�n los archivos que
 queremos compartir.  Su propietario deber�a ser ftp, y los accesos
 ser�n de ejecuci�n y lectura:

      dr-xr-xr-x  21 ftp      ftp          1024 Jul 26 20:04 pub

 El permitir la escritura en este directorio no es una buena idea,
 puesto que los archivos deber�an estar controlados, para ello usaremos
 un directorio concreto para las subidas. La recomendaci�n es tener los
 permisos de todo lo que cuelga de este directorio (pub) como 555.

 En otros sistemas como SunOS las propiedades de este directorio son
 2555, de tal forma que se pueden crear nuevos archivos con el mismo
 grupo.

 6.5.1.  /home/ftp/pub/incoming

 El directorio /home/ftp/pub/incoming es el directorio donde
 permitiremos la subida de ficheros a nuestra m�quina. Por ello debe
 tener las siguientes propiedades:

      drwxr-x-wx   2 root     root         1024 Jul 19 21:16 incoming

 Como se puede observar tiene permiso de ejecuci�n (como es un
 directorio, realmente es permiso de acceso al directorio) y de
 escritura, pero no de lectura. Esto se hace para que s�lo personas
 autorizadas vean el contenido de este directorio. Si quisi�ramos que
 fuera un directorio para compartir ficheros, solo tendr�amos que
 a�adir la propiedad de lectura.

 Por otro lado, tendremos que editar un archivo de configuraci�n para
 que todo est� perfecto. Este archivo se ver� en la parte de
 configuraci�n avanzada.

 7.  El arranque.

 En este momento el demonio de ftp estar�a preparado para ser lanzado,
 los directorios con los permisos adecuados y todo a punto para
 arrancar el demonio. Quedan dos partes importantes, la forma de
 arrancarlo y los archivos a ofrecer.

 Para el arranque del demonio, lo mejor es dejar que inetd lo lance
 cuando sea necesario, para ello se lo especificamos en el archivo
 /etc/inetd.conf, en el cual tendremos que poner (si no existe) una
 l�nea como esta:

      ftp     stream  tcp     nowait  root    /usr/sbin/tcpd /usr/sbin/ftpd

 En algunos sistemas en lugar de fptd puede ser in.ftpd.

 Ahora podemos lanzar un ftp sin archivos, pero funcional reiniciando
 el inetd con el comando "killall -HUP inetd"

 8.  Los archivos a ofrecer.

 Los archivos a ofrecer los introduciremos en el directorio pub de
 nuestro ftp, pudiendo crear directorios, y teniendo en cuenta los
 permisos para que no sean modificables, borrables y dem�s. Un ejemplo
 ser�a:

      -r--r--r--   1 root     root       640005 Jun 23 23:31 WindowMaker.gz
      dr-xr-xr-x   2 root     root         2048 Jul 20 21:06 apps
      dr-xr-xr-x   2 root     root         1024 Jul 20 21:06 themes

 9.  Configuraci�n avanzada.

 Hasta este punto tendr�amos un ftp seguro y totalmente funcional, pero
 el ftp nos permite muchas mas cosas, me referir� al del wu-ftpd en
 especial, los dem�s servidores son iguales o muy parecidos.

 Los archivos se alojan en /etc/ o en /etc/directorio en el caso de wu-
 ftp-academ es /etc/wu-ftpd-academ. Para buscar los suyos lo mejor es:

      find /etc -name *ftp*

 9.1.  El archivo ftpaccess .

 Este archivo es el que tiene toda la configuraci�n del ftp, por lo
 cual si montamos el ftp desde cero tendremos que repasarlo a tope.

 9.1.1.  Mensajes.

 Los mensajes son un punto importante de informaci�n. Podemos
 encontrarlos de tres tipos, pero todos se configuran en este archivo.

 El primero es el que recibimos nada m�s conectar con el servidor de
 ftp, que suele ser de tipo informativo. Es indicado por una l�nea como
 esta en el archivo ftpaccess:

      banner /etc/wu-ftpd-academ/welcome.msg

 Teniendo en cuenta que el fichero /etc/wu-ftpd-academ/welcome.msg
 tiene un contenido deseado para nosotros.

 Otro tipo de mensaje es el que aparece nada m�s autorizarnos con el
 servidor, y va indicado por esta l�nea:

      message /welcome.msg            login

 Teniendo en cuenta que la / indica el directorio ra�z del ftp, en
 nuestro caso /home/ftp, puesto que hemos accedido ya.

 El otro tipo de mensajes es el que aparece al cambiar de directorio y
 que normalmente nos informa de lo que all� tenemos. Viene indicado por
 la l�nea siguiente:

      message .message                cwd=*

 Como se puede ver, es un archivo llamado .message que aparece en cada
 cambio de directorio, y se muestra con el cwd. (cwd=*).

 Podemos cambiar lo que queramos y a�adir un tipo de mensaje para otras
 acciones deseadas.

 9.1.2.  Informaci�n del servidor de ftp.

 Es importante que los que accedan a nuestro servidor puedan indicarnos
 cualquier error. Para ello, debemos dejar una direcci�n de correo
 electr�nico bajo una l�nea similar a esta:

      # direccion email del administrador ftp,
      # puede utilizarse con la macro %E
      # en los ficheros de mensajes.
              email usuario@servidor_correo

 10.  Accesos.

 Podemos configurar los accesos: en primer lugar, es posible
 especificar un n�mero m�ximo de intentos de conexi�n (logins) fallidos
 permitidos por el servidor como seguridad, aunque en el caso del ftp
 an�nimo no ser�a fundamental. Para ello escribiremos la l�nea
 siguiente en el archivo ftpaccess:

      loginfails X

 Donde X es el n�mero de intentos.

 Por otro lado podemos restringir el dominio de acceso, que puede ser
 local a la m�quina, remoto a la m�quina o los dos. Se indica bajo unas
 l�neas de este tipo:

      class  local   real,guest,anonymous *.my.domain 192.168.0.0
      class  remote  real,guest,anonymous *
      class   all    real,guest,anonymous *

 1. La primera permite un acceso local para los usuarios reales,
    invitados y an�nimos para el dominio indicado, en este caso
    *.my.domain 192.168.0.0.

 2. La segunda permite un acceso remoto para toda la red (*) para los
    usuarios reales de la m�quina servidora, los invitados y el
    an�nimo.

 3. La tercera permite un acceso total para los mismos usuarios y para
    toda la red.

 Podemos restringir tambi�n el n�mero m�ximo de usuarios que pueden
 acceder simult�neamente. Esto es necesario para no sobrecargar la
 m�quina, la l�nea telef�nica, la red,...  Tenemos una restricci�n para
 cada tipo de acceso, un ejemplo ser�a:

      limit  local   20      Any   /etc/wu-ftpd-academ/msg.toomany
      limit  remote  100     Any   /etc/wu-ftpd-academ/msg.toomany
      limit   all    10      Any   /etc/wu-ftpd-academ/msg.toomany

 As� limitamos el acceso local a 20 usuarios, el remoto a 100 y el
 total a 10, hay que tener en cuenta que las l�neas local y remota
 estaban comentadas. Si por alg�n motivo intenta entrar un usuario m�s
 al sistema y sobrepasa este valor, se le mostrar� el mensaje escrito
 en nuestro caso en /etc/wu-ftpd-academ/msg.toomany. Como el lector
 supondr�, todo esto es modificable.

 10.1.  Modificaci�n de archivos.

 Un tema importante es permitir o no la modificaci�n de las propiedades
 de los archivos. Por ello el archivo ftpaccess dispone de unas l�neas
 para ello:

      #accion       yes/no     usuario
      #--------------------------------
      rename          no      anonymous    # rename permission?
      delete          no      anonymous    # delete permission?
      overwrite       no      anonymous    # overwrite permission?
      chmod           no      anonymous    # chmod permission?
      umask           no      anonymous    # umask permission?

 En este caso, todos los permisos para el usuario anonymous est�n
 desactivadas.

 10.2.  Archivos no bajables.

 Existir�n archivos que no deseamos que sean obtenibles, como pudieran
 ser /etc/passwd y /etc/group, del directorio del ftp (en nuestro caso
 (/home/ftp/etc/passwd y /home/ftp/etc/group). Para ello tendr�amos la
 siguiente l�nea en el archivo ftpaccess:

      # estos ficheros no son bajables
      noretrieve /etc/passwd /etc/group
      noretrieve core

 La primera l�nea es un comentario, la segunda hace lo explicado
 anteriormente, mientras que la tercera no permite la bajada de
 archivos core del ftp. Esto es debido a que los core son volcados de
 memoria y pueden contener informaci�n valiosa.

 10.3.  Subidas al servidor.

 Antes se ha indicado como preparar un directorio para las subidas al
 servidor de ftp (directorio incoming). Pero en este archivo vamos a
 poner unas l�neas muy especiales:

      upload  /home/ftp   *               no
      upload  /home/ftp   /pub/incoming   yes     ftp     daemon  0666 nodirs

 La primera l�nea indica que las subidas a /home/ftp, en cualquiera de
 sus directorios, no est�n permitidas.

 La segunda indica espec�ficamente que las subidas a
 /home/ftp/pub/incoming est�n permitidas, pero no se pueden crear
 directorios y el permiso de los ficheros ser� 0666 (modo 0666).

 El directorio incoming puede ser un problema muy grande, en muchos
 sitios se recomienda un sistema de archivos propio, puesto que si se
 llena el del sistema por exceso de uploads de ftp, tendr�amos grandes
 problemas.

 Con todo esto, todo el ftp estar� perfectamente configurado, pero aun
 as�, existen m�s opciones, como indicar alias escribiendo :

              alias   incoming:       /pub/incoming

 El usuario al poner cd incoming pasara autom�ticamente a
 /pub/incoming, pero b�sicamente este archivo ya estar�a perfecto.
 10.4.  El archivo ftpconversions .

 Este archivo es muy �til para bajar archivos que no est�n comprimidos
 o empaquetados. En casos como el wu-ftpd es muy conveniente poner
 comandos como gzip, gnutar, compress,... compilados y enlazados de
 forma est�tica, en el directorio /home/ftp/bin con los permisos
 correspondientes (111) para permitir bajadas de archivos a la vez que
 los comprimimos.  Su aspecto es el siguiente:

       :.Z:  :  :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS
       :   : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS
       :.gz: :  :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP
       :   : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP
       :   : :.tar:/bin/tar -c -h -f - %s:T_REG|T_DIR:O_TAR:TAR
       :   : :.tar.Z:/bin/tar -c -h -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRE
       :   : :.tar.gz:/bin/tar -c -h -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP
       :   : :.tgz:/bin/tar -c -h -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP
       :   : :.ltar:/bin/tar -c -f - %s:T_REG|T_DIR:O_TAR:TAR
       :   : :.ltar.Z:/bin/tar -c -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS
       :   : :.ltar.gz:/bin/tar -c -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP

 Ejemplo:

      -r--r--r--   1 root     root       795509 Jan 20  1998 tel2308a
      -r--r--r--   1 root     root       797901 Jan 20  1998 tel2308b

 Son los ficheros a bajar del servidor. Como se ve, no est�n en forma
 comprimida ni empaquetada, pero queremos bajarlo como tar.Z. Esto a
 priori se presenta como un problema, puesto que son dos comandos en
 uno, por ello podemos usar un programa que nos permita pipes (|) en
 nuestro ftpd. Con el siguiente, copiado al directorio bin de nuestro
 ftp, despu�s de compilarlo, el problema esta casi resuelto:

      /* pipe.c: ejecuta dos comandos en una pipe */
      /* codigo escrito por Gary Mills */

      #define NULL (char *)0
      #define MAXA 16

      main(argc, argv) int argc; char *argv[]; {
      char *av1[MAXA], *av2[MAXA];
      int i, n, p[2], cpid;

      i = 0; n = 0;
      while ( ++i < argc && n < MAXA ) {
      if ( *argv[i] == '|' && *(argv[i]+1) == '\0' ) break;
      av1[n++] = argv[i];
      }
      if ( n == 0 ) uexit();
      av1[n] = NULL;
      n = 0;
      while ( ++i < argc && n < MAXA )
      av2[n++] = argv[i];
      if ( n == 0 ) uexit();
      av2[n] = NULL;
      if ( pipe(p) != 0 ) exit(1);
      if ( ( cpid = fork() ) == (-1) ) exit(1);
      else if ( cpid == 0 ) {
      (void)close(p[0]);
      (void)close(1);
      (void)dup(p[1]);
      (void)close(p[1]);
      (void)execv(av1[0], av1);
      _exit(127);
      }
      else {
      (void)close(p[1]);
      (void)close(0);
      (void)dup(p[0]);
      (void)close(p[0]);
      (void)execv(av2[0], av2);
      _exit(127);
      }
      /*NOTREACHED*/
      }
      uexit() {
      (void)write(2, "Modo de uso: pipe  | \n", 34);
      exit(1);
      }

 El programa lo tenemos, el problema es indicarle al ftpd que lo use.
 Para ello pondremos esta l�nea en el archivo ftpconversions:

       :  :  :.tar.Z:/bin/pipe /bin/tar cf - %s | /bin/compress -c:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS

 ATENCION: La l�nea puede estar partida !!!  Espero que se entienda, si
 hay dudas, por favor ind�quemelas.

 De esta forma, el comando para obtener un .tar.Z es llamando a
 bin/pipe que a su vez llama a bin/tar y a bin/compress (con sus
 opciones correspondientes). Este comando se puede ampliar para otros
 comandos como pueden ser gzip o zip junto con el tar.

 La variedad solo tiene l�mite con las combinaciones de compresores.

 11.  Puntos clave a recordar.

 Si tiene un agujero de seguridad en su ftpd lo mejor es que lo cierre
 temporalmente, obtenga el �ltimo demonio de ftp sin errores o con
 errores parcheables, y sustituya el demonio anterior.  Aseg�rese de
 que los archivos tienen los permisos correspondientes, que el archivo
 /etc/passwd de su ftp es correcto, y ponga el seguimiento de su ftp de
 forma muy alta y que haga logs de las conexiones.  Si aun as� tiene
 problemas, simplemente rece.

 El ftp an�nimo no es m�s que un servicio ofrecido a personas externas
 a nuestro sistema, por ello se crea el directorio /home/ftp, pero se
 puede tener un ftp para los usuarios del sistema pero no para los
 externos, por lo cual no es un servidor an�nimo de ftp.

 Recuerde que el directorio home ser� por tanto el del usuario que
 acceda por ftp.  Siguiendo este COMO le puede ayudar a configurarlo
 sea cual sea su caso.

 Si desea m�s seguridad deber�a compilar todo usted mismo, de forma
 est�tica.

 12.  Archie.

 El servicio Archie es un simple buscador de archivos sobre m�quinas
 con ftp. Podemos buscar un archivo que necesitamos usando este
 servicio sobre cientos de m�quinas de todo el mundo de una forma
 r�pida y efectiva al 100%. Por otro lado podemos incluir nuestro
 servidor en un buscador Archie (s�lo si se esta siempre conectado, es
 un poco absurdo para un acceso temporal de 30 minutos diarios), para
 ello debemos mandar un mail a la lista de buscadores Archie (archie-
 [email protected]) para los siguientes servidores Archie:

 archie.ac.il               132.65.20.254    (Israel)
 archie.ans.net             147.225.1.10     (ANS, NY (USA))
 archie.au                  139.130.4.6      (Australia)
 archie.doc.ic.ac.uk        146.169.11.3     (United Kingdom)
 archie.edvz.uni-linz.ac.at 140.78.3.8       (Austria)
 archie.funet.fi            128.214.6.102    (Finlandia)
 archie.internic.net        198.49.45.10     (ATT, NY (USA))
 archie.kr                  128.134.1.1      (Korea)
 archie.kuis.kyoto-u.ac.jp  130.54.20.1      (Japon)
 archie.luth.se             130.240.18.4     (Swedish)
 archie.ncu.edu.tw          140.115.19.24    (Taiwan)
 archie.nz                  130.195.9.4      (Nueva Zelanda)
 archie.rediris.es          130.206.1.2      (Spain) (Este es el nuestro)
 archie.rutgers.edu         128.6.18.15      (Rutgers University (USA))
 archie.sogang.ac.kr        163.239.1.11     (Korea)
 archie.sura.net            128.167.254.195  (SURAnet (USA))
 archie.sura.net(1526)      128.167.254.195  (SURAnet alt. MD (USA))
 archie.switch.ch           130.59.1.40      (Swiss Server)
 archie.th-darmstadt.de     130.83.22.60     (Alemania)
 archie.unipi.it            131.114.21.10    (Italia)
 archie.univie.ac.at        131.130.1.23     (Austria)
 archie.unl.edu             129.93.1.14      (U. of Nebraska, Lincoln (USA))
 archie.univ-rennes1.fr                      (Francia)
 archie.uqam.ca             132.208.250.10   (Canada)
 archie.wide.ad.jp          133.4.3.6        (Japon)

 13.  Anexo: El INSFLUG

 El INSFLUG forma parte del grupo internacional Linux Documentation
 Project, encarg�ndose de las traducciones al castellano de los Howtos
 (Comos), as� como la producci�n de documentos originales en aquellos
 casos en los que no existe an�logo en ingl�s.

 En el INSFLUG se orienta preferentemente a la traducci�n de documentos
 breves, como los COMOs y PUFs (Preguntas de Uso Frecuente, las FAQs.
 :) ), etc.

 Dir�jase a la sede del INSFLUG para m�s informaci�n al respecto.

 En la sede del INSFLUG encontrar� siempre las �ltimas versiones de las
 traducciones:  www.insflug.org. Aseg�rese de comprobar cu�l es la
 �ltima versi�n disponible en el Insflug antes de bajar un documento de
 un servidor r�plica.

 Se proporciona tambi�n una lista de los servidores r�plica (mirror)
 del Insflug m�s cercanos a Vd., e informaci�n relativa a otros
 recursos en castellano.

 Francisco Jos� Montilla, [email protected].