0% encontró este documento útil (0 votos)
144 vistas30 páginas

Guía Básica de FTP para Principiantes

El documento explica cómo funciona el protocolo FTP y cómo acceder a servidores FTP de diferentes maneras. FTP permite la transferencia de archivos entre un cliente y un servidor de forma no segura, enviando los comandos y credenciales en texto plano. Se puede acceder como usuario anónimo, con acceso de solo lectura, o como usuario registrado con permisos de lectura/escritura en el directorio asignado. También se explican los permisos de archivos y cómo un administrador tiene acceso completo al servidor FTP.

Cargado por

Victor Romero
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
144 vistas30 páginas

Guía Básica de FTP para Principiantes

El documento explica cómo funciona el protocolo FTP y cómo acceder a servidores FTP de diferentes maneras. FTP permite la transferencia de archivos entre un cliente y un servidor de forma no segura, enviando los comandos y credenciales en texto plano. Se puede acceder como usuario anónimo, con acceso de solo lectura, o como usuario registrado con permisos de lectura/escritura en el directorio asignado. También se explican los permisos de archivos y cómo un administrador tiene acceso completo al servidor FTP.

Cargado por

Victor Romero
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Romero Fernández, Víctor

Aviso

NO se asume ninguna responsabilidad debida al empleo de la información aquí contenida,


puesto que este texto solamente tiene fines educativos y en ningún caso pretende incitar a
nadie a cometer ningún delito ya sea informático o de otra índole.

Aula virtual Servidet 1 / 30


Romero Fernández, Víctor

Ftp

lo primero será una simple lección para que sepan como hacer un FTP sin problemas, para los
que no les de el cerebro para entender como usar bien los comandos,
yo preferiría que utilicen comandos porque ya tendrán que hacerlo
mas a menudo, o casi siempre ;).

De todos modos no saberse los comandos de FTP no es nada grave,


no es muy importante pero si los aprontará para cosas mas difíciles
del estilo, como será Línea de comandos, Telnet y SSH, SMTP, POP3,
IRC, MySQL, y ni hablar de cuando lleguemos a Linux,

Cual es la idea entonces de esta lección?, bueno, para mi es


importante y para Uds. también saber FTP porque es el sistema de
transferencia de archivos mas utilizando en Internet y Uds. deben
saber como se utilizan y configura un servidor FTP, como acceder a
ellos y porque como ya les dije tiene comandos muy parecidos a
TELNET... entonces Uds. me dirán, “porque no aprendemos TELNET
carajo!?¿”, bueno, porque no tenemos mas de 1.000 servidores
TELNET con acceso anónimo para probarlos y jugar un poco y porque
Telnet no es para niños como son por ahora Uds...
Espero que disfruten esta lección tanto como yo disfruto
escribiéndola.

2º Acceso FTP desde Entornos gráficos.


Les explicaré unos conceptos básicos de lo que es un FTP, como se
puede acceder, que tipo de servicio nos brinda el servidor, y algunos
otros detalles.

Un FTP es un protocolo, ya les he explicado en la lección anterior, la


lección para los que aún no sabían nada de lo que es un servidor FTP,
este se usa para acceder a la archivos en servidores remotos a través
de Internet, por lo que para acceder a uno necesitaremos o su
dirección HOST (eje. FTP.adobe.com) o su IP (eje. 192.150.19.37),
de esta manera ya tenemos el lugar al cual vamos a ingresar.
FTP es un protocolo que se maneja enviando paquetes entre el cliente
y el servidor en texto plano, con esto me refiero a que todo lo que
hagamos entre nuestra PC y el servidor es enviado como datos
dentro de un mensaje con el formato que indica el protocolo dentro
del cual, van los comandos claramente escritos.

Esto nos da la pauta de la GRAN INSEGURIDAD que lleva consigo el


sistema, pero no solo los comandos que utilizamos para utilizar el
servidor van en texto plano, sino que esto es desde el comienzo
mismo de la comunicación, de modo que nuestro usuario y password
también irá claramente visible a través de la red..., cuando digo
claramente no es que les aparezca en la pantalla al que desee, para
explicarle esto necesitaría que supieran muchos conceptos que
todavía no tienen pero imaginen que cada mensaje que Uds.

Aula virtual Servidet 2 / 30


Romero Fernández, Víctor

envían, pasa por muchos servidores que se encargan de llevar el paquete a


destino, desde Su PC, el servidor de su RED, el servidor de su ISP,
etc, entonces cualquier usuario que se encuentre en ese camino, con
un programa llamado capturador de paquetes o SNIFFER podrá leer
El esquema muestra como sería una comunicación entre una PC y otra, llamémosle a una
Cliente (Uds.) y a la otra Servidor (el FTP), como ven para acceder a el pasamos por varias
maquinas, cualquier persona con acceso a una de esas máquinas utilizando un sniffer podrá
ver todo lo que hacen y capturar toda la información que envíen al servidor.

A pesar de la inseguridad del tema, hay métodos para evitar este espionaje, esto se puede
realizar utilizando software servidor y cliente que utiliza criptografía asimétrica para
establecer y llevar a cabo la comunicación, verán esto muy a fondo en la lección 11 sobre
criptografía, mientras tanto solo sabrán que existe un método seguro, si desean saber mas al
respecto busquen “SFTP” (Secure FTP) en su buscador favorito ;).

Ahora que ya sabemos que es muy inseguro... Vamos a ver lo métodos que disponemos para
ingresar a un servidor FTP, y estas dependen de la configuración del mismo...

Al intentar ingresar a un Server FTP, este siempre nos pedirá autentificación, (usuario y
contraseña), dependerá de que tipo de servicio FTP ofrece, de la configuración y de la
incapacidad de los administradores si podremos...

Entrar como anónimo..

