Diapositiva 1 - vicentesanchezsri
Download
Report
Transcript Diapositiva 1 - vicentesanchezsri
Funcionalidad del servicio
de transferencia de archivos.
Tema 5 SRI
Vicente Sánchez Patón
I.E.S Gregorio Prieto
Funcionalidad del servicio de
transferencia de archivos.
FTP (siglas en inglés de File Transfer Protocol, 'Protocolo de Transferencia
de Archivos') en informática, es un protocolo de red para la transferencia
de archivos entre sistemas conectados a una red TCP (Transmission
Control Protocol), basado en la arquitectura cliente-servidor. Desde un
equipo cliente se puede conectar a un servidor para descargar archivos
desde él o para enviarle archivos, independientemente del sistema
operativo utilizado en cada equipo.
El servicio FTP es ofrecido por la capa de aplicación del modelo de capas
de red TCP/IP al usuario, utilizando normalmente el puerto de red 20 y el
21.
Características. Componentes y
funcionamiento
De los directorios de una máquina remota, se puede
tomar de ella la información que necesita, o guardar
en ella la información que desea compartir. El
protocolo FTP (File Transfer Protocol) permite:
• La conexión a un sistema remoto.
• Observar los directorios remotos.
• Cambiar de directorio remoto.
• Copiar uno o varios archivos hacia el directorio local.
• Copiar uno o varios archivos hacia el directorio
remoto.
Características. Componentes y
funcionamiento
Se realiza sobre directorios pertenecientes a una cuenta en la máquina
remota. Para acceder dicho directorio se requiere conocer el password de
la cuenta en cuestión.
Ftp dirección.- Indica que se desea realizar la conexión a dirección. El
sistema remoto solicitará información sobre la cuenta y password remotos.
Cd directorio.- Indica que se desea entrar en el directorio.
Cd .. .- Salir al directorio padre.
Bin .- Definir que las siguientes transferencias sean binarias (a 8 bits)
ascii .- Definir que las siguientes transferencias sean en ascii (a 7 bits)
get archivo .- Transferir archivo del directorio remoto al local.
Mget expresión.-Transferir archivos que cumplan con la expresión regular
expresión, hacia el directorio local.
Put archivo.-Transferir archivo del directorio local, hacia el directorio
remoto.
Mput expresión.-Transferir los archivos que cumplan con la expresión
regular expresión, hacia el directorio local.
Bye.- Concluir sesión.
Características. Componentes y
funcionamiento
FTP es un servicio orientado a conexión concurrente que funciona sobre
dos puertos 21 para el intercambio de comandos y 20 para los datos. La
estructura general de funcionamiento es la que se muestra en la siguiente
figura.
Características. Componentes y
funcionamiento
Los elementos que componen el sistema son los siguientes:
Servidor FTP: Máquina a la que nos queremos conectar y
que debe aceptar sesiones FTP. Debe ser una máquina en la
que esté activo el servicio FTP. A su vez se compone de:
Servidor PI (Protocol Interpreter): El intérprete de
protocolo del servidor “escucha” en el puerto 21 los
comandos que le envía el intérprete de protocolo del cliente
y controla el proceso de transferencia de datos del servidor.
Servidor DTP (Data Transfer Protocol): El protocolo de
transferencia de datos del servidor se utiliza para transmitir
los datos entre el servidor y el protocolo de transferencia de
datos del cliente. Puede estar en modo “pasivo” a la escucha
de conexiones en el puerto 20 de datos.
Características. Componentes y
funcionamiento
Cliente FTP: Máquina con la que nos conectamos al servidor
FTP. Está compuesta por los siguientes elementos:
Interfaz de usuario: conjunto de comandos de “alto nivel”
que el usuario puede memorizar más fácilmente que los
comandos FTP que se envían entre cliente y servidor.
Cliente PI: El intérprete de protocolo de usuario inicia el
control de la conexión a través del puerto 21 con el servidor
FTP, envía los comandos FTP una vez codificados por la
interfaz de usuario y los envía al intérprete de protocolo del
servidor, y controla el proceso de transferencia de los
archivos (DTP).
Cliente DTP: El proceso de transferencia de datos “escucha”
el puerto de datos (20) aceptando conexiones para la
transferencia de ficheros.
Características. Componentes y
funcionamiento
El 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.
Cuando un cliente FTP se conecta con un servidor FTP, el USUARIO PI
inicia la conexión con el servidor de acuerdo con el protocolo Telnet. El
cliente envía comandos FTP al servidor, el servidor los interpreta, ejecuta
su DTP y después envía una respuesta estándar. Una vez que se establece
la conexión, el servidor PI proporciona el puerto por el cual se enviarán
los datos al Cliente DTP. El cliente DTP escucha el puerto especificado
para los datos provenientes del servidor.
Es importante tener en cuenta que, debido a que los puertos de control y
de datos son canales separados, es posible enviar comandos desde un
equipo y recibir datos en otro. Entonces, por ejemplo, es posible transferir
datos entre dos servidores FTP mediante el paso indirecto por un cliente
para enviar instrucciones de control y la transferencia de información
entre dos procesos del servidor conectados en el puerto correcto.
Características. Componentes y
funcionamiento
Características. Componentes y
funcionamiento
Protocolo FTP
FTP (siglas en inglés de File Transfer Protocol, 'Protocolo de
Transferencia de Archivos') en informática, es un protocolo de red
para la transferencia de archivos entre sistemas conectados a una
red TCP (Transmission Control Protocol), basado en la arquitectura
cliente-servidor. Desde un equipo cliente se puede conectar a un
servidor para descargar archivos desde él o para enviarle archivos,
independientemente del sistema operativo utilizado en cada equipo.
La copia de ficheros de una máquina a otra es una de las
operaciones más frecuentes. La transferencia de datos entre cliente
y servidor puede producirse en cualquier dirección. El cliente
puede enviar o pedir un fichero al servidor.
Para acceder a ficheros remotos, el usuario debe identificarse al
servidor. En este punto el servidor es responsable de autentificar al
cliente antes de permitir la transferencia de ficheros.
Desde el punto de vista de un usuario de FTP, el enlace está
orientado a conexión. En otras palabras, es necesario que ambos
hosts estén activos y ejecutando TCP/IP para establecer una
transferencia de ficheros.
Protocolo FTP
FTP usa TCP como protocolo de transporte para proporcionar conexiones fiables
entre los extremos. Se emplean dos conexiones: la primera es para el login y sigue
el protocolo TELNET y la segunda es para gestionar la transferencia de datos.
Como es necesario hacer un login en el host remoto, el usuario debe tener un
nombre de usuario y un password para acceder a ficheros y a directorios. El usuario
que inicia la conexión asume la función de cliente, mientras que el host remoto
adopta la función de servidor
En ambos extremos del enlace, la aplicación FTP se construye con intérprete de
protocolo (PI), un proceso de transferencia de datos, y una interfaz de usuario
como muestra la imagen.
Protocolo FTP
La interfaz de usuario se comunica con el PI, que
está a cargo del control de la conexión. Este
intérprete de protocolo ha de comunicar la
información necesaria a su propio sistema de
archivos.
En el otro extremo de la conexión, el PI, además de
su función de responder al protocolo TELNET, ha
de iniciar la conexión de datos. Durante la
transferencia de ficheros, los DTPs se ocupan de
gestionar la transferencia de datos. Una vez que la
operación del usuario se ha completado, el PI ha de
cerrar la conexión de control.
Tipos de usuarios y accesos al
servicio: Acceso anónimo y acceso
autorizado
Existen dos tipos de usuarios:
Usuarios FTP: aquellos que disponen de una
cuenta en la máquina que ofrece el servicio
FTP.
Usuarios anónimos: usuarios cualesquiera
que, al conectarse al servidor FTP, sólo
deben introducir una contraseña simbólica.
Sólo tienen acceso a una parte limitada del
sistema de archivos.
Tipos de usuarios y accesos al
servicio: Acceso anónimo y acceso
autorizado
ACCESO ANÓNIMO.
Los servidores FTP anónimos ofrecen sus servicios libremente a todos los
usuarios, permiten acceder a sus ficheros sin necesidad de tener un
'USERID' o una cuenta de usuario. Es la manera más cómoda fuera del
servicio web de permitir que todo el mundo tenga acceso a cierta
información sin que para ello el administrador de un sistema tenga que
crear una cuenta para cada usuario.
Si un servidor posee servicio 'FTP anonymous' solamente con teclear la
palabra "anonymous", cuando pregunte por tu usuario tendrás acceso a ese
sistema. No se necesita ninguna contraseña preestablecida, aunque tendrás
que introducir una sólo para ese momento, normalmente se suele utilizar
la dirección de correo electrónico propia.
Solamente con eso se consigue acceso a los ficheros del FTP, aunque con
menos privilegios que un usuario normal. Normalmente solo podrás leer y
copiar los ficheros existentes, pero no modificarlos ni crear otros nuevos.
Normalmente, se utiliza un servidor FTP anónimo para depositar grandes
ficheros que no tienen utilidad si no son transferidos a la máquina del
usuario, como por ejemplo programas, y se reservan los servidores de
páginas web (HTTP) para almacenar información textual destinada a la
lectura en línea.
Tipos de usuarios y accesos al
servicio: Acceso anónimo y acceso
autorizado
ACCESO AUTORIZADO.
El FTP Autenticado se utiliza para conectarse a un servidor y
enviar/recibir archivos a/desde un directorio para luego
hacerlos públicos/privados. Por ejemplo, si deseásemos
colocar unas páginas en Internet, habría que enviarlas al
servidor. Pero, por otro lado, no nos gustaría que cualquiera
pudiese acceder a ellas para cambiarlas o eliminarlas. Por
tanto, se necesita un protocolo con contraseña.
En el servidor se guarda la información de las distintas
cuentas de usuario que pueden acceder a él, de manera que
para iniciar una sesión FTP debemos introducir un login y un
password que nos identifica.
Configuración del servicio de
transferencia de archivos. Permisos
y cuotas
PERMISOS
El protocolo FTP se desarrolló en entornos de tipo UNIX similares
a los populares GNU/Linux. Por eso tenemos los permisos de
ejecución, lectura y escritura, estableciéndose tres tipos de
usuarios:
Propietario: Es normalmente la persona que ha creado o que ha
subido el archivo al servidor FTP.
Grupo: Se refiere a un grupo de usuarios al que probablemente
pertenece el propietario.
Otros: Son todos los demás usuarios anónimos o que no
pertenecen al grupo indicado.
Para establecer los permisos de escritura existe un algoritmo, el
cual asigna valores al tipo de acceso que se quiere otorgar a cada
tipo de usuario.
4=lectura
2= escritura
1= ejecución
Configuración del servicio de
transferencia de archivos. Permisos
y cuotas
Los permisos se asignan acorde con la suma de
los tipos ya descritos. Por ejemplo:
6 (4+2) = lectura y escritura
5 (4+1) = lectura y ejecución
3 (2+1) = escritura y ejecución
7 (4+2+1) = lectura, escritura y ejecución
Las combinaciones se dan en el siguiente orden:
propietario, grupo y usuarios.
Por ejemplo: 755, otorga lectura, escritura y
ejecución al propietario, y al grupo y a otros le
otorga los permisos de ejecución y lectura.
Configuración del servicio de
transferencia de archivos. Permisos
y cuotas
CUOTAS
La cuota limita la cantidad de datos que un usuario puede
cargar a su servidor, para asignar cuotas de disco a usuarios
haremos lo siguiente:
Instalar la característica de control de cuotas.
$apt-get install quota
Indicar las particiones en las que aplicaremos las quotas
editando /etc/fstab y añadiendo las opciones usrquota,
grpquota
#/dev/hda5 /home ext3 defaults,usrquota,grpquota 0 2
Crearemos los archivos de control de quota y reiniciamos las
particiones
touch /home/quota.user /home/quota.group
chmod 600 /home/quota
mount -o remount /home
Configuración del servicio de
transferencia de archivos. Permisos
y cuotas
Editar la quota de los usuarios
Antes de nada deberíamos saber que existen dos tipos de cuota:
- Cuotas rígidas: no será posible superar el límite y será negado el acceso.
- Cuotas flexibles: se pueden superar y el usuario sólo recibirá un aviso de
límite excedido. Tras un período de gracia (por defecto 7 días,
configurable por partición) la cuota se volverá rígida.
Ejecutamos el comando:
# edquota -u usuario
Entonces se nos mostrará una serie de registros con los siguientes
campos:
- Filesystem (el sistema de archivos en el que se aplica la cuota)
- blocks (el número de bloques máximo a ocupar. 0 = ilimitado)
- soft (el número de KB máximo a ocupar para cuota flexible. 0 =
ilimitado)
- hard (el número de KB máximo a ocupar para quota rígida. 0 =
ilimitado)
- inodes (el número de archivos máximo. 0 = ilimitado)
Conexiones y modos: Conexión de
control y conexión de datos. Modos
activo y pasivo.
FTP admite dos modos de conexión del cliente. Estos modos se
denominan Activo (o Estándar, o PORT, debido a que el cliente
envía comandos tipo PORT al servidor por el canal de control al
establecer la conexión) y Pasivo (o PASV, porque en este caso envía
comandos tipo PASV). Tanto en el modo Activo como en el modo
Pasivo, el cliente establece una conexión con el servidor mediante
el puerto 21, que establece el canal de control.
conexión de control: La ruta de comunicación entre el USER-PI y el
SERVER-PI para el intercambio de órdenes y respuestas. Esta
conexión sigue el Protocolo Telnet.
conexión de datos: Una conexión bidireccional sobre la que se
transfieren los datos en un modo y tipo especificados. Los datos
transferidos pueden ser una parte de un fichero, un fichero entero
o un cierto número de ficheros. La conexión se puede establecer
entre un server-DTP y un user-DTP o entre dos server-DTP's.
Conexiones y modos: Conexión de
control y conexión de datos. Modos
activo y pasivo.
MODO ACTIVO
En modo Activo, el servidor siempre crea el canal de datos en su
puerto 20, mientras que en el lado del cliente el canal de datos se
asocia a un puerto aleatorio mayor que el 1024. Para ello, el cliente
manda un comando PORT al servidor por el canal de control
indicándole ese número de puerto, de manera que el servidor pueda
abrirle una conexión de datos por donde se transferirán los archivos y
los listados, en el puerto especificado.
Lo anterior tiene un grave problema de seguridad, y es que la máquina
cliente debe estar dispuesta a aceptar cualquier conexión de entrada
en un puerto superior al 1024, con los problemas que ello implica si
tenemos el equipo conectado a una red insegura como Internet. De
hecho, los cortafuegos que se instalen en el equipo para evitar ataques
seguramente rechazarán esas conexiones aleatorias. Para solucionar
esto se desarrolló el modo Pasivo.
Conexiones y modos: Conexión de
control y conexión de datos. Modos
activo y pasivo.
Veamos cómo funcionan las conexiones ftp normalmente:
El cliente se conecta desde un puerto aleatorio no privilegiado (N > 1024) al
puerto de control del servidor (21)
El cliente comienza a escuchar en el puerto N+1 y envía este puerto de control al
servidor.
El servidor se conectará al cliente en el puerto N+1 desde su puerto de datos (20)
Conexiones y modos: Conexión de
control y conexión de datos. Modos
activo y pasivo.
MODO PASIVO
Cuando el cliente envía un comando PASV sobre el canal de control,
el servidor FTP abre un puerto efímero (cualquiera entre el 1024 y
el 5000) e informa de ello al cliente FTP para que, de esta manera,
sea el cliente quien conecte con ese puerto del servidor y así no
sea necesario aceptar conexiones aleatorias inseguras para realizar
la transferencia de datos.
Antes de cada nueva transferencia, tanto en el modo Activo como
en el Pasivo, el cliente debe enviar otra vez un comando de control
(PORT o PASV, según el modo en el que haya conectado), y el
servidor recibirá esa conexión de datos en un nuevo puerto
aleatorio (si está en modo pasivo) o por el puerto 20 (si está en
modo activo). El modo activo tiene un inconveniente, si estás detrás
de un cortafuegos (firewall) el servidor no podrá establecer una
conexión al puerto de datos aleatorio del cliente (el que está por
encima de 1024).
Conexiones y modos: Conexión de
control y conexión de datos. Modos
activo y pasivo.
Para solucionar este detalle, está la forma de conexión FTP pasiva:
El cliente abre dos puertos aleatorios no privilegiados (N > 1024 y N+1)
El primer puerto (puerto de control) se conecta al puerto 21 del lado del servidor
(puerto de control) y envía el comando PASV
Luego, el servidor abre un puerto aleatorio no privilegiado (P > 1024) y envía el
comando PORT P al cliente
Finalmente, el cliente inicia una conexión desde el puerto N+1 al puerto P en el
servidor para transferir datos
Conexiones y modos: Conexión de
control y conexión de datos. Modos
activo y pasivo.
Ventajas del modo pasivo
Como hemos visto, en el modo activo se abre una conexión para
datos desde el servidor a la maquina cliente, esto es, una conexión
de fuera a dentro. Entonces, si la maquina cliente está detrás de un
router que haga NAT o que tenga un firewall, este filtra o bloquea
la conexión entrante, al no serle una respuesta a ninguna petición
conocida. Así las cosas, las transferencias por FTP fallan. Sin
embargo, en modo pasivo es el cliente el que inicia ambas
conexiones, de control y de datos, con lo cual el router no tiene
ninguna conexión entrante que filtrar y las transferencias funcionan.
Tipos de transferencia de archivos:
ASCII y Binario.
Es importante conocer cómo debemos transportar
un fichero a lo largo de la red. Si no utilizamos las
opciones adecuadas podemos destruir la información
del fichero. Por eso, al ejecutar la aplicación FTP,
debemos acordarnos de utilizar uno de estos
comandos (o poner la correspondiente opción en un
programa con interfaz gráfica):
Tipo ascii Adecuado para transferir ficheros que sólo
contengan caracteres imprimibles (ficheros ASCII, no
ficheros resultantes de un procesador de texto), por
ejémplo páginas HTML, pero no las imágenes que
puedan contener.
Tipo binary Este tipo es usado cuando se trata de
ficheros comprimidos, ejecutables para PC, imágenes,
archivos de audio...
Clientes FTP : en línea de comandos,
entornos “gráficos” y navegadores /
exploradores.
Un cliente FTP emplea el protocolo FTP para conectarse a un
servidor FTP para transferir archivos.
Algunos clientes de FTP básicos vienen integrados en los sistemas
operativos, incluyendo Windows, DOS, Linux y Unix. Sin embargo,
hay disponibles clientes con más funcionalidades, habitualmente en
forma de shareware/freeware para Windows y como software libre
para sistemas de tipo Unix. Muchos navegadores recientes también
llevan integrados clientes FTP (aunque un cliente FTP trabajará
mejor para FTP privadas que un navegador).
Algunos sistemas operativos, incluyendo los Windows más
recientes y Mac OS X pueden montar servidores FTP como
unidades virtuales directamente dentro del sistema operativo,
como puede ser fireftp para firefox, pues es un plugin que se puede
añadir al navegador, solo si se necesita. Lo que puede resultar más
fácil o más conveniente para algunos usuarios, que emplear un
cliente especializado.
Clientes FTP : en línea de comandos,
entornos “gráficos” y navegadores /
exploradores.
Core FTP Lite
Core FTP Lite es un cliente FTP de Windows que soporta la carga /
descarga / borrado de directorios (carpetas) y archivos, navegador de
integración, SFTP (o FTP seguro), SSL / TLS, el manejo de permisos de
archivos, control de ancho de banda de transferencia, etc
FileZilla código abierto cliente FTP / SFTP
FileZilla es una fuente libre, abierta de cliente FTP para Windows, Linux y
Mac OS X se distribuye bajo la Licencia Pública General de GNU. Usted
puede hacer lo de siempre, cargar y descargar archivos, así como reanudar
cargas y descargas, funciona con servidores de seguridad, compatible con
SFTP (Secure FTP) y conexiones seguras SSL, manejar las colas de archivos
a subir / descargar, etc
OneButton FTP
OneButton FTP es un cliente gráfico de FTP para Mac OS X utilizando el
marco del Cacao. Según el sitio web, soporta arrastrar y soltar archivos y
las colas. Se necesita Mac OS X 10.4 o posterior.
Clientes FTP : en línea de comandos,
entornos “gráficos” y navegadores /
exploradores.
Curl
Curl es una herramienta de línea de comandos que le permite transferir archivos a través
de FTP, SFTP, TFTP, FTPS, Telnet, DICT, FILE y LDAP, etc También puede utilizar los
protocolos HTTP y HTTPS GET y PUT métodos para cargar y descargar archivos. Es
compatible con servidores proxy SSL, cookies, y la autenticación de usuario / contraseña.
La herramienta es de código abierto y compatible con Mac OS X, Windows, Linux, AIX,
AmigaOS, BeOS, DOS, FreeBSD, NetBSD, FreeBSD, BSD, BSD medianoche, OpenBSD,
menta, GNU-Darwin, HPUX, IRIX, Netware, Open Server, OS / 2, QNX, RISC OS, Solaris,
Syllable, Tru64 Unix, UnixWare,VMS, etc El programa se distribuye bajo una licencia de
código abierto.
Cyberduck
Cyberduck es un FTP de código abierto y el navegador de SFTP para Mac OS X. Soporta
arrastrar y soltar, reanudar las cargas y descargas, la sincronización de archivos en un
equipo local con un servidor, carga y descarga de carpetas, etc está licenciado bajo la
GNU GPL.
Fugu - Mac OS X SFTP / SCP / SSH FrontEnd
Fugu es una interfaz de código abierto para SFTP (Secure FTP), SCP y SSH. Es liberado
bajo la licencia BSD, y es compatible con Mac OS X.
Monitorización y registro del
servicio de transferencia de
archivos.
La monitorización es un proceso que se supone inmerso
dentro de la llamada función ejecutiva o sistema ejecutivo.
Hace referencia a la supervisión necesaria para la ejecución
del plan de acción establecido en la planificación de las
acciones, conductas o pensamientos encaminados al logro de
una meta. Es el proceso por medio del cual, nos aseguramos
que nuestro proceder está encaminado adecuada y
eficazmente hacia un resultado final, evitando las posibles
desviaciones que pudieran presentarse.
La monitorización puede detectar las posibles interferencias
que pudieran presentarse en el curso de alguna acción y
puede dar lugar a corregir el procedimiento antes de llegar a
un resultado final.
Seguridad en FTP
El mayor problema con el FTP es que el servidor sólo puede
manejar nombres de usuario y contraseñas en texto plano.
Esta es una de las razones por las que la cuenta de root no
se puede utilizar para el acceso FTP en la mayoría de los
servidores. Lo mismo se aplica para telnet.
Por estas razones, hay varias alternativas incluyendo FTP
seguro (SFTP), que a pesar del nombre es muy diferente de
FTP. SFTP se aplica el cifrado de los mensajes entre el cliente
y el servidor. También hay otra alternativa FTPS. Podemos
pensar que FTP es a FTPS lo que HTTPS a HTTP.
Los nombres de usuario y las contraseñas no son las únicas
cosas que se envían a través de un texto claro. Los mismos
archivos se cargan o descargan sin ningún tipo de cifrado.
Seguridad en FTP
Problemas de seguridad en el FTP
El comando PORT
En los últimos años, se ha incrementado el debate en torno a
los problemas relacionados con el comando PORT del
protocolo del FTP. Estos problemas se basan el uso erróneo
de dicho comando.
El Protocolo FTP
Para entender estos ataques, es necesario tener una
comprensión básica del protocolo FTP, para ello
recordaremos su funcionamiento:
Un cliente abre una conexión al port de control de ftp (21)
de un FTP SERVER. De este modo, para que el servidor sea
capaz luego de enviar datos de nuevo a la máquina del
cliente, una segunda conexión (de datos) debe abrirse entre
el servidor y el cliente.
Seguridad en FTP
Para hacer esta segunda conexión, el cliente envía un
comando PORT al servidor.
Este comando incluye parámetros que indican al servidor
cuál IP ADDRESS conectar y qué port abrir en aquella
dirección.
El servidor luego abre aquella conexión, siendo la fuente de
la conexión el port 20 del servidor y el destino el port
identificado en los parámetros del comando PORT.
El comando PORT se utiliza generalmente sólo en el " modo
activo " del ftp (por default). No se suele utilizar en modo
pasivo (PASV). Debe notarse que los servidores de ftp
generalmente implementan ambos modos en ejecución, y el
cliente especifica qué método utilizar.
Seguridad en FTP
El ataque “Ftp bounce”
Conforme con el protocolo FTP, el comando PORT hace que
la máquina que lo origina especifique una máquina de destino
y un port arbitrarios para la conexión de datos. Sin embargo,
esto también significa que un hacker puede abrir una
conexión a un port del hacker eligiendo una máquina que
puede no ser el cliente original.
Hacer esta conexión a una máquina arbitraria es hacer un
ataque “ftp bounce”.
Se presentan seguidamente varios ejemplos de cómo los
hackers pueden utilizar el “ftp bounce”.
Seguridad en FTP
“Scanning” de ports
Un hacker que desea realizar una port scan contra un sitio puede hacerlo
de un server FTP de un tercero , que actúa como un “puente” para el scan.
El sitio de la víctima ve la exploración como procedente del server FTP
más que de la fuente verdadera (el cliente FTP).
“Bypass” de dispositivos básicos de filtrado de paquetes.
Un hacker puede realizar un “bypass” de un firewall en ciertas
configuraciones de red.
Por ejemplo, supongamos que un sitio tiene su servidor de FTP anónimo
detrás del firewall. Usando la técnica de port scan, un hacker determina
que un web server interno en ese sitio está disponible en el acceso 8080,
un port normalmente bloqueado por un firewall.
Conectándose al server FTP público del sitio, el hacker inicia otra conexión
entre el server FTP y un port arbitrario, en una máquina no pública del
sitio (por ejemplo el web server interno en el port 8080). Como resultado,
el hacker establece una conexión a una máquina que sería protegida de
otra manera por el firewall.
Seguridad en FTP
Bypass de dispositivos de filtrado dinámicos
Otro problema se refiere a los sitios que tienen firewalls que
utilizan filtros dinámicos para protegerse. Los sitios están abiertos
al ataque porque el firewall confía en la información que recibe.
Como el firewall de filtros dinámicos examina los paquetes de
salida para determinar si alguna acción se requiere de su parte,
observa el comando PORT y permite una conexión entrante del
server web remoto al port del telnet en la máquina de la víctima.
Esta conexión normalmente no es permitida por el firewall; fue
permitida en este caso porque el comando PORT fue realizado por
el cliente.
Soluciones
Software del Ftp server
La mejor solución al problema del “ftp bounce” desde la
perspectiva de la seguridad es asegurarse de que el software del
server FTP no puede establecer conexiones a máquinas arbitrarias.
FTPS (FTP/SSL): FTPS Implícito.
FTPS Explícito (FTPES)
FTPS (comúnmente referido como FTP/SSL) es un nombre usado para abarcar un
número de formas en las cuales el software FTP puede realizar transferencias de
ficheros seguras. Cada forma conlleva el uso de una capa SSL/TLS debajo del
protocolo estándar FTP para cifrar los canales de control y/o datos. No debería
confundirse con el protocolo de transferencia de ficheros SFTP, el cual suele ser
usado con SSH.
El uso más común de FTP y SSL es:
AUTH TLS o FTPS Explicito, nombrado por el comando emitido para indicar que la
seguridad TLS es obligatoria. Este es el método preferido de acuerdo al RFC que
define FTP sobre TLS. El cliente se conecta al puerto 21 del servidor y comienza una
sesión FTP sin cifrar de manera tradicional, pero pide que la seguridad TLS sea usada
y realiza la negociación apropiada antes de enviar cualquier dato sensible.
AUTH como está definido en RFC 2228.
FTPS Implícito es un estilo antiguo, pero todavía ampliamente implementado en el
cual el cliente se conecta a un puerto distinto (como por ejemplo 990), y se realiza
una negociación SSL antes de que se envíe cualquier comando FTP.
Los datos pueden ser o no ser cifrados en el canal de comandos, en el canal de
datos, o más a menudo en ambos. Si el canal de comandos no se cifra, se dice que el
protocoló está usando un canal de comandos en claro(CCC). Si el canal de datos no
está cifrado, se dice que el protocolo usa un canal de datos en claro (CDC).
Protocolo FXP (File eXchange
Protocol)
File eXchange Protocol (FXP) es un método de transferencia de
datos, a través del cual los datos se envían de un servidor FTP a
otro sin pasar por un cliente intermedio. La comunicación
convencional FTP consiste en un solo servidor y un solo cliente.
Toda la transferencia de datos se realiza entre los dos. Durante una
sesión FXP, un cliente mantiene conexiones estándares con dos
servidores, dirigiendo cualquiera de los dos servidores que se
conecte al otro para iniciar una transferencia de datos. Este
método permite a un cliente con poco ancho de banda
intercambiar datos entre dos servidores con más ancho de banda
sin el retraso asociado con la comunicación convencional FTP. A lo
largo de este proceso, sólo el cliente es capaz de acceder a los
recursos de los dos servidores.
Sin embargo, algunos de los servidores que soportan el FXP son
vulnerables a un exploit conocido como el ataque FTP Bounce, por
el cual un usuario malicioso puede superar algunos cortafuegos.
Protocolo FXP (File eXchange
Protocol)
Las ventajas: En esencia se trata del método más similar que existe para trasferir
datos de un servidor a otro servidor sin permitir el acceso directo a la máquina.
Los inconvenientes: Algunos servidores no soportan FXP o lo tienen desactivado. Es
más, los clientes FTP habituales no suelen estar diseñado para este tipo de
intercambios.
Lo que no gusta: La razón por la que la mayoría de administradores de servicios de
hosting desactivan esta herramienta es obvia: por riesgos de seguridad. FXP podría
exponer nuestro servidor a una vulnerabilidad conocida como “FTP bounce”, en la
que el hacker puede tomar acceso al servidor a través de un puerto abierto por un
usuario inocente, convirtiendo su servidor en un zombie y aprovechándose de sus
recursos para sus propios intereses.