10 02 2014
vsftpd설치
Contents
vsftpd 설치 : Linux에서 사용하는 FTP 서버 데몬
1 |
yum install vsftpd |
참고 : https://security.appspot.com/vsftpd.html
환경파일 설정
#vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO // 익명 접속 처리 N
pasv_enable=YES // 액티브모드 사용할 시 NO : 확인 요망
#vi /etc/vsftpd/user_list
접속 거부 사용자 리스트 : FTP에 root를 Open 하지 않도록 구성한다.
#vi /etc/vsftpd/ftpusers
접속 거부 사용자 리스트 : FTP에 root를 Open 하지 않도록 구성한다.
#chkconfig –level 2345 vsftpd on : 부팅때마다 vsftpd자동시작
FTP용 계정 생성
#user add [계정명]
#passwd [계정명]
usermod -d /storage/ftproot/ ftp : ftp계정에 대해 root경로 바꾸기
방화벽 설정 : iptables에 20 (ftp 데이터 처리 port), 21 port를 등록 한다.
#vi /etc/sysconfig/iptables
위의 파일이 존재하지 않는다.
-A INPUT -m state –state NEW -m tcp -p tcp –dport 20 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 21 -j ACCEPT
//서비스 재기동
#service iptables restart
FTP 서버 기동
#service vsftpd start[stop, restart]
Centos6 초기 설치 이후의 FTP의 접근이 안되는 경우
에러종류 : 500 OOPS: cannot change directory:/home/user
위의 에러는 FTP 프로그램의 폴더에 접근할 수 있는 권한이 없어서 발생
해결책
#getsebool -a | grep ftp : 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 : 이 부분을 on으로 해줘야 한다. ftpd_connect_db –> off httpd_enable_ftp_server –> off sftpd_anon_write –> off sftpd_enable_homedirs –> off sftpd_full_access –> off sftpd_write_ssh_home –> off tftp_anon_write –> off
#setsebool -P ftp_home_dir on : on으로 설정하는 명령어..
위의 내용으로 접근이 가능하다.
접속유저가 상위디렉토리로 가는것 제한
VSFTPD 기본 설정에 모든 사용자가 상위 디렉토리로 이동할 수 있게 되어있어요
이러면 유저들이 상위 디렉토리로 접근해 리눅스 코어파일이나 커널파일등을 삭제해버리면 어떻게 될까? 상위 디렉토리로 올라가는 것을 막아주어야 해요
그런데 막는건 간단하지만 특정 유저에게는 허용해주고 싶다면 어떻게 하는가?
vi /etc/vsftpd/vsftpd.conf
1 2 3 |
chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list |
그 후, vi /etc/vsftpd/chroot_list 를 쳐서 chroot_list가 생성되게 한다
내용에 root을 적용하고 :/wq로 저장 종료.
(root만 상위디렉토리 드나들기 허용함)
FTP 재시작하면 적용된다