Jorge De Nova Segundo

Jorge De Nova Segundo FTP (File Transfer Protocol o 'Protocolo de Transferencia de Archivos'), es un protocolo de red para la transferencia de archi

0 downloads 252 Views 1MB Size

Recommend Stories


Jorge de Nova Segundo
UD 6: “Instalación y administración de servicios de correo electrónico” Veracidad del correo: Jorge de Nova Segundo Spam, correo basura o mensaje

NOVA Nature
  LA TECNOLOGÍA UNION NOVA LA TECNOLOGÍA UNION NOVA Un proyecto sólido. Un negocio de confianza  Introducción La limpieza en seco Desde que empeza

Story Transcript

Jorge De Nova Segundo

FTP (File Transfer Protocol o 'Protocolo de Transferencia de Archivos'), es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura clienteservidor. 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. Un problema básico de FTP es que está pensado para ofrecer la máxima velocidad en la conexión, pero no seguridad, ya que todo el intercambio de información, desde el login y password del usuario en el servidor hasta la transferencia de cualquier archivo, se realiza en texto plano sin ningún tipo de cifrado, con lo que un posible atacante puede capturar este tráfico, acceder al servidor y/o apropiarse de los archivos transferidos.

Características. 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 a la máxima velocidad. • Permitir la independencia entre los sistemas de archivo del equipo del cliente y del equipo del servidor • 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. • No ofrece seguridad. La información login/password se envía en texto plano (no utiliza ningún tipo de cifrado).

Servidor FTP Un servidor FTP es un programa especial que se ejecuta en un equipo servidor normalmente conectado a Internet (aunque puede estar conectado a otros tipos de redes, LAN, MAN, etc.). Su función es permitir el intercambio de datos entre diferentes servidores/ordenadores. Por lo general, los programas servidores FTP no suelen encontrarse en los ordenadores personales, por lo que un usuario normalmente utilizará el FTP para conectarse remotamente a uno y así intercambiar información con él. Las aplicaciones más comunes de los servidores FTP suelen ser el alojamiento web, en el que sus clientes utilizan el servicio para subir sus páginas web y sus archivos correspondientes; o como servidor de backup.

Cliente FTP Un cliente FTP es un programa que se instala en el ordenador del usuario, y que emplea el protocolo FTP para conectarse a un servidor FTP y transferir archivos, ya sea para descargarlos o para subirlos. Para utilizar un cliente FTP, se necesita conocer el nombre del archivo, el ordenador en que reside (servidor, en el caso de descarga de archivos), el ordenador al que se quiere transferir el archivo (en caso de querer subirlo nosotros al servidor), y la carpeta en la que se encuentra. Algunos clientes de FTP básicos en modo consola vienen integrados en los sistemas operativos, incluyendo Microsoft Windows, DOS, GNU/Linux y Unix. Sin embargo, hay disponibles clientes con opciones añadidas e interfaz gráfica. Aunque muchos navegadores tienen ya integrado FTP, es más confiable a la hora de conectarse con servidores FTP no anónimos utilizar un programa cliente.Un cliente web puede ser una Navegador , la terminal o consola o software dedicado.

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.

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.

Cliente FTP: Máquina con la que nos conectamos al servidor FTP. Está compuesta por los siguientes elementos: o 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. En el modelo descrito anterior mente, el PI del cliente inicia la conexión TCP por el puerto 21. Al iniciarse, se envían los comandos mediante dicho PI al PI del servidor y si éste acepta la conexión, solicita una identificación al usuario, pudiéndose realizar un acceso anónimo (no aceptado por todos los servidores). Cuando se solicita un archivo del servidor, se establece una conexión TCP por el puerto 20 para entre el DTP del cliente y el servidor para la transmisión de datos.

Protocolo FTP. El protocolo FTP (Protocolo de transferencia de archivos) es, como su nombre lo indica, un protocolo para transferir archivos. La implementación del FTP se remonta a 1971 cuando se desarrolló un sistema de transferencia de archivos (descrito en RFC141) entre equipos del Instituto Tecnológico de Massachusetts (MIT, Massachusetts Institute of Technology). Desde entonces, diversos documentos de RFC (petición de comentarios) han mejorado el protocolo básico, pero las innovaciones más importantes se llevaron a cabo en julio de 1973. Actualmente, el protocolo FTP está definido por RFC 959 (Protocolo de transferencia de archivos (FTP) - Especificaciones).

