chroot 감옥을 사용하여 사용자 홈 디렉터리 외부의 작업을 비활성화하시겠습니까?

chroot 감옥을 사용하여 사용자 홈 디렉터리 외부의 작업을 비활성화하시겠습니까?

gclegalchroot 감옥을 사용하여 특정 디렉터리로 사용자를 제한하려고 합니다 . /etc/vsftpd.conf파일 에서 해당 줄의 주석 처리를 해제했습니다.

chroot_local_user=YES

다음이라는 새 사용자를 만들었습니다 kg.

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

이 구성을 사용하면 사용자로 vsftpd를 통해 로그인할 수 있지만 kg상위 디렉터리로 다시 찾아보고 /var/www/html.

사용자( /var/www/html/gclegal)의 집 외부에서 모든 작업을 비활성화하려면 어떻게 해야 합니까?

답변1

버전 2.2.2 부터 작업하면 vsftpd사용자를 감옥에 가두는 두 가지 옵션이 있습니다 chroot.

  • chroot_list_enable

예를 들어 에 배치하려는 chroot( ) 사용자를 목록에 추가하기만 하면 됩니다 ./etc/vsftpd/chroot_listchroot jail

  • chroot_local_user

이렇게 하면 모든 로컬 사용자가 chroot감옥에 갇히게 됩니다.하지만, 이것이 설정되면 다음 chroot_list사용자 목록이 됩니다.하지 마라.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

chroot나는 사용자 에게 vsftpd를 구성했으며 다음은 /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문제가 해결되었습니다.

관련 정보