200 likes | 327 Views
Funcionalidad del servicio de transferencia de archivos . Gabriel Montañés León. Características. Componentes y funcionamiento. . Respecto Diseño del Servicio:
E N D
Funcionalidad del servicio de transferencia de archivos Gabriel Montañés León
Características. Componentes y funcionamiento. • Respecto Diseño del Servicio: • La conexión de un usuario remoto al servidor FTP puede hacerse como inicio de una sesión de un usuario que existe en el sistema o también como un usuario genérico que se llama anónimo. • El acceso al sistema de archivos del servidor FTP está limitado, dependiendo del tipo de usuario que se conecta. • Una vez se ha establecido la conexión con el servidor FTP, el usuario tiene disponible el conjunto de órdenes FTP que permiten realizar las operaciones básicas de descarga(get) o subida(put) de archivos, junto con otras órdenes. • Respecto a tipos de usuarios: • Usuarios FTP: Son aquellos que disponen de una cuenta en la máquina que ofrece el servicio FTP. Se conectan vía FTP mediante su nombre de usuario y contraseña, y tienen acceso a aquellas partes del sistema de archivos para las que tienen permisos. • Usuarios anónimos: Son usuarios cuales quiera que, al conectarse al servidor FTP, sólo deben introducir una contraseña simbólica que suele ser una dirección de correo electrónico, y sólo tienen acceso a una parte limitada del sistema de archivos
Los elementos que lo componen 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: • 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.
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.
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. Desde entonces, diversos documentos de RFC han mejorado el protocolo básico, pero las innovaciones más importantes se llevaron a cabo en julio de 1973. • Función del protocolo FTP 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.
Tipos de usuarios y accesos al servicio: Acceso autorizado y acceso anónimo 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.
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.
Configuración del servicio de transferencia de archivos. Permisos y cuotas Instalar FTP • Para instalar ftp lo hacemos con el siguiente comando: apt-getinstallvsftpd • Si ya lo tenemos instalado no instalara nada mas, no creara un directorio en /home/ftp que es donde vamos a guardar los fichero de configuración. • El fichero de configuración /etc/vsftpd.conf contiene las opciones de configuración del servidor FTP. Arrancar el demonio FTP • Si queremos que nuestra maquina disponga de un servidor FTP debemos arrancar el servicio con el siguiente comando: • /etc/init.d/vsftpdstart [stop | reload | force-reload | restart] Conectarnos al servidor SSH • Para conectarnos podemos usar un clinete FTP desde la linea de comandos ; hasta un cliente grafico como gFTP o Mozilla. • Para conectarnos al servidor desde la linea de comandos ejecutaremos el siguiente comando: ftp nombre_maquina
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 • 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-getinstallquota • 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,grpquota0 2 • Crearemos los archivos de control de quota y reiniciamos las particiones • touch/home/quota.user /home/quota.group • chmod600 /home/quota • mount-o remount /home • Para a continuación inicializar el mecanismo de cuotas: quotacheck -avugm
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.
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.
Modo pasivo • El cliente envía un comando PASV sobre el canal de control, el servidor FTP le indica por el canal de control, el puerto (mayor a 1023 del servidor. Ej:2040) al que debe conectarse el cliente. El cliente inicia una conexión desde el puerto siguiente al puerto de control (ej: 1036) hacia el puerto del servidor especificado anteriormente (ej: 2040).
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): • Type ascii : Adecuado para transferir ficheros que sólo contengan caracteres imprimibles (ficheros ASCII, no ficheros resultantes de un procesador de texto), por ejemplo páginas HTML, pero no las imágenes que puedan contener. • Type 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 • Core FTP Lite : Es un cliente FTP de Windows que soporta la carga / descarga / borrado de directorios y archivos, navegador de integración, SFTP ( FTP seguro), SSL / TLS, el manejo de permisos de archivos, control de ancho de banda de transferencia, etc • 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. • 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. • NcFTP: Es una es un cliente FTP gratuito en la línea de comandos para Linux, Windows, Mac OS X, y un gran número de sistemas Unix y tipo. Viene con código fuente.
A veces no tenemos instalado o a mano un programa para subir archivos por FTP. O simplemente preferimos no recurrir a un programa cliente cuando podemos usar el mismo navegador. • Efectivamente, los navegadores pueden establecer conexiones mediante el protocolo FTP además del protocolo HTTP que emplean habitualmente para requerir páginas web. Basta teclear en la barra de navegación la dirección ftp://usuario@servidor • Se abrirá una ventana solicitando la contraseña, si es necesaria, y ya está. Una vez dentro del sitio, puedes navegar por su árbol de directorios y hacer las operaciones típicas: subir, bajar, eliminar, copiar…
Monitorización y registro del servicio de transferencia de archivos Debemos configurar Logs de: • Errores: Errores del demonio FTP. • Acceso: Acceso de usuarios y su actividad. • Transferencia: Actividad de transferencia y subida de archivos. • Comunicaciones: Comunicación entre el servidor y el cliente. Debes monitorizar FTP mostrando: • Estado. Estado actual de la conexión FTP. • Nombre de usuario FTP. Nombre de usuario usado para acceder a la cuenta FTP. • Nombre de dominio. Dominio en el que el usuario FTP está conectado. • Ubicación actual. Directorio donde se encuentra el usuario FTP. • Nombre del Archivo. El nombre de archivo con el que se opera. • Velocidad. Velocidad de transferencias en Kb • Progreso, %. Progreso de la operación de transferencia de archivo en porcentaje. • Dirección IP. Dirección IP desde la que se accede a la cuenta FTP. • Hora de acceso. Tiempo transcurrido desde que el usuario se conectó. • Tiempo de inactividad. Tiempo en que el usuario no estaba realizando ninguna acción en el panel de control aún y estando conectado.
Seguridad en FTP • FTP no es capaz de cifrar el tráfico, todas las transmisiones están en texto plano, tanto nombres de usuario como contraseñas. Los comandos y los datos pueden ser fácilmente leídos por cualquier persona capaz captura los paquetes de la red (sniffing). Este problema es común a muchas de los protocolo de Internet (SMTP, Telnet, POP e IMAP) que fueron diseñados antes de la creación de mecanismos de cifrado, como SSL o TLS. • Una solución común para este problema es utilizar en conjunto los protocolos en texto plano (FTP) con protocolos seguros (TLS). • SCP: Secure Copy o SCP es un medio de transferencia segura de archivos informáticos entre un host local y otro remoto o entre dos hosts remotos, usando el protocolo Secure Shell (SSH). El término SCP puede referir a dos conceptos relacionados, el protocolo SCP o el programa SCP. • SFTP (Secure FTP): SSH File Transfer Protocol (también conocido como SFTP) es un protocolo del nivel de aplicación que proporciona la funcionalidad necesaria para la transferencia y manipulación de archivos sobre un flujo de datos fiable. Se utiliza comúnmente con SSH para proporcionar la seguridad a los datos, aunque permite ser usado con otros protocolos de seguridad. Por lo tanto, la seguridad no la provee directamente el protocolo SFTP, sino SSH o el protocolo que sea utilizado en su caso para este cometido. SFTP utiliza el puerto 22 de TCP.
FTPS (FTP/SSL): FTPS Implícito. FTPS Explícito (FTPES) • FTPS (FTP over SSH, not SFTP): 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, La seguridad TLS es obligatoria. 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
Protocolo FXP (File eXchangeProtocol). • 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. • 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