el servidor ftp (cap29)

32
Capítulo 29: El Servidor FTP Capítulo 29: El Servidor FTP ¿Qué es FTP? ¿Cómo configurar el servicio? ¿Cómo conectarme al servicio? ¿Cómo usar el servicio? Comandos FTP según RFC 959. Códigos de respuestas del servidor FTP. Recursos adicionales.

Upload: hades0001

Post on 05-Aug-2015

83 views

Category:

Documents


11 download

TRANSCRIPT

Page 1: El Servidor FTP (Cap29)

Capítulo 29: El Servidor FTP

Capítulo 29:

El Servidor FTP

• ¿Qué es FTP?

• ¿Cómo configurar el servicio?

• ¿Cómo conectarme al servicio?

• ¿Cómo usar el servicio?

• Comandos FTP según RFC 959.

• Códigos de respuestas del servidor FTP.

• Recursos adicionales.

Page 2: El Servidor FTP (Cap29)

2

Sistema Operativo Linux

Page 3: El Servidor FTP (Cap29)

Capítulo 29: El Servidor FTP

Servidor FTP

29.�. ¿Qué es FTP?El protocolo de transferencia de archivos FTP (File Transfer Protocol) es un protocolo muy utilizado para realizar transferencias de archivos entre sistemas remotos.

El nombre del servicio FTP de este estudio es Very Secure File Transfer Protocol (Protocolo de transferencia de archivos muy seguro), cuyo servidor es vsftpd (Very Secure FTP Daemon).

Este servidor puede ser lanzado vía el super demonio (léase super servidor) xinetd. Alternativamente vsftpd puede ser lanzado en modo autónomo, en cuyo caso vsftpd por si mismo escuchará a la red. Este último modo es fácil de usar y se recomienda. Este es activado al fijar listen=YES en el archivo de configuración del servidor vsftp:

/etc/vsftpd/vsftpd.conf: La ejecución directa del binario vsftpd lanzará el servicio FTP y estará listo para las conexiones de los clientes.

Figura 29.1. Servicio FTP.

Page 4: El Servidor FTP (Cap29)

Sistema Operativo Linux

29.2. ¿Cómo configurar el servicio?Identificado el servidor FTP hay que hacer varias cosas:

• Configurar el servidor vsftpd (archivo /etc/vsftpd/vsftpd.conf).

• Iniciar el servicio vsFTP.

• Probar el servicio.

29.2.�. El archivo de configuración: /etc/vsftpd/vsftpd.conf

En este archivo se configuran ciertas directivas que permiten un acceso seguro a los clientes. Las directivas por defecto se muestran en negrita. Sólo el usuario root puede hacer mantenimiento a este archivo.

[root@fedora3 vsftpd]# cat vsftpd.conf

# Example config file /etc/vsftpd/vsftpd.conf## The default compiled in settings are fairly paranoid. This sample file# loosens things up a bit, to make the ftp daemon more usable.# Please see vsftpd.conf.5 for all compiled in defaults.## READ THIS: This example file is NOT an exhaustive list of vsftpd options.# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd’s# capabilities.## Allow anonymous FTP? (Beware - allowed by default if you comment this out).anonymous_enable=YES## Uncomment this to allow local users to log in.local_enable=YES## Uncomment this to enable any form of FTP write command.write_enable=YES## Default umask for local users is 077. You may wish to change this to 022,# if your users expect that (022 is used by most other ftpd’s)local_umask=022## Uncomment this to allow the anonymous FTP user to upload files. This only# has an effect if the above global write enable is activated. Also, you will# obviously need to create a directory writable by the FTP user.

Page 5: El Servidor FTP (Cap29)

Capítulo 29: El Servidor FTP

#anon_upload_enable=YES## Uncomment this if you want the anonymous FTP user to be able to create# new directories.#anon_mkdir_write_enable=YES## Activate directory messages - messages given to remote users when they# go into a certain directory.dirmessage_enable=YES## Activate logging of uploads/downloads.xferlog_enable=YES## Make sure PORT transfer connections originate from port 20 (ftp-data).connect_from_port_20=YES## If you want, you can arrange for uploaded anonymous files to be owned by# a different user. Note! Using “root” for uploaded files is not# recommended!#chown_uploads=YES#chown_username=whoever## You may override where the log file goes if you like. The default is shown# below.#xferlog_file=/var/log/vsftpd.log## If you want, you can have your log file in standard ftpd xferlog formatxferlog_std_format=YES## You may change the default value for timing out an idle session.#idle_session_timeout=600## You may change the default value for timing out a data connection.#data_connection_timeout=120## It is recommended that you define on your system a unique user which the# ftp server can use as a totally isolated and unprivileged user.#nopriv_user=ftpsecure## Enable this and the server will recognise asynchronous ABOR requests. Not# recommended for security (the code is non-trivial). Not enabling it,

