Optimización de Transferencias de Archivos: FTP, TFTP y Configuración de Servidores
Clasificado en Informática
Escrito el en español con un tamaño de 6,14 KB
El Protocolo de Transferencia de Archivos (FTP)
El Protocolo de Transferencia de Archivos (FTP) es un software cliente/servidor que permite a los usuarios transferir archivos entre ordenadores en una red TCP/IP. Su funcionamiento es sencillo: una persona, desde su ordenador, invoca un programa cliente FTP para conectar con otro ordenador que, a su vez, tiene instalado el programa servidor FTP. Una vez establecida la conexión y debidamente autenticado el usuario con su contraseña, se pueden empezar a intercambiar archivos de todo tipo.
Las operaciones de descarga y subida de archivos se completarán con mayor fiabilidad si se evitan errores de transferencia. Es importante destacar que el FTP tradicional se realiza en texto plano, sin cifrado y, por lo tanto, sin seguridad.
Tipos de Usuarios FTP
Existen tres tipos de usuarios FTP:
- Usuario Local: Usuarios con cuentas en el sistema operativo del servidor.
- Usuario Genérico: Usuarios que acceden con credenciales predefinidas o anónimas.
- Usuario Virtual: Usuarios con cuentas gestionadas por el propio servidor FTP, no por el sistema operativo.
Para iniciar una sesión FTP, se utilizan los comandos OPEN y USER.
Características del TFTP (Trivial File Transfer Protocol)
A diferencia del FTP, el Protocolo de Transferencia de Archivos Trivial (TFTP) presenta las siguientes características:
- Utiliza el protocolo UDP (puerto 69) como protocolo de transporte. Los datos se envían en datagramas siempre en sentido de descarga hacia la máquina destino (es unidireccional).
- No puede listar el contenido de los directorios.
- No existen mecanismos de autenticación o cifrado.
Modos de Conexión FTP
Modo Activo
La conexión en modo activo es la forma nativa de establecer la conexión. Requiere desactivar el cortafuegos en el cliente o configurar reglas específicas para permitir la conexión de datos entrante desde el servidor.
Se establece una conexión de control para transmitir comandos FTP desde cualquier puerto superior a 1024 en el cliente hacia el puerto 21 del servidor. En esta conexión de control, se comunica al servidor qué puerto utilizará el cliente para la recepción de datos.
El servidor abre su puerto 20 para realizar la transferencia de datos solicitada por el cliente y también abre el puerto indicado por el cliente para la transmisión de datos.
Modo Pasivo (PASV)
La conexión en modo pasivo (PASV) también la inicia el cliente, pero en este caso es necesario indicarlo explícitamente.
La conexión de control FTP se realiza desde un puerto superior a 1024 en el cliente y se dirige al puerto 21 del servidor FTP. Para la conexión de transferencia de datos, el cliente solicita un puerto abierto superior a 1024 en el servidor FTP. Cuando recibe la respuesta, el cliente establece la conexión con el servidor para la transferencia de datos a través de ese puerto.
Modos de Ejecución del Servidor FTP
Modo Aislado (Standalone)
El Modo Aislado (Standalone) se ejecuta como un proceso del sistema de forma independiente desde el arranque y permanece activo a la espera de peticiones mientras el servicio esté activo, lo que proporciona mayor seguridad y eficiencia.
Modo Superservidor (inetd)
El Modo Superservidor (inetd) se ejecuta como un proceso hijo del proceso inetd (también conocido como Super Servidor de Internet, ya que gestiona de manera centralizada las conexiones de diversos servicios o demonios en sistemas GNU/Linux). En este caso, se debe configurar el archivo /etc/inetd.conf
añadiendo la línea correspondiente al servicio FTP.
Configuración de Parámetros FTP (Ejemplo vsftpd)
A continuación, se presentan algunos parámetros de configuración comunes para un servidor FTP, como vsftpd:
Listen
- Activa o desactiva el servidor FTP para escuchar peticiones (
YES
/NO
). anonymous_enable
- Permite o deniega el acceso de usuarios anónimos (
YES
/NO
). local_enable
- Permite o deniega el acceso de usuarios locales (del sistema) (
YES
/NO
). anon_mkdir_write_enable
- Permite a los usuarios anónimos crear directorios y escribir en ellos (
YES
/NO
, por defecto esNO
). local_umask
- Máscara por defecto para los permisos de los nuevos directorios/archivos creados por usuarios locales (ejemplo:
022
). chroot_local_user
- Enjaula a los usuarios locales en sus directorios de inicio para mayor seguridad (
YES
/NO
). chroot_list_enable
- Habilita la lista de usuarios que NO serán enjaulados (
YES
/NO
). chroot_list_file
- Especifica la ruta al archivo que contiene la lista de usuarios no enjaulados (ejemplo:
/etc/vsftpd.chroot_list
). xferlog_enable
- Activa el registro de los mensajes de error, advertencias y transferencias (
YES
/NO
). xferlog_file
- Especifica la ruta donde se guardarán estos registros (ejemplo:
/var/log/vsftpd.log
). user_local_time
- Usa la hora local del servidor para los registros (por defecto es GMT) (
YES
/NO
). connect_from_port_20
- Usa el puerto 20 para las conexiones de datos salientes en modo activo (
YES
/NO
). ssl_enable
- Activa el modo seguro (SSL/TLS) para las conexiones FTP (
YES
/NO
). allow_anon_ssl
- Permite o deniega el uso de SSL/TLS para usuarios anónimos (
YES
/NO
).