sábado, 25 de agosto de 2012

CREAR UN SERVIDOR FTP



Vamos a ver paso a paso como montar un servidor FTP en nuestro ordenador. Para comprender mejor como funcionara nuestro servidor, necesitaremos conocer el funcionamiento de las conexiones FTP/IP y otros conceptos técnicos. Como la finalidad de este blog es la de llegar a usuarios de todos los niveles, os lo explicare de un modo que todos podáis entender, aunque en ocasiones mi método no sea muy ortodoxo. Primero, que es un servidor FTP: pues  no es más que un programa para poner a disposición de nuestros clientes FTP (los que tienen el programa para conectarse a nuestro servidor FTP, cuteftp, filezilla…) los archivos de nuestro disco duro que deseemos compartir. El servidor FTP requerirá tener una IP fija y una serie de puertos abiertos. ¿Pero no iba a ser sencillo? Ahora os lo explico, una IP es una dirección en interned. Imaginémonos que tenemos una casa restaurante en un pueblo en el culo del mundo en el que nuestra casa es la única del pueblo, este pueblo tiene un código postal pero como somos los únicos que vivimos aquí, si nos envían una carta a ese código postal el cartero nos la entregara a nosotros. Pues bien, nuestra casa, “casapepe”, sería el dominio (como lo es www.google.com, www. msn.com , cualquier dirección de internet que se os ocurra) y el código postal seria la IP (209.85.195.104 para google, 65.55.206.228 para msn, para conocer una IP desde cmd, escribid cmd en búsqueda de inicio y haced ping a la dirección que deseéis. Probad a escribir en el símbolo de sistema ping www.google.es por ejemplo). En internet las direcciones son en forma de IPs, pero recordar números no es muy práctico, por eso se utilizan los dominios. ¿Pero si internet funciona con IPs, quien le dice al “cartero” cuál es la IP del dominio que hemos introducido? Pues el servidor DNS, se trata de un servidor (en realidad más de uno por proveedor de servicios, porque si falla uno nos quedaríamos a dos velas) que posee una base de datos con la dirección de todos los dominios registrados. Imaginémonos que queremos registrar nuestro dominio www.casapepe.es, pues nos asociarían una IP que tendrían que actualizar en todos los servidores  DNS del mundo (por eso tarda un tiempo). Ahora sabemos que cada dirección web tiene al menos una IP asociada, pero ¿y que pasa con mi pc? Pues tenemos dos tipos de IP, uno público y otro privado. El público ya lo hemos visto, el privado es el que se asigna a cada uno de los dispositivos que tenemos conectados al router y a este. Esta dirección seria en forma xxx.xxx.xxx.xxx, con valores para cada punto de 0 a 255, de ahí la limitación de IPs disponibles, que se intenta subsanar con el protocolo ipv6 (mas IPs para todos). La máscara de subred determinara cual es el valor que varía para cada equipo conectado (255.255.255.0 significa que el valor que determina mi equipo, el de mi hermano, la Xbox… es el último y tienen que ser distintos). El router (se llama enrutador por algo), se encargara de enlazar nuestra red privada con la red pública (la IP de nuestro proveedor de servicios). La puerta de enlace es la dirección que usa nuestro router para hacer esto mismo. ¿Qué, me vais siguiendo? Para que nos lleguen las cartas necesitamos una dirección que no cambie, una IP fija, una IP variable cambia cada vez que apagamos el sistema con lo que o tenemos siempre encendido el pc (y cruzamos los dedos para que no se valla la luz), actualizamos nuestra dirección a nuestros clientes cada vez que nos la cambien (ja!, tela), o nos vamos a esta pagina que nos asociara una IP fija (hay que registrarse claro, pero es gratis) http://www.no-ip.com/ . En cuanto a los puertos, no son otra cosa que entradas de datos a nuestro pc, como un puerto USB, uno ps2… después veremos más sobre ellos cuando os esplique el modo pasivo y el modo activo del servidor y la configuración de la NAT y el Firewall (¿pero ya estamos otra vez?, tranquilos que no es tan fiero el perro como pinta). Os dejo un ejemplo de configuración TCP/IP (en Windows 7, ipv4), Veréis que la IP esta forzada, lo normal es dejar que el sistema nos asigne los valores, esto es así en mi caso porque tengo instalado un CPE (un router exterior en el poste de la antena de tv) que programe de un modo “especial” que no viene a cuento, y para que Windows me mantenga el rango de la IP de mi CPE tengo que hacerlo así. De otro modo no podría acceder a configuración del mismo.
Bueno, pues ya sabemos unas cuantas cosillas y nos podemos atrever a instalar nuestro servidor. En este caso vamos a instalar filezilla, porque es gratis y porque soporta varios protocolos de seguridad. Lo descargamos de aquí http://filezilla-project.org/download.php?type=server y lo ejecutamos. No tocamos nada e instalamos todo palante. Ahora, ya instalado, es cuando lo vamos a configurar, nos aparecerá una pantalla que dejaremos así. La dirección IP 127.0.0.1 es una dirección especial, sirve para hacer creer a nuestro pc que está conectado a una red aunque realmente no lo esté (localhost). La contraseña está en blanco y el puerto de escucha ya lo designamos en la instalación.
Ahora vamos a crear un usuario para que pueda conectarse y las opciones de cómo lo hará. Pulsamos en el icono marcado, borramos por seguridad todos los que nos aparecen y creamos uno nuevo (add). Despues escribiremos la contraseña de acceso para ese cliente. Ahora iremos a shared folders (en la misma ventana a la izquierda), borramos todo y le damos a add para determinar a qué carpetas tendrá acceso nuestro cliente (recomiendo crear una carpeta en el símbolo del sistema, por
ejemplo “deaquinopasas” y al ladin seleccionamos los permisos que le concedemos sobre ella; leer, escribir…
A continuación ajustaremos el modo pasivo “Passive mode settings”, aquí es donde entra en juego la NAT y el firewall, según que router tengamos y que sistema operativo podríamos tener problemas con el modo pasivo. Pero ¿Qué es el modo pasivo? En FTP existen dos modos de conexión, pasiva y normal (pasv mode, port mode).
Cuando iniciamos nuestro servidor en modo normal se abre un puerto de escucha, nosotros escogimos el 14147 (main port). Este puerto se usa como puerta de acceso y para la transmisión de comandos (pass, cwd, user…), pero el FTP necesita otro puerto para el envio de los datos, normalmente main port menos 1 (el data port seria 14146) Por defecto el puerto FTP seria el 21 y el servidor web (el que nos da las páginas web que pedimos) el 80. El cliente abrirá un puerto dinámico comprendido entre los valores 1024 y 65535 llamara a la puerta de nuestro servidor 14147, estableciéndose una conexión de control. Entonces el cliente nos enviara a nosotros como servidor, un comando port con los datos de la conexión, nuestro servidor ya sabe como conectarse y establecera la conexión (nuestra IP, maint port menos 1, a cliente IP, port dinámico más 1). OSEA, las reglas del juego las marca el cliente. Ah, pero nuestro cliente tiene el firewall activado, y estos son muy permisivos con las conexiones de datos salientes pero tremendamente restrictivos con las entrantes. El cliente ve los archivos pero no puede descargar porque el firewall corta el data port. En modo pasivo, somos nosotros quienes determinamos el comando port (esta vez el puerto será uno asignado dinámicamente por encima del 1024), y es el cliente el que crea la conexión de datos con los parámetros que nosotros le hemos dado. Ahora la conexión es saliente y el firewall no se nos debería poner terco. Resumen, en modo pasivo nosotros establecemos los parámetros de la conexión y el cliente la conexión de datos y en modo normal el cliente los parámetros y nosotros la conexión de datos. Por eso debemos activar el modo pasivo. Pero ahora será nuestro firewall el que corte la comunicación de datos por lo que en firewall, en excepciones, debemos incluir el filezilla. En Windows 7 debería preguntarnos si permitimos a filezilla que establecca la transferencia de datos y le diremos que sí. Tendremos igualmente que abrir los puertos necesarios para que funcione nuestro servidor en el router. Para saber cómo entrar en el menú de configuración del router tenéis que seguir las instrucciones del manual o buscarlo en internet y abrir los puertos que ya hemos visto y ademas, desde el 50000 al 51000 que están menos transitados y somos menos visibles (venga va,lo explico mejor. La dirección IP del router la obtenemos en cmd “ipconfig” es el valor "puerta de enlace", la escribimos en nuestro navegador y ya estamos en el menú. La clave está en el manual, pero podéis probar con 1234, usuario, admin y para "password" lo mismo ).
 Ahora la NAT. La NAT se encarga de cambiar en la etiqueta que llevan todos los paquetitos que enviamos con nuestra dirección y la de destino. La dirección del remitente es nuestra IP privada, por lo que los paquetes de regreso nunca llegarían (por esa razón las enmascara con la direccion publica),  y se encargara de cambiar la pública cuando los recibe en nuestra  IP privada (más o menos, crea una tabla de datos para enviar y recibir los paquetes. Para activar la NAT en Windows, vais a “centro de redes y recursos compartidos”, “cambiar la configuración del adaptador”, clicais en compartir conexión, os aparecera una ventana diciendo que se activa DHCP,  que debereis aceptar. Y creo que es todo, si algo no queda claro ya sabéis, preguntad.

No hay comentarios:

Publicar un comentario