Page 6: El Servidor FTP (Cap29)

Sistema Operativo Linux

# however, may confuse older FTP clients.#async_abor_enable=YES## By default the server will pretend to allow ASCII mode but in fact ignore# the request. Turn on the below options to have the server actually do ASCII# mangling on files when in ASCII mode.# Beware that turning on ascii_download_enable enables malicious remote parties# to consume your I/O resources, by issuing the command “SIZE /big/file” in# ASCII mode.# These ASCII options are split into upload and download because you may wish# to enable ASCII uploads (to prevent uploaded scripts etc. from breaking),# without the DoS risk of SIZE and ASCII downloads. ASCII mangling should be# on the client anyway..#ascii_upload_enable=YES#ascii_download_enable=YES## You may fully customise the login banner string:#ftpd_banner=Welcome to blah FTP service.ftpd_banner=***** Bienvenidos al servicio FTP del ICIUNI.#banner_file=/etc/vsftpd/vsftpd.banner### You may specify a file of disallowed anonymous e-mail addresses. Apparently# useful for combatting certain DoS attacks.#deny_email_enable=YES# (default follows)#banned_email_file=/etc/vsftpd.banned_emails## You may specify an explicit list of local users to chroot() to their home# directory. If chroot_local_user is YES, then this list becomes a list of# users to NOT chroot().#chroot_list_enable=YES# (default follows)#chroot_list_file=/etc/vsftpd.chroot_list## You may activate the “-R” option to the builtin ls. This is disabled by# default to avoid remote users being able to cause excessive I/O on large# sites. However, some broken FTP clients such as “ncftp” and “mirror” assume# the presence of the “-R” option, so there is a strong case for enabling it.#ls_recurse_enable=YES

Page 7: El Servidor FTP (Cap29)

Capítulo 29: El Servidor FTP

pam_service_name=vsftpduserlist_enable=YES#enable for standalone modelisten=YEStcp_wrappers=YES

29.2.2. Directivas más usadas archivo: vsftpd.conf

• accept_timeout=60:

Directiva de tiempo expirado, en segundos, para clientes remotos que quieren establecer conexión vía el estilo PASV.

• anonymous_enable =YES:

Esta directiva permite el acceso de usuarios anónimos al servidor FTP. Si no desea accesos anónimos cámbiela por NO.

• banned_email_file=/etc/vsftpd.banned_emails:

En esta opción se fija el nombre de un archivo que contiene la lista de contraseñas con formato e-mail que no son permitidos. Este archivo es consultado si la opción deny_email_enable está habilitada.

• banner_file=/etc/vsftpd/vsftpd.banner:

Esta opción fija el nombre de un archivo que contiene un texto y que se despliega cuando alguien se conecta al servidor FTP. Si se configura, niega al banner (una cadena de caracteres) provisto en la opción ftpd_banner.

• chroot_local_user =YES:

El usuario local estará enjaulado en lo que hayamos definido como su directorio hogar (home).

• cmds_allowed:

Específica una lista de comandos separados por una coma que el usuario puede ejecutar. Ejemplo: cmds_allowed=PASV,RETR,QUIT

• connect_timeout=60:

Directiva de tiempo expirado, en segundos, para un cliente remoto que responde a un estilo de conexión PORT.

Page 8: El Servidor FTP (Cap29)

Sistema Operativo Linux

• deny_file:

Se usa esta opción para impedir el acceso a determinados archivos y directorios. Puede utilizar comodines. Por defecto no se fija nada. Veamos un ejemplo:deny_file={*.mp3,*.mov,.private}

• dirlist_enable=YES:

Si se fija en NO, todos los comandos que listan directorios serán denegados.

• ftp_data_port=20:

Es el puerto desde el cual se origina un estilo de conexión PORT.

• guest_enable=NO:

Si está habilitado, todos los logins no anónimos serán clasificados como usuarios “invitados”. Esta directiva va asociada a guest_username, que es donde definimos el nombre de usuario.

• guest_username=ftp:

Vea el valor booleano asignado a guest_enable para una descripción o lo que constituye un usuario invitado. Esta configuración es un usuario real que puede ser mapeado.

• listen=NO:

Si está habilitado, vsftpd iniciará en modo “standalone”. Esto quiere decir que no debe ser iniciado por algún inetd, y en su lugar se ejecutará directamente.

• listen_address:

Si vsftpd se encuentra en modo standalone, indicamos la dirección IP en la que estará escuchando.

