You are on page 1of 31

\\\\\\\\\\\\ CURSO orientacin HACKER //////////////

//////////// By DarKh|s.exe (n+1) \\\\\\\\\\\\\\


Leccin n2 FTP al mximo

http://www.cursohacker.com
mailto:darkhis@alumnoz.com

ndice:

1 Introduccin.
2 FTP desde un cliente de FTP con entorno grfico Windows.
3 FTP sin entornos grficos desde DOS, Linux y UNIX.
4 Problemas de seguridad en FTP.
5 Problemas de conexin en FTP.
6 Donde buscar Servidores FTP.
7 Instalando nuestro Server FTP.
8 Prcticos.

Disclaimer: NO se asume ninguna responsabilidad debida al empleo


de la informacin aqu contenida, puesto que este texto solamente
tiene fines educativos y en ningn caso pretende incitar a nadie a
cometer ningn delito ya sea informtico o de otra ndole.

1 Introduccin

Buenos das, tardes y noches para quien lea estas lneas... primero
que nada apronte el caf o la cerveza y comiencen esta leccin que
les va a ayudar mucho a abrir su cerebro. En comparacin con la
primera que debe ser lo mas fcil que han visto en su vida, y mas de
uno debe de haber pensado para dentro de si este curso es una
boludez...

Eso se lo van a tragar!!! :P, dado a que ahora van a tener que
romperse la cabeza para entender todo lo que son comandos de FTP
etc... mas les vale que se acostumbren, lo primero ser una simple
leccin 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 preferira que utilicen comandos porque ya tendrn 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 difciles
del estilo, como ser Lnea de comandos, Telnet y SSH, SMTP, POP3,
IRC, MySQL, y ni hablar de cuando lleguemos a Linux, jjeje, todo lo
que les espera :P.
Cual es la idea entonces de esta leccin?, bueno, para mi es
importante y para Uds. tambin 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 dirn, porque no aprendemos TELNET
carajo!?, bueno, porque no tenemos mas de 1.000 servidores
TELNET con acceso annimo para probarlos y jugar un poco y porque
Telnet no es para nios como son por ahora Uds...

Espero que disfruten esta leccin tanto como yo disfruto


escribindola.

2 Acceso FTP desde Entornos grficos.

Les explicar unos conceptos bsicos 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 leccin anterior, la


leccin para los que an no saban nada de lo que es un servidor FTP,
este se usa para acceder a la archivos en servidores remotos a travs
de Internet, por lo que para acceder a uno necesitaremos o su
direccin 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 comunicacin, de modo que nuestro usuario y password
tambin ir claramente visible a travs de la red..., cuando digo
claramente no es que les aparezca en la pantalla al que desee, para
explicarle esto necesitara que supieran muchos conceptos que
todava no tienen pero imaginen que cada mensaje que Uds. envan,
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
esa informacin sin necesidad de conocer datos...
Ya vern que es y como usar sniffers en el CD2 y CD3 del curso,
(obviamente con el software incluido), vean el dibujito para entender
un poco mas...

El esquema muestra como sera una comunicacin entre una PC y


otra, llammosle 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 mquinas utilizando un sniffer
podr ver todo lo que hacen y capturar toda la informacin que
enven al servidor.

A pesar de la inseguridad del tema, hay mtodos para evitar este


espionaje, esto se puede realizar utilizando software servidor y
cliente que utiliza criptografa asimtrica para establecer y llevar a
cabo la comunicacin, vern esto muy a fondo en la leccin 11 sobre
criptografa, mientras tanto solo sabrn que existe un mtodo 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


mtodos que disponemos para ingresar a un servidor FTP, y estas
dependen de la configuracin del mismo...

Al int entar ingresar a un Server FTP, este siempre nos pedir


autentificacin, (usuario y contrasea), depender de que tipo de
servicio FTP ofrece, de la configuracin y de la incapacidad de los
administradores si podremos...

Entrar como annimo..

Cuando entramos a un sitio FTP como annimo (usuario:


anonymous), el sitio no necesitar contrasea 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 annimos 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 podrs hacer lo que quieras, pero no te entusiasmes, el
nico sitio que vi que hackearan as fue www.elmonomario.com hace
2 aos, 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 funcin dentro del servidor estar
restringida a leer y copiar a nuestro disco los archivos que tengamos
permitidos.