Cuando entramos a un sitio FTP como anónimo (usuario: anonymous), el sitio no necesitará
contraseña porque estará configurado para que tu puedas hacerlo, pero si nos pedirá una,
que en realidad no es mas que poner cualquier cosa, les recomiendo poner el mail suyo como
gentileza en los servidores anónimos y así poder estar en una nueva lista de SPAM :P, a
menos que sea que entraste porque el administrador es un idiota (puedes saltar en una

pata ya que podrás hacer lo que quieras, pero no te entusiasmes, el único sitio que vi que
hackearan así fue www.elmonomario.com hace 2 años, y es el único caso que verifiqué
personalmente aunque se de muchos mas, bueno retomando la charla les contaba que a
menos que suceda esto, nuestra función dentro del servidor estará restringida a leer y copiar
a nuestro disco los archivos que tengamos permitidos.

En la segunda parte de la lección les explicaré como es el tema de los permisos, acceso
limitado, etc...

Siguiendo con el tema, como usuario anónimo de un sitio FTP podremos navegar entre sus
archivos como si fuese un disco mas de nuestra unidad (para que entiendan mas fácil), pero
sus funciones se verán restringidas a las de un usuario anónimo, según fueron definidas en el
server.

Entrar como un usuario registrado...

Cuando nos referimos a un usuario registrado supongo que estamos conectándonos al FTP de
algún servidor nuestro o que tenemos una cuenta con una pagina Web o solo contratado

Aula virtual Servidet 3 / 30


Romero Fernández, Víctor

espacio en un disco duro remoto para guardar información.

El servidor nos preguntará usuario y password que verificará para iniciar la sesión, en este
modo de conexión, (a menos que el administrador sea un idiota....blah, blah..), tendremos
acceso a borrar, escribir, leer, copiar, editar y restringir acceso a los archivos dentro de
nuestro sub-directorio dentro del servidor, generalmente /home/usuario (/home es el
directorio base donde entran todos los subdirectorios de los usuarios como Uds.), no siempre
veremos nuestro directorio de esa forma, tipo “/home/usuario” sino que simplemente
veremos que estamos en el directiorio raiz ( / ) porque el servidor se encarga de esto
configurando accesos y permisos, digamos que lo que sucede es que nos vemos encerrados
dentro de una “jaula”.

Aula virtual Servidet 4 / 30


Romero Fernández, Víctor

Entrar a ftp

Bueno, esta parte es la mas bonita, porque cuando uno entra como administrador a un
servidor, puede hacer lo que se le de la gana, puede acceder a todos los archivos, cualquiera
sea el usuario

propietarios de los mismos, se tiene acceso como un “super usuario”, podrás cambiar la
configuración del servidor, administrar los accesos, otorgar los permisos, borrar, escribir,
editar, leer, copiar y mover cualquier archivo de un lado a otro así también como cambiar sus
propiedades, restringirlos a solo lectura, lectura y escritura, y todos esos parámetros que se
le atribuyen a un archivo que lo caracterizan.

Obviamente también tendrás acceso a cambiar las contraseñas de cualquier usuario, generar
usuarios, borrar usuarios, en fin, tendrás omnipotencia en tu servidor, pero ojo, si eres uno
de esos administradores “despistados” apenas pongas en marcha tu servidor y lo vea algún
otro alumno, te echarán de la empresa por no saber configurarlo :P.

Bueno, basta ya de palabras y teórico y vamos a lo práctico.

Como ya verán a lo largo del curso no soy una de esas personas que se caracterizan por
recomendar programas a menos que sea completamente necesario para seguir adelante con
el tema...

Para empezar les contaré que existen miles de clientes de FTP, o sea, miles de programas
que abrimos, instalamos y luego ejecutamos y nos pide, usuario, dirección remota, password,
puerto, (21 es puerto predeterminado), y nos abrirá una especie de explorador donde
veremos en un lado nuestro disco, y por el otro el disco remoto, (sitio al cual hemos
accedido), donde también al lado de cada archivo aparecerán los parámetros
correspondientes al mismo, como “solo escritura”, “solo lectura”, etc... pero ojo, no aparecen
de este modo, sino que con unas letras al costado ejemplo:

Las opciones se diferencian de este modo...

Usuario (el usuario logueado):


Grupo (todos los usuarios existentes): Otros usuarios (también anónimos):

Lectura–Escritura–Ejecución Lectura–Escritura–Ejecución Lectura–Escritura–Ejecución

El archivo aparecerá del siguiente modo...

archivo.xxx -rwxrw–r--

Esto nos indica en orden periódico las restricciones a cada tipo de usuarios, el primer
carácter que acá vemos con una – puede variar entre “d” (directorio), “l” (accesos directos
de carpetas o archivos), “- ” (archivo).

Aula virtual Servidet 5 / 30


Romero Fernández, Víctor

Los demás son repetitivos, primero va las autorizaciones del usuario (definidas por el mismo),
luego las de los usuarios de la red (definidas por el usuario dueño del espacio), luego de
todos los

usuarios que no pertenezcan a la red (definidas también por el usuario dueño del espacio),
todas estas definiciones están sujetas a cambios por parte del root, o sea que es root
(superusuario, aunque sin capa roja) puede cambiar lo que quiera siempre.

Entonces vamos a lo que significan los otros caracteres:

“r” read – lectura


“w” write – escritura
“x” execution – ejecución

En caso que aparezca “-” es que no esta autorizado, depende donde se encuentra sabremos
quien no esta autorizado a que cosa, en realidad el “-” establece que el campo esta vacío, y
de esa forma no autoriza al usuario a efectuar la operación que le corresponde al espacio
donde esta el “-”.

Bueno, yo no les enseñaré a utilizar estos programas porque cada uno tiene un toque
diferente, suponiendo que todos Uds. Utilizan Windows, les enseñaré a hacer FTP de un modo
muy sencillo, si utilizan Linux hacen lo mismo en el Mozilla ;).

Primero abren una ventana de Internet Explorer, en la barra de direcciones deben escribir de
la siguiente manera:

1) FTP://usuario:password@servidor:puerto/carpeta

Con este sistema le decimos al servidor todos los datos entonces entrará directamente a
nuestro usuario y a nuestra carpeta sin hacer preguntas ni nada, y veremos un contenido
como si estuviésemos explorando nuestro disco duro.

Todo eso se puede resumir entrando “en cuotas” veamos el procedimiento...

2) FTP://servidor:puerto

De esta manera nos preguntará usuario y password (a menos que sea FTP público que son
esos que nos dejan entrar de forma anónima) y luego entraremos a la raíz, debemos clickear
en la carpeta que queremos abrir o nos quedamos en la que estamos .. por mi es lo mismo :P.

Pueden usar cualquiera de los dos métodos, el primero trae un problemita y es que
cualquiera que tenga acceso al PC podrá ver el usuario y el password que quedará en el
Historial como parte de la dirección, por lo tanto lo mejor sería...

FTP://usuario@servidor:puerto/carpeta

De este modo el servidor les pedirá el password y quedarán dentro, lo malo de este sistema
utilizando el Internet Explorer es que muchas veces quedan conexiones “colgadas” dado a

Aula virtual Servidet 6 / 30


Romero Fernández, Víctor

que no se finalizan correctamente y puede traerles problemas mas adelante, en la parte de


seguridad de la lección entenderán mejor que problema puede traer que no se cierre
correctamente la conexión.

Siguiendo con nuestro tema... para copiar archivos, (solo si son usuarios autorizados), tan
solo deben arrastrarlo como si se tratara de una carpeta mas en su PC (explorer mayor al 4..
tomenlo en cuenta si no funciona), lo mismo debemos hacer con todas las cosas que
deseemos hacer... como si fuera nuestra PC :).

Para cambiar las propiedades del archivo, (ejem. -rwxw-x-rw-), debemos clickear sobre el
archivo o carpeta con el botón secundario del ratón y ahí tenemos un cuadro de diálogo que
nos permite realizar estas modificaciones, si es que estamos autorizados a tal cosa.

Aula virtual Servidet 7 / 30


Romero Fernández, Víctor

Acceso a ftp desde dos

Consejos para usar FTP...

Es imprescindible que conozcas el tipo de fichero del que se trata al momento de bajar algo
de un FTP, si no fuera así, puede que el fichero obtenido contenga errores que sea inutilizable,
lo obvio de cualquier sistema.

Podemos distinguir dos tipos de ficheros básicos ASCII (texto estándar) y binarios.

En un fichero ASCII la información está escrita en código ASCII (letras, números, signos)
mientras que un fichero binario puede contener programas ejecutables, imágenes gráficas,
ficheros de sonido, etc.

Para poder obtener bien un archivo según su tipo deberán cambiar el modo al obtenerlo para
que no de conflictos, esto lo veremos mas adelante y no es complicado :).

Los sitios que ofrecen el servicio de FTP anónimo, pueden atender a un número limitado de
usuarios al mismo tiempo, por lo que muchas veces no puede realizarse la conexión
apareciendo el correspondiente

mensaje del sistema remoto, en ese caso, vuelve a intentarlo más tarde o prueba en otro
lado.

EN QUE CONSISTE EL PROTOCOLO FTP?¿

Una de las alternativas más importantes que nos permite Internet es la transferencia de
archivos de un ordenador a otro desde cualquier parte del mundo. Para ello utilizamos el
protocolo de transferencia de archivos o "FTP" (file transfer protocol).

Si a través de Telnet podemos tener acceso a archivos distantes de nosotros, mediante FTP
podemos compartir (recibir y enviar) nuestros ficheros con otros ordenadores, siempre que el
administrador de estos nos lo permita.