• local_enable=NO:

Si está habilitada esta directiva permite que los usuarios locales (cuentas en /etc/passwd) pueden acceder al servidor ftp.

• listen_port=21:

Si vsftpd está en modo standalone, este es el puerto por el cual escuchará a las conexiones entrantes FTP.

• local_max_rate=0:

El valor cero o ilimitado indica la máxima transferencia de data permitida, en bytes por segundo para usuarios que se autenticaron localmente.

• local_umask=077:

Es el valor de umask para usuarios locales, está expresado en enteros decimales.

Page 9: El Servidor FTP (Cap29)

9

Capítulo 29: El Servidor FTP

• local_root:

Esta opción representa un directorio al que vsftpd tratará de cambiar después de un login local (no anónimo).

• max_clients=0:

El valor cero en esta directiva significa ilimitado. Si vsftpd está en modo standalone, este es el máximo número de clientes que pueden conectarse. Cuando se conecten clientes adicionales les aparecerá un mensaje de error.

• max_per_ip=0:

El valor cero en esta directiva significa ilimitado. Si vsftpd está en modo standalone, este es el máximo número de clientes que pueden conectarse desde una misma dirección de internet. Si se sobrepasa este límite aparecerá un mensaje de error.

• no_anon_password=NO:

Cuando está habilitado, previene al vsftpd de pedir por una contraseña.

• pam_service_name=ftp:

Indica el servicio PAM que usará vsftpd.

• secure_chroot_dir=/usr/share/empty:

Esta opción debería ser el nombre de un directorio que está vacio. También, el directorio no debería ser escribible por el usuario ftp.

• tcp_wrappers=NO:

Si está habilitado, y vsftpd fue compilado con el soporte de tcp_wrappers, las conexiones de entrada serán alimentadas a través del control de acceso tcp_wrappers.

• user_config_dir=/etc/vsftpd/users:

Es una poderosa opción que permite negar cualquier configuración especificada. Su uso es simple por ejemplo: si configuró user_config_dir=/etc/vsftpd_user_conf, y se conecta como el usuario “chris”, entonces vsftpd aplicará estas configuraciones del archivo /etc/vsftpd_user_conf/chris, durante lo que dura la sesión.

• userlist_enable=NO:

Si está habilitado, los nombres de usuario que haya en el archivo indicado por userlist_file, no podrán acceder, siendo rechazados ANTES de que introduzcan el password, de esta manera evitamos que el password en claro de usuarios privilegiados, sean transmitidos por la red.

• userlist_file=/etc/vsftpd.user_list:

Esta opción es el nombre del archivo cargado cuando la opción userlist_enable está activa.

Page 10: El Servidor FTP (Cap29)

�0

Sistema Operativo Linux

29.2.�. Iniciar el servicio vsFTP

• Para iniciar el servidor vsftpd ejecute el siguiente comando:

[root@fedora3 vsftpd]# service vsftpd start

Iniciando vsftpd para vsftpd: [OK]

• Para detener el servidor vsftpd ejecute el siguiente comando:

[root@fedora3 vsftpd]# service vsftpd stop

Apagando vsftpd: [OK]

• Para recargar el servidor vsftpd ejecute el siguiente comando:

[root@fedora3 vsftpd]# service vsftpd reload

Apagando vsftpd: [OK]Iniciando vsftpd para vsftpd: [OK]

Vía el programa de configuración de servicios se puede apreciar la descripción del demonio vsftpd y su correspondiente estado.

Figura 29.2. Visualizando el servidor FTP.

Page 11: El Servidor FTP (Cap29)

��

Capítulo 29: El Servidor FTP

29.�. ¿Cómo conectarme al servicio?En modo local, puede conectarse a FTP de tres maneras:

• Vía una interfaz de comandos de línea.

• En modo gráfico usando un browser (navegador).

• En modo gráfico usando una aplicación especializada.

29.�.�. Conexión vía una interfaz de comandos de línea

En un sistema Windows, siga una cualquiera de las siguientes opciones para trabajar con FTP:

1. Windows 95/98:

• Inicio Ejecutar Ingresar: COMMAND.COM.

• Inicio Programas MSDOS.

2. Windows XP Professional:

• Inicio Ejecutar Ingresar: CMD.EXE.

• Inicio Programas Accesorios Símbolo del sistema.

29.�.�.�. Conexión desde una interfaz de comandos de línea (en un sistema XP)

Para acceder al servicio FTP ingrese en el prompt, el comando FTP.EXE seguido del nombre completo de la computadora que presta el servicio o en su defecto su dirección IP. Veamos los siguientes ejemplos:

D:\Documents and Settings\hharagons> ftp fedora3.iciuni.edu.pe

Si su sistema no cuenta con un DNS que le resuelva la dirección IP del servidor, entonces deberá ingresar en el prompt la dirección IP del servidor, por ejemplo:

D:\Documents and Settings\hharagons> ftp 192.168.1.243

Tiene el mismo efecto que el comando que se aprecia en la figura 29.3. Para usar el servicio FTP hay que contar con una cuenta de usuario en el servidor o en su defecto se puede usar la cuenta: anonymous, que es una cuenta estándar en FTP. Si este es el caso después hay que ingresar una contraseña con el formato de un correo electrónico.

El la figura siguiente se aprecia la conexión al servidor fedora3.iciuni.edu.pe. Puede apreciar que el sistema le da la bienvenida y le informa de su nombre y dirección IP. Después del mensaje de bienvenida el sistema pide una cuenta de usuario, en este caso se usa anonymous; más adelante el sistema le pide que ingrese una contraseña, la cual debe tener el formato de un correo electrónico.

Page 12: El Servidor FTP (Cap29)

�2

Sistema Operativo Linux

Figura 29.3. Accediendo al servicio FTP con el usuario anonymous.

Figura 29.4. Accediendo al servicio FTP con un usuario del sistema.

Page 13: El Servidor FTP (Cap29)

��

Capítulo 29: El Servidor FTP

En la figura 29.4., se aprecia el acceso de un usuario del sistema Linux. Aprecie que el acceso ha sido satisfactorio (230 Login successful.). El servidor FTP responderá con el prompt: ftp>.

Si desea ver la lista de comandos digite en el prompt: ? y presione la tecla Intro, el servidor FTP responderá como se muestra en la figura 29.4.

29.�.2. Conexión en modo gráfico usando un browser

Figura 29.5. Accediendo al servicio FTP vía el MS Internet Explorer.

Para acceder a un servidor FTP también se puede usar un navegador (browser) como el Microsoft Internet Explorer. En la caja: Dirección, ingrese el protocolo FTP y el nombre del servidor FTP como se muestra en la figura anterior.

Luego haga clic en el menú Archivo, después elija la opción: Iniciar sesión como, y el sistema le presentará una ventana de acceso como se muestra en la figura 29.6. Para acceder al servicio FTP ingrese una cuenta de usuario local o la cuenta anonymous. En cualquiera de los casos el sistema le pedirá que ingrese una contraseña. Después de ingresar su contraseña de usuario local o un correo electrónico en caso de haber elegido anonymous, presione Iniciar sesión para acceder. Hecho esto el navegador le presentará una ventana de acceso como la que se muestra en la figura 29.7.

Page 14: El Servidor FTP (Cap29)

��

Sistema Operativo Linux

Figura 29.6. Conexión a FTP de un usuario del sistema.

Figura 29.7. Usando el servicio FTP.

Page 15: El Servidor FTP (Cap29)

��

Capítulo 29: El Servidor FTP

29.�.�. Conexión en modo gráfico usando una aplicación

Figura 29.8. Accediendo a la aplicación WS_FTP Pro.

Figura 29.9. Front-end de WS_FTP Pro.

Page 16: El Servidor FTP (Cap29)

��

Sistema Operativo Linux

29.�. ¿Cómo usar el servicio?En esta sección se explicará cómo usar FTP desde una interfaz de comandos de línea. El usuario hharagons desde un sistema XP realiza una conexión al servidor FTP fedora3.iciuni.edu.pe:

Figura 29.10. Accediendo al servicio FTP.

Estando ya en el ambiente FTP, el usuario hharagons ejecuta el comando pwd para mostrar el directorio actual; luego ejecuta el comando dir, para ver el contenido de ese directorio y finalmente ejecuta el comando lcd, que muestra el directorio local actual.

Page 17: El Servidor FTP (Cap29)

��

Capítulo 29: El Servidor FTP

Aprecie que muchos de los comandos ingresados al sistema responden con un código seguido de un mensaje, como por ejemplo: si ingresa el comando dir verá los siguientes mensajes:

200 PORT command successful. Consider using PASV.

150 Here is come the directory listing.

::::::::::::::::::::::::::::::::::::::::::::::

226 Directory send OK.

Figura 29.11. Accediendo al servicio FTP.

Para saber cómo está predeterminado el servicio FTP, se ejecuta el comando status, que dice cuál será su comportamiento durante las transferencias de archivos. En la figura 29.11. se aprecia que el servicio FTP está preparado para hacer transferencias de tipo texto (Tipo: ascii).