En la segunda parte de la leccin les explicar como es el tema de los


permisos, acceso limitado, etc...

Siguiendo con el tema, como usuario annimo de un sitio FTP


podremos navegar entre sus archivos como si fuese un disco mas de
nuestra unidad (para que entiendan mas fcil), pero sus funciones se
vern restringidas a las de un usuario annimo, segn fueron
definidas en el server.

Entrar como un usuario registrado...

Cuando nos referimos a un usuario registrado supongo que estamos


conectndonos al FTP de algn servidor nuestro o que tenemos una
cuenta con una pagina Web o solo contratado espacio en un disco
duro remoto para guardar informacin.

El servidor nos preguntar usuario y password que verificar para


iniciar la sesin, en este modo de conexin, (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.

Depender de la configuracin del servidor si tenemos archivos


generados por el en nuestro directorio, en caso afirmativo, es muy
probable que a estos no tengamos ni acceso de lectura, por lo tanto,
los vemos, pero no los podemos ni tocar, es como si fueran los
cuadros del museo :P, se entiende?.

Entrar como administradores...

Bueno, esta parte es la mas linda, 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,
podrs cambiar la configuracin del servidor, administrar los accesos,
otorgar los permisos, borrar, escribir, editar, leer, copiar y mover
cualquier archivo de un lado a otro as tambin como cambiar sus
propiedades, restringirlos a solo lectura, lectura y escritura, y todos
esos parmetros que se le atribuyen a un archivo que lo caracterizan.

Obviamente tambin tendrs acceso a cambiar las contraseas de


cualquier usuario, generar usuarios, borrar usuarios, en fin, tendrs
omnipotencia en tu servidor, pero ojo, si eres uno de esos
administradores despistados apenas pongas en marcha tu servidor
y lo vea algn otro alumno, te echarn de la empresa por no saber
configurarlo :P.

Bueno, basta ya de palabras y terico y vamos a lo prctico.

Como ya vern 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, direccin 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, (s itio
al cual hemos accedido), donde tambin al lado de cada archivo
aparecern los parmetros 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): LecturaEscrituraEjecucin


Grupo (todos los usuarios existentes): LecturaEscrituraEjecucin
Otros usuarios (tambin annimos): LecturaEscrituraEjecucin

El archivo aparecer del siguiente modo...

archivo.xxx -rwxrwr--

Esto nos indica en orden peridico las restricciones a cada tipo de


usuarios, el primer carcter que ac vemos con una puede variar
entre d (directorio), l (accesos directos de carpetas o archivos), -
(archivo).

Los dems son repetitivos, primero va las autorizaciones del usuario


(definidas por el mismo), luego las de los usuarios de la red
(definidas por el usuario dueo del espacio), luego de todos los
usuarios que no pertenezcan a la red (definidas tambin por el
usuario dueo del espacio), todas estas definiciones estn 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 ejecucin

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 vaco, y de esa forma no
autoriza al usuario a efectuar la operacin que le corresponde al
espacio donde esta el -.

Bueno, yo no les ensear a utilizar estos programas porque cada


uno tiene un toque diferente, suponiendo que todos Uds. Utilizan
Windows , les ensear 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 estuvisemos
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 pblico que son esos que nos dejan entrar de forma
annima) y luego entraremos a la raz, 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 mtodos, 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
direccin, por lo tanto lo mejor sera...

FTP://usuario@servidor:puerto/carpeta
De este modo el servidor les pedir el password y quedarn dentro,
lo malo de este sistema utilizando el Internet Explorer es que muchas
veces quedan conexiones colgadas dado a que no se finalizan
correctamente y puede traerles problemas mas adelante, en la parte
de seguridad de la leccin entendern mejor que problema puede
traer que no se cierre correctamente la conexin.

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 botn secundario
del ratn y ah tenemos un cuadro de dilogo que nos permite
realizar estas modificaciones, si es que estamos autorizados a tal
cosa.

Para finalizar la sesin simplemente cerramos la ventana y listo, a


otra cosa, pero el tema es lo que les dije.... no siempre se cierra la
sesin correctamente.

3 FTP sin entornos grficos 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 bsicos ASCII (texto


estndar) y binarios.

