Instalar servidor FTP y restringir permisos a los usuarios

Instalar servidor FTP y restringir permisos a los usuarios

COMPARTIR 0 TWITTEAR

Servidor FTP

En ocasiones necesitamos compartir archivos en nuestro servidor, con el control de permisos por medio de usuarios. Especialmente en servidores web se utiliza el FTP para subir los archivos de la web que se encuentra en el servidor.

Utilizaremos vsftpd, es un servidor FTP para sistemas tipo Unix, incluyendo Linux, y su nombre proviene de las siglas en inglés Very Secure FTP Daemon. En comparación con otros programas de servidor ftp, vsftpd está construido para ser especialmente eficaz y muy seguro.

Instalar vsftpd

sudo apt-get install vsftpd

Configuración

Editaremos el archivo de configuración de vsftpd, tomando en cuenta los puntos mas importantes.

nano /etc/vsftpd.conf

Los parámetros que modificaremos:

  • listen = YES : Para que se inicie con el sistema.

  • anonymous_enable = NO : No permitimos que usuarios anónimos puedan conectarse a nuestro servidor. Es por seguridad.

  • local_enable = YES : Para poder conectarse con los usuarios locales del servidor donde está instalado.

  • write_enable = YES : Si quieres que los usuarios puedan escribir y no sólo descargar cosas.

  • local_umask = 022 : Esta máscara hace que cada vez que subas un archivo, sus permisos sean 755. Es lo más típico en servidores FTP.

  • chroot_local_user = YES

  • chroot_list_enable = YES : Sirven para que los usuarios locales puedan navegar por todo el árbol de directorios del servidor. Evidentemente esto sólo queremos permitírselo a ciertos usuarios, para ello tenemos el siguiente parámetro.

  • chroot_list_file = /etc/vsftpd.chroot_list : Indicamos el fichero donde están listados los usuarios que pueden navegar hacía arriba por los directorios del servidor, lo normal es que sea el administrador del servidor.

Crear grupo de usuario para FTP

En este caso los usuarios que se conectarán no tendrán acceso al servidor vía SSH, por lo tanto debemos darles permisos especiales.

sudo groupadd ftp

Creamos una shell fantasma para que no puedan entrar a la consola del servidor:

sudo mkdir /bin/ftp

Editamos el listado de shells del sistema:

nano /etc/shells

Agregamos nuestra shell fantasma:

/bin/ftp

Usuario que pertenecerá al grupo FTP

Debemos crear la carpeta del usuario en el servidor, será donde tendrá acceso vía FTP y asignamos los permisos correctos.

mkdir /home/ftp/usuarioftp
chmod -R 777 /home/ftp/usuarioftp

Creamos el usuario que pertenece al grupo FTP

sudo useradd -g ftp -d /home/ftp/usuarioftp -c "Nombre del Usuario" usuarioftp

Entendamos los parámetros que usamos en la línea anterior:

  • -g ftp = el usuario pertenece al grupo ftp.
  • -d /home/ftp/usuarioftp = El directorio principal del usuario es /home/ftp/usuarioftp.
  • -c “Nombre del Usuario” = el nombre completo del usuario.
  • usuarioftp = la última palabra será el nombre de usuario

Creamos la contraseña para el usuario:

sudo passwd usuarioftp

Enjaular al usuario

Esto significa que el usuario no podrá escalar en la jerarquía del directorio y solamente se mantendrá en si directorio.

Buscamos nuestro usuario recién creado en:

nano /etc/passwd

Copiamos la línea que podrá verse algo así:

usuarioftp:x:1004:118:Nombre del Usuario:/home/ftp/usuarioftp:/bin/ftp

Luego la pegamos en la última línea de etse archivo:

nano /etc//vsftpd.chroot_list

Una vez realizados todos los cambios reiniciamos el servidor de FTP:

/etc/init.d/vsftpd restart

Ahora ya tenemos un servidor de FTP funcional y con los privilegios adecuados para que nuestros usuario puedan almacenar archivos debidamente separados.

Archivado en Archivos, FTP, permisos, Servidor, Usuarios, vsftpd
COMPARTIR 0 TWITTEAR

Comentarios (6)