Si usted es un usuario novato en el uso de FTP, probablemente deseará una ayuda en línea sobre el uso de los comandos FTP; entonces ingrese en el prompt de FTP el signo ? y verá el despliegue que se muestra en la figura 29.11.

También se puede ingresar el comando help, que muestra el mismo despliegue; y si desea una explicación sencilla de lo que hace un comando cualquiera, entonces, digite: help mget, en el caso de querer saber qué hace el comando mget.

En las siguientes figuras se muestra qué hace cada uno de los comandos de FTP. Por ejemplo en la figura 29.12. se explica los comandos: !, ?, append, ascii, bell, binary, bye, cd y close.

Page 18: El Servidor FTP (Cap29)

��

Sistema Operativo Linux

Figura 29.12. Accediendo al servicio FTP.

En la figura 29.13., se explica los comandos: delete, debug, dir, disconnect, get, glob, hash, help y lcd.

Figura 29.13. Accediendo al servicio FTP.

Page 19: El Servidor FTP (Cap29)

�9

Capítulo 29: El Servidor FTP

En la figura 29.14. se explica los comandos: literal, ls, mdelete, mdir, mget, mkdir, mls, mput y open.

Figura 29.14. Accediendo al servicio FTP.

En la figura 29.15., se explica los comandos: prompt, put, pwd, quit, quote, recv, remotehelp, rename y rmdir.

Figura 29.15. Accediendo al servicio FTP.

Page 20: El Servidor FTP (Cap29)

20

Sistema Operativo Linux

En la figura 29.16., se explica los comandos: send, status, trace, type, user y verbose.

Figura 29.16. Accediendo al servicio FTP.

En la figura 29.17., se aprecia el uso del comando put, para transferir el archivo binario C:\WINDOWS\NOTEPAD:EXE desde el computador local hacia el servidor FTP. Puede apreciarse que se enviaron 57344 bytes en menos de un segundo. Si existiera en el destino una copia del archivo, este sería reemplazado. Atención: en el servidor FTP se debe tener por lo menos los permisos de lectura y de escritura.

El comando dir *:EXE, muestra todos los archivos ejecutables que se encuentran en el directorio personal del usuario hharagons, en el servidor FTP.

Puede apreciar que bajo FTP el usuario hharagons, sobre los archivos .EXE, tiene los siguientes permisos: rw-. Es decir de lectura (r, read) y escritura (w, write).

Si deseo extraer del servidor FTP una copia de un archivo, entonces se debe ejecutar el comando get. En la figura 29.17., se puede apreciar el resultado de la ejecución del comando: get EDITOR.EXE. Observe que se debe tener cuidado con el nombramiento de los archivos. FTP es susceptible a las mayúsculas y minúsculas, mejor dicho Linux Fedora es sensible a las “altas” y las “bajas”.

Si deseo escapar momentáneamente del servicio FTP y trabajar en la interfaz de comandos de línea del MS Windows XP Professional, entonces digite el comando: !La ejecución de este comando nos envía al prompt del XP, aprecie que el prompt es:

D:ΙDocuments & Settings\hharagons>

Aquí se ejecuta el comando interno del shell del XP: dir *.exe. Este comando se parece en su ejecución al comando dir del FTP.

Para retornar al ambiente del FTP, ingrese en el prompt de XP: exit. Este comando le retornará al ambiente del servidor FTP.

Page 21: El Servidor FTP (Cap29)

2�

Capítulo 29: El Servidor FTP

Figura 29.17. Accediendo al servicio FTP.

En el caso de querer rescatar varios archivos del servidor FTP, que siguen un patrón común, entonces utilizar el comando mget. Se pueden utilizar comodines para esto, veamos un ejemplo: mget Fe*.zip. Y si desea que el sistema no le pida confirmación, entonces previamente ejecute el comando prompt.

Page 22: El Servidor FTP (Cap29)

22

Sistema Operativo Linux

Puede apreciarse en la figura 29.18, que transferir un archivo de 34,340,372 bytes, esto es aproximadamente 32.7 MB, toma tan sólo 3.11 segundos.

Figura 29.18. Accediendo al servicio FTP.

Para escapar de FTP digite el comando bye, que finaliza la sesión FTP y nos permite salir y regresar a nuestro ambiente “normal” de trabajo.

Page 23: El Servidor FTP (Cap29)

2�

Capítulo 29: El Servidor FTP

29.�. Comandos FTP según RFC 9�9

29.�.�. Órdenes de control de acceso

• USER (nombre de usuario):

El argumento es una cadena de caracteres que identifica al usuario. Esta identificación es la que requiere el servidor para acceder a su sistema de archivos. Normalmente ésta será la primera orden a transmitir una vez establecida la conexión. El servidor puede requerir información adicional como una contraseña o cuenta. Los servidores pueden permitir una nueva orden USER durante la conexión para cambiar el control de acceso o la información de la cuenta. Esto permite continuar una misma sesión con otra identidad.

