500 OOPS: 로그인 시 vsftpd chroot

500 OOPS: 로그인 시 vsftpd chroot

누군가가 이런 질문을 한 걸 알아요많은과거이지만 내 문제는 조금 다른 것 같습니다. 저는 CentOS 7 서버에서 이를 사용하고 있으며 .ftp 사용자를 호출했으며 해당 사용자의 홈 디렉터리는 다음과 같습니다 vsftpd. chroot_local_user로그인을 시도하면 다음과 같은 메시지가 나타납니다.YES/etc/vsftpd/vsftpd.confuser/home/user

500 OOPS: chroot
Login failed.
421 Service not available, remote server has closed connection

나는 해결책을 찾고 있었지만 사람들은 단지 그것을 이해하는 것 같았고 refusing to run with writable root inside chroot()이것은 그렇지 않은 것 같습니다. 나는 두 가지를 시도했습니다 :

1.삭제모두쓰기 권한 /home/user:

[user@vps226220 ~]$ ls -al /home | grep user
dr-x------.  4 user      user      4096 Dec 12 00:56 user

2. then allow_writeable_chroot=YES에 추가하세요 ./etc/vsftpd/vsftpd.confsudo systemctl restart vsftpd

두 경우 모두 아무것도 변경되지 않았으며 여전히 동일한 오류가 발생했습니다. 내가 설정하면 chroot_local_user=NO제대로 작동하지만 물론 이것은 나에게 허용되는 구성이 아닙니다.

vsftpd버전은 3.0.2이므로 이를 지원해야 한다고 생각합니다 allow_writable_chroot.

이 문제를 어떻게 해결할 수 있나요?

답변1

최신 버전의 CentOS/RHEL에서는 이 ftp_home_dir옵션이 제거되었으므로 ftpd_full_access.

 # setsebool -P ftpd_full_access on

링크:

RHEL 7.3에는 ftp_home_dir이 없습니다.

FTP의 종말? "ftp_home_dir" 문제

답변2

이것은 SELinux 문제입니다.

# setsebool -P ftp_home_dir 1

답변3

호스트 A의 사전 프로그래밍된 로봇 사용자가 호스트 B의 사전 프로그래밍된 위치로 파일을 푸시해야 하는 상황이 있습니다. 봇 사용자가 다른 위치로 파일을 푸시하거나 다른 위치에서 파일을 가져오려고 하는 것에 대해 걱정할 필요가 없습니다.

또한 프로세스가 "cd"해야 하는 미리 프로그래밍된 쓰기 가능한 하위 디렉터리를 수용하기 위해 코드를 변경하는 것을 꺼려했습니다.

그래서 우리는 구성 매개변수 "chroot_local_user"를 "NO"로 설정하여 이 문제를 해결했습니다.

답변4

이 오류가 발생한 후 언급한 모든 작업을 수행했지만 여전히 오류가 발생합니다. 로그를 확인하고 다음 단계를 적용하여 문제를 해결했습니다.

  1. ausearch -c 'vsftpd' --raw | audit2allow -M my-vsftpd
  2. semodule -i my-vsftpd.pp

두 번째 명령 이후 my-vsftpd.pp my-vsftpd.te 파일이 내 ftp 호스트용 파일 디렉터리로 생성되었으며, 이는 다음과 같이 ftp 호스트용으로 생성됩니다.

sudo adduser testuser
sudo passwd testuser
echo "testuser" | sudo tee –a /etc/vsftpd/user_list   (for conf file )   
sudo mkdir –p /home/testuser/ftp/upload
sudo chmod 777 /home/testuser/ftp
sudo chmod 777 /home/testuser/ftp/upload
sudo mkdir –p /home/testuser/ftp/upload

관련 정보