내가 달성하고 싶은 것은 vsFTPd 서버가 다른 설치 디스크의 다른 디렉터리를 사용하고 TLS/SSL을 강제할 때 각 사용자를 해당 디렉터리에 가두는 것입니다.
현재 저는 vsFTPd 서버를 실행 중이고 각 사용자의 로컬 /home/$USER 디렉토리에 chroot Jail을 가지고 있습니다. 이는 TLS/SSL이 구성된 경우에 적용됩니다. 이 시점부터 모든 것이 괜찮습니다.
구성 파일
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_std_format=YES
chroot_local_user=YES
allow_writeable_chroot=YES
user_sub_token=$USER
local_root=/home/$USER
#local_root=/media/ftp/data
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
pasv_min_port=30000
pasv_max_port=31000
userlist_file=/etc/vsftpd/user_list
userlist_deny=NO
#allow_anon_ssl=NO
#force_local_data_ssl=YES
#force_local_logins_ssl=YES
#rsa_cert_file=/etc/vsftpd/vsftpd.pem
#rsa_private_key_file=/etc/vsftpd/vsftpd.pem
#ssl_enable=YES
local_root 경로를 다음과 같이 변경할 때까지는 모든 것이 괜찮았습니다.
local_root=/media/ftp/data
/ftp는 디스크의 마운트 지점입니다. /data는 모든 데이터와 사용자를 위한 디렉토리입니다.
이제 나는 chroot가 매우 이상한 일을 한다는 것을 이해하지만 온라인에서 읽은 몇 가지 다른 것을 시도했지만 여전히 성공하지 못했습니다.
제가 시도한 몇 가지 사항은 다음과 같습니다.
- TLS/SSL을 완전히 주석 처리하고 이 디렉터리 문제가 해결될 때까지 config 파일에 그대로 두었습니다.
- chroot_local_user=YES,allow_writeable_chroot=YES, user_sub_token=$USER, local_root=/home/$USER를 주석 처리하고 local_root=/media/ftp/data를 변경했습니다. 이로 인해 filezlla를 사용할 때 "디렉토리를 변경할 수 없습니다"라는 오류가 발생합니다. 지금 생각해 보니 단순한 권한 오류인 것 같은데, 테스트에 사용된 폴더를 모두 777로 변경해 봤는데 오류에는 도움이 되지 않았습니다.
- 사용자 홈 디렉토리를 변경하려고 시도했는데 위와 같은 오류가 발생했습니다.
- SELINUX를 껐다가 다시 켜보니 동일한 결과가 반환되었습니다.
- 또한 setsebool 설정을 시도했지만 이는 더 이상 사용되지 않지만 어쨌든 테스트한 결과 동일한 오류가 발생했습니다.
나는 이것에 꽤 깊이 빠져 있고 모든 것이 막연하므로 외부의 어떤 생각이라도 좋을 것입니다! ?
건배
편집 1:
Filezilla 오류: 500 OOPS: 디렉토리를 변경할 수 없습니다: /media/ftp/data