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 

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

/var/www/html/gclegaluser() 집 외부의 모든 작업을 비활성화하는 방법은 무엇입니까 ?

답변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

사용자에 대해 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문제가 해결되었습니다.

관련 정보