출처 : http://blog.naver.com/PostView.nhn?blogId=haengro&logNo=40138067356
프로젝트를 진행하며 문서를 공유하기위해 파일서버를 찾다가 CentOS가 설치되어있는 서버에 FTP서버를 설치하기로 결정
인터넷을 검색해가며 해보니 그리 어렵진 않았지만 나중을 위해 정리해보기로 한다.
1. vsftpd 설치 : Linux에서 사용하는 FTP서버데몬
설치명령은 아래와 같다. (별도로 관련파일 복사없이 그냥 명령어만 치니까 설치가 되더라.
참고로 홈페이지는 https://security.appspot.com/vsftpd.html )
# yum install vsftpd
2. 환경파일 설정
# vi /etc/vsftpd/vsftpd.conf
anoymous_enable=NO //익명으로 접속시 NO
pasv_enable=YES //엑티브모드로 사용할 시 NO
vsftp passive mode 설정하는 방법입니다.
# vi
/etc/sysconfig/iptables-config |
위 파일을 열고 3번째 라인을 보면
IPTABLES_MODULES= "ip_conntrack_netbios_ns" |
라고
있는 부분을
IPTABLES_MODULES= "ip_conntrack_netbios_ns
ip_conntrack_ftp" |
라고
추가해 줍니다.
그리고 vsftp서버를 재시작 합니다.
# service
iptables restart |
3. FTP용 계정생성
# user add 계정명
# passwd 계정명
4. 방화벽 설정 : iptables에 20, 21번 포트를 등록해준다.
# 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
//iptable재기동
# service iptables restart
5. FTP서버기동
# service vsftpd start (종료 : stop, 재기동 : restart)
부팅시 FTP자동실행 설정
chkconfig --level 2345 vsftpd on
7. 프로세스 확인 및 포트확인
# ps -ef | grep vsftpd
# netstat -ntlp
참조 : http://blog.naver.com/newkyh00?Redirect=Log&logNo=30111155337
1. 500 OOPS: could not open chroot() list file:/etc/vsftpd/chroot_list
참조 : http://uiandwe.tistory.com/160
2. ftp: connect: No route to host
참조 : http://vstu77.blog.me/120050132415
리눅스에서 ftp를 사용할 때에 ftp: connect: No route to host
라는 메시지가 나올 때가 있다.
이럴 경우에는 host server 의 iptable을 살펴 보아야 한다.
사용 하지 않을 거면 iptables 를 stop 한다
#/etc/init.d/iptables stop
그 후
500 OOPS : cannot change directory:/root
500 OOPS : child died
라고 나오는 경우 아래와 같이 입력한다.
# setsebool -P ftp_home_dir=1
3. vsftp에서 500 OOPS: cannot change directory 오류가 나올 때
참조 : http://opencode.co.kr/bbs/board.php?bo_table=linux_tips&wr_id=27
/etc/vsftpd/vsftp.conf를 수정했는데도 불구하고 500 애러가 나오면서 접속이
안될때는
SELinux 때문이라고 합니다.
# setsebool -P ftp_home_dir=1
이렇게 하면,
ftp directory에 대한 접근을 허가 하게된다.
"-P"는 Rebooting 될더라도 값을 저장하여,
정상적으로 동작
하도록 한다.
vsftpd(vsftp
데몬)의 상태를 보기
service vsftpd status
iptables(방화벽)의 상태를 보기
service
iptables status
4. FTP 접속시 530 Permisiion Denied 발생
/etc/vsftpd/vsftpd.conf 파일 하단에
userlist_enables=YES 를 NO로 바꾸거나
아래의 파일 내부 계정들을 주석처리(#) 하면 된다.
아래의 파일 리스트에 계정이 있으면 FTP 접속이 불가하며 530 퍼미션 거부를 당하게 된다.
/etc/vsftpd/user_list (해당 리스트 계정들은 계정 비번 조차 확인 안하고 거부됨)
/etc/ftpusers (해당 리스트 계정들은 비번을 맞게 쳐도 거부됨)
/etc/vsftpd/user_list 내부에 userlist_deny 부분을 재조정 해도 된다.
5. OOPS: cannot change directory:/home/ueco
-> # setsebool -P ftp_home_dir=1 명령으로 해결
6. OOPS: could not read chroot() list file:/home/ueco
-> vsftp.conf설정에서 chroot관련 설정을 모두 주석처리함
7. OOPS: 500 OOPS: child died
디렉터리 목록을 획득할 수 없습니다.
Entering Passive Mode (10,250,114,243,21,35).
->컴퓨터의 FTP툴에서 Passive 모드를 비활성화해서 접속함
8. 533 could not create file
업로드 시 발생. 업로드 하려는 해당 디렉토리의 소유권과 관련된 에러임.
ftp 클라이언트 측에서 접속한 ID와 접속한 디렉토리의 소유자 및 소유 그룹이 다를 경우 발생하기도 한다.
chown 소유자 경로
chgrp 소유그룹 경로
를 해도 안되면 SELINUX 기능을 정지시켜 버리면 된다.
/etc/selinux/config 파일에서 SELINUX=disabled 수정 뒤 재부팅
-------------------------------------------------------------------------------
1. vsftpd.conf 파일의 정보
참조 : http://kch1183.blog.me/50099324984
2. CentOS. FTP 총정리
참조 : http://blog.naver.com/newkyh00?Redirect=Log&logNo=30111155337
'OS > CentOS' 카테고리의 다른 글
Centos 네트워크 관련 설정 방법 (0) | 2013.08.13 |
---|