El protocolo FTP define la manera en que los datos deben ser transferidos a través de una red TCP/IP. El objetivo del protocolo FTP es: •Permitir que equipos remotos puedan compartir archivos •Permitir la independencia entre los sistemas de archivo del equipo del cliente y del equipo del servidor •Permitir una transferencia de datos eficaz El protocolo FTP está incluido dentro del modelo cliente-servidor, es decir, un equipo envía órdenes (el cliente) y el otro espera solicitudes para llevar a cabo acciones (el servidor).Durante una conexión FTP, se encuentran abiertos dos canales de transmisión: Un canal de comandos (canal de control) Un canal de datos El protocolo FTP está incluido dentro del modelo cliente-servidor, es decir, un equipo envía órdenes (el cliente) y el otro espera solicitudes para llevar a cabo acciones (el servidor).

Tipos de usuarios. Usuarios FTP: aquellos que disponen de una cu8enta 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 accesos al servicio Acceso anónimo. Los servidores FTP anónimos ofrecen sus servicios libremente a todos los usuarios, permiten acceder a sus archivos sin necesidad de tener un 'USER ID' 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 archivos del FTP, aunque con casi ningun privilegios que un usuario normal. Normalmente solo podrás leer y copiar los archivos que sean públicos, así indicados por el administrador del servidor al que nos queramos conectar.

Acceso de usuario Si se desea tener privilegios de acceso a cualquier parte del sistema de archivos del servidor FTP, de modificación de archivos existentes, y de posibilidad de subir nuestros propios archivos, generalmente se suele realizar mediante una cuenta de usuario. 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 una autentificación (en inglés: login) y una contraseña (en inglés: password) que nos identifica unívocamente. Acceso de invitado El acceso sin restricciones al servidor que proporcionan las cuentas de usuario implica problemas de seguridad, lo que ha dado lugar a un tercer tipo de acceso FTP denominado invitado (guest), que se puede contemplar como una mezcla de los dos anteriores. La idea de este mecanismo es la siguiente: se trata de permitir que cada usuario conecte a la máquina mediante su login y su password, pero evitando que tenga acceso a partes del sistema de archivos que no necesita para realizar su trabajo, de esta forma accederá a un entorno restringido, algo muy similar a lo que sucede en los accesos anónimos, pero con más privilegios.

Configuración del servicio de transferencia de archivos. Permisos y cuotas. Instalación FTP Para instalar el servicio FTP en el equipo, podemos ejecutar el siguiente comando: # apt-get install paquete-servidorftp La instalación ha creado el el archivo /etc/vsftpd.conf contiene las opciones de configuración del servidor FTP. Arrancar el demonio FTP Si queremos que nuestra máquina disponga de un servidor FTP debemos arrancar el servicio correspondiente. El servicio FTP se puede encontrar en el directorio /etc/init.d junto a otros muchos servicios de Linux. El comando es: /etc/init.d/vsftpd start [stop | reload | force-reload | restart]

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

CUOTAS •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 • Para a continuación inicializar el mecanismo de cuotas #quotacheck –avugm •Ahora este ultimo comando activará la quota #quotaon /home

Conexiones y modos: Conexión de control y conexión de datos. Modos activo y pasivo.

Una conexión ftp usa dos puertos ( dos canales): ◦ El puerto de comandos (conexión de control), por donde se transfieren las órdenes. Se inicia en el puerto 21 ◦ El puerto de datos (conexión de datos), por donde se transfieren los datos de ficheros. Se inicia en el puerto 20, pero puede ser cualquiera por debajo del 1024. ◦ En la conexión de control se especifican parámetros para la conexión de datos (puerto de datos, modo de transferencia, etc) y las operaciones sobre el sistema de archivos (listar, acceder al sistema ficheros, añadir, borrar)

Modo Activo El modo activo generalmente es conocido también como modo estándar y este opera de la siguiente forma. Se establecen dos conexiones distintas, la primera conexión establece una comunicación para la transmisión de comandos a través de un puerto aleatorio mayor que el 1024 del cliente FTP hacia el puerto 21 del servidor FTP y por esa misma conexión se le notifica al servidor FTP cual es el puerto de nuestro cliente FTP que esta a la espera de los datos. Entonces y para comprender mejor, si usted descarga algún archivo mediante la ayuda de algún cliente de FTP, es el servidor FTP el que inicia la transmisión de datos, desde su puerto 20 al puerto que aleatoriamente el cliente FTP le ha indicado. Se le llama modo activo porque la transmisión de datos es iniciada por el propio servidor FTP. Modo Pasivo Esto se logra cuando el cliente FTP inicia la conexión con el servidor FTP mediante el envió del comando PASV en este punto el cliente FTP establece una comunicación mediante un canal de control el cual generalmente utiliza un puerto aleatorio mayor al 1024 para comunicarse con el servidor FTP a través de su puerto 21. Al pasar a modo pasivo el cliente FTP pedirá al servidor FTP que habrá un puerto, el cual deberá ser aleatorio y mayor al 1024, recibida la contestación, será el cliente FTP el que establezca la conexión de datos al servidor FTP a través del puerto especificado anteriormente.