En un fichero ASCII la informacin est escrita en cdigo ASCII


(letras, nmeros, signos) mientras que un fichero binario puede
contener programas ejecutables, imgenes grficas, ficheros de
sonido, etc.

Para poder obtener bien un archivo segn su tipo debern 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 annimo, pueden atender a


un nmero limitado de usuarios al mismo tiempo, por lo que muchas
veces no puede realizarse la conexin apareciendo el correspondiente
mensaje del sistema remoto, en ese caso, vuelve a intentarlo ms
tarde o prueba en otro lado.

EN QUE CONSISTE EL PROTOCOLO FTP?

Una de las alternativas ms 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 travs 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 cmo 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, tambin 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 conectndolo a Internet,
ofreciendo la posibilidad de efectuar la transferencia de esos ficheros
mediante FTP. A su vez, las sucursales se pondrn en contacto con la
sede central de la empresa utilizando la herramienta FTP de su
ordenador.

La forma de conexin 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 cualquier fichero en
ambas direcciones.

Recalco la inseguridad de estos sistemas, por lo que si desean


implementar algo similar para sus empresas lo mejor sera hacerlo
mediante SFTP.

Comenzando el FTP

Para iniciar un FTP desde UNIX, Linux o DOS, hay que escribir en la
lnea de comandos FTP y listo, nos aparecer donde haba 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 versin que tenemos de FTP


escriban ? y nos aparecern 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 ensear a usar el FTP desde Linux y UNIX, Uds. vern los
comandos que pueden usar o no, en caso de que estn en DOS, la
mayora de estos estarn as que no se deben hacer problema, sobre
todo porque los ejemplos estarn en DOS.

La mayora de los servidores de ficheros trabajan en UNIX,Por eso,


los ficheros y los directorios tienen nombres con la convencin UNIX
pero al transferirlos a un PC adoptan automticamente 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 lnea de comandos al tiempo que llamamos al
programa, cuando lo hacemos de este modo el programa abre
inmediatamente una conexin con el mismo, de lo contrario, FTP
espera las instrucciones del usuario, por ejemplo...

C:\> ftp host

En ese caso se abrira una conexin en el puerto 21 con el host ftp


que especificamos.

Si deseamos especificar un puerto sera por ejemplo...

ftp> open host puerto

