Ubuntu Sur

“Las personas nacen libres e iguales en dignidad y derechos”

Instalar servidor FTP en Ubuntu

Posted by K|Ke on December 2nd, 2007

vsftpd, son las siglas de “Very Secure FTP Daemon” : Demonio FTP muy seguro, es un1320037622_9e6020e783.jpg servidor FTP. Está licenciado bajo licencia GNU. Soporta IPv6 y SSL.

vsftpd es el servidor FTP por defecto de la distribución Ubuntu, además de Fedora Core, Red Hat y otras distribuciones.

Bien procedamos a su instalación y configuración en nuestro Ubuntu, previamente a ello debemos asegurarnos que nuestro puerto 21, esté abierto.

$ sudo apt-get install vsftpd

Luego que ya lo tenemos instalado vamos a proceder a configurar nuestro servidor, aplicando las reglas al archivo vsftpd.conf

Este archivo que se encuentra dentro del directorio /etc, viene realmente bastante comentado y esto nos permitirá comprender muy bien su funcionamiento y configuración. Enseguida veremos las principales reglas que yo personalmente aplico:
anonymous_enable

Si el valor de esta directiva es YES cualquier usuario se puede conectar al servidor dando el nombre de usuario anonymous. Yo normalmente utilizo la configuración (anonymous_enable=NO), por razones de seguridad.

local_enable

Aquí indicaremos si se permite o no el acceso de usuarios locales a sus respectivas carpetas privadas. Si lo deseamos permitir (local_enable=YES), si no deseamos habilitar esta regla (local_enable=NO). Yo normalmente lo permito.

chroot_local_user

Con esta directiva enjaulamos a los usuarios dentro de su propio directorio personal. Si en el fichero de configuración aparece (chroot_local_user=NO), entonces el usuario tiene acceso a todo el sistema de archivos, en función de los permisos asignados. Cuando un usuario local se conecta y en el fichero de configuración aparece (chroot_local_user=YES), entonces enjaulamos a los usuarios dentro de su propio directorio personal, sin posibilidad de acceder a las demás carpetas y archivos del sistema. Por medidas de seguridad yo utilizo la última regla.

write_enable

Aquí permitimos o denegamos subir archivos al servidor. Si lo vamos a autorizar, entonces configuramos (write_enable=YES). Normalmente yo utilizo esta directiva, de este modo.

local_umask

Indica que los archivos subidos al servidor quedarán con los permisos 644, es decir, lectura y escritura para el propietario del fichero, y sólo lectura para el grupo y los demás. Bueno, aquí tu debes ver, cual es lo más indicado para tu propósito. Yo utilizo (local_umask=YES).

anon_upload_enable

Con ello, le indicamos al servidor si los usuarios anónimos pueden cargar archivos en el servidor. (anon_upload_enable=YES) permite que los usuarios anónimos puedan subir ficheros. Yo utilizo la configuración ‘NO’, aunque tampoco autorizo usuarios anónimos.

anon_mkdir_write_enable

Con esta configuración permitimos o no la creación de directorios. Para mis propósitos yo utilizo (anon_mkdir_write_enable=YES).

ftpd_banner

Con ello podemos mostrar un mensaje de bienvenida cuando un usuario se conecte al servidor FTP. (ftpd_banner=?Bienvenido a mi servidor FTP?). Bueno, aquí solo es cosa de gustos, ya que no es tan trascendente.

anon_max_rate

Se utiliza para limitar la tasa de transferencia a usuarios anónimos. En el siguiente ejemplo se limita la tasa de transferencia a los usuarios anónimos a 10Kb/s:
(anon_max_rate=1024). Bueno, insisto yo no autorizo usuarios anónimos. :)

local_max_rate

Aquí limitamos la tasa de transferencia en bytes por segundo a los usuarios locales del servidor. En el siguiente ejemplo se limita la tasa de transferencia a 10Kb/s:
(local_max_rate=1024). Tampoco uso esta configuración.

max_clients

Aquí configuramos el máximo de clientes que podrán conectarse simultáneamente al servidor. Por ejemplo, para limitar a solo cinco clientes hacemos lo siguiente: (max_clients=5). Bueno ello depende de cada uno.

Una vez finalizada la configuración de nuestro servidor, debemos reinicializar el servicio de este modo:

$ sudo /etc/init.d/vsftpd restart

Bueno, veamos ahora como crear un usuario en nuestro servidor, para que pueda accesar a el.

$ sudo useradd -d /home/usuario1 -s/bin/bash usuario1

Ahora creamos su password

$ sudo passwd usuario1

Con ello habremos creado el usuario usuario1, asignado su carpeta personal y asignado también una password.

Nota: No olvidar asignar los permisos a la carpeta que haz creado, para que el nuevo usuario pueda subir archivos.

