Vsftp 설정 문의입니다

안녕하세요

리눅스 초보유저입니다.

vsftp를 설정하여 테스트를 하는 중에 이상한 점이 있어서 질문 드립니다.
고수님들의 답변 부탁드립니다^^

/etc/vsftpd.conf 파일의 설정 내용입니다.

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
idle_session_timeout=600
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem

위와 같이 설정을 했는데요
ftp에 접속을 하면 상위 디렉토리가 다 보입니다.
제가 알고 있기로는 chroot_local_user의 값을 YES를 하면 안보여야 하는 것으로 알고 있습니다.
하지만 상위 디렉토리가 너무 잘보이고 이동도 되는 아주 슬픈 상태입니다…ㅠ
혹시 아시는 분있으면 답변 좀 주세요~~

chroot_list_enable=YES
이부분을 주석처리하시던가 chroot_list_enable=NO라고 해보세요.

[quote="protochaos":2c0u4ecu]chroot_list_enable=YES
이부분을 주석처리하시던가 chroot_list_enable=NO라고 해보세요.[/quote:2c0u4ecu]

chroot_list_enable=NO 로 설정하면 로그인이 안됩니다…ㅠㅠㅠㅠ

설정보시면 chroot_list_file이라는 것이 있습니다.
이것은 chroot사용자 목록파일이고,
chroot란 특정디렉토리를 /디렉토리로 교체하여, 그 상위디렉토리는 볼 수 도, 접근할 수 도 없게 합니다.

chroot_local_user=YES가 되면… 사용자들에게 chroot를 가능하게 합니다.
chroot_list_enable=YES가 되면… 이 목록의 사용자들에게만 적용하게 합니다.

그러니까,
chroot_local_user=YES
chroot_list_enable=YES
==>사용자들은 홈디렉토리로 제한 되고, 예외로, 목록의 사용자들만 홈디렉토리 바깥을 접근할 수 있습니다.

chroot_local_user=YES
chroot_list_enable=NO
==> 사용자들은 홈디렉토리로 제한됩니다.

chroot_local_user=NO
chroot_list_enable=YES
==> 해당 목록의 사용자들만 홈디렉토리로 제한됩니다.

chroot_local_user=NO
chroot_list_enable=NO
==> 사용자들은 모든 디렉토리를 볼 수 있습니다(기본옵션).

/etc/vsftpd/vsftpd.conf에 명시된
chroot_list_file(기본=/etc/vsftpd.chroot_list)에 적힌 사용자목록을 확인해보세요.

또한 chroot관련옵션은 로그인을 거부하는 것이 아닙니다.
로그인거부 목록은 /etc/ftpusers 파일입니다.

그리고, 설정파일 보시면 chroot에 대한 위험성은 경고하고 있네요.
원래 chroot는 관리자권한으로 실행하여야 하기 때문에… 그런 것 같군요.


아 설정을 해보니, 로그인 거부가 아니라 chroot 쓰기모드 생성 실패군요.
이 문제는
sudo chmod a-w 홈디렉토리
이렇게 하시면 chroot시 읽기 전용모드를 사용합니다.

쓰기도 가능하게 하시려면… vsftpd.conf 파일에
allow_writeable_chroot=YES
이렇게 해주시면 됩니다.

vsftpd 버전이 어떻게 되는지요?

저도 이문제 때문에 여기저기 적혀있는대로 해보았지만 재대로 되지 않습니다.

버전업이 되면서 방법이 조금 바뀐듯 하더군요. 제가 설치한 버전은 3.0.2 버전입니다.

참고로 allow_write 어쩌구 이거만 하면 안먹습니다.

제가 해결한 방법은요. 기본설정은 일단 그대로 두시고.

allow_writeable_chroot=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
seccomp_sandbox=NO
session_support=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

위 설정들 참고하셔서 작성하시고 vsftpd 리스타트 해주시구요.
ftp접속할 상위 홈디렉토리 퍼미션 755로 설정해 주시기 바랍니다.

윗분말대로 해도 되는대 그냥 allow_write 어쩌구만 적어주고 퍼미션을 a-w로 주면 접속은 되고, 상위 디렉토리내에 파일을 쓰지 못합니다. 그 하위 디렉토리들에만 쓰기가 됩니다. (물론 퍼미션 설정되있다는 전재하에.) 그래서 설정 이것저것 해보다가 찾은 방법이 위의 설정 방법입니다.

[quote="protochaos":2j2sldan]설정보시면 chroot_list_file이라는 것이 있습니다.
이것은 chroot사용자 목록파일이고,
chroot란 특정디렉토리를 /디렉토리로 교체하여, 그 상위디렉토리는 볼 수 도, 접근할 수 도 없게 합니다.

chroot_local_user=YES가 되면… 사용자들에게 chroot를 가능하게 합니다.
chroot_list_enable=YES가 되면… 이 목록의 사용자들에게만 적용하게 합니다.

그러니까,
chroot_local_user=YES
chroot_list_enable=YES
==>사용자들은 홈디렉토리로 제한 되고, 예외로, 목록의 사용자들만 홈디렉토리 바깥을 접근할 수 있습니다.

chroot_local_user=YES
chroot_list_enable=NO
==> 사용자들은 홈디렉토리로 제한됩니다.