El protocolo de transferencia de archivos especifica parmetros 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 especificados en la lnea de consulta, o la otra es
escribir el comando y automticamente nos preguntaran uno a uno
los argumentos, los comandos ms 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 [Versin 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

ftp> archivo local archivo remoto

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
200 Type set to A.
ftp>

bell hace el sonido de una campana despus 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. Imgenes,


Ejecutables, etc, veamos...

ftp> binary
200 Type set to I.
ftp>

bye cierra la conexin con el servidor, tambin con bye


y queda mas lindo :P, ejemplito... mejor no :P, sino tengo que abrir
otra sesin, prubelo Uds. jeje.
cd se introduce dentro del "directorio remoto" del
servidor, tambin sirve para bajar de directorio...

ftp> cd ..
250 CWD command successful.
ftp> cd html
250 CWD command successful.
ftp>

Primero bajamos un directorio, despus 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 vlido.
ftp> literal cdup
250 CWD command successful.
ftp>

close termina la conexin 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 vaco, veamos...

ftp> delete archivo.xxx


250 DELE command successful.
ftp>

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 sinnimo 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 fragmentacin


(#) cada 2048 bits transferidos, veamos

ftp> hash
Impresin 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.
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 sita el directorio de trabajo en el directorio local


sealado, si el directorio local no se especifica, se sita 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 parmetros para obtener otros resultados, por ejemplo,
con ls l obtenemos lo mismo que con dir, si le agregamos el
parmetro 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


200 Type set to I.
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>

mdir escribe un listado de los archivos remotos en el


archivo local, uso idntico 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...

ftp> mkdir confidencial


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 conexin al servidor, utilizando el


nmero 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.
Contrasea:
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.
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 sinnimo de bye.

recv un sinnimo de get.

reget reget suele actuar como get, excepto que si existe


un archivo local y es ms pequeo 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


vaco, veamos...

ftp> rmdir directorio


250 XRMD command successful.
ftp>

send un sinnimo de put, mismo uso.

size muestra el tamao 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
Depurando: Desactivado ; impresin de marcas "hash": Activo
ftp>

Bueno, con esos comandos, nos manejaremos sin drama dentro de


cualquier servidor, suerte ;).

Ahora veamos como trabajar con FTP annimo...


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

La comunicacin por FTP annimo es una forma de ofrecer archivos


que se encuentran en Internet sin necesidad de poseer este par de
datos tan importantes.

Existen muchos servidores pblicos que admiten conexiones FTP


annimas, estos servidores se dedican a distribuir software de
dominio pblico 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...

Para utilizar un FTP annimo, el deben introducir el usuario


anonymous y como password cualquier cosa, como ya les mencione
se considera una muestra de cortesa introducir la direccin de correo
electrnico, en lo personal si ponen mushrooms talvez consigan un
root y todo :P.

CMO SE TRABAJA CON FTP DE RATIO?

Eventualmente, en alguna parte de su existencia, sobre todo si andan


por el mal camino... se van a encontrar con ftp annimos, 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 estn dispuestos a dejarte
bajar 3 bytes por cada uno que subas... Entonces queda que si subs
un archivo de 15mb te va a dejar bajar 45mb.

Esta supo ser una poltica muy noble y caballeresca, y fue respetada
al pie de la letra por muchos aos. Hoy dia ya todos conocemos a los
programas P2P como el Kazaa, Swapoo, eDonkey, no se.. ustedes
pnganle 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 mquinas .. 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 tenan buenas conexiones, exista el FTPmail, el
cual, permita acceder mediante mensajes de correo electrnico a
servidores FTP.

Utilizando un formato de direccin especial, se podan 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 tambin en forma de mensajes de correo. Este
sistema era muy lento y distaba mucho de la facilidad de una
conexin en lnea.

Para hacer un FTP va e-mail se tena que tener la direccin del


servidor y procederamos de la siguiente forma...

Primero hay que conocer el nombre del fichero a capturar y la


direccin del Server que lo sirve, usando, o buscndolo mediante
algn Robot como... FTP-search en la WWW, hoy en da trabajo de
www.alltheweb.com.

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

-Enviamos un mail a la direccin que debemos hacerlo, (segn el


servidor hay que averiguar).
-Dejamos el campo subject: vacio.
-En el cuerpo del mail ponemos la lnea de comando, por ejemplo
para obtener un archivo que ya ubicamos escribimos lo siguiente...

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 ningn trabajo extra.

De todos modos esto ya es obsoleto, al menos para el uso cotidiano


que le puedan dar.

4 Problemas de Seguridad de un servidor FTP

Los servidores de FTP annimo estn sometidos a abusos de entre los


que destacan principalmente tres:
Distribucin de software o material con copyright a travs del
servidor.

Fallo de seguridad en el servidor debida a una mala configuracin del


servidor de FTP.

Falta de seguridad a nivel de filtrado de paquetes.

Los archivos annimos se pueden conseguir de muchas formas. La


mayora de las veces es a travs de servidores FTP annimos.
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 annimos 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 informacin que contienen.

stas listas suelen incluir los nombres de directorios con permisos de


escritura y la localizacin de software pirata, as como archivos de
passwords u otra informacin 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 configuracin de su
servidor.

Tambin es importante conocer el tema de seguridad a la hora de


que los usuarios accedan a nuestro server, es muy fcil 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 conexin 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 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 comn a este tipo de servicios, se le llama
Denial of Service y lo veremos mucho mejor en la semana 7 del
curso.
En los prcticos de la semana n6 veremos como hacer un ataque
utilizando la tcnica de Spoofing a un servidor FTP, el ataque onsistir
en lo anteriormente dicho, solamente que ningn firewall podr
detenerlo por tener la caracterstica de ser emitido desde cientos de
direcciones IP falsas por segundo.

No puedo darles mas detalles dado a que no lo entenderan pero


llegado el momento, espero que se diviertan ;).

Ahora, cmo 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 conectndose
normalmente y enviando SITE EXEC mediante LITERAL.

Si lo tuviera asegurarse que es la versin ms moderna (es decir Wu-


FTP 2.4 o superior), en antiguas versiones esto permita ganar a
cualquiera una shell a travs 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, entendern lo que es un
buffer overflow a medida que vayan avanzando en el curso.

