martes, 2 de noviembre de 2010

File Transfer Protocol (FTP)



Es un protocolo de red para la tranferencia de archivos entre sistemas conectados a una red TCP basado en la arquitectura cliente servidor.

Desde un equipo cliente se puede conectar a un servidor para descagar archivos desde él o para enviarle archivos, independientemente del sistema operativo utilizado en cada equipo.

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.

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.

Lo anterior tiene un grave problema de seguridad, y es que la máquina cliente debe estar dispuesta a aceptar cualquier conexión de entrada en un puerto superior al 1024, con los problemas que ello implica si tenemos el equipo conectado a una red insegura como Internet. De hecho, los cortafuegos que se instalen en el equipo para evitar ataques seguramente rechazarán esas conexiones aleatorias. Para solucionar esto se desarrolló el modo Pasivo.

Modo Pasivo

Cuando el cliente envía un comando PASV sobre el canal de control, el servidor FTP abre un puerto efímero (cualquiera entre el 1024 y el 5000) e informa de ello al cliente FTP para que, de esta manera, sea el cliente quien conecte con ese puerto del servidor y así no sea necesario aceptar conexiones aleatorias inseguras para realizar la transferencia de datos.

Antes de cada nueva transferencia, tanto en el modo Activo como en el Pasivo, el cliente debe enviar otra vez un 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 pasivo) o por el puerto 20 (si está en modo activo).

Un diagrama de como funciona un servidor FTP


En mi opinión los mejores clientes FTP son filezilla y gftp lo pueden descargar desde la terminal

Filezilla
$ sudo aptitude install filezilla
gftp
$ sudo aptitude install gftp
También pueden buscar mas opciones en google :D


Saludos...

1 comentario:

  1. Bien, cuatro puntos extra para la clase (ya que ya tienes cien del lab).

    ResponderEliminar