  Ftp Annimo COMO
  Rodolfo Garca Peas, kix@mad.servicom.es
  v1.0-Sayaka, 1 Septiembre 1998

  Este COMO describe cmo instalar, configurar y mantener un servidor
  ftp de una manera fcil y rpida.
  ______________________________________________________________________

  ndice General:

  1.      Editor.

  1.1.    Copyright y cosas de esas.

  1.2.    Dedicatorias ;-).

  1.3.    Colaboraciones.

  1.4.    Realizacin.

  2.      Requisitos.

  3.      Instalacin.

  4.      Configuracin.

  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.      Configuracin avanzada.

  9.1.    El archivo ftpaccess .

  9.1.1.  Mensajes.

  9.1.2.  Informacin del servidor de ftp.

  10.     Accesos.

  10.1.   Modificacin 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 Garca (anda!! si soy yo!!),
  pero simplemente para mantener una misma lnea de trabajo me gustara
  que si hay que hacer modificaciones de algo, se me indique y yo muy
  gustosamente lo hara. Esto permitir que dentro de 2 aos 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, prdidas, ... 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 Espaa, en especial a Ismael
  Olea, Paco Pepe Pukka :-) (ehh y a su preciosa Viki :-P), a Juan Jos
  Amor Iglesias y a Ramn Gutirrez/, 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 compaeros 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.  Realizacin.

  Para editar este COMO, no he seguido nada, lo he escrito desde el
  principio con lo que saba, con mi poca experiencia y mirando manuales
  y dems. Una vez escrito, lo he complementado, ajustado,... con la FAQ
  sobre ftp annimo que ha escrito Christophe R. Klaus (cklaus@iss.net).

  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.  Instalacin.

  La instalacin 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 fcil, buscamos donde tenemos el paquete, y
  ejecutamos lo siguiente:

       dpkg -i "nombre de paquete"

  En mi caso, sera:

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

  Una vez realizado esto, se nos preguntarn 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 annimo
  en este momento. Nosotros indicaremos que s, puesto que queremos una
  configuracin de este tipo, pero si no la deseamos decimos que no y no
  ocurre nada ms.

  Al decir que s, nos pregunta de nuevo:

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

  Debemos indicar dnde 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 raz 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 cmo
  configurarlo para activar o desactivar esta cuestin.

  Con todo esto, tendramos 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 <root@hell.darkness.org>.
       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 distribucin, no se
  preocupe, posteriormente se indicar cmo 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 annimo, 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.  Configuracin.

  La configuracin de un ftp es cosa fcil, pero debemos estar atentos
  por la seguridad del sistema.

  4.1.  Cuenta de usuario.

  Lo primero ser aadir el usuario ftp, que en Debian se ha creado;
  pero deberamos repasar como est, en RedHat tambin aparece, pero en
  SlackWare no se crea. Para ello editaremos el archivo /etc/passwd y
  miraremos si tenemos una lnea parecida a esta:

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

  Si no fuera as, la crearamos.

  1. ftp:  sera el nombre de usuario. (Fjese que siempre es ftp, sin
     distincin 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 funcin de ejecutar el demonio.

  3. 100:      UID de usuario, puede variar.

  4. 101: Grupo del usuario, que es variable tambin.

  5. /home/ftp:  Este es el directorio raz del ftp para el usuario
     anonymous. Si en este campo apareciera "/" compartiramos todo
     nuestro linux, muy inseguro. En el caso de usuarios del sistema, el
     directorio home sera el del usuario en cuestin.

  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, asegurndonos
     de que exista. Si no es as, la creamos:

       #!/bin/sh
       exit 1

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

  Adems, esta shell ha de aparecer listada en el fichero /etc/shells,
  por lo que la habremos de aadir 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 vlido, el usuario aparecer en su
  directorio $HOME, y podr acceder a aquellas partes del sistema a las
  que tendra acceso por shell.

  Si no queremos que acceda al servidor por ftp, aadiremos 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 adems deber tener en cuenta que la restriccin 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 raz del ftp (/home/ftp) debe ser propiedad del usuario
  root y con acceso de escritura prohibido al resto de usuarios, pero s
  de ejecucin 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 sern 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 slo ejecucin 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 ejecucin 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 slo lectura (modo 111).

  Tanto el archivo group como el archivo passwd de este directorio deben
  contener la informacin mnima posible. Un ejemplo claro sera:

  passwd:

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

  group:

       root::0:
       staff:::

  El archivo pathmsg es un archivo de informacin para el usuario cuando
  introduce algn carcter 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 mo 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 coas y dems, es ``algo'' ms inteligible que en ingls.

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

  6.4.  /home/ftp/lib

  El directorio /home/ftp/lib donde las libreras son contenidas, debe
  tener propiedades de solo ejecucin (d--x--x--x). En el interior
  encontraremos libreras y links a las mismas. Debemos tener en cuenta
  que deben tener permisos de slo 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 alojarn los archivos que
  queremos compartir.  Su propietario debera ser ftp, y los accesos
  sern de ejecucin 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 deberan estar controlados, para ello usaremos
  un directorio concreto para las subidas. La recomendacin 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 mquina. 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 ejecucin (como es un
  directorio, realmente es permiso de acceso al directorio) y de
  escritura, pero no de lectura. Esto se hace para que slo personas
  autorizadas vean el contenido de este directorio. Si quisiramos que
  fuera un directorio para compartir ficheros, solo tendramos que
  aadir la propiedad de lectura.

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

  7.  El arranque.

  En este momento el demonio de ftp estara 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
  lnea 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 dems. Un ejemplo
  sera:

       -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.  Configuracin avanzada.

  Hasta este punto tendramos un ftp seguro y totalmente funcional, pero
  el ftp nos permite muchas mas cosas, me referir al del wu-ftpd en
  especial, los dems 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 configuracin 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 informacin. Podemos
  encontrarlos de tres tipos, pero todos se configuran en este archivo.

  El primero es el que recibimos nada ms conectar con el servidor de
  ftp, que suele ser de tipo informativo. Es indicado por una lnea 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 ms autorizarnos con el
  servidor, y va indicado por esta lnea:

       message /welcome.msg            login

  Teniendo en cuenta que la / indica el directorio raz 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 lnea 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 aadir un tipo de mensaje para otras
  acciones deseadas.

  9.1.2.  Informacin del servidor de ftp.

  Es importante que los que accedan a nuestro servidor puedan indicarnos
  cualquier error. Para ello, debemos dejar una direccin de correo
  electrnico bajo una lnea 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 nmero mximo de intentos de conexin (logins) fallidos
  permitidos por el servidor como seguridad, aunque en el caso del ftp
  annimo no sera fundamental. Para ello escribiremos la lnea
  siguiente en el archivo ftpaccess:

       loginfails X

  Donde X es el nmero de intentos.

  Por otro lado podemos restringir el dominio de acceso, que puede ser
  local a la mquina, remoto a la mquina o los dos. Se indica bajo unas
  lneas 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 annimos 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 mquina servidora, los invitados y el
     annimo.

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

  Podemos restringir tambin el nmero mximo de usuarios que pueden
  acceder simultneamente. Esto es necesario para no sobrecargar la
  mquina, la lnea telefnica, la red,...  Tenemos una restriccin para
  cada tipo de acceso, un ejemplo sera:

       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 lneas local y remota
  estaban comentadas. Si por algn motivo intenta entrar un usuario ms
  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.  Modificacin de archivos.

  Un tema importante es permitir o no la modificacin de las propiedades
  de los archivos. Por ello el archivo ftpaccess dispone de unas lneas
  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 estn
  desactivadas.

  10.2.  Archivos no bajables.

  Existirn 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 tendramos la
  siguiente lnea en el archivo ftpaccess:

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

  La primera lnea 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 informacin 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 lneas muy especiales:

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

  La primera lnea indica que las subidas a /home/ftp, en cualquiera de
  sus directorios, no estn permitidas.

  La segunda indica especficamente que las subidas a
  /home/ftp/pub/incoming estn 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, tendramos grandes
  problemas.

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

               alias   incoming:       /pub/incoming

  El usuario al poner cd incoming pasara automticamente a
  /pub/incoming, pero bsicamente este archivo ya estara perfecto.
  10.4.  El archivo ftpconversions .

  Este archivo es muy til para bajar archivos que no estn comprimidos
  o empaquetados. En casos como el wu-ftpd es muy conveniente poner
  comandos como gzip, gnutar, compress,... compilados y enlazados de
  forma esttica, 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 estn 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, despus 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 lnea 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 lnea puede estar partida !!!  Espero que se entienda, si
  hay dudas, por favor indquemelas.

  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 lmite 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.  Asegrese 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 annimo no es ms 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 annimo 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 ms seguridad debera compilar todo usted mismo, de forma
  esttica.

  12.  Archie.

  El servicio Archie es un simple buscador de archivos sobre mquinas
  con ftp. Podemos buscar un archivo que necesitamos usando este
  servicio sobre cientos de mquinas de todo el mundo de una forma
  rpida y efectiva al 100%. Por otro lado podemos incluir nuestro
  servidor en un buscador Archie (slo 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-
  updates@bunyip.com) 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, encargndose de las traducciones al castellano de los Howtos
  (Comos), as como la produccin de documentos originales en aquellos
  casos en los que no existe anlogo en ingls.

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

  Dirjase a la sede del INSFLUG para ms informacin al respecto.

  En la sede del INSFLUG encontrar siempre las ltimas versiones de las
  traducciones:  www.insflug.org. Asegrese de comprobar cul es la
  ltima versin disponible en el Insflug antes de bajar un documento de
  un servidor rplica.

  Se proporciona tambin una lista de los servidores rplica (mirror)
  del Insflug ms cercanos a Vd., e informacin relativa a otros
  recursos en castellano.

  Francisco Jos Montilla, pacopepe@insflug.org.