En definitiva, podemos aadir otra etiqueta de OBSOLETO a este


sistema ya que hoy da, los servidores en estos sistemas utilizan el
ProFTPD que es casi un estndar.

Asegurarse que el directorio principal no esta posedo por FTP, si lo


estuviera un intruso podra ejecutar SITE CHMOD 777 en el directorio
principal y luego en los archivos para obtener acceso. El comando
SITE CHMOD debera ser eliminado porque usuarios annimos no
necesitan ningn privilegio extra, ejecutando este comando el intruso
obtendra permisos de administrador para manejar todos los archivos
del directorio.

Se debe evitar que los archivos propios del sistema FTP estn fuera
del alcance de los usuarios ya que sino estos pueden ser
reemplazados por otros binarios que al reiniciar el sistema, seran
ejecutados y por lo tanto la mquina quedara infectada con el virus,
troyano o programa que el lammer haya metido :P.
Y como todo, siempre se van descubriendo errores cada una de las
versiones por lo que siempre es importante asegurarse de tener la
versin ms moderna del servicio.

5 Problemas de Conexin con FTP

Comando PORT

Si cuando entras a un servidor FTP desde el explorador o mediante la


lnea 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 deberan saber, el protocolo FTP se


maneja de una forma bastante diferente al comn de los protocolos
de conexin cliente/servidor TCP/IP, esto se debe a que la conexin
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 leccin n6.

Veamos como un ejemplo sencillo que cada vez que entramos a una
pgina 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 pgina
web, es al puerto 80. Veamos que cuando navegamos por una pagina
web, en la que generalmente hay imgenes u otro tipo de datos, al
momento de pedirla estableceremos una conexin, en esta ser
pasado el cdigo de la pgina y luego para cada elemento que esta
contenga se abrir una nueva conexin 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 conexin la pagina


llamada fcc.htm y luego las imgenes 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.

Para que explico todo esto?, es para que vean que normalmente en
una conexin 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 pginas web.

El tema de cdigos, elementos de una pgina y conexiones TCP/IP no


es importante en este momento, Uds. solo limtense por ahora a
aceptarlo, en la Semana n4 y n6 vern 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 diseado para


trabajar en forma dinmica, si prestan atencin en clientes como
cuteFTP o cualquier otro de entorno grfico que no sea el IExplorer,
Uds. podrn bajar archivos en forma simultnea, as como continuar
mirando el contenido del servidor sin problemas, cosa que ni en el
Explorador (en algunos si), ni en lnea de comandos (en ninguna), se
puede.

Esto se debe a que en una conexin FTP se trabaja de dos formas,


modo PASIVO y modo ACTIVO, a continuacin intentar explicarlo...

MODO ACTIVO:

El modo activo es la parte de la conexin 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 conexin se realiza cuando nos conectamos y se termina cuando
finalizamos la conexin, 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 algn 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 confirmacin de estado, el
servidor le contestar al cliente por la conexin 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 sera "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 caractersticas, sin necesidad a una trasmisin de
archivos o listados especiales.

En los ejemplos citados:

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 INVLIDO 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 conexin que se encarga de enviar y


recibir los archivos as como los listados de directorios o las dems
rdenes FTP que requieran de su uso, de modo que al hacer "get",
"send", "put", "dir", "ls", etc... siempre estaremos utilizando una
conexin PASIVA.

El modo pasivo, se maneja estableciendo una conexin diferente y en


paralelo con el servidor FTP, por la cual ser llevada a cabo la
transferencia en cuestin, por ejemplo si pedimos un archivo pasar
lo siguiente en nuestras conexiones...
En el modo Activo se enva 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 conexin ACTIVA lo que da lugar al comienzo de la
transferencia por otro puerto distinto en modo PASIVO, dndonos 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 sera ilgico


que por pedir un archivo tengamos que esperar a que este baje por
completo para continuar realizando otras tareas, razn por la cual
protocolo se expande y se abre a esta posibilidad.

Como aclaracin, en la lnea de comandos y por su propia naturaleza


