Como Crear un servidor de FTP en tu PC

Iniciado por ANTRAX, Febrero 18, 2010, 12:09:03 PM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Febrero 18, 2010, 12:09:03 PM Ultima modificación: Diciembre 19, 2015, 11:34:39 PM por Cl0udswX
Aportaciones 2009
Texto web: gasperar

Como crear un servidor FTP

Intercambio de ficheros.-

Una de las actividades más importantes de Internet, pese a quien le pese, es el intercambio de ficheros. Películas, canciones, juegos de ordenador, programas, ... Todo se intercambia en la red.

En este artículo vamos a explicar cómo intercambiar ficheros con tus amigos dentro de Internet (tanto tú dejar ficheros para que tus amigos se descargen como que tus amigos puedan dejarte ficheros en tu ordenador). ¿Cómo se hace eso? Pues la forma más simple y versátil es con un servidor FTP.

¿Cómo funciona?:

Retrocedamos tiempo atrás. Hasta la década de los 70 del siglo pasado, concrétamente hasta el año 1973. En esa época, se necesitaba crear un sistema para yo dejar un grupo de ficheros en un ordenador y que aquel que se conectase pudiese copiar ficheros al suyo o bien dejarme ficheros en el mío. Para eso se creó el FTP.

El funcionamiento del FTP es muy simple. En primer lugar, deciros que hay 2 programas FTP. Por un lado está el servidor FTP que es el encargado de gestionar los ficheros que quieres compartir y por otro lado están los clientes FTP que son los que se conectan al servidor.

Así pues, para conectarse a un servidor FTP, primeramente hay que tener un cliente FTP. ¿Dónde conseguir uno? Existen multitud (cientos díra yo) de clientes FTP. La mayor parte son shareware (lo cual quiere decir que podemos usar el programa con funcionalidades recortadas o durante un tiempo limitado y si lo queremos usar completamente tendremos que pagar). WS_FTP, FTP_PRO, ... En esta página podremos encontrar un listado con una amplia variedad de clientes FTP para que podais elegir el que más os convenga.

De cualquier forma, desde esta página recomendamos como cliente el Filezilla. Este es uno de los clientes FTP más versátiles y además es gratuíto (incluso puedes descargarte el código fuente y modificarlo a tu gusto). Para descargarte la última versión o si quieres descargarte el código fuente o incluso tener más información puedes consultar su página web No tienes permitido ver los links. Registrarse o Entrar a mi cuenta. Desde ahí puedes incluso colaborar en el proyecto (ya bien sea en su traducción al español como en el desarrollo de nuevas funcionalidades).

Para instalar Filezilla, no hay nada más que seguir los pasos de instalación normales como cualquier otra aplicación. Una vez instalada, para ponerla en Español, no tenemos más que ir al menú Edit -> Settings... -> Language y ahí elegimos como idioma el Español y pulsamos el botón OK.

Conectarte a un servidor FTP es muy fácil. En la parte superior nos encontramos con 4 cuadros de diálogo: Dirección, Usuario, Contraseña y Puerto.

No tenemos más que escribir el nombre o dirección IP en la que se encuentra el servidor FTP al que queremos conectar. Si disponemos de un usuario y contraseña, lo escribiremos, si no lo dejaremos en blanco (esto último se llama "conexión anónima" y funcionará si el servidor ftp tiene configurado el aceptar conexiones anónimas). Y por último está el puerto por si la persona con la que queremos conectar ha puesto su servidor FTP en un puerto distinto al estándard (que es el puerto 21) para "camuflarlo" o para darle más protección. Pulsamos sobre el botón ConexiónRápida y si todo ha ido bien (si no ha ido bien, sigue leyendo), en la parte de Sitio Remoto (en el centro y a la derecha) veremos el listado de ficheros y directorios del servidor.

Si queremos bajar un fichero, no tenemos más que arrastar el fichero al cuadro de la izquierda (que si nos fijamos son los directorios de nuestro disco duro) y en el directorio de nuestro ordenador que queramos almacenarlo. Si queremos subir un fichero al servidor FTP (y tenemos permisos para ello) no tenemos más que arrastar el fichero desde el cuadro que representa el ordenador (centro a la izquierda) al cuadro que representa el ordenador al que nos hemos conectado (centro a la derecha).

Conforme vayamos subiendo o bajando ficheros, éstos se pondrán en cola en el cuadro inferior, donde podemos ver cuántos ficheros estamos transfiriendo, cuánto queda por bajarnos y pinchando en el fichero, podrás parar momentáneamente la transferencia, reanudarla o cancelarla.

Varios trucos:

i) Puedes crear una lista de sitios FTP con la opción de menú Archivo -> Administrador de sitios y ahí puedes dar de alta las direcciones (con usuarios y contraseñas) de los sitios FTP que más uses.