Para explicar cómo se pueden compartir los archivos pongamos un ejemplo...

Imaginemos una empresa tiene sucursales en varios lugares y quiere que todas ellas posean
determinados archivos que se actualizan cada cierto tiempo desde su sede central. A su vez,
también las sucursales que generan sus propios documentos quieren enviarlos a la sede
central de la empresa.

Esto se consigue, montando un ordenador en la sede central con los archivos que quieran
distribuirse y conectándolo a Internet, ofreciendo la posibilidad de efectuar la transferencia
de esos ficheros mediante FTP. A su vez, las sucursales se pondrán en contacto con la sede
central de la empresa utilizando la herramienta FTP de su ordenador.

La forma de conexión con la central es muy similar a la utilizada en Telnet, al contactar con
la central, su ordenador pedirá la el usuario y password, tras lo cual, ya se podrá transferir
Aula virtual Servidet 8 / 30
Romero Fernández, Víctor

cualquier fichero en ambas direcciones.

Recalco la inseguridad de estos sistemas, por lo que si desean implementar algo similar para
sus empresas lo mejor sería hacerlo mediante SFTP.

Comenzando el FTP

Para iniciar un FTP desde UNIX, Linux o DOS, hay que escribir en la línea de comandos “FTP”
y listo, nos aparecerá donde había el usuario o en DOS el ftp> como unidad, de ahora en mas
lo llamaremos “prompt” como es debido.

A partir de este momento ya estamos en el cliente de FTP.

Para ver los comandos disponibles en la versión que tenemos de FTP escriban “?” y nos
aparecerán en forma de lista distribuida por columnas cada una. NO se asusten mucho,
porque hay varias maneras de utilizarlos, en DOS son la mitad de los de Linux o UNIX, pero
esta bien de todos modos.

Para saber que es cada comando, escriban “? Comando”, donde “comando” es el comando
que quieren averiguar.

Yo les enseñaré a usar el FTP desde Linux y UNIX, Uds. verán los comandos que pueden usar
o no, en caso de que estén en DOS, la mayoría de estos estarán así que no se deben hacer
problema, sobre todo porque los ejemplos estarán en DOS.

La mayoría de los servidores de ficheros trabajan en UNIX,Por eso, los ficheros y los
directorios tienen nombres con la convención UNIX pero al transferirlos a un PC adoptan
automáticamente el formato del sistema operativo que posea el mismo ya que el sistema de
archivos y nombres no es siempre el mismo.

El nombre del servidor que comunica se con FTP puede ser especificado en la línea de
comandos al tiempo que llamamos al programa, cuando lo hacemos de este modo el
programa abre inmediatamente una conexión con el mismo, de lo contrario, FTP espera las
instrucciones del usuario, por ejemplo...

C:> ftp host

En ese caso se abriría una conexión en el puerto 21 con el host ftp que especificamos.

Si deseamos especificar un puerto sería por ejemplo... ftp> open host puerto

El protocolo de transferencia de archivos especifica parámetros de transferencia de archivo


de tipo, modo, forma y estructura.

Como ya les dije, el protocolo FTP soporta los tipos de archivos ASCII y binario, ASCII es el
tipo FTP por defecto.

Una consulta se puede realizar de dos formas, una con los comandos y argumentos

Aula virtual Servidet 9 / 30


Romero Fernández, Víctor

especificados en la línea de consulta, o la otra es escribir el comando y automáticamente nos


preguntaran uno a uno los argumentos, los comandos más comunes que podemos utilizar
son los siguientes...

La escritura para los mismos es...

! esto lo que hace es salir del modo FTP sin desconectarse para poder usar un shell,
volvemos saliendo de este con “exit”, ejemplo...

ftp> !

Microsoft Windows 2000 [Versión 5.00.2195] (C) Copyright 1985-2000 Microsoft Corp.
C:>exit
ftp>

append copia un archivo local al final de uno remoto, veamos un ejemplo...

<span style="font-size: 12.000000pt; font-family: 'CourierNew'">ftp&gt;


“archivo local” “archivo remoto” </span>

ascii transfiere los archivos en modo ASCII, este es el valor por defecto, cuando queremos
transferir uno binario debemos cambiar al modo con “bin”, ya lo veremos...

ftp> ascii

<span style="font-size: 12.000000pt; font-family: 'CourierNew'; color:


rgb(60.000000%, 60.000000%, 60.000000%)">200 Type set to A. </span>

ftp>

bell hace el sonido de una campana después de completarse cada transferencia de archivo,
veamos....

ftp> bell

Modo Bell Activo .

ftp> bell

Modo Bell Desactivado .

ftp>

binary transfiere los archivos en modo binario. Imágenes, Ejecutables, etc, veamos...

ftp> binary

<span style="font-size: 12.000000pt; font-family: 'CourierNew'; color:


rgb(60.000000%, 60.000000%, 60.000000%)">200 Type set to I. </span>

Aula virtual Servidet 10 / 30


Romero Fernández, Víctor

ftp>

bye cierra la conexión con el servidor, también con bye y queda mas lindo :P, ejemplito...
mejor no :P, sino tengo que abrir otra sesión, pruébelo Uds. jeje.

cd se introduce dentro del "directorio remoto" del servidor, también sirve para bajar de
directorio...

ftp> cd ..

250 CWD command successful.

ftp> cd html

250 CWD command successful.

ftp>

Primero bajamos un directorio, después subimos :).

Cdup retrocede al directorio padre del directorio de trabajo actual dentro del servidor.

Ejemplo: estamos en /home/user/fotos Cdup nos manda a /home/user/

Pero como vemos no funciona?¿... esto es porque no esta en el programa ftp de Windows,
para usarlo utilizamos como intermediario el comando “literal” que sirve para mandar
consultas literales al server, entonces veamos...

ftp> cdup

Comando no válido.

<span style="font-size: 12.000000pt; font-family: 'CourierNew'">ftp&gt;


literal cdup </span>

250 CWD command successful.

ftp>

close termina la conexión con el servidor, el comando close no sale del cliente FTP, el
comando bye o quit si lo hace.

delete elimina un archivo remoto, el archivo remoto puede ser un directorio vacío, veamos...

ftp> delete archivo.xxx

250 DELE command successful.

ftp>

Aula virtual Servidet 11 / 30


Romero Fernández, Víctor

dir imprime en pantalla un listado del directorio remoto u opcionalmente podemos hacer que
lo haga en un archivo local... si no especificamos ni el archivo local ni el directorio remoto, se
lista el directorio de trabajo actual, veamos dos ejemplos...

En este escribiremos en un archivo local llamado “archivo.txt” el contenido del directorio en


el cual estamos en estos momentos...

ftp> dir . c:archivo.txt

200 PORT command successful.


150 Opening ASCII mode data connection for file list. 226 Transfer complete.
ftp: 139 bytes recibidos en 0,01Segundos 3,38KB/s. ftp>

La otra forma es hacerlo de modo que se vea el resultado en pantalla...

ftp> dir

200 PORT command successful.


150 Opening ASCII mode data connection for file list. drwxr-xr-x 2 sitio sitio 4096 Mar 4
06:10 images -rw-r--r-- 1 sitio sitio 917 Mar 5 10:30 index.html 226 Transfer complete.
ftp: 735 bytes recibidos en 0,02Segundos 3,50KB/s.
ftp>

disconnect un sinónimo de close.

get copia el archivo remoto a un archivo local, si el archivo local no se especifica, FTP utiliza
el nombre del archivo remoto especificado como el nombre de archivo local, veamos...

ftp> get index.html index_sitio.html

