vsftpd의 chroot_local_user가 안전하지 않은 이유는 무엇입니까?


20

VPS에서 vsftpd를 설정하고 있으며 사용자가 ftp 홈 디렉토리를 떠나는 것을 원하지 않습니다. 익명이 아닌 local_user ftp를 사용하고 있으므로 다음을 추가했습니다.

chroot_local_user = YES

많은 포럼 게시물을 읽었으며 이것이 안전하지 않다는 것을 읽었습니다.

  1. 왜 이것이 안전하지 않습니까?
  2. ssh를 사용하여 VPS에 가입했기 때문에 이것이 안전하지 않은 경우 sshd에서 이러한 사용자를 잠글 수 있습니다.
  3. vsftpd의이 동작을 해결하기위한 다른 옵션이 있습니까? (시스템의 "world"에 대한 모든 폴더 / 파일에 대한 읽기 권한을 제거하고 싶지 않습니다.)

답변:


20

원하는 답변에 대한 VSFTPD의 FAQ 를 확인하십시오 . 아래는 귀하의 질문에 대답 할 중요한 발췌 부분입니다.

Q) 도와주세요! "chroot_local_user"옵션에서 언급 된 보안 관련 사항은 무엇입니까?

A) 먼저 다른 ftp 데몬도 동일한 의미를 갖습니다. 일반적인 문제입니다. 문제는 그렇게 심각하지는 않지만 다음과 같습니다. 일부 사용자는 전체 셸 액세스 권한이없는 FTP 사용자 계정을 가지고 있습니다. 이러한 계정으로도 파일을 업로드 할 수 있다면 약간의 위험이 있습니다. 나쁜 사용자는 이제 홈 디렉토리 인 파일 시스템 루트를 제어 할 수 있습니다. ftp 데몬은 일부 구성 파일을 읽게 할 수 있습니다 (예 : / etc / some_file). chroot ()를 사용하면이 파일은 이제 사용자가 제어 할 수 있습니다. 이 영역에서는 vsftpd가주의해야합니다. 그러나 시스템의 libc는 로케일 구성 파일 또는 기타 설정을 열 수 있습니다 ...


고마워, 나는 나 자신을 전부 몰랐다. 무언가를 배웠다! +1
Yanick Girouard

4
실제로이 걱정스러운 문장을 이해하지 못하기 때문에 FAQ를 읽은 후 여기에 왔습니다. "ftp 데몬은 일부 구성 파일을 읽을 수 있습니다 (예 : / etc / some_file). chroot ()를 사용하면이 파일은 현재 사용자.". 아마도 이것은 vsftpd보안 결함 (a la buffer overflow)이있는 경우에만 해당됩니다. vsftpd사용자를 홈 디렉토리에 chroot 한 상태에서 실행 하면이 시나리오가 어떻게 더 가능성이 높아 집니까? 설명하십시오 ...
sxc731 21

4

문제는 로컬 계정을 사용하거나 쉘 로그인에서 해당 계정을 비활성화 할 수 없다는 것입니다. 로그인 쉘을 / bin / nologin으로 설정하면 vsftpd로 로그인 할 수 없습니다.

더 좋고 안전한 FTP 데몬은 Pure-ftpd입니다. EPEL 리포지토리에서 사용할 수 있으며 가상 사용자를 만들 수 있습니다. 서버는 공통 사용자 / 그룹을 사용하여 사용자의 홈 폴더에 대한 모든 권한을 설정하고 권한을 처리하기 위해 로그인 할 때 가상 사용자를 해당 사용자에게 "매핑"합니다. 더 안전하며 openssh 로그인 보안을 처리 할 필요가 없습니다.

Pure-ftpd는 또한 할당량, 비율 등과 같은 많은 기능을 지원합니다. vsftpd보다 훨씬 낫다.

다음은 설치 및 기본 가상 사용자 구성 방법에 대한 간단한 자습서입니다. http://blog.namran.net/2011/05/04/how-to-setup-virtual-ftp-server-using-pure-ftpd- 인센 토스 /

전체 문서를 읽으면 가상 사용자를 만들 때 -d 스위치가 해당 사용자의 해당 디렉토리에 대한 자동 chroot라는 것을 알 수 있습니다.


AllowUsers user1 user2내 sshd_config 에서 지시문을 사용합니다 . 여기서 ftp_user1이 ssh로 로그인 할 수는 없지만 여전히 ftp_user1 사용자는 ftp로 로그인 할 수 있습니다. 그래서 의도 된대로 작동하지만 여전히 내 주요 질문은 열려 있습니다. 왜 안전하지 않습니까?
p1100i

4
그렇습니다! "비쉘"을 / etc / shells에 추가하기 만하면됩니다. 많은 시스템에서 / bin / false 또는 / bin / nologin이 / etc / shells에 있습니다. 쉘이 있다면, vsftpd는 chroot_local_user가 활성화 된 상태에서 실제로 로그인 할 수있게합니다.
Frands Hansen 2012

1
나는 그때 수정되었습니다. 지적 해 주셔서 감사합니다!
Yanick Girouard
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.