VSFTPD como o chroot não faz o chroot dos usuários em / home?

3

Eu preciso de chroot de todos os usuários locais para seus diretórios iniciais, mas um usuário deve ter acesso a todos os diretórios de usuários. Se eu colocar admin_user em chroot_list_file ele tem acesso para todo o sistema de arquivos. Eu quero restringir o acesso para ele apenas para /home , mas quando ele entrar no servidor FTP seu diretório padrão deve ser /home/admin_user . Como pode conseguir isso? Eu tenho a instalação vsftpd com a seguinte configuração:

# /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=002
dirmessage_enable=YES
xferlog_enable=YES
dual_log_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
max_clients=0
max_per_ip=0

# /etc/vsftpd/chroot_list
admin_user
    
por AIK 17.07.2014 / 08:47

1 resposta

2

Você usa a capacidade chroot () do VSFTP para restringir os usuários aos seus diretórios home ou não.

Se você não o fizer, todo o sistema de arquivos será exposto e você só poderá contar com as permissões corretas do sistema de arquivos para proteger seus dados não públicos.

Tendo dito isso, o vsftp tem uma opção para (de certa forma) restringir os movimentos dos usuários com a diretiva deny_file :

 deny_file
          This option can be used to set  a  pattern  for  filenames  (and
          directory names etc.) which should not be accessible in any way.
          The affected items  are  not  hidden,  but  any  attempt  to  do
          anything  to  them  (download,  change  into  directory,  affect
          something within directory etc.) will be denied. This option  is
          very simple, and should not be used for serious access control -
          the filesystem's  permissions  should  be  used  in  preference.
          However,  this  option  may  be  useful ... ... 

Crie o deny_file, por exemplo ls -d /*/ |grep -v home > /etc/vsftpd/forbidden_path

Melhor restringir o deny_file , de forma que ele se aplique somente ao seu admin_user e nem todos os usuários:

Adicione a diretiva user_config_dir=/etc/vsftpd/user.overrides/ à configuração principal vsftpd.conf e crie a substituição específica do usuário:

# /etc/vsftpd/user.overrides/admin_user
# admin_user is excluded from chroot() but restrict his access to /home
deny_file=/etc/vsftpd/forbidden_path

e reinicie o servidor ftp e o teste do comportamento é o esperado.

    
por 17.07.2014 / 10:21