200 PORT command successful.


150 Opening BINARY mode data connection for index.html (917 bytes).
226 Transfer complete.
ftp: 247 bytes recibidos en 0,02Segundos 1,03KB/s.
ftp>

hash conmuta imprimiendo un signo de fragmentación (#) cada 2048 bits transferidos,
veamos...

ftp> hash

Impresión de marcas "hash" Activo ftp: (2048 bytes/marca "hash") .


ftp> get logo.gif
200 PORT command successful.

150 Opening BINARY mode data connection for logo.gif (9218 bytes).
####
226 Transfer complete.

Aula virtual Servidet 12 / 30


Romero Fernández, Víctor

ftp: 92189 bytes recibidos en 0,08Segundos 3,06KB/s.

ftp>

help imprime un mensaje informativo del comando de FTP pedido, si no se especifica el


comando, nos da una lista de todos los comandos de FTP (funciona igual que “?”), no
necesita ejemplo.

lcd sitúa el directorio de trabajo en el directorio local señalado, si el directorio local no se


especifica, se sitúa en el directorio de trabajo local del usuario, veamos...

ftp> lcd

Directorio local ahora C:.

ftp> lcd c:winnt

Directorio local ahora C:WINNT.

ftp>

ls escribe un listado del directorio remoto en el archivo local, funciona igual que “dir” a
diferencia que el listado incluye solamente una lista con los nombres de archivos, y que le
podemos pasar ciertos parámetros para obtener otros resultados, por ejemplo, con “ls –l”
obtenemos lo mismo que con “dir”, si le agregamos el parámetro “–a” nos mostrará archivos
ocultos del sistema.... uhhh... justo ahora me acuerdo de esto... para ocultar un archivo en
UNIX debemos escribirlo con un punto adelante, por ejemplo “.archivo” es un archivo oculto,
para verlo tendremos que usar “ls –a”. Tal como lo hace el comando “dir” podemos
especificar un archivo local para que se imprima en él el resultado de la consulta.

mdelete elimina los archivos remotos, en masa :), veamos...

ftp> mdelete logo.gif menu.gif banner.gif

<span style="font-size: 12.000000pt; font-family: 'CourierNew'; color:


rgb(60.000000%, 60.000000%, 60.000000%)">200 Type set to I. </span>

mdelete logo.gif? y

250 DELE command successful.

mdelete menu.gif? y

250 DELE command successful.

mdelete banner.gif? y

250 DELE command successful.

ftp>

Aula virtual Servidet 13 / 30


Romero Fernández, Víctor

mdir escribe un listado de los archivos remotos en el archivo local, uso idéntico a “dir”.

mget copia los archivos remotos en el sistema local, de a muchos, uso similar a “mdelete”.

mkdir crea el nombre del directorio remoto, veamos...

<span style="font-size: 12.000000pt; font-family: 'CourierNew'">ftp&gt; mkdir


confidencial </span>

257 "/home/user/" - Directory successfully created.

ftp>

mput copia los archivos del sistema local al sistema remoto, veamos...

ftp> mput index.html hola.txt logo.gif


mput index.html? y
200 PORT command successful.
150 Opening BINARY mode data connection for index.html. 226 Transfer complete.

ftp: 127 bytes enviados en 0,00Segundos 1,02KB/s.

mput hola.txt? y

200 PORT command successful.


150 Opening BINARY mode data connection for hola.txt. 226 Transfer complete.
ftp: 4 bytes enviados en 0,00Segundos 0,98KB/s.
mput logo.gif? y
200 PORT command successful.
150 Opening BINARY mode data connection for logo.gif. 226 Transfer complete.
ftp: 92189 bytes enviados en 0,02Segundos 2,18KB/s. ftp>

open establece una conexión al servidor, utilizando el número del puerto (si se especifica),
veamos...

ftp> open alumnoz.com 54321

Conectado a alumnoz.com.
220 ProFTPD FTP Server ready.
Usuario (alumnoz.com:(none)): darkhis#alumnoz.com 331 Password required for
darkhis#alumnoz.com. Contrase±a:
230 User darkhis#alumnoz.com logged in.
ftp>

put copia el archivo local en el archivo remoto...

ftp> put index.html index2.html

200 PORT command successful.

Aula virtual Servidet 14 / 30


Romero Fernández, Víctor

150 Opening ASCII mode data connection for index2.html. 226 Transfer complete.
ftp: 529 bytes enviados en 0,01Segundos 0,49KB/s.
ftp>

pwd nos informa del nombre del directorio de trabajo actual.

ftp> pwd

257 "/home/user" is current directory.

ftp>

quit Un sinónimo de bye.

recv un sinónimo de get.

reget reget suele actuar como get, excepto que si existe un archivo local y es más pequeño
que el archivo remoto, el archivo local es supuesto como copia parcialmente transferida del
archivo remoto y la transferencia continua desde el punto aparente de fallo; este comando es
útil cuando se transfieren archivos muy grandes en redes que tienden a interrumpir
conexiones.

rename renombra desde remoto, que puede ser un archivo o un directorio, a remoto,
veamos...

ftp> rename index.html index3.html

350 File or directory exists, ready for destination name. 250 rename successful.
ftp>

rmdir elimina el directorio remoto, el mismo debe estar vacío, veamos...

ftp> rmdir directorio

250 XRMD command successful.

ftp>

send un sinónimo de put, mismo uso.

size muestra el tamaño del archivo remoto, debemos usarlo con el comando literal si
queremos que funcione correctamente.

Status muestra el estado actual de FTP, veamos...

ftp> status

Conectado a alumnoz.com.
Tipo: binary; Detallado: Activo ; Campana: Desactivado ; Solicitando: Activo ; Global: Activo

Aula virtual Servidet 15 / 30


Romero Fernández, Víctor

Depurando: Desactivado ; impresión de marcas "hash": Activo ftp>

Bueno, con esos comandos, nos manejaremos sin drama dentro de cualquier servidor, suerte
;).

Ahora veamos como trabajar con FTP anónimo...

Al conectarnos por FTP, nos encontramos con el problema de disponer un user y password,
esto como suponen se debe a protección que da el servidor a la información que posee para
mantenerla fuera del alcance de intrusos.

La comunicación por FTP anónimo es una forma de ofrecer archivos que se encuentran en
Internet sin necesidad de poseer este par de datos tan importantes.

Existen muchos servidores públicos que admiten conexiones FTP anónimas, estos servidores
se dedican a distribuir software de dominio público y shareware para cualquier tipo de
ordenador o sistema operativo existente, aunque no todos tienen buenos fines, por la web,
IRC y otro tipo de medios podemos encontrar servidores FTP que brindan software ilegal,
llamado WAREZ, mp3, software libre, etc...

Aula virtual Servidet 16 / 30


Romero Fernández, Víctor

Ftp de ratio

Eventualmente, en alguna parte de su existencia, sobre todo si andan por el mal camino... se
van a encontrar con ftp anónimos, donde podemos ver que el mensaje de bienvenida dice
una cosa como “RATIO = 1:3”... Qué quiere decir esto?¿... Que la gente del servidor no da
nada grati$, tampoco te cobran pero están dispuestos a dejarte bajar 3 bytes por cada uno
que subas... Entonces queda que si subís un archivo de 15mb te va a dejar bajar 45mb.

Esta supo ser una política muy noble y caballeresca, y fue respetada al pie de la letra por
muchos años. Hoy dia ya todos conocemos a los programas P2P como el Kazaa, Swapoo,
eDonkey, no se.. ustedes pónganle el nombre.

Si queremos algo que esté en un servidor FTP con ratio, no debemos buscar en otros lados,
sino subirle algo a esa gente y bajar el que buscamos, y eventualmente otros archivos.

