Desativa operações fora do diretório pessoal do usuário com o chroot jail?

5

Estou tentando restringir um usuário a um diretório específico chamado gclegal usando uma cadeia chroot. Eu descomentei a linha no arquivo /etc/vsftpd.conf

chroot_local_user=YES

Criado um novo usuário chamado kg :

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

Com essa configuração, posso fazer o login por meio do vsftpd com kg user, mas também posso navegar de volta para os diretórios pais e modificá-los até /var/www/html .

Como posso desativar todas as operações fora da casa do usuário ( /var/www/html/gclegal )?

    
por UserK 14.10.2014 / 16:40

2 respostas

7

Trabalhando a partir da vsftpd versão 2.2.2, há duas opções para manter os usuários em uma chroot jail:

  • chroot_list_enable

Basta adicionar usuários à lista chroot , por ex. ( /etc/vsftpd/chroot_list ) que você deseja colocar em chroot jail .

  • chroot_local_user

Isso colocará todos os usuários locais em uma chroot jail, no entanto , se isso for definido, então o chroot_list se tornará uma lista de usuários que NÃO em chroot jail .

Portanto, verifique se sua lista não contém o usuário kg se você tiver chroot_local_user=YES configurado.

Obviamente, reinicie o daemon vsftpd depois de fazer alterações na configuração.

Excert do homem 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

Configurei o vsftpd para chroot usuários e estas são as configurações de /etc/vsftpd.conf que usei ( 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: Certifique-se de que /etc/vsftpd.chroot_list ou /etc/vsftpd/chroot_list estejam vazios.

Uma vez que você esteja trabalhando, se quiser acompanhar ftp logins, você pode definir session_support=YES e estes devem ser aprovados usando o comando last :

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 - o suporte a utmp e wtmp é fornecido apenas com compilações ativadas pelo PAM.

    
por 14.10.2014 / 17:10
-1

Eu configurei o selinux como permissive e reiniciei vsftpd.service , o que resolveu o problema.

    
por 13.12.2016 / 15:50