반응형


출처 : 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

vi /etc/vsftpd/chroot_list
FTP 로그인할 계정을 등록


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

+ Recent posts