그지 같은 업체 개발자 귀찮다는 이유로 3일간 작업한 sftp chroot 설정을 갈아 엎고 vsftp chroot를 다시 설정했다.
설정 방법
1.yum install vsftpd
2.vi /etc/vsftpd/vsftpd.conf
- anonymous_enable=NO //비계정 로그인 지원여부
- local_umask=022 // 권한 설정, umask 이므로 644 = 022
- chroot_local_user=YES // 모든 유저를 chroot로 설정
- pasv_enable=NO // 패시브 모드 사용하지 않고 액티브 모드 사용
- session_support=YES //last 명령을 이용한 접속 확인 가능
- dual_log_enable=YES // /var/log/vsftpd.log, /var/log/xferlog 양쪽에 로그 모두 사용
- log_ftp_protocol=YES // /var/log/vsftpd.log 에 접속 로그 남도록 설정
%위의 옵션은 모든 계정을 chroot로 설정하지만 계정별로 설정 가능하고 계정별 home 디렉토리 설정도 가능
3. service vsftpd start
4. 접속 TEST
*ftp active mode VS passive mode
passive 모드로 설정하는 경우 iptables에 21번 포트만 열어줄 경우 접속은 가능하나 디렉토리 목록을 불러오지 못함
passive 모드 iptables 설정은 따로 확인 필요
* 에러 메세지
"500 OOPS: cannot change directory" 경우 아래 명령 실행
[root@localhost vsftpd]# getenforce
Enforcing
[root@localhost vsftpd]# getsebool -a | grep ftp
allow_ftpd_anon_write --> off
allow_ftpd_full_access --> off
allow_ftpd_use_cifs --> off
allow_ftpd_use_nfs --> off
ftp_home_dir --> off
ftpd_connect_db --> off
ftpd_use_passive_mode --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
[root@localhost vsftpd]# setsebool -P ftp_home_dir on
[root@localhost vsftpd]# reboot
*서버 부팅시 vsftpd 자동 실행 설정
[root@localhost vsftpd]# chkconfig --list
vsftpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@localhost vsftpd]# chkconfig vsftpd on
[root@localhost vsftpd]# rebooit