A pesar de las calenturas que nos agarremos porque el archivo no termina de llegar, de bajar,
o que no nos deje conectar, sentimos como que estamos haciendo algo por la vida, acá
sentados frente a nuestras máquinas .. bueno ... todo pasa por ese gran libro llamado “ética
no escrita”.

Ahora veamos algo sobre las conexiones...

Para poder realizar conexiones FTP como las que hemos mencionado necesitamos disponer
de soporte TCP/IP, o estar conectado a un servidor que nos ofrezca FTP.
Para usuarios que no tenían buenas conexiones, existía el FTPmail, el cual, permitía acceder
mediante mensajes de correo electrónico a servidores FTP.

Utilizando un formato de dirección especial, se podían enviar mensajes al servidor con


comandos de texto para obtener directorios, moverse por el sistema de ficheros o transferir
archivos, la respuesta del servidor vuelve también en forma de mensajes de correo. Este
sistema era muy lento y distaba mucho de la facilidad de una conexión en línea.

Para hacer un FTP vía e-mail se tenía que tener la dirección del servidor y procederíamos de
la siguiente forma...

Primero hay que conocer el nombre del fichero a capturar y la dirección del Server que lo
sirve, usando, o buscándolo mediante algún Robot como... FTP-search en la WWW, hoy en día
trabajo de www.alltheweb.com.

Una vez conocidos estos datos, solo hay que hacer lo siguiente...

-Enviamos un mail a la dirección que debemos hacerlo, (según el servidor hay que
averiguar).
-Dejamos el campo subject: vacio.
-En el cuerpo del mail ponemos la línea de comando, por ejemplo para obtener un archivo
que ya ubicamos escribimos lo siguiente...

Aula virtual Servidet 17 / 30


Romero Fernández, Víctor

connect (nombre de host) binary


chdir (nombre de directorio) get (nombre de archivo) quit

Y dependiendo del trabajo que tengan pendiente, en unas horas tendremos nuestro fichero
en la casilla, sin ningún trabajo extra.

De todos modos esto ya es obsoleto, al menos para el uso cotidiano que le puedan dar.

4o Problemas de Seguridad de un servidor FTP

Los servidores de FTP anónimo están sometidos a abusos de entre los que destacan
principalmente tres:

Distribución de software o material con copyright a través del servidor.

Fallo de seguridad en el servidor debida a una mala configuración del servidor de FTP.

Falta de seguridad a nivel de filtrado de paquetes.

Los archivos anónimos se pueden conseguir de muchas formas. La mayoría de las veces es a
través de servidores FTP anónimos. Algunos servidores permiten la existencia de zonas con
permisos de escritura (directorios incoming) para que los usuarios puedan dejar ahí sus
archivos.

Pero si los usuarios anónimos tienen permiso para leer de ese directorio la probabilidad de
abuso por parte de dichos usuarios aumenta.

Generalmente se necesita un verdadero idiota administrando el servidor para que uploads


tenga permiso de lectura libre.

Ciertos usuarios consiguen y distribuyen listas de warez que enumeran sitios con
vulnerabilidad y la información que contienen.

Éstas listas suelen incluir los nombres de directorios con permisos de escritura y la
localización de software pirata, así como archivos de passwords u otra información
potencialmente interesante para cualquier lector.

Estos usuarios se aprovechan de la poca importancia que dan los administradores a que este
tipo de abuso exista, o bien de la confianza que tienen dichos administradores en la
configuración de su servidor .

También es importante conocer el tema de seguridad a la hora de que los usuarios accedan a
nuestro server, es muy fácil bloquear un servidor si no esta bien configurado, por ejemplo
admitir varias conexiones simultaneas desde una misma IP, ya es muy mala idea dado a que
basta con que el usuario mal intencionado se conecte tantas veces como pueda sin
necesidad de ingresar usuario y password, solamente pidiendo la conexión y llegará un
momento en el que todas las conexiones posibles, previamente configuradas en el server
sean tomadas, para que el FTP ya no acepte peticiones. Entonces tenemos un usuario, con

Aula virtual Servidet 18 / 30


Romero Fernández, Víctor

20 conexiones abiertas y 600 segundos para que se desconecte por time out (en el caso de
que hayamos configurado esto), y posiblemente vuelva a conectarse cuando se le
desconecte, en fin, muy malo!!!.

Este es el ataque mas común a este tipo de servicios, se le llama Denial of Service y lo
veremos mucho mejor en la semana 7 del curso.
En los prácticos de la semana no6 veremos como hacer un ataque utilizando la técnica de
Spoofing a un servidor FTP, el ataque onsistirá en lo anteriormente dicho, solamente que
ningún firewall podrá detenerlo por tener la característica de ser emitido desde cientos de
direcciones IP falsas por segundo.

No puedo darles mas detalles dado a que no lo entenderían pero llegado el momento, espero
que se diviertan ;).

Ahora, cómo saber si un servidor es seguro?¿

Pasos a seguir por un administrador para asegurarse que la seguridad del sistema no está
siendo comprometida...

Asegurarse que el servidor de FTP no tiene el comando SITE EXEC haciendo Telnet al puerto
21 y tecleando SITE EXEC, o conectándose normalmente y enviando SITE EXEC mediante
LITERAL.

Si lo tuviera asegurarse que es la versión más moderna (es decir Wu- FTP 2.4 o superior), en
antiguas versiones esto permitía ganar a cualquiera una shell a través de ese puerto, Wu-FTP
es un servidor de FTP para UNIX o LINUX demasiado bizarro y, como ya ven, con
vulnerabilidades, generalmente buffer overflows, como todos los programas escritos en C, su
gran debilidad, entenderán lo que es un buffer overflow a medida que vayan avanzando en el
curso.

En definitiva, podemos añadir otra etiqueta de OBSOLETO a este sistema ya que hoy día, los
servidores en estos sistemas utilizan el ProFTPD que es casi un estándar.

Asegurarse que el directorio principal no esta poseído por FTP, si lo estuviera un intruso
podría ejecutar SITE CHMOD 777 en el directorio principal y luego en los archivos para
obtener acceso. El comando SITE CHMOD debería ser eliminado porque usuarios anónimos no
necesitan ningún privilegio extra, ejecutando este comando el intruso obtendría permisos de
administrador para manejar todos los archivos del directorio.

Se debe evitar que los archivos propios del sistema FTP estén fuera del alcance de los
usuarios ya que sino estos pueden ser reemplazados por otros binarios que al reiniciar el
sistema, serían ejecutados y por lo tanto la máquina quedaría infectada con el virus, troyano
o programa que el lammer haya metido :P.

Aula virtual Servidet 19 / 30


Romero Fernández, Víctor

Problemas con ftp

omando PORT

Si cuando entras a un servidor FTP desde el explorador o mediante la línea de comandos de


Windows o algunas versiones de Linux obtienes un mensaje de error referente al comando
PORT, este apartado te va a ayudar a entender que es lo que te sucede.

Como todos no saben, o no deberían saber, el protocolo FTP se maneja de una forma
bastante diferente al común de los protocolos de conexión “cliente/servidor” TCP/IP, esto se
debe a que la conexión se establece por un puerto cualquiera en el cliente (generalmente
mayor a 1024), y otro puerto en el servidor, (generalmente el 21), si no entienden ya esto de
los puertos esperen a tener todo el detalle sobre conexiones y puertos en la lección no6.

Veamos como un ejemplo sencillo que cada vez que entramos a una página web, en nuestra
PC se abre un puerto XXXX para conectarse al servidor Web en un puerto determinado
(siendo el puerto 80 el puerto de las paginas web por defecto), por ejemplo...

