Protocolo FTP: Funcionamiento, Características y Comandos Esenciales
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 7,3 KB
Servicio FTP
FTP (File Transfer Protocol) es el protocolo estándar para la transferencia de archivos a través de redes TCP/IP. Definido en el RFC 959, permite conectarse a un servidor remoto, ya sea de forma anónima o identificándose con un usuario y contraseña.
Objetivos Principales
- Promover el intercambio de archivos entre equipos remotos.
- Fomentar el acceso a equipos remotos.
- Ofrecer independencia al usuario respecto a los diferentes sistemas de archivos (FileSystems).
- Asegurar una transferencia de datos rápida y 'fiable'.
Deficiencias de Seguridad
- No garantiza completamente la autenticidad del usuario (solo utiliza usuario y contraseña).
- Transfiere las contraseñas en texto plano (sin cifrar), lo que las hace vulnerables a interceptaciones.
- Transfiere los datos también en texto plano (sin cifrar).
Funcionamiento del Servicio FTP
Opera bajo una arquitectura cliente/servidor:
Servidor FTP
- Utiliza el puerto 21 para escuchar las conexiones entrantes y gestionar el control (transferencia de órdenes).
- Utiliza el puerto 20 (en modo activo) para la transferencia de datos.
Cliente FTP
- Se conecta al puerto 21 del servidor desde un puerto local (generalmente un puerto efímero mayor que 1024).
- Una vez establecida la conexión de control, puede empezar a enviar órdenes al servidor para realizar operaciones como listar directorios, subir o descargar archivos.
Características Principales del Servicio FTP
- Permite conexiones como usuarios anónimos (acceso público limitado), usuarios identificados (con cuenta en el servidor) o usuarios virtuales (mapeados a usuarios reales del sistema o gestionados independientemente).
- El acceso a directorios varía según el tipo de usuario: directorio específico (anónimo), directorio personal o directorios públicos (identificado), o acceso más amplio (administradores).
- Una vez conectado, se dispone de una serie de órdenes o comandos para interactuar con el servidor (muchos son similares a los comandos de sistemas Linux/Unix).
Modos de Conexión
Existen dos modos principales para establecer la conexión de datos:
- Modo activo: El cliente informa al servidor qué puerto local está escuchando, y el servidor inicia la conexión de datos desde su puerto 20 hacia el cliente. Puede causar problemas con firewalls en el lado del cliente.
- Modo pasivo: El cliente solicita al servidor que escuche en un puerto específico, y es el cliente quien inicia la conexión de datos hacia ese puerto del servidor. Generalmente más compatible con firewalls.
Modos de Ejecución del Servidor FTP
Un servidor FTP puede operar de dos maneras:
- Modo aislado (standalone): El servidor FTP se ejecuta como un proceso demonio independiente, iniciado al arrancar el sistema operativo. Ofrece mejor rendimiento para sitios con mucho tráfico.
- Modo superservidor: El servidor FTP es lanzado por un"superservido" como
inetd
oxinetd
cada vez que llega una nueva conexión al puerto 21. Consume menos recursos cuando no hay conexiones activas.
inetd
es un demonio presente en la mayoría de sistemas tipo Unix, conocido como el "Super Servidor de Internet", ya que gestiona las conexiones de varios servicios de red, lanzando los demonios correspondientes bajo demanda.
Uso del Navegador como Cliente FTP
Es posible acceder a un servidor FTP directamente desde la mayoría de los navegadores web utilizando una URL con el formato ftp://usuario:contraseña@dominio/ruta
o simplemente ftp://dominio
para acceso anónimo o si el navegador solicita credenciales.
Comandos FTP Comunes
A continuación se listan algunos de los comandos más utilizados en un cliente FTP de línea de comandos:
?
- Muestra una lista de los comandos disponibles o ayuda sobre un comando específico.
ascii
- Establece el modo de transferencia de archivos a ASCII (adecuado para archivos de texto).
binary
- Establece el modo de transferencia de archivos a binario (adecuado para ejecutables, imágenes, archivos comprimidos, etc.). Es el modo recomendado por defecto.
cd [directorio]
- Cambia el directorio de trabajo en el servidor FTP remoto.
lcd [directorio]
- Cambia el directorio de trabajo en la máquina local.
chmod [modo] [archivo]
- Modifica los permisos de archivos y directorios en el servidor remoto (sintaxis similar al comando
chmod
de Unix). lchmod
- Modifica los permisos de archivos y directorios locales (disponibilidad depende del cliente FTP).
close
- Cierra la conexión FTP actual con el servidor remoto, pero no sale del cliente FTP.
delete [archivo_remoto]
- Borra un archivo específico en el servidor FTP remoto.
mdelete [patrón]
- Borra múltiples archivos en el servidor FTP remoto que coincidan con el patrón especificado.
mkdir [directorio]
- Crea un nuevo directorio en el servidor FTP remoto.
dir [patrón]
- Lista el contenido del directorio remoto actual (generalmente con formato detallado).
ldir [patrón]
- Lista el contenido del directorio local actual (disponibilidad depende del cliente FTP).
get [archivo_remoto] [archivo_local]
- Copia un archivo desde el servidor remoto a la máquina local.
mget [patrón]
- Copia múltiples archivos desde el servidor remoto a la máquina local.
ls [patrón]
- Lista el contenido del directorio remoto actual (generalmente con formato breve).
put [archivo_local] [archivo_remoto]
- Copia un archivo desde la máquina local al servidor remoto.
mput [patrón]
- Copia múltiples archivos desde la máquina local al servidor remoto.
prompt
- Activa o desactiva el modo interactivo, que solicita confirmación para cada archivo en operaciones múltiples (
mget
,mput
,mdelete
). pwd
- Muestra el nombre del directorio de trabajo actual en el servidor remoto.
lpwd
- Muestra el nombre del directorio de trabajo actual en la máquina local.
quit
- Cierra la conexión con el servidor remoto y termina la sesión del cliente FTP.
rename [nombre_antiguo] [nombre_nuevo]
- Renombra un archivo en el servidor remoto.
rmdir [directorio]
- Elimina un directorio vacío en el servidor remoto.
size [archivo_remoto]
- Muestra el tamaño de un archivo específico en el servidor remoto.