ii) Si una transferencia de un fichero se corta accidentalmente (se te apaga el ordenador o se corta la conexión), puedes reanudarlo donde lo dejaste. Símplemente tienes que volver a transferir el fichero a tu ordenador (en el mismo sitio donde está el que se te quedó incompleto) y te dará las opciones de sobreescribirlo o de seguir la transferencia por donde la dejaste.

Posibles problemas:

Por las características del protocolo FTP, si tienes un router o un firewall personal, la conexión FTP puede que no se pueda realizar correctamente. Para esos casos existe una modalidad llamada FTP pasivo. ¿Cómo sabemos cuando necesitamos una conexión de FTP pasivo o una conexión normal de FTP? La forma más fácil es probando. A la hora de conectarnos al servidor veremos que la conexión se realiza correctamente, te acepta el usuario y la contraseña, pero a la hora de pedir el listado de ficheros, se queda parado. En ese caso hay que probar con FTP pasivo o quizás incluso desactivarlo. No existen reglas fijas como "dejar siempre FTP pasivo" puesto que hay servidores FTP que no aceptan esta modalidad. Es por ello que, vuelvo a repetir, no hay una regla fija.

Para activar/desactivar el FTP pasivo hay que ir a la opción de menú Edición -> Configuración -> Configuración del cortafuegos y la opción es Passive Mode. Activarlo o desactivarlo puede significar que podamos conectar a un servidor cuando antes no podíamos.

El servidor FTP

Con el cliente FTP úncamente nos podremos conectar a servidores que ya estén funcionando. Pero lo interesante es el crear un servidor FTP.

Al igual que con los clientes FTP, existen multitud de programas servidores FTP. No obstante, recomendamos como uno de los mejores y más versátiles el Filezilla server. Esta versión es la parte servidora, que como el programa cliente es totalmente gratuíta y podemos bajarnos el código fuente y modificarlo a nuestro gusto. El Filezilla server lo puedes bajar en No tienes permitido ver los links. Registrarse o Entrar a mi cuenta, donde si quieres puedes también bajarte el código fuente. Se instala y listo. Desgraciadamente, no hay versión en Español del servidor (si alguien se anima a colaborar en el proyecto como traductor, desde esa página Web podeis contactar y ofrecer vuestra colaboración para traducirlo).

Si en algún momento deseamos parar el servidor FTP, no tenemos más que ir a el grupo de programas Filezilla Server y ejecutar Stop Filezilla Server. Y en caso de que queramos otra vez iniciarlo, nada más fácil que ejecutar el programa Start Filezilla Server.

El filezilla server se controla mediante el programa Filezilla Server Interface. Por un lado tenemos el servidor FTP que está ejecutándose en segundo plano. Y por otro lado tenemos este programa que se encarga de gestionar el servidor FTP y de configurarlo.

Este programa controla el servidor FTP conectándose a éste a través de un puerto. De esta forma podemos controlar nuestro servidor FTP de forma remota. Nada más arrancar el programa antes mencionado, aparece la siguiente pantalla:



En esta pantalla se nos pide la dirección IP del donde está el servidor FTP (ahí tenemos que escribir o bien la IP de nuestro ordenador, o si estamos en la misma máquina en la que está instalado el servidor FTP, podemos escribir 127.0.0.1, siendo esta IP por convenio la IP de mi ordenador).

Luego se nos pide el puerto al cual conectarnos y la contraseña del servidor FTP (en principio el puerto es por defecto el 14147, aunque se puede cambiar en la configuración del servidor y la contraseña de principio está en blanco).

Si pulsamos OK, nos aparece la ventana principal de configuración del filezilla, siendo el mensaje que nos tiene que aparecer:



FileZilla Server version 0.9.3 beta

Copyright 2001 by Tim Kosse ([email protected])

Connecting to server...

Connected, waiting for authentication

Logged on



Con esto se nos indica que estamos identificados correctamente. Lo primero y más urgente es cambiar la contraseña de administración del servidor, puesto que si no, cualquierá podría conectarse a él remotamente y cambiar su configuración.

Así pues elegimos la opción de menú Edit -> Settings y una vez allí nos vamos a Admin Interface Settings y ahí escribrimos una contraseña en los campos New Password y Retype New Password.

Si nos fijamos, en esta opción de menú también podremos cambiar el puerto de administración del servidor FTP (que es por defecto el 14147).

Cuando esté cambiada la contraseña, pulsando OK se harán efectivos los cambios.

De cualquier forma, no sólo esta es la única opción configurable del servidor:

* Welcome Message: Con él podemos cambiar el mensaje de bienvenida que aparece en el cliente FTP de todos aquellos que se conecten con nuestro servidor.

* IP Filter: En esta opción podemos impedir que ciertas IPs se conecten al servidor o bien permitir que tan sólo se conecten al servidor ciertas IPs que seleccionemos.