http://www.alumnoz.com:80

Es lo mismo que poner simplemente...

http://www.alumnoz.com

Pero si por ejemplo ponen...

http://www.alumnoz.com:81

Dará un error, ya que el servidor web se encuentra en el puerto 80.

Con esto quiero dejar claro que cuando nos conectamos a una página web, es al puerto 80.
Veamos que cuando navegamos por una pagina web, en la que generalmente hay imágenes
u otro tipo de datos, al momento de pedirla estableceremos una conexión, en esta será
pasado el código de la página y luego para cada elemento que esta contenga se abrirá una
nueva conexión al mismo puerto 80. Veamos en un ejemplo se trata de entrar a la web...

Entramos a: http://www.alumnoz.com/fcc.htm

CLIENTE:3028 <--------- fcc.htm -------- www.alumnoz.com:80 CLIENTE:3029 <--------- fcc2.gif


-------- www.alumnoz.com:80 CLIENTE:3030 <--------- fcc.gif --------- www.alumnoz.com:80

Como ven primero nos envia mediante una conexión la pagina llamada “fcc.htm” y luego las
imágenes que utiliza, para el caso “fcc2.gif” es la imagen del menú mientras que “fcc.gif” es
el fondo.

Es importante apreciar que el puerto utilizado en el servidor siempre es el 80, mientras que
nuestra PC el “CLIENTE” utiliza uno cualquiera.

Aula virtual Servidet 20 / 30


Romero Fernández, Víctor

Para que explico todo esto?¿, es para que vean que normalmente en una conexión
cliente/servidor, las conexiones son directas y a un único puerto del servidor, uno y solo uno,
en el ejemplo se trata del 80, ya que hablamos de páginas web.

El tema de códigos, elementos de una página y conexiones TCP/IP no es importante en este


momento, Uds. solo limítense por ahora a aceptarlo, en la Semana no4 y no6 verán todo eso
muy a fondo.

Sigamos con FTP, el tema es que en estas conexiones sucede todo “casi del mismo modo”,
ya que el cliente se conecta al puerto 21, (si es que no se ha cambiado el puerto por defecto
del servidor) y comienza a hacer uso del servicio ofrecido.

El “problema” con esto es que este protocolo esta diseñado para trabajar en forma
“dinámica”, si prestan atención en clientes como cuteFTP o cualquier otro de entorno gráfico
que no sea el IExplorer, Uds. podrán bajar archivos en forma simultánea, así como continuar
mirando el contenido del servidor sin problemas, cosa que ni en el Explorador (en algunos si),
ni en línea de comandos (en ninguna), se puede.

Esto se debe a que en una conexión FTP se trabaja de dos formas, modo PASIVO y modo
ACTIVO, a continuación intentaré explicarlo...

MODO ACTIVO:

El modo activo es la parte de la conexión que se encarga de pasar los comandos, cada vez
que tecleamos algo y damos ENTER, este comando será enviado al servidor ftp directamente
en modo ASCII, esta conexión se realiza cuando nos conectamos y se termina cuando
finalizamos la conexión, la misma se establece (a modo de ejemplo), de la siguiente forma...

CLIENTE:2689 --------- LOGIN ---------> SERVIDOR-FTP:21

Momento en el cual (en el caso de no haber problemas de usuarios), nuestra PC como


CLIENTE, queda conectada al puerto 21 (por defecto), al SERVIDOR-FTP.

Luego, al ejecutar algún comando sucede algo como lo siguiente... CLIENTE:2689 ---------
COMANDO ---------> SERVIDOR-FTP:21

Momento en el cual debemos separar... en el caso de que el comando sea un comando “de
movimiento” o “confirmación de estado”, el servidor le contestará al cliente por la conexión
ACTIVA del siguiente modo...

CLIENTE:2689 <--------- RESPUESTA --------- SERVIDOR-FTP:21

Con un “comando de movimiento” me refiero a "cd public_html", "del archivo.xxx", "cd ..",
mientras que uno de estado sería "pwd". Estos comandos se diferencian del resto por el
hecho de que trasmiten y reciben texto plano, mandan un mensaje de texto y reciben otro de
las mismas características, sin necesidad a una trasmisión de archivos o listados especiales.

En los ejemplos citados:

Aula virtual Servidet 21 / 30


Romero Fernández, Víctor

“cd public_html” y “cd ..” lo único que hacen es posicionarnos en otro directorio dentro del
servidor, por lo que su respuesta será un “OK”, o no “COMANDO INVÁLIDO porque...”, nada
especial.

“del archivo.xxx” se utiliza para eliminar un archivo llamado “archivo.xxx” del servidor en el
directorio en el que nos encontramos, por lo que la respuesta será un “OK”, o no “DEJÁ DE
MANDAR CUALQUIER COSA QUE NO FUNCIONA”, nada especial :P.

“pwd” nos indica en que directorio nos encontramos dentro del servidor, la respuesta será un
simple texto, NADA ESPECIAL!!!!.

MODO PASIVO:

El modo pasivo es la parte de la conexión que se encarga de enviar y recibir los archivos así
como los listados de directorios o las demás órdenes FTP que requieran de su uso, de modo
que al hacer "get", "send", "put", "dir", "ls", etc... siempre estaremos utilizando una conexión
PASIVA.

El modo pasivo, se maneja estableciendo una conexión diferente y en paralelo con el servidor
FTP, por la cual será llevada a cabo la transferencia en cuestión, por ejemplo si pedimos un
archivo pasará lo siguiente en nuestras conexiones...

En el modo Activo se envía el comando...


CLIENTE:2689 --------- COMANDO ---------> SERVIDOR-FTP:21

En el modo pasivo nos llegan los datos...


CLIENTE:2690 <-------- ARCHIVO ---------- SERVIDOR-FTP:20

Como siempre los puertos son a modo de ejemplo.

Entonces está claro que primero se le pasa el comando al servidor por medio de la conexión
ACTIVA lo que da lugar al comienzo de la transferencia por otro puerto distinto en modo
PASIVO, dándonos la libertad de seguir interactuando con el servidor por el modo ACTIVO.

Deduciendo que como dice su nombre, el modo PASIVO se utilizará para llevar a cabo los
intercambios negociados que no requieren de nuestra actividad, sino que son propias del
protocolo.

Esto se debe a que cuando estamos en un servidor FTP sería ilógico que por pedir un archivo
tengamos que esperar a que este baje por completo para continuar realizando otras tareas,
razón por la cual protocolo se expande y se abre a esta posibilidad.

Como aclaración, en la línea de comandos y por su propia naturaleza no existe ni podría


existir la posibilidad de usar el beneficio de la “interacción múltiple” dado a que al realizar
una consulta o pedido hay que esperar a que esta finalice para continuar utilizando el FTP, no
se olviden que es un shell.

En definitiva el modo PASIVO y ACTIVO son dos grandes amigos, que trabajan en modo

Aula virtual Servidet 22 / 30


Romero Fernández, Víctor

paralelo permitiéndonos usar FTP para navegar, bajar y subir de forma simultanea archivos y
listados... pero como es que se logra esto?¿, acaso es automático?¿, noo!!!!!, justamente es
aquí donde entra el tema del comando PORT, este comando se utiliza en modo ACTIVO, para
especificarle al servidor que abra un nueva conexión con nosotros en un puerto determinado
para comenzar un modo PASIVO, para el caso en cuestión y contrariamente a lo que sucede
cuando nos conectamos, en donde nosotros pedimos al servidor la conexión, luego de
enviado el comando PORT con los parámetros adecuados, el servidor FTP establecerá una
conexión con nosotros mediante su puerto PASIVO (en el ejemplo y por defecto es el 20),
teniendo como destino puerto que le hayamos especificado mediante el comando PORT.