chroot_local_user=NO
chroot_list_enable=YES
==> 해당 목록의 사용자들만 홈디렉토리로 제한됩니다.

chroot_local_user=NO
chroot_list_enable=NO
==> 사용자들은 모든 디렉토리를 볼 수 있습니다(기본옵션).

/etc/vsftpd/vsftpd.conf에 명시된
chroot_list_file(기본=/etc/vsftpd.chroot_list)에 적힌 사용자목록을 확인해보세요.

또한 chroot관련옵션은 로그인을 거부하는 것이 아닙니다.
로그인거부 목록은 /etc/ftpusers 파일입니다.

그리고, 설정파일 보시면 chroot에 대한 위험성은 경고하고 있네요.
원래 chroot는 관리자권한으로 실행하여야 하기 때문에… 그런 것 같군요.


아 설정을 해보니, 로그인 거부가 아니라 chroot 쓰기모드 생성 실패군요.
이 문제는
sudo chmod a-w 홈디렉토리
이렇게 하시면 chroot시 읽기 전용모드를 사용합니다.

쓰기도 가능하게 하시려면… vsftpd.conf 파일에
allow_writeable_chroot=YES
이렇게 해주시면 됩니다.[/quote:2j2sldan]

답장이 늦었습니다.
결과부터 말씀드리면 안되네요~;;;
위에 적어주신데로 설정을 한 후에 접속을 하면
SFTP : Connection error (Socket Error # 10061 Connection refused.) 라고 에러가 발생합니다…ㅠㅠ

[quote="fallboyz":2n10vaxh]vsftpd 버전이 어떻게 되는지요?

저도 이문제 때문에 여기저기 적혀있는대로 해보았지만 재대로 되지 않습니다.

버전업이 되면서 방법이 조금 바뀐듯 하더군요. 제가 설치한 버전은 3.0.2 버전입니다.

참고로 allow_write 어쩌구 이거만 하면 안먹습니다.

제가 해결한 방법은요. 기본설정은 일단 그대로 두시고.

allow_writeable_chroot=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
seccomp_sandbox=NO
session_support=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

위 설정들 참고하셔서 작성하시고 vsftpd 리스타트 해주시구요.
ftp접속할 상위 홈디렉토리 퍼미션 755로 설정해 주시기 바랍니다.

윗분말대로 해도 되는대 그냥 allow_write 어쩌구만 적어주고 퍼미션을 a-w로 주면 접속은 되고, 상위 디렉토리내에 파일을 쓰지 못합니다. 그 하위 디렉토리들에만 쓰기가 됩니다. (물론 퍼미션 설정되있다는 전재하에.) 그래서 설정 이것저것 해보다가 찾은 방법이 위의 설정 방법입니다.[/quote:2n10vaxh]

답장이 늦었습니다.
윗 분과 동일하게
SFTP : Connection error (Socket Error # 10061 Connection refused.) 라고 에러가 발생합니다…ㅠㅠ
어렵네요…
더 찾아봐야겠습니다.
자주 쓰는게 아니니 아직도 익숙지 않은 불편한 느낌이네요…;;;

[quote="flyingmg":3p7lwemr][quote="fallboyz":3p7lwemr]vsftpd 버전이 어떻게 되는지요?

저도 이문제 때문에 여기저기 적혀있는대로 해보았지만 재대로 되지 않습니다.

버전업이 되면서 방법이 조금 바뀐듯 하더군요. 제가 설치한 버전은 3.0.2 버전입니다.

참고로 allow_write 어쩌구 이거만 하면 안먹습니다.

제가 해결한 방법은요. 기본설정은 일단 그대로 두시고.

allow_writeable_chroot=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
secure_chroot_dir=/var/run/vsftpd/empty
seccomp_sandbox=NO
session_support=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

위 설정들 참고하셔서 작성하시고 vsftpd 리스타트 해주시구요.
ftp접속할 상위 홈디렉토리 퍼미션 755로 설정해 주시기 바랍니다.

윗분말대로 해도 되는대 그냥 allow_write 어쩌구만 적어주고 퍼미션을 a-w로 주면 접속은 되고, 상위 디렉토리내에 파일을 쓰지 못합니다. 그 하위 디렉토리들에만 쓰기가 됩니다. (물론 퍼미션 설정되있다는 전재하에.) 그래서 설정 이것저것 해보다가 찾은 방법이 위의 설정 방법입니다.[/quote:3p7lwemr]

답장이 늦었습니다.
윗 분과 동일하게
SFTP : Connection error (Socket Error # 10061 Connection refused.) 라고 에러가 발생합니다…ㅠㅠ
어렵네요…
더 찾아봐야겠습니다.
자주 쓰는게 아니니 아직도 익숙지 않은 불편한 느낌이네요…;;;[/quote:3p7lwemr]

========================================

자주 들어오질 않으니 저도 이제 봤네요 ^^;
SFTP : Connection error (Socket Error # 10061 Connection refused.)
위의 에러는 FTP가 아니라 SFTP 에러 인대요.
SFTP를 사용하시는건지요?
그게 아니라면 FTP 클라이언트에서 SFTP로 프로토콜이나 포트가 선택되어 있는지 확인해 보시고
일반적인 FTP 프로토콜과 포트를 이용해서 접속 시도해 보시기 바랍니다.