* Logging: Si queremos ver quién está accediendo a nuestro servidor, activando el Logging, se escribirá en un fichero todos los accesos que tenga nuestro servidor y qué ficheros se bajan o suben.

* Speed Limit: Ten en cuenta que quien se conecte a tu servidor FTP te está quitando ancho de banda para que tú puedas navegar o bajar de otros servidores FTP. Con esta opción podemos limitar el ancho de banda total que va a consumir el servidor. Si vas a tener un servidor FTP funcionando todo el día y tiene gran demanda de ficheros, prueba a limitar el ancho de banda para que no te afecte a la conexión lo que otros usuarios hagan en tu servidor.

Con esto ya tenemos configurado nuestro servidor FTP. Ahora sólo queda configurar a los usuarios que van a conectarse.

En primer lugar, tú puedes configurar una serie de usuarios (con sus correspondientes contraseñas). Para crear un usuario sólo tienes que ir a Edit -> Users.

En la parte de la derecha están los usuarios del sistema. Pulsando el botón Add, podrás crear un nuevo usuario. Si tienes un volumen muy grande de usuarios, prueba a crear un grupo de usuarios y ve asignado los usuarios a los grupos. Luego es más fácil dar permiso a un grupo completo que ir usuario por usuario.

Si no tienes muchos usuarios, no hace falta que crees ningún grupo, así que símplemente escribes el login de tu usuario y elige como grupo <none> (ninguno).

Puedes crear tantos usuarios como quieras. Con Remove se eliminan, con Rename se puede cambiar el login de un usuario y con Copy puedes crear un usuario a partir de otro copiando sus datos.

Las opciones que tienes en el centro, son para cada usuario. Si seleccionas otro usuario en el panel usuarios de la derecha y modificas las opciones, esta modificación sólo se hará para ese usuario en concreto.

La opción Enable Account sirve para activar o desactivar a un usuario sin necesidad de borrarlo y activando password se le asigna a un usuario una contraseña.

Una vez que hayas creado los usuarios, nos vamos al panel de la izquierda y elegimos Shared Folders. A partir de ahí seleccionamos al un usuario y con el botón Add del panel central, vamos añadiendo directorios a ese usuario. Todos los directorios que seleccionemos serán accesibles por ese usuarios. Así que seleccionamos qué directorios queremos que ese usuario tenga acceso. Recuerda que los directorios se le asignan a un único usuario. Tendremos que asignar directorios a todos y cada uno de los usuarios que hemos creado. Si tenemos muchos usuarios, podríamos plantear crear grupos de usuarios, asignar usuarios a grupos y dar permisos y compartir carpetas no a un usuario en particular, sino a un grupo.

Una vez que tengamos seleccionadas las carpetas que va a ver un usuario, tenemos que especificar los permisos de esa carpeta. Dichos permisos están en el panel central a la derecha.

Para un directorio, existen 2 permisos básicos: Read y List. Con Read daremos permiso de lectura a los ficheros de un directorio y con List daremos permiso para listar los ficheros del directorio. Si no damos el permiso de List, cuando una persona quiera ver nuestro directorio, le aparecerá que no tiene permiso para verlo.

Write da permiso para escribir ficheros, Delete para borrarlos, Append para añadir datos a un fichero ya existente, Create es para crear directorios, Delete para borrarlos y + Subdirs es para dotar de los mismos permisos a los subdirectorios del directorio al que le hemos dado los permisos.

Las restantes pestañas de esta ventana son Speed Limits, para establecer límites de velocidad por usuario o IP filter para determinar que un usuario sólo se pueda conectar desde una IP.

Tan sólo decirte que hay un usuario especial llamado anonymous. Ese usuario es el que usan los clientes FTP para permitir entrar a un usuario sin identificación.

Así pues, es interesante que crees un usuario anonymous y que no le actives la contraseña. De esta forma permitirás que entren personas sin que tengas que darle un usuario y una contraseña. Pero no le des permiso de escritura, tan sólo de lectura.

Configuración Recomendada:

Una vez que sabemos cómo manejar este programa, vamos a explicar una configuración que nosotros pensamos que es la más recomendada:

i) Pon una contraseña de administración.

ii) Haz un directorio en el raíz de tu disco duro llamado ftp ó compartir. En ese directorio iremos creando directorios e iremos dejando los ficheros que queramos compartir.

iii) Crea un usuarios anonymous y dale permiso de lectura (Read) y de listar (List) los ficheros del directorio ftp. De esa forma no tendrás que ir dando usuario/contraseña a los que quieran entrar en tu ftp y al tener sólo permiso de lectura no podrán hacerte nada en tus ficheros.

