Está en la página 1de 31

\\\\\\\\\\\\ CURSO orientación HACKER //////////////

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


Lección nº2 – FTP al máximo

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

índice:

1 Introducción.
2 FTP desde un cliente de FTP con entorno gráfico Windows.
3 FTP sin entornos gráficos desde DOS, Linux y UNIX.
4 Problemas de seguridad en FTP.
5 Problemas de conexión en FTP.
6 Donde buscar Servidores FTP.
7 Instalando nuestro Server FTP.
8 Prácticos.

Disclaimer: 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.

1º Introducción

Buenos días, tardes y noches para quien lea estas líneas... primero
que nada apronte el café o la cerveza y comiencen esta lección que
les va a ayudar mucho a abrir su cerebro. En comparación con la
primera que debe ser lo mas fácil 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
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, jjeje, todo lo
que les espera :P.
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. 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
esa información sin necesidad de conocer datos...
Ya verán 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 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 int entar 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 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”.

Dependerá de la configuración 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”,
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, (s itio
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): Lectura–Escritura–Ejecución


Grupo (todos los usuarios existentes): Lectura–Escritura–Ejecución
Otros usuarios (también anónimos): 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).

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 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.

Para finalizar la sesión simplemente cerramos la ventana y listo, a


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

3º FTP sin entornos gráficos 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 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 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…

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

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.
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


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 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...

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 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.
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
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...

Para utilizar un FTP anónimo, el deben introducir el usuario


“anonymous” y como password cualquier cosa, como ya les mencione
se considera una muestra de cortesía introducir la dirección de correo
electrónico, en lo personal si ponen “mushrooms” talvez consigan un
root y todo :P.

CÓMO 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 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...

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.

4º 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 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 nº6 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.
Y como todo, siempre se van descubriendo errores cada una de las
versiones por lo que siempre es importante asegurarse de tener la
versión más moderna del servicio.

5º Problemas de Conexión con FTP

Comando 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 nº6.

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.

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 nº4 y nº6 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:

“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 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 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.

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 nº6 y no tendrán ningún
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 línea de comandos.

6º ¿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.

Hasta Marzo de 2004 utilizábamos www.alltheweb.com, pero de un


día 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 todavía), que para subir un sitio Web utilizaremos FTP, pero
eso lo aprenderemos en la lección 3 prácticos.

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
introducción 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, quizás 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 función dentro del curso es colaborar con
datos técnicos dentro de lo que mi conocimiento alcance, para
transmitírselo a ustedes por este medio. También me encargo de
responder las dudas de quienes lo necesiten, durante muchas horas
por dia. Por lo tanto, si yo estoy en línea y ustedes tienen un
problema, no piensen dos veces en recurrir a mi ayuda. De no estar
en línea, mi e-mail siempre está disponible. Como dato extra tengo
bastante tolerancia con temas off-topic (fuera de contexto). Por
favor, no usen letra itálica =P.

Ya roto el mal presagi o de eso de “hablar con extraños”, 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 anónimo. 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 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.

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 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.

Bueno, para redondear debo decirles que nunca dejen que los
extraños entren a su servidor, a menos que lo crean realmente
pertinente. Este server no trae la opción 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 opción 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º Prácticos.

1) Para empezar y hacérsela fácil quiero que bajen el archivo


signon.txt de ftp.adobe.com usando línea 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 Gráficos y
Línea de Comandos.

Por ejemplo si su usuario es: “pepito”, sus datos serán:

Server: 64.246.22.103
Usuario: pepito#alumnoz.com
Password: (su contraseña)
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 envíen una invitación 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 además de poner alguna cosa interesante para que
bajemos ;).

FIN DE LA LECCIÓN FTP al máximo.


Autor: DarKh|s.exe ³ (n+1)
Mail: darkhis@alumnoz.com
Elaborada con material de otros autores Anónimos y elaboración
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.

También podría gustarte