UT.04. Servicios de transferencia de archivos
Curso 2024-25
Objetivo
El protocolo estándar es el FTP (File Transfer Protocol)
Transmitir archivos entre Servidor y Clientes (Subida y bajada)
Ventaja
Total transparencia usando distintos tipos de sistemas de archivos entre Server y Clientes.
Arquitectura
Las conexiones FTP se establecen sobre conexiones TCP de nivel de transporte
TCP/IP
Nivel
Aplicación
Subir archivos
Bajar
Borrar
Crear carpetas
Desde una terminal y desde entorno gráfico
Desventaja
Aunque al realizar la conexión FTP, hay una autenticación de usuario, se transmiten el nombre y la contraseña sin encriptar.
No es seguro
Transmisión
En texto plano
Posible solución: Tunelizar las conexiones FTP sobre conexiones seguras SSH, usando SFTP
1. Usuario inicia cliente FTP solicitando una conexión (se identifica)
2. Se establece la conexión y enviará órdenes FTP al server
3. Server procesa los comandos, realiza las acciones y envía las respuestas
No confundir respuesta con transferencia de datos
R: Archivo encontrado
T: Se transmite contenido
Los otros dos dígitos (xy) dan mayor detalle del contenido de la respuesta.
En las respuestas FTP el server envía un código numérico de 3 dígitos indicando como ha sido procesado el comando.
de Control
Envía comandos, recibe respuestas del server sobre esos comandos
de Datos
Usada para la transferencia de archivos cuando ha sido solicitada
Una conexión FTP entre un cliente y un servidor se desarrolla sobre dos conexiones TCP de nivel de transporte
Hay dos modos de establecer las conexiones de datos entre cliente y servidor:
1. Cliente envía comando PORT (conexión de control) con un nro. de puerto > 1024 (para abrir conexión de datos).
2. Server inicia conexión de datos (no transferencia) en su puerto 20 y el puerto indicado en el paso 1 por el cliente (el firewall del cliente puede entenderlo como una amenaza externa, la conexión se inicia solicitando que el cliente abra un puerto).
3. Se usa la conexión de datos para transferir los archivos
1. Cliente envía comando PASV (solicita una conexión en modo pasivo) .
2. Server responde con un nro. de puerto > 1024 (no el 20) que se usará para la conexión de datos. Usará uno distinto para cada conexión que inicie.
3. Cliente inicia la conexión de datos abriendo un puerto TCP disponible > 1024 y conectándose con el puerto indicado en el paso 2. Cuando llega la solicitud al server se abre el puerto y se transmiten los archivos.
Pues depende del uso y la soltura que tengamos, uno de los más usados y recomendables es FileZilla. ¿Por qué?
Sintaxis básica: ftp [host [port]]
Sintaxis básica: ftp [host [port]]
bye / exit / quit
Termina conexión y sale del programa
close / disconnect
Termina conexión sin salir del programa
open <server>
Inicia conexión. server=> dir. ip o nombre dns
user <usuario>
Inicia sesión con una conexión ya establecida.
Previa descarga del módulo, se puede instalar y configurar
Desde archivo local o en este ejemplo desde URL
Comprobación de que se ha realizado correctamente
Al acceder a Servers -> vsftp ya podremos gestionar nuestro servidor FTP
Tipos de Usuarios
Básicamente hay 2 tipos:
Anónimos
Con acceso y permisos limitados
Del Sistema
Con cuenta creada en la máquina que ofrece el servicio
Con el server vsFTPd (tercer perfil): Usuarios Virtuales
Tipos de Usuarios
Directivas de Acceso:
anonymous_enable
Defecto: YES usuarios anónimos (anonymous y ftp) pueden iniciar sesiones o conexiones FTP
local_enable
Usuarios locales con acceso al servicio
guest_enable
Usuarios virtuales con acceso al servicio
Crear Usuarios y Grupos
sudo adduser --home /var/www/html/sitio --no-create-home --shell /bin/false usuarioprueba
Creamos a usuarioprueba con directorio de trabajo /var/www/html/sitio cuyo directorio ya existe y sin establecer sesiones del Sistema Operativo (usuario virtual)
Requiere cambio de propietario y grupo en el directorio virtual:
sudo chown -R usuarioprueba:usuarioprueba /var/www/html/sitio
Además hay que añadirlo al grupo ftp para que pueda iniciar sesiones:
sudo addgroup ftp usuarioprueba
Por aquí nos quedamos...