Si hasta acá si no huelen por donde viene la mano, es momento de releer todo antes de
continuar, si es la quinta vez que te encontrás con este mensaje podés seguir leyendo :P...

Ahora veamos el uso básico del comando PORT para llegar a la tan preciada conclusión...
cuando nosotros hacemos uso de alguno de los comandos "de transferencia", sin que
nosotros lo veamos (al menos no hasta que reciban el CD2 con los capturadotes de
paquetes), el cliente le envía al servidor los datos necesarios para abrir la nueva conexión
mediante el comando PORT, que se conforma de la siguiente forma...

PORT h1,h2,h3,h4,p1,p2

En donde cada cosa quiere decir...

h1 = primeros dígitos de la IP. h2 = segundos dígitos de la IP. h3 = terceros dígitos de la IP.


h4 = cuartos dígitos de la IP. p1 = primer multiplicador

p2 = segundo multiplicador

p1 y p2 se utilizarán para comunicar cual será el puerto al que se debe conectar el servidor a
nuestra PC (cliente), para iniciar la transferencia en modo PASIVO, el puerto es el producto
del siguiente cálculo...

p1 x 256 + p2 = "puerto cliente"

Ahora por ejemplo, si nuestra IP es 207.46.130.108 y estamos conectados al ftp de alumnoz,


al pasar a modo pasivo sería mas o menos así...

CA 207.46.130.108:6969 --> PORT 207,46,130,108,27,58 --> alumnoz.com:54321 CP 207.46.130.108:6970


<--------------------------------------- alumnoz.com:54320

Como ven primero y mediante la conexión activa, se envía el comando “PORT


207,46,130,108,27,58” lo que sería nuestra IP y los valores para que el servidor pueda
determinar el puerto al que debe conectarse en el modo PASIVO.

Al recibir este comando, el servidor calcula el puerto (27 x 256 + 58 = 6970) y establece una
conexión en modo pasivo con nosotros. En resumen y para este caso se conectará a la ip
“207.46.130.108” (nosotros), al puerto “6970” (el puerto indicado en el comando PORT).

Como supongo que ya está todo bastante entendido, vamos a ver el problema, aunque
Aula virtual Servidet 23 / 30
Romero Fernández, Víctor

espero que todos ya hayan captado, supongo que ninguno tiene idea, así que por las dudas y
antes de seguir vuelvan a leer todo otra vez :P.

Ahora si... PROBLEMA:

Cuando nos encontramos “detrás” de un router, o en una LAN usando un algún “GATEWAY” o
“NAT”, al pedir una página web (según el primer ejemplo) funcionaría de la siguiente forma...

CLIENTE:3028 <--- ROUTER:5689 <--- fcc.htm <--- www.alumnoz.com:80

Como vemos la conexión se establece mediante un router/gateway que puede ser un


ModemADSL, un Proxy, o cualquier cosa que se encuentra de intermediario y nos brinda el
acceso a internar, que obviamente tiene una IP distinta a la nuestra, tomando como ejemplo
IPs de red interna en el cliente, y una externa en el router sería del siguiente modo...

192.168.100.8:3028 <- 207.46.130.108:5689 <- fcc.htm <- www.alumnoz.com:80

En donde nosotros “192.168.100.8”, siendo esta nuestra IP interna, le pedimos a nuestro


amigo router/gateway intermediario con IP externa “207.46.130.108” la página web
“fcc.htm”.

Como ven no hay problema, todo funciona como debe ya que en ningún momento
necesitamos que se realice una conexión en sentido contrario... veamos ahora que pasa en
FTP al intentar hacer una transferencia...

CA 192.168.100.8:3028 --> PORT 192,168,100,8,11,213 --> alumnoz.com:54321

Tomando en cuenta que la línea de comandos de Windows/Linux o la que sea no sabe cuando
tienen un router/gateway de por medio, por el simple hecho de que no son inteligentes y
obviamente los desarrolladores no profundizaron en la automatización de este chequeo,
nuestro cliente solo conoce la IP interna de nuestra PC, ya que la externa es del router y no
nuestra.

Para el caso del ejemplo, cuando enviamos por medio de la conexión activa al servidor el
comando “PORT 192,168,100,8,11,213”, este intentará conectarse con la IP “192.168.100.8",
para quienes no lo saben esto es una dirección IP de red privada (red interna), sabiendo que
la IP de quien esta conectado es “207.46.130.108” (la IP del Router) dará un error ya que
considerará que tratamos de engañarlo o en el mejor de los casas intentará establecer la
conexión a la IP “192.168.100.8” que por “axioma de redes” tiene que estar en su propia LAN,
consiguiendo de uno u otro modo UN ERROR.

Repasemos los nodos de la conexión para que quede mas claro... 192.168.100.8:3029 <------>
207.46.130.108:5689 <------> alumnoz.com:54321

La IP del medio, “207.46.130.108”, es justamente el intermediario entre nosotros como un PC


de red local y es SERVIDOR-FTP alumnoz.com.

Aula virtual Servidet 24 / 30


Romero Fernández, Víctor

Queda claro que el comando "PORT 192,168,100,8,11,213" es inválido y que el error se debe
a que el cliente FTP no detecta que tienen un router/gateway de intermediario.

Sería lógico y no muy difícil que el cliente verificara si el servidor al que esta conectado tiene
una IP de LAN, en caso afirmativo se deduce que el mismo se encuentra en su propia LAN y
por lo que este comando sería válido. En caso contrario que reconozca su condición.

Pero que sucede si se da cuenta?¿, hay alguna solución?¿... podemos pensar que en tal caso
el “comando correcto” sería enviar "PORT 207,46,130,108,22,58", ya que le estamos dando
una IP correcta, que es la del router con el puerto disponible para una conexión en modo
PASIVO, pero veamos que el router solo se encarga de redirigir el tráfico desde dentro para
afuera, por lo que al intentar recibir una conexión desde afuera al puerto 5690 (en este
caso), simplemente la rechazaría por no saber de que se trata.

Entonces... como hacemos para usar FTP si estamos en una LAN!?!!??!!?, acaso es
imposible?!?!?, ya les mostraré.... pero en definitiva, el resultado de enviar un comando PORT
no válido es "ILEGAL PORT COMMAND" o "INVALID PORT COMMAND", siendo esto que vimos
hasta ahora es la causa de sus pesadillas.

Ahora,... como lo solucionamos???, y... la verdad que es una solución muy simple y sencilla,
el problema es que en el cliente de línea de comandos así como algunos exploradores, por
problemas mentales de los programadores no tiene incluida la función correspondiente.

La solución es tan sencilla como sencilla y consiste primero en enviar el comando “PASV” al
servidor, quien indicará al mismo que nosotros seremos quienes nos conectaremos al
servidor para realizar las conexiones pasivas (y no el a nosotros), y luego enviar un comando
PORT “inverso”, cambiando de ese modo el modo de transferencia a que nosotros seremos
como clientes quienes nos conectaremos al servidor en otro puerto. Los clientes como
cuteFTP detectan este problema y lo hacen automáticamente, razón por la cual SI nos
podemos conectar usando estos y NO por la línea de comandos.

A grandes rasgos la conexión usando este comando PASV junto a PORT correspondiente sería
del siguiente modo...

CA 192.168.100.8:6969 ---------------> PASV ---------------> alumnoz.com:54321 CA 192.168.100.8:6969 --> PORT


64.246.22.103,212,48 --> alumnoz.com:54321