Usa tu cuenta de Facebook para dejar tu opinión.

  • […] Para evitar que nuestro servidor FTP tenga este tipo de ingreso podemos ver este articulo. […]

  • […] La transmisión de archivos de nuestro ordenador a nuestro Android es algo que está a la orden del día. Con mucha frecuencia tenemos que conectar nuestro teléfono a nuestro ordenador para pasarnos cualquier tipo de archivo, como música, fotos, vídeos, etc. Todo esto lo hacemos conectando nuestro teléfono mediante el cable Usb, pero ¿es posible hacer esto sin ningún tipo de cable y a través de internet? A continuación vamos a ver cómo podemos administrar los archivos de nuestro Android sin cable y a través de internet mediante una transmisión por FTP. […]

  • Jorge Diaz dice:

    Gracias por el aporte!!!!!!

  • Josan dice:

    Hola, he seguido los pasos y no logro conectar con el Filezilla que esta pasando?

    Archivo /etc/Shell

    /etc/shells: valid login shells

    /bin/sh /bin/dash /bin/bash /bin/rbash /usr/sbin/nologin /bin/ftp

    Archivo etc/vsftpd.conf listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES ftpd_banner=Bienvenido to blah FTP service. chroot_local_user=YES chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd.chroot_list secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

    Archivo /etc/vsftpd.chroot_list /usuarioftp:x:1002:126:Jose:/home/ftp/usuarioftp:/bin/ftp ubuntu14

  • Ricardo Martinez dice:

    Saludos José. Muy interesante y útil tu aporte, más sin embargo, tengo aún una duda para la generación de cuentas ftp dentro de un VPS, haciendo uso de la cónsola para ese fin. En mi caso particular, dentro del usuario /home puedo ver las 3 cuentas o dominios que tengo alojados en el VPS, y quisiera saber cual es el procedimiento para la creación de cuentas ftp, y si mi petición no es considerada un abuso, como hacer para hacer un respaldo de un par de bases de datos MySql que tengo dentro de uno de esos dominios. El inconveniente es que el VPS no lo he manejado mediante panel de administración, y de allí, los inconvenientes que te he manifestado. Gracias mil por tu apoyo.

  • […] -http://rootear.com/ubuntu-linux/instalar-servidor-ftp Configuración de el fichero con los usuarios locales que pueden iniciar sesión […]

  • juan dice:

    Necesito Montar un servidor FTP con usuario fantasma y SSL en REDHAT ayuda porfavor

  • Ignacio dice:

    Hola, te hago una consulta. Tengo un problema con enjaular a los usuarios. En realidad cuando se conecta algun usuario enjaulado el cliente ftp me lo ubica en el directorio correspondiente. Pero resulta que ese usuario puede subir y bajar por todos los directorios, a pesar de que esta enjaulado. Alguna solucion para esto?

  • winston smith dice:

    El archivo /etc//vsftpd.chroot_list no exite. Se debe crear?

  • Ignacio dice:

    Hola. Si el archivo en caso de que no exista, deberás crearlo. Yo, en mi configuración del vsftpd no eh podido hacer funcionar el enjaulamiento de los usuarios con el vsftpd.chroot_list. Por que en realidad, cuando lo usaba, al conectarme con un cliente, si bien me posicionaba en la carpeta del usuario, el mismo tenia acceso a las carpetas recursivas. Por lo que lo solucione con el vsftpd.user_list.

    Mi configuracion quedo asi:

    banned_email_file=/etc/vsftpd.banned_emails

    chroot_local_user=YES

    chroot_list_enable=YES

    chroot_list_file=/etc/vsftpd.chroot_list

    chroot_list_file es para colocar los usuarios que si pueden salir de home

    local_root=/home/ftp/ userlist_enable=YES tcp_wrappers=YES userlist_deny=NO

    Con esta configuración lo pude hacer andar. Saludos.

  • […] puede crear uno desde nuestro propio ordenador, tal y como ya contamos en nuestro artículo sobre instalar servidor FTP y restringir permisos a los usuarios. Sin embargo, a veces puede ser interesante contratar un servidor FTP alojado de forma externa a […]

  • […] Info sobre parámetros de vsftpd.conf […]

Publica tu opinión usando tu cuenta de Facebook.

¿Te ha gustado? ¡No te pierdas nada más!

follow us in feedly

Nuestros blogs