no existe ni podra existir la posibilidad de usar el beneficio de la
interaccin mltiple 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 paralelo permitindonos usar FTP para navegar,
bajar y subir de forma simultanea archivos y listados... pero como es
que se logra esto?, acaso es automtico?, 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
conexin con nosotros en un puerto determinado para comenzar un
modo PASIVO, para el caso en cuestin y contrariamente a lo que
sucede cuando nos conectamos, en donde nosotros pedimos al
servidor la conexin, luego de enviado el comando PORT con los
parmetros adecuados, el servidor FTP establecer una conexin 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 encontrs
con este mensaje pods seguir leyendo :P...
Ahora veamos el uso bsico del comando PORT para llegar a la tan
preciada conclusin... 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 enva al servidor los datos necesarios para abrir la nueva
conexin 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 dgitos de la IP.


h2 = segundos dgitos de la IP.
h3 = terceros dgitos de la IP.
h4 = cuartos dgitos de la IP.
p1 = primer multiplicador
p2 = segundo multiplicador

p1 y p2 se utilizarn 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
clculo...

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 sera 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 conexin activa, se enva el


comando PORT 207,46,130,108,27,58 lo que sera 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 conexin 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 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 detrs de un router, o en una LAN usando


un algn GATEWAY o NAT, al pedir una pgina web (segn el
primer ejemplo) funcionara de la siguiente forma...

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

Como vemos la conexin 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 sera 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 pgina web fcc.htm.

Como ven no hay problema, todo funciona como debe ya que en


ningn momento necesitamos que se realice una conexin 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 lnea 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 automatizacin 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 conexin


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 direccin 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 engaarlo
o en el mejor de los casas intentar establecer la conexin 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 conexin 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.

Queda claro que el comando "PORT 192,168,100,8,11,213" es


invlido y que el error se debe a que el cliente FTP no detecta que
tienen un router/gateway de intermediario.

Sera lgico y no muy difcil 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 sera vlido. En caso contrario que reconozca su condicin.

Pero que sucede si se da cuenta?, hay alguna solucin? podemos


pensar que en tal caso el comando correcto sera 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 conexin en
modo PASIVO, pero veamos que el router solo se encarga de redirigir
el trfico desde dentro para afuera, por lo que al intentar recibir una
conexin desde afuera al puerto 5690 (en este caso), simplemente la
rechazara 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 vlido 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 solucin


muy simple y sencilla, el problema es que en el cliente de lnea de
comandos as como algunos exploradores, por problemas mentales
de los programadores no tiene incluida la funcin correspondiente.

La solucin 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 automticamente, razn por la cual SI nos
podemos conectar usando estos y NO por la lnea de comandos.

A grandes rasgos la conexin usando este comando PASV junto a


PORT correspondiente sera 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 estn


detalladas :), si sienten que el nivel tcnico del apartado los
sobrepasa, esperen a recibir la Semana n6 y no tendrn ningn
problema al releerlo.

Para finalizar, pueden ver el error en vivo y en directo simplemente


haciendo inicio > ejecutar > ftp

ftp> debug

Y conectarse al ftp de alumnoz.com por lnea de comandos.

6 Dnde encuentro servidores FTP?

La ex-solucin... Servidores Archie.

Para buscar servidores FTP annimos es bueno recurrir a servidores


Archie para que efecten nuestra bsqueda, siempre y cuando
estemos en la dcada anterior, pero como ahora estamos en esta,
debemos ingresar a: http://www.filewatcher.com, por motivos
legales, cada da las bsquedas arrojan menos resultados ya que
muchos sitios pblicos son censurados por falta de control en su
contenido.

Un sitio interesante para conocer servidores FTP ordenados por pases


es: http://www.ftp-sites.org.

Hasta Marzo de 2004 utilizbamos www.alltheweb.com, pero de un