iv) Crea un directorio dentro del directorio ftp llamado upload y dale permiso de escritura (Write) y para crear directorios (Create) para el usuario anonymous. De esta forma, si un usuario anónimo te quiere dejar algo, lo podrá hacer, pero en una carpeta distinta. Al no tener permiso de borrado (Delete), no podrá borrar nada, sólo dejarte cosas.

v) Limita la velocidad a ese usuario anonymous. Para ello modifica los correspondientes valores en Upload (tráfico que usa la gente para subirte ficheros) y Download (tráfico que usa la gente para descargarse ficheros de tí) en Seepd Limit. De esta forma, si hay mucha gente bajándose cosas de tí, no te afectará a tí para navegar por Internet. Ya depende de la velocidad de tu ADSL... y ten en cuenta que una ADSL es simétrica. Así si tienes una ADSL de 2 Mbps, tienes 2 Mpbs de tráfico upload para los usuarios y 300 Kbps de tráfico de donwload. ¿Que cómo es posible? Muy fácil, ten en cuenta que cuando tú navegas por Internet el caudal de descarga es de Internet hacia tí, y el de subida es de tí hacia Internet. Cuando tú montas un servicio en Internet, las tonas se invierten y los usuarios se descargan de tí por el canal de subida de la ADSL y suben cosas por el canal de bajada de la ADSL. Así que si tienes una ADSL de 2 Mbps, la gente en internet sólo podrá descargarse de tí como máximo 300 Kbps (que es la velocidad del canal de subida de la ADSL) y te podrán subir ficheros a tu ftp a 2Mbps (que es el canal de bajada de la ADSL). Si lo piensas tiene su lógica, ¿no?

vi) Crea varios usuarios para tus amigos y ya es tema tuyo a qué directorios quieres darle permiso y qué tipo de permisos les das.



Y bueno, ya tenemos configurado un servidor FTP para que puedas dejar cosas a la gente y la gente te pueda dejar cosas a tí. Por último faltaría (si tienes un router ADSL) el configurar el router para que la gente pueda acceder a tu servidor FTP. Ten en cuenta que la IP que tienes en Internet, cuando te instalan un router, es la IP del router y no la de tu ordenador. ¿Qué IP tiene entonces mi ordenador? Pues una dirección interna que no es accesible desde Internet. Con eso te dan los operadores seguridad y no tienes que preocuparte porque alguien desde Internet pueda acceder a tu máquina.

Si quieres montar el servicio en internet con un router, tendrás que montar un NAT inverso. Con el NAT inverso le digo al router ADSL que cuando alguien acceda a la IP del router en un puerto (por ejemplo, el puerto 21), lo rediriga a la IP interna que tiene mi máquina. Con eso cualquier paquete desde Internet que toque el router, éste lo pasará hacia dentro de tu red (más concretamente hacia tu ordenador). pero eso es otra historia. Ya depende del tipo de router que tengas instalado. Para ello deberás de consultar en el manual cómo crear un NAT inverso (o en su defecto, ir a Internet a ver cómo se hace en tu router).

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta



muy buena la información de este post, pero me queda una duda respecto a la seguridad de utilizar esta herramienta.

** ¿un usuario con permisos puede alojar en mi carpeta compartida algún tipo de amenaza? y si voy mas al grano,
** ¿ese usuario puede utilizar algún método para ejecutar código arbitrario en su beneficio en mi máquina?. 

Sería fea meterse a mirar la carpeta y toparse con un troyano u otra cosa :S

espero puedan responder las preguntas..


Saludos a todos.  8)

Si, si se puede. Puede subir algun exe y luego ejecutarlo con un php o con un cron

Saludos


para esto yo uso XAMPP , lo tiene todo.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
para esto yo uso XAMPP , lo tiene todo.
XAMPP sin duda es la primera opción y tanto su seguridad como privacidad son muy configurables pero tambien hay que pensar en los recursos que este consume comparado con un casero que es 100% configurable y óptimo.

Sin duda para trabajar en una red local la mejor opción siempre es un casero...
Sigueme en Twitter : @Sankosk
Estos nuevos staff no tienen puta idea XD

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
Si, si se puede. Puede subir algun exe y luego ejecutarlo con un php o con un cron

Saludos

:O

Muchas gracias por la respuesta, me llamo la atención eso de poder ejecutar el exe con un PHP o con un Cron..
Cron no lo ubico :/  pero hay que seguir leyendo e investigando :D

Reitero mis agradecimientos por sus respuestas compañeros.

salutes.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
para esto yo uso XAMPP , lo tiene todo.
XAMPP sin duda es la primera opción y tanto su seguridad como privacidad son muy configurables pero tambien hay que pensar en los recursos que este consume comparado con un casero que es 100% configurable y óptimo.

Sin duda para trabajar en una red local la mejor opción siempre es un casero...

nunca use un casero , siempre use XAMPP para apache y mysql , de paso cuando vi que tenia para ftp lo use al toque.