티스토리 뷰
vsftp(Very Secure File Transfer Protocol Demon) 설정 시 selinux 관련해서 동작하지 않는 경우 selinux를 끄는 방법 보다 아래와 같이 설정을 변경하는 것을 권장합니다.
기본 설정 파일
/etc/vsftpd/vsftpd.conf
vsftpd 시작
service vsftpd start
selinux 상태 확인
/usr/sbin/getsebool –a
selinux 설정 변경(꼭 -P 옵션을 붙임)
setsebool -P ftp_home_dir on
setsebool -P allow_ftpd_full_access on
ftp 계정 추가
useradd -s /sbin/nologin -d /data/ftpdata/<계정명> <계정명>
usermod -s /sbin/nologin
vsftpd.conf 설정
/etc/vsftpd/vsftpd.conf
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
상위 디렉토리 안 보이게
chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_lis
chroot_list_enable=YES
#local_root=/ftp
local_root — Specifies the directory vsftpd changes to after a local user logs in.
There is no default value for this directive.
문제
ftp 550 Delete operation failed.
해결
setsebool -P allow_ftpd_full_access=1
문제
FTP 접속시 "421 service not available" 라는 에러문구 출력 FTP접속이 안됩니다.
TCP Wrappers 설정 또는 방화벽 설정때문입니다.
위 질문을 참고하자면 FTP서비스는 동작중이지만 접속을 찾지 못한다는 에러문구군요.
이런경우는 십중팔구 TCP Wrappers 설정을 이나 방화벽 설정이 문제입니다.
방화벽은 보통 리눅스 자체 방화벽 iptables을 이용하는 lokkit을 설정변경 하시면되구요.
위와 같은 가장많은 문제를 발생시키는 TCP Wrappers 라는 설정이 문제인듯합니다.
해결
/etc/hosts.allow 파일에 vsftpd:ALL 이란 문구를 한줄 추가해주시면 깔끔하게 해결됩니다
SELinux 관련
http://blog.razuna.com/2008/10/30/vsftp-login-problems-on-centos-52-and-selinux/
http://www.tnslinux.com/web/bbs/board.php?bo_table=02_4&wr_id=1
http://www.ezslookingaround.com/blog/tech/?no=1749
centOS vsftp 설정 옵션
https://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-ftp-vsftpd-conf.html