Modo Activo vs Modo Pasivo Como hemos explicado antes, en el modo activo se abre una conexión para datos desde el servidor FTP al cliente FTP, esto es, una conexión de fuera hacia adentro, entonces, si el cliente FTP se encuentra detrás de un firewall, este filtrara o bloqueara la conexión entrante. En el modo pasivo es el cliente FTP el que inicia tanto la conexión de control como la de datos, con lo cual el firewall no tendrá ninguna conexión entrante que filtrar.

Tipos de transferencia de archivos: ASCII y Binario

Tipos de transferencia de archivos en FTP Es importante conocer cómo debemos transportar un archivo a lo largo de la red. Si no utilizamos las opciones adecuadas podemos destruir la información del archivo. 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 archivos que sólo contengan caracteres imprimibles (archivos ASCII, no archivos resultantes de un procesador de texto), por ejemplo páginas HTML, pero no las imágenes que puedan contener. Tipo Binario Este tipo es usado cuando se trata de archivos comprimidos, ejecutables para PC, imágenes, archivos de audio...

Clientes FTP : en línea de comandos, entornos “gráficos” y navegadores / exploradores

FileZilla es un proyecto Open Source y es uno de los mejores clientes gratuitos, que además cuenta con versiones para Windows, Linux y Mac OSX. Cuenta con una amplia comunidad de desarrolladores por lo cual tiene amplio soporte y actualizaciones constantes. FileZilla cuenta con todas las opciones de cualquier cliente comercial y con buen rendimiento.

Cyberduck es uno de los mejores clientes FTP para Mac, ademas de ello permite utilizarlo como cliente para WebDAV, Google Docs y Amazon S3. Ademas de ello se puede integrar con la mayoría de editores de código de Mac

GoFTP es otro cliente de FTP que ofrece mayor velocidad, en su web anuncian que es hasta 314% mas rápido que los otros clientes. Cuenta con un explorador de archivos para facilitar la transferencias de archivos, también permite continuar uploads o downloads de archivos que hayan sido detenidos.

FTP en consola Linux. Para acceder a FTP desde la consola Linux debemos conectar con nuestro servidor a través del comando "ftp". Vamos a tomar como ejemplo, que nuestro servidor sea "asir" . En primer lugar conectaremos con nuestro servidor: escribiendo "ftp asir.es".

Una manera sencilla de acceder a todo el contenido de su pagina sin instalar clientes de ftp y de forma directa es usar el cliente el ftp que lleva el navegador internet explorer de serie. Para ello en el navegador ponga algo así como ftp://www.ftp.com y pulse intro.

Monitorización y registro del servicio de transferencia de archivos. Normalmente los servidores ftp que tienen entorno grafico tienen un visualizador de eventos en tiempo real, como quien se conecta al servidor quien sale y quien esta conectado, por lo tanto esto depende de cada servidor. Vamos a ver algunas configuraciones del servidor vsftpd con respecto a los tipos de registro que tiene: •xferlog_enable=YES => Activa la generación de registros logs por cada uploads/downloads •vsftpd_log_file=/var/log/vsftpd.log=> Define cual será el archivo log. • log_ftp_protocol=YES=> Si esta directiva no se encuentra comentada activa el registro (log) de todas las peticiones/respuestas del servidor

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.

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. 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.

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”.

FTPS (FTP/SSL): FTPS Implícito. FTPS Explícito (FTPES) FTPS (también conocido como FTP Secure o FTP-SSL) es una extensión del FTP que agrega soporte para los protocolos criptográficos TLS y SSL . Con este método la transferencia de archivos se cifra, agregando seguridad a la misma. El cifrados puede ser a nivel datos, a nivel comandos o ambos. Si el canal de comandos no se cifra, se dice que el protocolo 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). FTPS Explícito, 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. 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 el 990), y se realiza una negociación SSL antes de que se envíe cualquier comando FTP.

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.

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. 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. Otras cuestiones a tener en cuenta: 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.

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.