• PASS (contraseña):

El argumento es una cadena de caracteres contraseña del usuario. Esta orden debe seguir inmediatamente a la orden USER y, completa la identificación del usuario para el control de acceso.

• ACCT (account, cuenta):

El argumento es una cadena Telnet identificando la cuenta del usuario. Esta orden no está necesariamente relacionada con la orden USER, ya que algunas computadoras pueden requerir una cuenta para acceder y otras sólo para cierto tipo de acceso, como almacenar archivos. En este último caso, la orden se puede enviar en cualquier momento.

Hay códigos de respuesta para diferenciar automáticamente estos casos: cuando se requiere información de la cuenta, la respuesta a una orden PASS correcta es el código 332. Por Otra parte, si NO se requiere esta información, la respuesta a una orden PASS correcta es 230.

• CWD (Cambio de directorio de trabajo):

Esta orden permite al usuario trabajar en un directorio o conjunto de datos diferente.

• CDUP (Cambio al directorio padre):

Versión simplificada de CWD, para subir de directorio.

• SMNT (Montar directorio):

Permite al usuario montar un sistema de archivos diferente sin alterar la información de entrada o de cuenta. Los parámetros de transferencia permanecen sin cambios. El argumento es un nombre de ruta especificando un directorio o alguna otra agrupación de archivos dependiente del sistema.

Page 24: El Servidor FTP (Cap29)

2�

Sistema Operativo Linux

• REIN (Reinicializar):

Termina una sesión de USER, descargando todos los datos del entrada/salida y la información de cuenta, excepto que si hay alguna transferencia en proceso permite que termine. Todos los parámetros se inician con sus valores por defecto y la conexión de control se deja abierta. El estado alcanzado es idéntico al que se tiene inmediatamente después de abrir la conexión de control.

• QUIT (Salir):

Termina una sesión de USER y si no hay en proceso ninguna transferencia, cierra la conexión de control. Si hay una transferencia de archivo en proceso, la conexión permanecerá abierta hasta que el servidor envíe una respuesta con el resultado de la transferencia y luego se cierra.

29.�.2. Parámetros de transferencia (no usuales)

• PORT (Puerto de datos):

Especificación del computador-puerto, para el puerto que será usado en la conexión de datos. Hay valores por defecto, y bajo circunstancias normales, esta orden y su respuesta no son necesarias. Si se usa esta orden, el argumento es la unión de una dirección IP (32 bits) y un puerto TCP (16 bits).

• PASV (Pasivo):

Solicita al servidor que escuche en un puerto de datos distinto del puerto por defecto, y espere a recibir una conexión en lugar de iniciar una al recibir una orden de transferencia. La respuesta a este comando incluye la dirección IP y el puerto donde este servidor está esperando a recibir la conexión.

• TYPE (tipo de representación):

Específica un tipo de representación: A – ASCII, E – EBCDIC, I – Imagen y L -tamaño de byte-

• STRU (Estructura de archivo):

Un único carácter Telnet específica una estructura de archivo de las descritas en la sección Representación de Datos y Almacenamiento: F - Archivo (sin estructurar en registros), R - Estructurado en registros, P - Estructurado en páginas. La estructura por defecto es Archivo.

• MODE (Modo de transferencia):

Un único carácter Telnet especifica un modo de transferencia: S – Flujo, B – Bloque, C – Comprimido.

Page 25: El Servidor FTP (Cap29)

2�

Capítulo 29: El Servidor FTP

29.�.�. Comandos de servicio

• RETR (Recuperar): Hace que el server-DTP transfiera una copia del archivo especificado en el nombre de ruta.

• STOR (Almacenar): Hace que el servidor lea los datos transferidos por la conexión de datos y los guarde en un archivo en el servidor. Si el archivo especificado en el nombre de ruta existe en el servidor, su contenido se debe reemplazar con los datos recibidos. Se crea un archivo nuevo en el servidor si el indicado no existía ya.

• STOU (Almacenamiento único): Igual que STOR sólo que el archivo resultante se crea en el directorio actual con un nombre único para ese directorio.

• APPE (Añadir): Si el archivo especificado en el nombre de ruta existe, los datos se añaden a ese archivo; si no, se crea un archivo nuevo en el servidor.

• ALLO (Solicitar espacio): Reserva suficiente espacio de almacenamiento en el servidor para recibir el nuevo archivo. A continuación de esta orden se deberá indicar una orden STOR o APPE.

