File Transfer Protocol

Anuncio
File Transfer Protocol
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. 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, acceder al servidor y/o apropiarse de los
archivos transferidos.
El siguiente modelo representa el diagrama de un servicio FTP.
perar, añadir, borrar, etc.). El proceso de transferencia de
datos (DTP) de usuario u otro proceso en su lugar, debe
esperar a que el servidor inicie la conexión al puerto de
datos especificado (puerto 20 en modo activo o estándar)
y transferir los datos en función de los parámetros que se
hayan especificado.
Para solucionar este problema son de gran utilidad aplica- Vemos también en el diagrama que la comunicación enciones como scp y sftp, incluidas en el paquete SSH, que tre cliente y servidor es independiente del sistema de arpermiten transferir archivos pero cifrando todo el tráfico. chivos utilizado en cada computadora, de manera que no
importa que sus sistemas operativos sean distintos, porque las entidades que se comunican entre sí son los PI y
los DTP, que usan el mismo protocolo estandarizado: el
1 Historia
FTP.
También hay que destacar que la conexión de datos es bidireccional, es decir, se puede usar simultáneamente para enviar y para recibir, y no tiene por qué existir todo el
tiempo que dura la conexión FTP. Pero tenía en sus comienzos un problema, y era la localización de los servidores en la red. Es decir, el usuario que quería descargar
algún archivo mediante FTP debía conocer en qué máquina estaba ubicado. La única herramienta de búsqueda
de información que existía era Gopher, con todas sus limitaciones.
El protocolo FTP se empezó a utilizar en abril de 1971,
publicado como el RFC 114, antes de que existiera la pila
TCP/IP. La estructura general fue establecida en 1973.
Fue modificado varias veces, añadiendo nuevos comandos y funcionalidades. Al final se publicó el RFC 959 en
octubre de 1985, que es la que se utiliza actualmente.[1]
2
El Modelo FTP
En el modelo, el intérprete de protocolo (IP) de usuario
inicia la conexión de control en el puerto 21. Las órdenes
FTP estándar las genera el IP de usuario y se transmiten
al proceso servidor a través de la conexión de control. Las
respuestas estándar se envían desde la IP del servidor la
IP de usuario por la conexión de control como respuesta
a las órdenes.
2.1 Primer buscador de información
Gopher significa 'lanzarse sobre' la información. Es un
servicio cuyo objetivo es la localización de archivos a
partir de su título. Consiste en un conjunto de menús de
recursos ubicados en diferentes máquinas que están intercomunicadas. Cada máquina sirve una área de información, pero su organización interna permite que todas
ellas funcionen como si se tratase de una sola máquina.
El usuario navega a través de estos menús hasta locali-
Estas órdenes FTP especifican parámetros para la conexión de datos (puerto de datos, modo de transferencia,
tipo de representación y estructura) y la naturaleza de la
operación sobre el sistema de archivos (almacenar, recu1
2
zar la información buscada, y desconoce exactamente de
qué máquina está descargando dicha información. Con
la llegada de Internet, los potentes motores de búsqueda
(Google) dejaron el servicio Gopher, y la localización de
los servidores FTP dejó de ser un problema. En la actualidad, cuando el usuario se descarga un archivo a partir de
un enlace de una página web no llega ni a saber que lo está
haciendo desde un servidor FTP. El servicio FTP ha evolucionado a lo largo del tiempo y hoy día es muy utilizado
en Internet, en redes corporativas, Intranets, etc. Soportado por cualquier sistema operativo, existe gran cantidad
de software basado en el protocolo FTP.
4
CLIENTE FTP
se con servidores FTP no anónimos utilizar un programa
cliente.
4.1 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
3 Servidor FTP
por tu usuario tendrás acceso a ese sistema. No se necesita ninguna contraseña preestablecida, aunque tendrás
Un servidor FTP es un programa especial que se ejecuta que introducir una sólo para ese momento, normalmente
en un equipo servidor normalmente conectado a Inter- se suele utilizar la dirección de correo electrónico propia.
net (aunque puede estar conectado a otros tipos de redes,
LAN, MAN, etc.). Su función es permitir el intercambio Solamente con eso se consigue acceso a los archivos del
FTP, aunque con menos privilegios que un usuario norde datos entre diferentes servidores/ordenadores.
mal. Normalmente solo podrás leer y copiar los archivos
Por lo general, los programas servidores FTP no suelen que sean públicos, así indicados por el administrador del
encontrarse en los ordenadores personales, por lo que un servidor al que nos queramos conectar.
usuario normalmente utilizará el FTP para conectarse remotamente a uno y así intercambiar información con él. Normalmente, se utiliza un servidor FTP anónimo para
depositar grandes archivos que no tienen utilidad si no son
Las aplicaciones más comunes de los servidores FTP sue- transferidos a la máquina del usuario, como por ejemplo
len ser el alojamiento web, en el que sus clientes utilizan el programas, y se reservan los servidores de páginas web
servicio para subir sus páginas web y sus archivos corres- (HTTP) para almacenar información textual destinada a
pondientes; o como servidor de backup (copia de segu- la lectura en línea.
ridad) de los archivos importantes que pueda tener una
empresa. Para ello, existen protocolos de comunicación
FTP para que los datos se transmitan cifrados, como el 4.2 Acceso de usuario
SFTP (Secure File Transfer Protocol).
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
4 Cliente FTP
propios archivos, generalmente se suele realizar mediante una cuenta de usuario. En el servidor se guarda la inCuando un navegador no está equipado con la función formación de las distintas cuentas de usuario que pueden
FTP, o si se quiere cargar archivos en un ordenador re- acceder a él, de manera que para iniciar una sesión FTP
moto, se necesitará utilizar un programa cliente FTP. Un debemos introducir una autentificación (en inglés: login)
cliente FTP es un programa que se instala en el ordenador y una contraseña (en inglés: password) que nos identifica
del usuario, y que emplea el protocolo FTP para conec- unívocamente.
tarse 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 conectar-
4.3 Cliente FTP basado en Web
Un «cliente FTP basado en Web» no es más que un cliente
FTP al cual podemos acceder a través de nuestro navegador web sin necesidad de tener otra aplicación para ello.
El usuario accede a un servidor web (HTTP) que lista los
contenidos de un servidor FTP. El usuario se conecta mediante HTTP a un servidor web, y el servidor web se conecta mediante FTP al servidor FTP. El servidor web actúa de intermediario haciendo pasar la información desde
el servidor FTP en los puertos 20 y 21 hacia el puerto 80
HTTP que ve el usuario.
3
Siempre hay momentos en que nos encontramos fuera de
casa, no llevamos el ordenador portátil encima y necesitamos realizar alguna tarea urgente desde un ordenador
de acceso público, de un amigo, del trabajo, la universidad, etc. Lo más común es que no estén instaladas las
aplicaciones que necesitamos y en muchos casos hasta carecemos de los permisos necesarios para realizar su instalación. Otras veces estamos detrás de un proxy o cortafuegos que no nos permite acceder a servidores FTP
externos.
5 Modos de conexión del cliente
FTP
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
Al disponer de un cliente FTP basado en Web podemos
mediante el puerto 21, que establece el canal de control.
acceder al servidor FTP remoto como si estuviéramos
realizando cualquier otro tipo de navegación web. A través de un cliente FTP basado en Web podrás, crear, co5.1 Modo activo
piar, renombrar y eliminar archivos y directorios. Cambiar permisos, editar, ver, subir y descargar archivos, así
Cliente
Servidor FTP
como cualquier otra función del protocolo FTP que el serModo
vidor FTP remoto permita.
Activo
Puerto
de datos
1036
4.4
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.
4.5
1. Mandar
comando
PORT y el
puerto 1036
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.
Ejemplos de Clientes FTP
Puerto de
control
1035
Puerto de
control
21
IPClient
e:1035
IPServid
orFTP:21
P:21
idorFT
IPServ e:1035
nt
IPClie
Puerto
de datos
20
2. Enviar comando
ACK
3. Enviar
Datos
0
FTP:2
vidor
36
IPSer
nte:10
IPClie
4. Enviar comando
ACK
IPClient
e:1036
IPServid
orFTP:20
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.
Entre los varios clientes FTP que existen, se pueden men- Lo anterior tiene un grave problema de seguridad, y es
que la máquina cliente debe estar dispuesta a aceptar
cionar los siguientes:[2]
cualquier conexión de entrada en un puerto superior al
1024, con los problemas que ello implica si tenemos el
• Free FTP Upload Manager
equipo conectado a una red insegura como Internet. De
hecho, los cortafuegos que se instalen en el equipo para
• F->IT
evitar ataques seguramente rechazarán esas conexiones
• net2ftp
aleatorias. Para solucionar esto se desarrolló el modo pasivo.
• Web FTP.co.uk
• Web-Ftp
• Jambai FTP
• ftp4net
• PHP FTP Client
• Asuk PHP FTP
• Weeble File Manager
5.2 Modo pasivo
Cuando 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. Ejemplo:2040)
al que debe conectarse el cliente. El cliente inicia una
conexión desde el puerto siguiente al puerto de control
(Ejemplo: 1036) hacia el puerto del servidor especificado anteriormente (Ejemplo: 2040).[3]
4
8
Modo
Pasivo
1.Mandar
comando
PASV
3.Iniciar la conexion
de datos desde el
puerto 1036 a un
puerto aleatorio
del servidor
Puerto de
control
21
Puerto de
control
1035
IPClie
nt
IPServ e:1035
idorFT
P:21
P:21
idorFT
IPServ
e:1035
IPClient
Puerto
de datos
2040
Puerto
de datos
20
Este
puerto
no se
utiliza
2. Respuesta del
servidor con un
puerto > 1023
IPClie
nte:10
36
IPServ
idorFT
P:2040
2040
5. Cerrar la conexion
6 Guía de comandos FTP
Servidor FTP
Cliente
Puerto
de datos
1036
CONEXIÓN A UN SERVIDOR FTP PROTEGIDO DESDE NAVEGADOR
orFTP:
ervid
IPS
4.Enviar
comando
ACK
36
nte:10
IPClie
Modo pasivo.
7 Códigos de respuesta de FTP
A continuación se muestra un resumen de la respuesta de
los códigos FTP que puede ser devuelto por un servidor
FTP. Estos códigos se han estandarizado en RFC 959 por
IETF. El código de respuesta es un valor de tres dígitos.
El primer dígito se utiliza para indicar una de tres posibles
resultados-el éxito, el fracaso o para indicar un error o una
respuesta incompleta:
• 2yz - respuesta Éxito
Antes de cada nueva transferencia tanto en el modo Ac• 4yz o 5yz - No hay respuesta
tivo como en el Pasivo, el cliente debe enviar otra vez un
• 1yz o 3yz - Un error o una respuesta incompleta
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 El segundo dígito define la clase de error:
pasivo) o por el puerto 20 (si está en modo activo). En el
protocolo FTP existen 2 tipos de transferencia en ASCII
• x0z - Sintaxis. Estas respuestas se refieren a errores
y en binarios.
de sintaxis.
• x1z - Información. Las respuestas a las solicitudes
de información.
5.3
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):
• x2z - Conexiones. Respuestas en referencia al control y las conexiones de datos.
• x3z - Autenticación y contabilidad. Respuestas para
el proceso de inicio de sesión y los procedimientos
contables.
• x4z - No definido.
• x5z - Sistema de archivos. Estas respuestas transmiten códigos de estado del sistema de archivos del
servidor.
• Tipo ASCII
El tercer dígito del código de respuesta se utiliza para
proporcionar detalles adicionales para cada una de las caAdecuado para transferir archivos que sólo contengan ca- tegorías definidas por el segundo dígito.[4]
racteres imprimibles (archivos ASCII, no archivos resultantes de un procesador de texto), por ejemplo páginas
HTML, pero no las imágenes que puedan contener.
8 Conexión a un servidor FTP pro-
tegido desde navegador
• Tipo Binario
Para iniciar sesión en un servidor FTP que requiere una
contraseña teclee la URL de esta forma:
Este tipo es usado cuando se trata de archivos comprimi- ftp://<usuario>:<contraseña>@<servidor
dos, ejecutables para PC, imágenes, archivos de audio... ruta>
ftp>/<url-
Ejemplos de cómo transferir algunos tipos de archivo de- Donde <usuario> es el nombre de usuario, <servidor ftp>
pendiendo de su extensión:
es el servidor FTP, <contraseña> es la contraseña de acEn la red existen diversas soluciones de software que ceso, y <url-ruta> es el directorio donde iniciamos sesión.
desarrolla este tipo de tecnología, los más conocidos, son Ejemplo: ftp://alumno:[email protected]/
Filezilla (software libre) y CuteFTP (shareware).
public
5
9
Véase también
• FTPS
• TFTP
• OFTP
• File eXchange Protocol
• PTP, Picture Transfer Protocol
• MTP, Media Transfer Protocol (una extensión del
PTP)
• SSH File Transfer Protocol
• Network File System
• Sistema de archivos
• Sistema de archivos distribuido
10
Referencias
[1] «La historia del protocolo FTP (y sus desventajas actuales)». Consultado el 26 de junio de 2014.
[2] Micaela. «Los mejores 10 clientes FTP». Consultado el
27 de junio de 2014.
[3] «Active FTP vs. Passive FTP, a Definitive Explanation»
(en inglés).
[4] Forouzan, Behrouz. TCP/IP Protocol Suite. McGraw Hill.
• RFC 959: Referencia que define las características
actuales, a fecha de febrero del 2007, del protocolo
FTP.
• RFC 114: Primera referencia propuesta de FTP del
año 1971.
• TCP/IP Protocol Suite. Fourth Edition. Behrouz A.
Forouzan. McGraw Hill.
6
11
11
11.1
TEXT AND IMAGE SOURCES, CONTRIBUTORS, AND LICENSES
Text and image sources, contributors, and licenses
Text
• File Transfer Protocol Fuente: http://es.wikipedia.org/wiki/File%20Transfer%20Protocol?oldid=80129957 Colaboradores: Youssefsan,
Mac, Youandme, 4lex, Moriel, Sauron, JorgeGG, Robbot, Gauss, Rosarino, Dodo, Jynus, Rsg, Tostadora, Sefer, Barcex, Enric Naval,
Hildergarn, TuringTest, JCCO, Caos, Petronas, Xavmp, Airunp, JMPerez, Rembiapo pohyiete (bot), Drini2, RobotQuistnix, Byj2000,
Superzerocool, Chobot, Caiserbot, Yrbot, BOT-Superzerocool, Adrruiz, FlaBot, YurikBot, Mortadelo2005, Icvav, GermanX, Beto29,
KnightRider, Eloy, JRGL, Santiperez, Eskimbot, Ummowoa, Isra00, Morza, Maldoror, Er Komandante, Ciencia Al Poder, Lancaster,
Ketamino, Jarke, BOTpolicia, CEM-bot, Damifb, Alexav8, Antur, Jjafjjaf, Dorieo, Montgomery, Thijs!bot, Dajuam, Papouten, RoyFocker, JoaquinFerrero, Isha, Hanjin, Mpeinadopa, JAnDbot, Jugones55, .roman.., Mansoncc, Death Master, Muro de Aguas, Jorge Estrada,
TXiKiBoT, Aalvarez12, JoseA, Gacq, Netito777, NaSz, Pólux, Galaxy4, Jmvkrecords, Delphidius, AlnoktaBOT, Cinevoro, Aibot, VolkovBot, Snakeyes, Technopat, Galandil, Queninosta, Oscarxs.ULE, Carlostorres01, Matdrodes, Synthebot, BlackBeast, Shooke, AlleborgoBot,
Proton.72, Muro Bot, Feministo, Dinopmi, BotMultichill, SieBot, Cobalttempest, Teyer, Macarse, Greek, Fadesga, Tirithel, XalD, Jarisleif,
Javierito92, HUB, Bienacass, Sol felipe, Botellín, Alejandrocaro35, Pablo323, LordT, BetoCG, Jperelli, Nepenthes, Ravave, SilvonenBot,
AVBOT, MastiBot, Angel GN, EivindBot, Diegusjaimes, Bethan 182, CarsracBot, Andreasmperu, Luckas-bot, Dangelin5, Nixón, ArthurBot, Jllopezpino, Xusete18, SuperBraulio13, Manuelt15, Xqbot, Jkbw, SassoBot, Rubinbot, Leandro.ditommaso, Teruillo, Igna, Botarel,
Sony 3220, BenzolBot, Auxctionsmx, Panderine!, BOTirithel, Hprmedina, TobeBot, Caritdf, Kizar, Leugim1972, PatruBOT, Dinamikbot, Goica, Aldorhoe, Mathonius, Alstur, GrouchoBot, EmausBot, Savh, HRoestBot, J. A. Gélvez, KLBot, ChuispastonBot, MadriCR,
Michellelopez477, MerlIwBot, Ninrouter, Orleons17, Santga, ELOTSO, Makecat-bot, Syum90, JessicaZurik, Legobot, Josefrodo, Edgar
arevalos, Churrasco italiano, JacobRodrigues, Lezotho y Anónimos: 346
11.2
Images
• Archivo:Activo.svg Fuente: http://upload.wikimedia.org/wikipedia/commons/9/90/Activo.svg Licencia: CC BY-SA 3.0 Colaboradores:
Trabajo propio Artista original: Gabiwxp
• Archivo:Modelo_ftp.jpg Fuente: http://upload.wikimedia.org/wikipedia/commons/c/c5/Modelo_ftp.jpg Licencia: Public domain Colaboradores: ? Artista original: ?
• Archivo:Pasivo.svg Fuente: http://upload.wikimedia.org/wikipedia/commons/6/65/Pasivo.svg Licencia: CC BY-SA 3.0 Colaboradores:
Trabajo propio Artista original: Gabiwxp
11.3
Content license
• Creative Commons Attribution-Share Alike 3.0
Descargar