¿Deshabilitar operaciones fuera del directorio de inicio del usuario con chroot jail?

¿Deshabilitar operaciones fuera del directorio de inicio del usuario con chroot jail?

Estoy intentando restringir a un usuario a un directorio específico llamado gclegalusando una cárcel chroot. He descomentado la línea en el /etc/vsftpd.confarchivo.

chroot_local_user=YES

Creó un nuevo usuario llamado kg:

$ sudo groupadd xenomai
$ sudo useradd -d /var/www/html/gclegal -g xenomai kg
$ sudo passwd kg 

Con esta configuración puedo iniciar sesión a través de vsftpd con kgel usuario, pero también puedo volver a los directorios principales y modificarlos hasta /var/www/html.

¿Cómo puedo desactivar todas las operaciones fuera del hogar del usuario ( /var/www/html/gclegal)?

Respuesta1

A partir de la vsftpdversión 2.2.2, hay dos opciones para mantener a los usuarios en una chrootcárcel:

  • chroot_list_enable

Simplemente agregue usuarios a la chrootlista, por ejemplo ( /etc/vsftpd/chroot_list), que desea colocar en un archivo chroot jail.

  • chroot_local_user

Esto colocará a todos los usuarios locales en una chrootcárcel,sin embargo, si esto está configurado entonces se chroot_listconvierte en una lista de usuarios queNOir en un chroot jail.

Por lo tanto, verifique que su lista no contenga usuarios kgsi los ha chroot_local_user=YESconfigurado.

Obviamente reinicie el vsftpddemonio después de realizar cambios de configuración.

Extracto de man vsftpd.conf

   chroot_list_enable
          If activated, you may provide a list of local users who are placed in a chroot() jail  in  their  home  directory  upon  login.  The  meaning  is  slightly  different  if
          chroot_local_user  is set to YES. In this case, the list becomes a list of users which are NOT to be placed in a chroot() jail.  By default, the file containing this list
          is /etc/vsftpd/chroot_list, but you may override this with the chroot_list_file setting.

          Default: NO

   chroot_local_user
          If set to YES, local users will be (by default) placed in a chroot() jail in their home directory after login.  Warning: This option has security implications, especially
          if  the  users  have  upload permission, or shell access. Only enable if you know what you are doing.  Note that these security implications are not vsftpd specific. They
          apply to all FTP daemons which offer to put local users in chroot() jails.

          Default: NO

He configurado vsftpd para chrootlos usuarios y estas son las /etc/vsftpd.confconfiguraciones que utilicé ( Ubuntu 14.04):

listen=YES
anonymous_enable=NO
local_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_enable=YES
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
allow_writeable_chroot=YES

NOTA: Asegurar /etc/vsftpd.chroot_listo /etc/vsftpd/chroot_listestán vacíos.


Una vez que lo haga funcionar, si desea realizar un seguimiento de ftplos inicios de sesión, puede configurarlos session_support=YESy estos deberían aparecer usando el lastcomando:

username   vsftpd:12025 IP address     Tue Oct 14 14:05 - 14:10  (00:05)
username   vsftpd:12011 IP address     Tue Oct 14 14:04 - 14:05  (00:00)

NOTA: la compatibilidad con utmp y wtmp solo se proporciona con compilaciones habilitadas para PAM.

Respuesta2

Configuré selinux permissivey reinicié vsftpd.service, lo que solucionó el problema.

información relacionada