$ sudo chmod 777 /home/usuario1

  • Share/Bookmark

Sin entradas relacionadas.

38 Respuestas a “Instalar servidor FTP en Ubuntu”

  1. hunterluis Dice:

    buenas:
    solo decirte que muy bueno el manual,
    un detalle, en la foto ,los conectores del router que utilizas abajo como switch son rj 45, no rj11, mas que nada para no confundir a los lectores,
    Un saludo
    Luis F.

  2. admin Dice:

    Gracias Hunterluis, la verdad es que solo era una imagen referencial y tienes toda la razón, podía confundir así que fue cambiada.

    Saludos.

  3. Jonathan Dice:

    Buenas noches,
    La verdad que muy bueno y muy facil explicado, me viene al pelo por que justo estoy empezando con Ubuntu.
    Saludos.

  4. rodrigo Dice:

    Al usar useradd no se crea el directorio mensionado, por lo que da error cuando se intenta otorgarle los permiso: “el directorio no exite” ???

  5. K|Ke Dice:

    Rodrigo, prueba creando el directorio del nuevo usuario, antes de crea al usuario o en su efecto y si lo haces luego, puedes realizar lo siguiente:

    $ sudo mkdir /home/usuario1

    Luego le das los permisos

    $ sudo chown -R usuario1:usuario1 /home/usuario1

    Saludos.

  6. YOVANY ROJAS HIJO DE FILEZILA Dice:

    Yo creo que aparte de que soy bien ignorante en el tema tengo problemas psicologicos por ser el Hijo de filezila pero de igual quiero decirles a todos los del foro que los amo con todo mi corazon y mi correo es yofigueroa1000@hotmail.com para que me agreguen y nos compartamos nuestras patoaventuras juntos!!!

  7. negroxxx Dice:

    hola, gracias por el manual esta de pelos.. Ahora, cuando subo fotos, me gustaria que viese la imagen en miniatura de la foto que subo cuando abro la carpeta que las contiene. sera posible eso?

  8. mama21mama Dice:

    o/ hola, muy buen guia… en la primera me anduvo. Gracias, saludos o/

  9. Roberto Cornejo Dice:

    Hola, soy nuevo en el Ubuntu, y configure el servicio vsftpd que por cierto el manual esta como para nosotros los principiantes, pero tengo un problema, cuando estoy subiendo al FTP un archivo muy grande y se pierde la conexion, el cliente ftp no puede volver a reconectar, estoy usando como cliente el FileZilla, hay algo que debo configurar en el Ubuntu para lograr las reconexiones automáticas?

    Espero puedan ayudarme

    Saludos

  10. K|Ke Dice:

    Roberto no te hagas problemas e instala gftp.

    $ sudo apt-get install gftp

    Saludos.

  11. Roberto Cornejo Dice:

    Muchas gracias Ke, ahora si funciona todo perfecto.

    Saludos

  12. Antonio Zavala Posadas Dice:

    yo lo instale y todo bien pero hay un problema al querer conectarme cuando me conecto en el mismo servidor con el cliente filezilla todo bien, y cuando me conecto desde otra pc tambien con filezilla y con windows tambien bien pero el problema de conexion sale cuando trato de conectarme desde otra red cuando ya no estoy en la misma red que se encuentra mi servidor ya no puedo establecer comunicacion me dice esperando mensaje de vienvenida y luego me dice error de conexion.

    Le a pasado eso a alguien yo lo instale en el ubuntu 8.04 y si tengo ip dinamica y mi puerto 21 si esta abierto porque lo compruebo con el nmap y se encuentra abierto no se a que se pueda deber ojala alguien me pudiera ayudar de ante mano gracias.

    Att Antonio ZP

  13. jose Dice:

    ola que tal, lo instale y todo bien pero soy ignorante en el tema y no se como conctarme ni nada de eso si alguien me dice se lo agradeceria

  14. K|Ke Dice:

    Hola José, entiendo instalaste el servidor ftp, por lo tanto solo ahora debe instalar un cliente ftp, obviamente en otra máquina ya que no tendría sentido hacerlo en la misma. Clientes hay muchos, los hay en consola como también en ambiente gráfico, para que empieces podrías usar FileZilla está en los repositorios y es muy intuitivo en su uso.

    Saludos.

  15. jose Dice:

    Gracias por la respuesta lo intentare (servira de algo si lo hago en una maquina virtual)

    y otra cosa e visto servidores en los cuales uno escribe la direccion ip del servidor y salen las carpetas y archivos que tiene este servidor nose si me entienden , pero si entienden que tipo de servidores son estos??
    gracias denuevo

  16. K|Ke Dice:

    Hola José, claro que puedes virtualizar. Ahora respecto a tu pregunta podrías dar más detalles, ya que si te refieres a un servidor web, normalmente el sitio muestra los archivos que tiene, cuando no existe un archivo índice (index.htm, index.html, index.php, etc), pero realmente no se si es a eso que te refieres.

    Saludos.

  17. Jose Dice:

    hola K|Ke

    primero que todo gracias por darte el tiempo de responder mis dudas.

    Sobre lo otro que te pregunte es exactamente lo que tu dices .

    gracias otra vez

  18. Jose Dice:

    Hola que tal??

    Ya me da verguenza tanto preguntar pero tengo 2 dudas por si es que alguien me las puede aclarar

    1.- Tengo el server andando pero como tengo router solo se puede ver en la red local, me gustaria saber como puedo hacer para que la pagina o server se pueda ver desde fuera de la red local sin sacar el router.

    2.- Me gustaria saber como puedo dar el nombre a una pagina (me explico; para ingresar desde otro pc tengo que poner la ip del server pero me gustaria ingresar por ejemplo http://www.ejemplo.com) sin tener que comprar un dominio

    si alguien puede explicarme se lo agredeceria mucho

    Gracais de antemano y adios.

  19. K|Ke Dice:

    Hola José, en primer lugar no tengas absolutamente ninguna vergüenza en preguntar, eso habla bien de ti y tus deseos de aprender. Ok respecto a lo que consultas, tu servidor web si no haz cambiado voluntariamente el puerto donde escucha las peticiones, es el puerto 80, por lo cual debes abrir este puerto en tu router, ingresando para ello a la configuración del mismo.

    Ahora respecto a asignar un dominio gratuito a tu ip, te recomiendo que visites http://www.dyndns.com en este sitio podrás crear subdominios del tipo http://algun_nombre.gotdns.com entre otros que puedes elegir, utilizando tu ip dinamica.

    Saludos.

  20. Jose Dice:

    Que tal K|Ke

    Como siempre muchisimas gracias por tu respuesta ahora pruebo.

    Gracias de nuevo

  21. SID Dice:

    Estimado queria agradecerte por el tiempo y la dedicacion que pones en responder las consultas que te hacemos. Tengo una consulta yo he creado una ftp en suse 9 con alrededor de 15 usuario estos acceden a dos carpetas una con permisos de escritura y otro sin permisos de escritura y lo configure hace tanto tiempo que no recuerdo… podrias decirme como lo puedo hacer en ubuntu te lo agradeceria mucho.

  22. K|Ke Dice:

    Hola SID, asigna permisos a las carpetas que comentas. Es decir para aquella que tendrá todos los permisos para que los usuarios asigna los permisos así:

    $ sudo chmod 777 carpeta_A

    Y para aquella en que solo el administrador tendrá todos los permisos, el grupo solo de lectura y el resto nada, asigna lo siguiente:

    $ sudo chmod 740 carpeta_B

    Saludos.

  23. SID Dice:

    gracias por tu pronta respuesta, pero queria agregarle una consulta mas como agrego los demas usuarios para que funcione como el que que tenia antes.-

  24. K|Ke Dice:

    Hola SID, no entiendo bien la pregunta, pero para agregar usuarios que tengan acceso a tu servidor ftp, solo debes crearlos en el servidor

    $ sudo useradd -d /home/usuario1 -s/bin/bash usuario1 #creamos el usuario
    $ sudo passwd usuario1 #asignamos su password

    No sé si es eso lo que requieres.

    Saludos.

  25. SID Dice:

    K|Ke como lo habia espuesto antes, necesito creo un ftp server en ubuntu con varios usuarios sin crear las carpetas de los usuario sino que estos usuario sean virtuales solo para el ftp, espero haberme explicado bien y gracias por tus respuestas

    Salu2.-

  26. K|Ke Dice:

    Hola, creo que la mejor opción es permitir acceso anonymous:

    Saludos.

  27. Juan Dice:

    que tal K|Ke
    1° tu manual es muy pero muy bueno y
    2° Mira instale el server ftp pero al tratar de conectarme tanto con usuario y como anonimo me da el mismo error que :
    Estado: Conectando a 192.168.0.13:21…
    Estado: Falló intento de conexión con “ECONNREFUSED – Connection refused by server”.
    Error: No se pudo conectar al servidor.

    y no conecta, cualquier ayuda sirve gracias de antemano.

  28. Juan Dice:

    Ahh y se me olvida decir que lo probe en windows y ubuntu y me sale el mismo error.

    gracias otra vez

  29. K|Ke Dice:

    Hola Juan, el error que mencionas me hace pensar que tienes el puerto 21 de tu servidor cerrado, puedes verificar esto primeramente y luego vemos si persiste, revisamos el archivo de configuración.

    Saludos.

  30. Juan Dice:

    Gracias por la respuesta pero ya solucione el problema.

    solo era que tenia habilitada la opcion de IPv6 le cambie a NO y funcion perfectamente.

    gracias otra vez.

  31. Nacho Garcia Dice:

    Hola, amigo.
    Como veo que controlas, me gustaria saber como le digo al ftp server de ubuntu que el usuario XXX (creado muy facilmente con tu manual, y funcionando) tenga acceso a TAL carpeta y se quede locked en ella, no pueda browsear el resto del disco. No quiero hacerlo con permisos sobre las carpetas, sino que sea el ftp server el que le bloquee en esa carpeta en concreto. ¿me he explicado?
    Gracias, puedes contestarme a garcianacho arroba terra.es
    Un saludo:

    Nacho.

  32. K|Ke Dice:

    hola Nacho, respecto a tu consulta, de modo predeterminado los usuarios del sistema que se autentiquen tendrán acceso a otros directorios del sistema fuera de su directorio personal. Si se desea recluir a los usuarios a solo poder utilizar su propio directorio personal, puede hacerse fácilmente con el parámetro:

    chroot_local_user

    que habilitará la función de chroot() y los parámetros chroot_list_enable y
    chroot_list_file para establecer el archivo con la lista de usuarios que quedarán excluidos de la
    función chroot().

    chroot_local_user=YES
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

    Con lo anterior, cada vez que un usuario local se autentique en el servidor FTP, solo tendrá acceso
    a su propio directorio personal y lo que este contenga. No olvide crear el fichero /etc/vsftpd/vsftpd.chroot_list, ya que de otro modo no arrancará el servicio vsftpd.

    touch /etc/vsftpd/vsftpd.chroot_list

    Saludos.

  33. Nacho Dice:

    Gracias por la rapida respuesta, amigo.
    Sin embargo, hecho todo eso y vuelto a reiniciar el servicio, los usuarios pueden navegar a su gusto por todo el disco. No ha funcionado.
    ¿Es que hay que añadir algo de contenido en el fichero vsftpd.chroot_list?
    Gracias y perdona mi novatez.
    Un saludo:

    Nacho.

  34. K|Ke Dice:

    Hola Nacho, claro en el archivo vsftpd.chroot_list, debes agregar los usuarios a enjaular.

    $ sudo echo usuario >> /etc/vsftpd.chroot_list

    Saludos.

  35. Davis Dice:

    Saludos, primero que nada, el tuto esta muy bien, pero tengo problemas, ya hice todo, instale el server, lo configure, lo reinicie, cree la cuenta para que se conectaran por ftp, tengo abiertos los puertos 20,21 y 22.

    Pero al conectarme en otra pc con un cliente FTP, simplemente no conecta, se queda esperando siempre.

    Pd. ya cree el archivo vsftpd.chroot_list (desde nautilus en super usuario) y lo edite desde alli, ya que, la instruccion sudo echo usuario >> /etc/vsftpd.chroot_list me marca siempre “Permiso denegado”

    Ando un poco perdido, desde que puerto tengo que poner cuando se conecte el cliente FTP ?

  36. K|Ke Dice:

    Hola Davis, bien respecto a lo que mencionas el puerto 20 y 21 está bien, no obstante si estás tras un router verifica que los puertos también estén abiertos en este. Respecto al puerto 22, no es necesario abrirlo, ya que este puerto se utiliza normalmente con los servidores SSH.

    En el archivo de configuración de tu servidor ftp, agrega lo siguient:

    pasv_promiscuous=YES

    Saludos.

  37. Francisco Dice:

    que tal buenas noches, soy nuevo el ubuntu, y muy bien la explicacion para levantar el servicio de FTP, hice todos los pasos que comentas y todo perfecto con mis usuarios, pero tengo una pregunta tengo un usuario que quiere modificar la pagina web via ftp como puedo darles los persmisos para que apunte a la carpeta /var/www y pueda modificar la pagina, gracias por tus comentarios

  38. hector Dice:

    K|Ke un saludo y gracias por el manual antes de probarlo me gustaria saber lo siguiente una vez instalado el servidor ftp esta clara la forma de acceder a el via lan, me explico dentro de la red de mi trabajo tenemos como 60 maquinas y el acceso a internet es via un router, las pcs de mi trabajo tienen todas Ips estaticas incluido el servidor (ejm: 192.168.10.xx) entonces como hago para acceder desde afuera por ejemplo desde mi casa al servidor ftp, cual seria la direccion a la q deberia de conectarme con cualquier manejador de ftp (filezilla, totalcommander, etc). de antemano gracias por la respuesta.

Deje una respuesta

XHTML: Usted puede usar estos tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>