da a otro decidieron quitar el servicio, les envi un e-mail
preguntando pero no me respondieron :(.

Terminado esto les comunico, (para los nerdos que no se dieron


cuenta todava), que para subir un sitio Web utilizaremos FTP, pero
eso lo aprenderemos en la leccin 3 prcticos.

7 Instalando nuestro Server FTP

Bajar http://www.alumnoz.com/ftpserver.zip

Estimados alumnos...
El Sr. DarKh|s me ha pasado el relevo para hacer una breve
introduccin al servicio FTP del lado servidor, a partir de un programa
que yo les seleccion para que ustedes lo usen, siempre con la
cautela necesaria y que no necesito aclarar.

Han de conocerme como No[X]iT, quizs yo haya tenido contacto con


alguno de ustedes, pero no con todos. Eventualmente tendremos
alguna charla cuando DarKh|s est meditando trascendentalmente y
no los pueda atender. Mi funcin dentro del curso es colaborar con
datos tcnicos dentro de lo que mi conocimiento alcance, para
transmitrselo a ustedes por este medio. Tambin me encargo de
responder las dudas de quienes lo necesiten, durante muchas horas
por dia. Por lo tanto, si yo estoy en lnea y ustedes tienen un
problema, no piensen dos veces en recurrir a mi ayuda. De no estar
en lnea, mi e-mail siempre est disponible. Como dato extra tengo
bastante tolerancia con temas off-topic (fuera de contexto). Por
favor, no usen letra itlica =P.

Ya roto el mal presagi o de eso de hablar con extraos, volvemos al


FTP.

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 annimo. Luego nos
habla de la carpeta home del usuario. Lo que yo hice fue crear un
directorio en c:\ftp\home 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:\ftp\home 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 gustara en este punto detallar algo: Ustedes deben haber visto


en algun momento, que el FTP les sera de gran utilidad a la hora de
subir una pgina web a algn 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 especmenes 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 engaados por su capacidad de razonamiento y me
preguntaban donde podan conseguir tales mutaciones como un
servidor web con ftp. No dudo que pueda llegar a existir alguno, pero
estoy seguro que no cumplira con los estndares de uno y otro, y
tendra problemas de seguridad, y ya vern en el futuro, que los
programas combo no funcionan tan bien como uno espera.

Para una correcta interaccin de un servidor web con un servidor FTP,


tenemos que hacer que el servidor web saque su informacin (las
pginas y todo eso, claro est) de la misma carpeta donde el servidor
FTP (el que instalamos recin) le permite al usuario subir sus
archivos. De esta forma queda integrado el servicio FTP con el WWW.

En la parte de configuracion del programa, que la van a ubicar


facilmente por su nombre: configuration, van a ver que tienen la
opcin 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 simultneas


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 nmero mximo de conexiones por cada


IP. Cuando se conecta una ip N veces, el programa impide que esa
misma ip se conecte la ensimo-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 relacin


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 fenmeno, 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 conexin 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 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
ips 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 montn de numeros.

Bueno, para redondear debo decirles que nunca dejen que los
extraos entren a su servidor, a menos que lo crean realmente
pertinente. Este server no trae la opcin de crear un ftp de ratio, pero
estoy seguro que si practican lo suficiente con este, van a poder
conseguirse alguno que soporte alguna que otra opcin mas. Siempre
prueben los mas conocidos y los que tengan mas vacas en tucows o
mas estrellitas en softonic o mas votos en download.com etc.

Los dejo de vuelta con Darkh|s

8 Prcticos.

1) Para empezar y hacrsela fcil quiero que bajen el archivo


signon.txt de ftp.adobe.com usando lnea de comando y el IExplorer.
2) Entren a su cuenta de FTP en el servidor de alumnoz.com y dejen
un archivo cualquiera de menos de 20 kb usando Entornos Grficos y
Lnea de Comandos.

Por ejemplo si su usuario es: pepito, sus datos sern:

Server: 64.246.22.103
Usuario: pepito#alumnoz.com
Password: (su contrasea)
Puerto: 54321

Deben subir el archivo en el directorio public_html

3) Deben encontrar el Demo del Quake III Arena usando el buscador


que les ense para archivos y servidores FTP.

4) Por ltimo, queremos que nos enven una invitacin para acceder a
su servidor FTP, hagan un usuario llamado mason con clave
rata_blanca. No se olviden de avisarnos el puerto si es que lo
cambiaron adems de poner alguna cosa interesante para que
bajemos ;).

FIN DE LA LECCIN FTP al mximo.


Autor: DarKh|s.exe (n+1)
Mail: darkhis@alumnoz.com
Elaborada con material de otros autores Annimos y elaboracin
propia.
El presente material se promueve con fines completamente
educativos, por lo que el Autor no se responsabiliza de malos usos o
de usos de terceros.

You might also like