使用 chroot Jail 停用使用者主目錄以外的操作?

使用 chroot Jail 停用使用者主目錄以外的操作?

gclegal我正在嘗試使用 chroot Jail將使用者限制在名為的特定目錄中。我已取消註解/etc/vsftpd.conf文件中的行

chroot_local_user=YES

建立了一個名為 的新使用者kg

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

透過此配置,我可以使用kg使用者透過 vsftpd 登錄,但我也可以瀏覽回父目錄並修改它們,直到/var/www/html.

如何停用使用者 ( /var/www/html/gclegal) 家以外的所有操作?

答案1

vsftpd2.2.2 版本開始,有兩種將使用者關在chroot監獄中的選項:

  • chroot_list_enable

只需將用戶添加到chroot列表中/etc/vsftpd/chroot_list,例如您想要放入chroot jail.

  • chroot_local_user

這將把所有當地用戶關進chroot監獄,然而,如果設定了此選項,則將chroot_list成為使用者的列表不要進去 a chroot jail.

kg因此,如果您已配置,請檢查您的清單不包含使用者chroot_local_user=YES

顯然,vsftpd在進行配置變更後重新啟動守護程序。

摘自 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

我已經為使用者配置了 vsftpd chroot,這些是/etc/vsftpd.conf我使用的設定 ( 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

筆記: 確保/etc/vsftpd.chroot_list/etc/vsftpd/chroot_list為空。


一旦你讓它工作,如果你想追蹤ftp登錄,那麼你可以設置session_support=YES,然後這些應該使用以下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)

注意 - utmp 和 wtmp 支援僅在啟用 PAM 的版本中提供。

答案2

我將 selinux 設定為permissive並重新啟動vsftpd.service,這解決了問題。

相關內容