• REST (Recomenzar): El argumento representa un marcador del servidor a partir del cual debe recomenzar la transferencia. La orden no realiza la transferencia del archivo, pero hace que el puntero de lectura o escritura del archivo se sitúe a continuación del punto indicado. A continuación de esta orden se debe enviar la orden de servicio FTP apropiada que hará que continúe la transferencia del archivo.

• RNFR (Renombrar de):

Indica el archivo que queremos cambiar de nombre en el servidor.

• RNTO (Renombrar a):

Específica el nuevo nombre para el archivo indicado mediante el comando RNFR. Las dos órdenes seguidas hacen que el archivo cambie de nombre.

• ABOR (abortar):

Pide al servidor que interrumpa la orden de servicio FTP previa y cualquier transferencia de datos asociada. Hay dos posibles casos para el servidor al recibir esta orden: (1) la orden de servicio FTP está ya terminada, o (2) aún está en ejecución. En el primer caso, el servidor cierra la conexión de datos (si está abierta) y devuelve una respuesta 226 indicando que la orden de interrumpir se ha procesado correctamente. En el segundo caso, el servidor interrumpe el

Page 26: El Servidor FTP (Cap29)

2�

Sistema Operativo Linux

servicio FTP en proceso y cierra la conexión de datos, devolviendo una respuesta 426 para indicar que la solicitud de servicio terminó anormalmente. Luego, el servidor envía una respuesta 226 para indicar que la orden de interrumpir se ha procesado correctamente.

• DELE (Borrar): Borra en el servidor el archivo indicado en el nombre de ruta.

• RMD (Borrar directorio): Borra en el servidor el directorio indicado.

• MKD: Borra el directorio del servidor especificado.

• PWD: Muestra el directorio de trabajo del servidor.

• LIST: Envía una listado de los archivos a través del proceso de transferencia de datos pasivo. Si el nombre de ruta u otra agrupación de archivos, el servidor debe transferir una lista de los archivos en el directorio indicado. Si el nombre de ruta especifica un archivo, el servidor debería enviar información sobre el archivo. Si no se indica argumento alguno, implica que se quiere listar el directorio de trabajo actual o directorio por defecto.

• NLST (Listar nombres): Envía listado de directorio desde el servidor. El nombre de ruta indica un directorio u otra agrupación de archivos específica del sistema; si no hay argumento, se asume el directorio actual.

• SITE (Parámetros del sistema): Proporciona servicios específicos propios del sistema del servidor que son fundamentales para transferir archivos pero no lo suficientemente universales como para ser incluidos como órdenes en el protocolo.

• SYST: Devuelve el tipo de sistema operativo del servidor.

• STAT: El servidor devolverá información general del estado del proceso servidor FTP.

• HELP: El servidor envía información sobre la implementación del FTP.

• NOOP (No operación): No hace nada más que provocar que el servidor envíe una respuesta OK.

Page 27: El Servidor FTP (Cap29)

2�

Capítulo 29: El Servidor FTP

29.�. Códigos de respuestas del servidor FTPLas respuestas de un servidor ftp vienen identificadas por un código de tres números. Este código está pensado para asegurar la sincronización entre peticiones y acciones en el proceso de transferencia de archivos y para garantizar que el proceso de usuario siempre conoce el estado del servidor. Cada orden debe generar por lo menos una respuesta, aunque puede haber más de una.

Una respuesta FTP consiste en un número de tres cifras seguido de texto explicativo. El número contiene suficiente información como para que el programa del usuario no necesite examinar el texto, y puede o bien descartarlo o bien mostrarlo. El texto puede depender del servidor y, por tanto, puede variar en cada código de respuesta.

Cada uno de los tres números de la respuesta tiene un significado especial. Se pretende permitir un rango de respuestas desde muy simple a muy detallado. El primer dígito denota si la respuesta es buena, mala o incompleta. Un proceso de usuario poco sofisticado podrá determinar su próxima acción simplemente examinando el primer dígito. Un proceso de usuario que quiera conocer aproximadamente el tipo de error ocurrido (por ejemplo, error del sistema de archivos o error de sintaxis) puede examinar el segundo dígito, reservando el tercero para una mayor precisión en la información.

29.�.�. Primer dígito, cinco opciones

N?? Descripción

1## Respuesta preliminar positiva. Se ha iniciado la acción requerida; se espera otra respuesta del server antes de seguir con una nueva orden.

2## Respuesta de finalización positiva. La acción requerida se ha completado satisfactoriamente. Se puede iniciar una nueva orden.

3##

Respuesta intermedia positiva. La orden se ha aceptado, pero se está pendiente de recibir más información para completarla. El usuario debería enviar otra orden indicando esta información. Esta respuesta se utiliza en órdenes que deben ir en secuencia.

