viernes, 6 de febrero de 2009

Montar servidor ftp en Ubuntu con IP dinámica

Hola. Ahora voy a explicaros cómo podemos montar un sencillo servidor FTP en nuestra Ubuntu. Yo, personalmente lo tengo montado porque, a veces tengo que buscar algun software, y así, en vez de buscarlo por internet, ya sé que lo tengo en mi servidor ftp. El principal problema que nos encontramos es que, al tener IP dinámica, cuando se nos renueve la dirección IP, no podremos acceder a nuestro servidor FTP, ya que no sabremos la IP pública de nuestro router en ese momento. ¿Cómo podemos solucionar eso? Pues es muy sencillo. Hay muchos servicios gratuitos de internet que te ofrecen una dirección "virtual" que mapea constantemente tu IP pública. Una de ellas (creo que de las más completas) es DynDNS.org, que será la que configuraremos. Además, muchos routers actualmente ya traen en su configuración la posibilidad de agregar este protocolo automáticamente. Pasamos a la acción:

primero debemos ir a la página www.dyndns.com y abrirnos una cuenta (podemos hacer una cuenta gratuita, que para lo que necesitamos es suficiente). Una vez allí, nos llevará a la página principal de tu cuenta de usuario, y haremos click en "Add Hosts Services". Allí se nos abrirá una ventana como ésta:



En hostaname pondremos el nombre público que queramos que tenga nuestra máquina. La segunda parte del hostname (nombre del dominio) yo recomiendo poner dyndns.org, ya que es la que va mejor con muchos routers, pero da igual la que pongáis. En IP Adress pondremos la IP pública que tengamos en ese momento (podemos decirle que la detecte automáticamente). Hacemos click en "Create Host" y este paso ya está terminado. Ahora le diremos al router que se sincronice con el servicio dyndns.

Este paso dependerá de cada router, pero os explico cómo lo hoce en el mío (tengo un Comtrend de Telefónica). Entramos en la configuración del router por nuestro explorador web, y una vez allí vamos a "Advanced Setup" --> "DNS" --> "Dynamic DNS".



Allí ponemos nuestro proveedor del servicio (dyndns.org), el hostname, la interface será la de por defecto de salida del router, y nuestro usuario de dyndns. Una vez hecho esto, ya habremos acabado con la configuración del DynDNS, pero ya que estamos aquí podremos redireccionar el puerto del FTP. Una vez más, os repito que esta configuración dependerá de cada router, pero yo explicaré cómo lo hice en mi caso.



Dentro de la configuración del router, nos vamos a "Advanced Setup" --> "NAT" --> "Virtual Servers". En "Select a Service" pondremos "FTP Server" y "Server IP Address" pondremos la IP local del ordenador que vayamos a configurar como servidor FTP (doy por supuesto que el ordenador tiene IP FIJA). Si vuestro router no tuviera esta configuración "automática", sólo tenemos que poner un nombre al redireccionamiento, y redireccionar el puerto 21 hacia la IP fija de nuestro ordenador. Muy bien, guardamos y salimos. Pasamos a otra cosa.

Ahora queda la configuración del servidor FTP como tal. Yo recomiendo el paquete vsftp, ya que es el que mejores resultados me ha dado, y de los más fáciles de configurar. Para instalarlo escribimos:

sudo aptitude install vsftpd

Como viene en los repositorios oficiales, no tendremos ningun problema. Nos pedirá si lo queremos como demonio. Yo recomiendo tenerlo así, ya que así arrancará solo al arrancar la máquina y siempre lo tendremos operativo. Una vez instalado, lo configuramos. Es mucho más sencillo de lo que parece. Pondremos en la línea de comandos:

sudo gedit /etc/vsftpd.conf

Así se nos abrirá el editor de texto para modificar el archivo de configuración del servidor FTP. Paso a detallar las principales características del archivo:

- anonymous_enable: sirve para decirle si queremos que puedan acceder como usuario anónimo. La carpeta de los archivos será /home/ftp
local_enable: este lo activaremos si queremos que los usuarios locales puedan acceder al servidor con su cuenta local a sus archivos. Muy interesante el enjaularlos (lo veremos mas adelante).
- write_enable: si queremos que los usuarios puedan escribir en sus archivos.
- f tpd_banner: para escribir el mensaje de bienvenida.
- chroot_local_user: esto es muy interesante. Sirve para "enjaular" a los usuarios para que sólamente puedan navegar por sus carpetas personales (no podrán llegar a home).
- chroot_list_enable: esto es para activar la lista de usuarios exluidos del comando anterior. Todos los usuarios apuntados en esta lista podrán navegar por todas las carpetas del servidor (cuidadín a quien ponemos aquí).
- chroot_list_file: ruta completa del archivo de texto de la lista de los comandos chroot.
- anon_max_rate: sirve para limitar la tasa de transferencia (en B/s) de los usuarios anónimos.
- local_max_rate: igual que el anterior, pero para los usuarios locales.
- max_clients: numero de conexiones simultáneas que aceptará el servidor.
- max_per_ip: numero de conexiones máximas desde una misma IP que aceptará el servidor.

Cada vez que modifiquemos el archivo de configuración, deberemos reiniciar el servicio del vsftpd con el comando:

service vsftpd restart

La palabra restart se puede sustituir por "stop" o por "start", dependiendo si lo queremos apagar o arrancar.

Si os he podido ayudar en algo, o si simplemente os ha gustado esta entrada, dejad un comentario (no seáis leechers).

Un saludo a tod@s ;)

6 comentarios:

  1. bien, muy bueno, sólo me queda saber que hacer después, je, he puesto mi ip en la barra de direcciones y no aparece nada...

    ResponderEliminar
  2. la direccion es:
    ftp://dir.IP ó nombre DynDNS

    con eso te deberia abrir el ftp

    ResponderEliminar
  3. hola me sale este mensaje ,500 OOPS: vsftpd: refusing to run with writable anonymous root, alguna solucion gracias de antemano

    ResponderEliminar
  4. Hola. Parece que estas intentando entrar como root anónimo, y no te dejará entrar (lógicamente). prueba a entrar como un usuario local de tu máquina, habilitando la posibilidad de entrar a los usuarios locales. Lo explico un poco más arriba sobre cómo hacerlo.
    Un saludo.

    ResponderEliminar
  5. gracias por responder pero sigo sin poder hacer nada da error no acierto con la configuracion no se como hacerlo
    gracias saludos

    ResponderEliminar