De Enciclopedia Virtual Dominicana
Historia
La historia de este protocolo se remonta en el año de 1969 cuando el Instituto Tecnológico de Massachusetts mejor conocido como el MIT presentó la propuesta del primer Protocolo para la transmisión de archivos en Internet. Era un protocolo muy sencillo basado en el sistema de correo electrónico pero sentó las bases para el futuro protocolo de transmisión de archivos (FTP).
En 1985, quince años después de la primera propuesta, se termina el desarrollo del aún vigente protocolo para la transmisión de archivos en Internet (FTP), basado en la filosofía de cliente-servidor.
El protocolo FTP (File Transfer Protocol) es una de las herramientas mas usadas entorno a la administración de portales web y tiene como principal función la transferencia de archivos. Esta transacción puede ser efectuada desde una LAN (Red de área local) o en una WAN (Red de Área Amplia). El protocolo FTP esta basado principalmente en la arquitectura Cliente-Servidor el cual consiste básicamente en un programa “Cliente” que realiza peticiones a otro programa “Servidor” el cual responde a su petición. Visto de otra forma podemos entenderlo como el equipo cliente que se conecta al servidor para descargar archivos desde el o para enviarle archivos. FTP hace uso del modelo TCP/IP y trabaja directamente sobre la capa de aplicación del antes mencionado. Así mismo el protocolo FTP hace uso de los puertos 20 y 21 para la comunicación y control de datos. Un problema básico de FTP es que está pensado para ofrecer la máxima velocidad en la conexión, pero no la máxima 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 mediante la ayuda de un sniffer y acceder al servidor. Una forma de solucionar este gran problema de seguridad es mediante la utilización de aplicaciones como “SCP” y el “SFTP” los cuales permiten transferir archivos pero cifrando el trafico , por lo general estas aplicaciones son incluidas en el paquete de openSSH tema que veremos mas adelante.
Funcionamiento
Generalmente se origina cuando el cliente FTP envía la petición al servidor para indicarle que requiere establecer una comunicación con el, entonces el cliente FTP inicia la conexión hacia el servidor FTP mediante el puerto 21 el cual establecerá un canal de control. A partir de este punto el cliente FTP enviara al servidor las acciones que este debe ejecutar para poder llevar a cabo el envío de datos. Estas acciones incluyen parámetros para la conexión de datos así como también la manera en como serán gestionados y tratados estos datos. Algunos de los parámetros enviados por el cliente FTP para la conexión de datos son los siguientes:
- Puerto de datos
- Modo de transferencia
- Tipo de representación y estructura
Los parámetros relacionados a la gestión de datos son los siguientes:
- Almacenar
- Recuperar
- Añadir
- Borrar
- Obtener
El proceso de transferencia de datos desde el servidor hacia el cliente deberá esperar a que el servidor inicie la conexión al puerto de datos especificado ( en modo activo ) y luego de ello transferir los datos en función a los parámetros de conexión especificados anteriormente.
Modos de conexión del cliente
FTP establecerá dos modos de conexión diferentes para el cliente, el Modo Activo y el Modo Pasivo.
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.
Modos de acceso del cliente
Un cliente FTP es la aplicación o software que servirá de intermediario entre el servidor FTP y nuestro equipo, así mismo existen dos versiones de clientes FTP, los gráficos y los que se usan a linea de comandos. En la mayoría de los casos se implementaran clientes gráficos de FTP esto debido a que son mas fáciles y sencillos de manejar por el usuario. Nosotros recomendamos usar el cliente FTP FileZilla. FileZilla es un cliente FTP, gratuito, multiplataforma , libre y de código abierto. Sustenta los protocolos FTP, SFTP y SFTP. Así mismo, los clientes FTP pueden acceder a los servidores FTP de tres formas distintas, estas son:
- Acceso Anónimo
- Acceso de Usuario
- Acceso de Invitado
Acceso Anónimo
El acceso anónimo a un servidor FTP se caracteriza porque este no pide ningún tipo de autenticacion al cliente FTP ( login y password ) para entrar en el. Generalmente este tipo de accesos son implementados para que cualquier usuario tenga acceso a los recursos que ahí se comparten, los cuales normalmente solo pueden ser leídos o copiados , restringiendo a los usuarios la función de crear o modificar dichos recursos.
Acceso de Usuario
Este tipo de acceso se caracteriza porque este si requiere autenticacion del cliente FTP ( login y password ) ante el servidor FTP. Generalmente estos accesos son implementados para un grupo selecto de usuarios, los cuales tendrán ciertos privilegios sobre los recursos del servidor como podría ser modificar, eliminar, crear , subir o descargar archivos o carpetas. Otra característica de este acceso es que permite al usuario FTP acceder a cualquier parte del sistema operativo, lo cual es un grave fallo de seguridad.
Acceso de Invitado
El acceso de invitado bien podría ser un híbrido entre el acceso anónimo y el acceso de usuario, ya que en este tipo de acceso de requiere autenticacion del cliente FTP ( login y password ) ante el servidor FTP, lo que lo diferencia de los últimos dos es que el usuario FTP solo podrá trabajar en un directorio de trabajo destinado exclusivamente para el, evitando así que el usuario FTP tenga acceso a otras partes del sistema operativo, pero sin restringir los privilegios que tiene sobre su propio directorio de trabajo. Proceso de instalación del servidor FTP.