Está en la página 1de 1

CONSIDERACIONES SOBRE FTP

FTP se utiliza para transferir archivos de una máquina a otra. Los archivos a transferir pueden ser de cualquier tipo: binarios ejecutables, de imágenes, texto ASCII, PostScript, archivos de sonido y vídeo, etc. Hay dos tipos de acceso FTP:
- FTP de usuario, que requiere de una cuenta e iniciar una sesión en el servidor y permite a los usuarios obtener cualquier archivo.
- FTP anónimo, no requiere tener una cuenta y se utiliza para proporcionar acceso a archivos al público en general. Este es el más usado en Internet.

FTP utiliza dos conexiones FTP separadas: una para transportar comandos y resultados entre el cliente y el servidor (llamado canal de comandos), y otra para transportar los archivos de datos a transferir (el canal de datos).
En el lado del servidor, el canal de comandos utiliza el puerto 21, y el canal de datos normalmente utiliza el puerto 20. El cliente siempre emplea puertos por encima del 1023 para comandos y datos.

Para iniciar una sesión FTP, un cliente designa primero dos puertos TCP para sí mismo, cada uno de ellos con un número de puerto superior a 1023. Utiliza el primero para abrir la conexión del canal de comandos con el servidor y
luego emite un comando PORT de FTP para indicar al servidor el número del segundo puerto, que el cliente quiere utilizar para el canal de datos. Entonces el servidor abre una conexión para el canal de datos, lo cuál es contrario a la
mayoría de los protocolos, que abren las conexiones desde el cliente al servidor. Esta apertura inversa complica las cosas para los sitios que intentan hacer filtrado de paquetes al inicio de la conexión para asegurar que
todas las conexiones TCP se inicien desde dentro, ya que los servidores FTP externos intentarán iniciar las conexiones de datos con clientes internos, en respuesta a conexiones de comandos abiertas desde tales clientes internos.
Además, estas conexiones irán a puertos que se sabe están en un rango inseguro.

La mayoría de los servidores FTP (sobre todo los utilizados para FTP anónimo en Internet) y muchos clientes FTP soportan un modo alternativo que permite al cliente abrir tanto el canal de comandos como el de datos en el servidor,
este modo se llama “modo pasivo”, por el comando “pasv” de FTP que el cliente envía al servidor para iniciar este modo. Si el cliente y el servidor FTP soportan el modo pasivo, se pueden evitar los problemas de filtrado de inicio
de conexión, porque todas las conexiones se abrirán por el cliente. Para utilizar el modo pasivo, un cliente FTP designa dos puertos TCP para su propio uso, y utiliza, al igual que en el modo normal, el primero para conectar al
servidor FTP. Sin embargo, en lugar de emitir el comando PORT para informar al servidor el segundo puerto del cliente, el cliente emite el comando PASV, lo cual hace que el servidor designe un segundo puerto propio para el canal de
datos y lo notifique al cliente (por razones arquitectónicas, los servidores, para este caso, utilizan puertos al azar por encima del 1023, no el puerto 20, como en el modo normal). El cliente, entonces, abre la conexión de datos desde
ese puerto que le acaba de indicar el servidor.

La mayoría de los clientes FTP integrados en navegadores soportan el modo pasivo. Además algunos clientes soportan tanto el modo normal como el modo pasivo y permiten al usuario indicar cuál emplear.

Si un cliente FTP (o uno de los servidores FTP con los que se vaya a comunicar) no soporta el modo pasivo y aún así se quiere permitir FTP a través de filtrado de paquetes (y no por medio de un proxy),habrá que poner una
excepción en las reglas para el filtrado de paquetes a fin de permitir al servidor abrir el canal de datos con el cliente. Si así se hace, será vulnerable a los atacantes que lancen una conexión desde el puerto 20 en el lado del atacante
a un puerto por encima de 1023. Por lo tanto, se debe limitar esta excepción tanto como sea posible, por ejemplo, ligándolo a la dirección del cliente o servidor específico que no soporta el modo pasivo. Algunas implementaciones
para filtrado dinámico de paquetes monitorizan los comandos enviados a través del canal de comandos de FTP y observan el comando PORT que el cliente envía al servidor; este comando dice al servidor en qué puerto está servidor
atendiendo el cliente, para que el abra el canal de datos. Estas implementaciones también colocan una excepción temporal (limitada en tiempo) en las reglas para el filtrado de paquetes a fin de permitir que el servidor
abra el canal de datos de nuevo al cliente.

FTP anónimo.
Si se proporciona FTP anónimo, hay que asegurar que el servidor FTP anónimo sólo ofrezca la información que se desea, y que no se dé acceso a información privada, a través del host que soporta ese servicio.
El principal criterio a la hora de configurar un servicio FTP anónimo, es limitar al máximo la información soportada por el host que proporciona el servicio FTP anónimo (espacio, permisos etc.). Por ejemplo poner los
archivos en directorios que tienen permiso para ejecutarse pero no para leerse, lo que permitirá que sólo las personas que conozcan los nombres de los archivos podrán transferirlos, pero no dejará que husmeen para
saber que archivos existen y en ningún caso permitir archivos confidenciales..

Las áreas de escritura pueden ser muy útiles, pero también tienen su lado oscuro. Tales directorios de escritura pueden ser localizados y utilizados por los piratas de Internet como espacio de almacenamiento y áreas
de distribución de material ilícito.

Para proteger las áreas de FTP anónimo de malos usos, la primera pregunta que hay que hacerse es si realmente se necesita espacio para escribir en el área de FTP anónimo; con frecuencia hay otros métodos
alternativos para enviar ficheros, como puede ser el correo electrónico, pero tiene limitado su tamaño y el tipo de ficheros anexados.

También podría gustarte