4##Respuesta de finalización negativa transitoria. La orden no se ha aceptado y la acción requerida no se ha llevado a cabo, pero la condición de error es temporal y se puede solicitar la acción de nuevo.

5## Respuesta de finalización negativa permanente. La orden no se ha aceptado y la acción requerida no ha tenido lugar.

Page 28: El Servidor FTP (Cap29)

2�

Sistema Operativo Linux

29.�.2. Segundo dígito, seis opciones

?N? Descripción

#0# Sintaxis. Estas respuestas se refieren a errores de sintaxis, órdenes correctas sintácticamente, pero que no encajan en ninguna otra categoría, órdenes no implementadas o superfluas.

#1# Información. Estas son respuestas a solicitudes de información como STATUS o HELP.

#2# Conexiones. Respuestas referidas a las conexiones de control y de datos.

#3# Autenticación y cuenta. Respuestas para el proceso de entrada al sistema y procedimientos de cuenta.

#4# Sin especificar aún.

#5# Sistema de archivos. Estas respuestas indican el estado del sistema de archivos en el servidor según se realizan transferencias u otras acciones sobre el sistema de archivos.

Page 29: El Servidor FTP (Cap29)

29

Capítulo 29: El Servidor FTP

29.�.�. Códigos de respuesta por número

Cód Descripción

110Respuesta al marcador de reinicio. En este caso, el texto debe ser: MARK yyyy = mmmm Donde yyyy es el marcador del flujo de datos en el proceso de usuario y mmmm es el equivalente en el servidor.

120 El servicio estará en funcionamiento en nnn minutos.

125 La conexión de datos ya está abierta; comenzando transferencia.

150 Conexión abierta.

200 O. K (Orden correcta).

202 Orden no implementada, no necesaria en este sistema.

211 Estado del sistema o respuesta de ayuda del sistema.

212 Estado del directorio.

213 Estado del archivo.

214 Mensaje de ayuda. Sobre como usar el servidor o el significado de una orden particular no estándar.

215 Identificación del tipo de sistema.

220 Servicio preparado para nuevo usuario.

221 Cerrando la conexión de control. Desconectado si procede.

225 Conexión de datos abierta; no hay transferencia en proceso.

226 Cerrando la conexión de datos. La acción sobre archivo requerida ha sido correcta (por ejemplo, una transferencia o interrupción).

227 Iniciando modo pasivo.

230 Usuario conectado, continúe.

250 La acción sobre archivo solicitado finalizó correctamente.

257 “path” creado.

331 Usuario OK, necesita contraseña.

332 Necesita nombre de cuenta.

350 La acción requiere más información. Pendiente.

421 Servicio no disponible, cerrando la conexión de control. Esta puede ser la respuesta a cualquier comando si el servidor sabe que debe finalizar.

Page 30: El Servidor FTP (Cap29)

�0

Sistema Operativo Linux

425 No se puede abrir la conexión de datos.

426 Conexión cerrada; transferencia interrumpida.

450 Acción no realizada. Archivo no disponible (por ejemplo, archivo bloqueado).

451 Acción interrumpida. Error local.

452 Acción no realizada. Falta de espacio en el sistema de archivos.

500 Error de sintaxis, comando no reconocido. Esto puede incluir errores como línea de orden demasiado larga.

501 Error de sintaxis en parámetros o argumentos.

502 Orden no implementada.

503 Secuencia de órdenes incorrecta.

504 Parámetro incorrecto para esa orden.

530 No está conectado.

532 Necesita una cuenta para almacenar archivos.

550 Acción no realizada, Archivo no disponible (por ejemplo, archivo no existe, no se tiene acceso al mismo).

551 Acción interrumpida. Tipo de página desconocido.

552 Acción interrumpida. Se ha sobrepasado el espacio disponible de almacenamiento (para el directorio actual).

553 Acción no realizada. Nombre de archivo no permitido.

Page 31: El Servidor FTP (Cap29)

��

Capítulo 29: El Servidor FTP

29.�. Recursos adicionalesEste capítulo trata sobre la utilización de FTP. Para obtener información más detallada, consulte los siguientes recursos.

29.�.�. Documentación instalada

Las páginas del manual de:• vsftpd:

Define el demonio vsftpd.• vsftpd.conf:

Muestra las directivas usadas para configurar vsFTP.

29.�.2. Sitios Web útiles• http://www.ignside.net/man/ftp/index.php:

Información abundante y descriptiva de FTP.

Page 32: El Servidor FTP (Cap29)

�2

Sistema Operativo Linux