Como ven ahora previo al comando PORT enviamos el PASV para luego pasarle el puerto al
que nos conectaremos, siendo finalmente nosotros los que avisamos y nos conectamos,
resultando:

CP 192.168.100.8:6970 ---------------------------------------> alumnoz.com:54320

Supongo y estoy seguro de que lo entendieron, las razones están detalladas :), si sienten que
el nivel técnico del apartado los sobrepasa, esperen a recibir la Semana no6 y no tendrán
ningún problema al releerlo.

Para finalizar, pueden ver el error en vivo y en directo simplemente haciendo “inicio >

Aula virtual Servidet 25 / 30


Romero Fernández, Víctor

ejecutar > ftp”

ftp> debug

Aula virtual Servidet 26 / 30


Romero Fernández, Víctor

¿Dónde encuentro servidores FTP?

La ex-solución... “Servidores Archie”.

Para buscar servidores FTP anónimos es bueno recurrir a servidores Archie para que efectúen
nuestra búsqueda, siempre y cuando estemos en la década anterior, pero como ahora
estamos en esta, debemos ingresar a: http://www.filewatcher.com, por motivos legales, cada
día las búsquedas arrojan menos resultados ya que muchos sitios públicos son censurados
por falta de control en su contenido.

Un sitio interesante para conocer servidores FTP ordenados por países es:
http://www.ftp-sites.org.

Terminado esto les comunico, que para subir un sitio Web utilizaremos FTP, pero eso lo
aprenderemos en la lección 3 prácticos.

Abrimos este archivo antes mencionado en cualquier carpeta que queramos .. para no hacer
las cosas confusas, podemos abrirlo en c:ftp .

Lo primero que nos pide cuando lo abrimos, es crear un usuario, que seria eventualmente el
que usemos nosotros, o puede ser el primero de una larga lista de usuarios, o bien un usuario
anónimo. Luego nos habla de la carpeta home del usuario. Lo que yo hice fue crear un
directorio en c:ftphome y de ahí ir creando directorios. Si se desea, se puede crear un
directorio para cada usuario, sabiendo que el usuario no puede salir de ahí. Si quisieramos un
ftp “comunitario” hacemos la carpeta c:ftphome y creamos carpetas tales como pub, uploads,
admin (esta ultima es solo para hacer pinta en realidad).

Con unos pocos Siguientazos mas, vamos a ingresar a la pantalla principal de nuestro
servidor FTP. La flecha verde arriba a la izquierda nos indica que el servidor NO esta activo.
Para activarlo deben presionar esa flecha y se ilumina entonces el cuadradito rojo.

Me gustaría en este punto detallar algo: Ustedes deben haber visto en algun momento, que
el FTP les sería de gran utilidad a la hora de subir una página web a algún sitio. Esto es la
pura verdad, pero a la hora de instalar un servidor web, no tienen que buscar uno que traiga
incorporado un servidor FTP. Les comento porque me topé con muchos especímenes a lo
largo de mi vida (“a lo corto” está mal dicho, asi que hablemos como si mi vida hubiese sido
larga =P), quienes eran engañados por su capacidad de razonamiento y me preguntaban
donde podían conseguir tales mutaciones como un servidor web con ftp. No dudo que pueda
llegar a existir alguno, pero estoy seguro que no cumpliría con los estándares de uno y otro,
y tendría problemas de seguridad, y ya verán en el futuro, que los programas “combo” no
funcionan tan bien como uno espera.

Para una correcta interacción de un servidor web con un servidor FTP, tenemos que hacer
que el servidor web saque su información (las páginas y todo eso, claro está) de la misma
carpeta donde el servidor FTP (el que instalamos recién) le permite al usuario subir sus
archivos. De esta forma queda integrado el servicio FTP con el WWW.

Aula virtual Servidet 27 / 30


Romero Fernández, Víctor

En la parte de configuracion del programa, que la van a ubicar facilmente por su nombre:
configuration, van a ver que tienen la opción de cambiarle el puerto. El puerto 21 es el puerto
por defecto de los ftp. Quizas quieran cambiarlo por motivos de seguridad, pero 21 esta bien.

El siguiente establece el numero maximo de conexiones simultáneas que puede soportar el


servidor, independiente de cada usuario. Variar este numero a un numero inferior nos
permite conservar un poco de nuestro ancho de banda. 10 esta bien si no queremos montar
un graaaan servidor ftp. Adobe.com creo que tiene 500 como maximo.

Al lado de ese campo esta el número máximo de conexiones por cada IP. Cuando se conecta
una ip N veces, el programa impide que esa misma ip se conecte la enésimo-primera vez.

Connection timeout define el tiempo en minutos que el usuario puede estar sin emitir datos,
para que el servidor lo desconecte.

La prioridad le define a la maquina como tratar al servidor en relación al resto de las


aplicaciones que ésta corre. Normal esta bien porque sino no podemos ni escuchar un mp3.

Welcome message es un campo totalmente cambiable donde escribimos el mensaje de


bienvenida que usará el servidor cuando entre alguien. Lo mismo pasa con el goodbye
message.

En el cuadrito “startup settings” tenemos 3 opciones: la primera le indica al server que tiene
que iniciarse cuando se inicie windows.. ustedes ven. La segunda activa el servidor (si, le
apreta la flechita verde) al iniciarse (siempre que se inicia, asi sea por windows o por request)
y el otro, que tambien se aplica a toda vez que se inicie, lo hace minimizado en la barra de
tareas, al lado del reloj.

Otro cuadrito: logging. Tenemos 4 niveles de registro para que guarde archivos con distintas
informaciones. Yo recomiendo “trace” porque nos dice absolutamente todo lo que pasa
dentro del server. Me genera un poco mas de seguridad.

View y clear nos muestra y borra los logs actuales, respectivamente.

PASV settings nos pide la configuracion del modo pasivo. Si lo dejamos como está va a andar
fenómeno, pero si lo quieren cambiar, esta bien: donde dice default va la IP que el servidor
seleccionara para establecer un modo pasivo. Si queda en default, el programa la elige
respecto a la conexión establecida con el cliente. Port range nos pide dos puertos, uno de
comienzo y otro de final. Si se pone un puerto inferior a 1024 cometemos un error, porque
son puertos que usa el sistema operativo y podemos bloquear un puerto que precise la
maquina. Si ponemos el mismo numero en ambos campos, el programa va a usar un solo
puerto, que si se tiene un solo usuario en max connections esta bien, verdad? Se puede
limitar mucho el tema de los puertos, pero lo hace mas lento en cierta forma.

Directory listing time format nos pide un tipo de hora para marcar los logs, formato UTC u
hora local.

En seguridad, definimos filtros de IP. En filter mode podemos poner que no use filtros IP, no

Aula virtual Servidet 28 / 30


Romero Fernández, Víctor

aceptar conexiones de tal ip, o aceptar conexiones SOLO de esta ip. Parece que esto no anda
muy bien porque he estado probandolo y pude entrar como por mi casa desde ip’s
restringidas.

Online users nos muestra a los usuarios actualmente conectados, y nos permite echarlos del
servidor, o restringir su ip ... si funciona =P.

Statistics nos muestra estadisticas. Solo un montón de numeros.

Aula virtual Servidet 29 / 30


Romero Fernández, Víctor

Ejercicio modulo 2

1º Creamos una cuenta de hosting gratuita en este link o donde querais

2º Con nuestra cuenta entramos en los datos de la cuenta en el programa que tenemos llamado
FILEZILLA

3º Metemos una imagen en la carpeta de nuestro ftp

4º Me mandais en un archivo de texto en la tarea del modulo la direccion completa para ver la
imagen.

Aula virtual Servidet 30 / 30

También podría gustarte