CentOS 6.3에 ftp 서버를 구축해 보겠다. ftp 서버로는 vsftpd를 사용하겠다.


1. 패키지 확인

다음과 같이 yum을 이용해 vsftpd 패키지가 존재하는지 확인한다.

# yum info vsftpd
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: ftp.daum.net
 * extras: ftp.daum.net
 * rpmforge: ftp.riken.jp
 * updates: ftp.daum.net
Available Packages
Name        : vsftpd
Arch        : x86_64
Version     : 2.2.2
Release     : 11.el6
Size        : 151 k
Repo        : base
Summary     : Very Secure Ftp Daemon
URL         : http://vsftpd.beasts.org/
License     : GPLv2 with exceptions
Description : vsftpd is a Very Secure FTP daemon. It was written completely from
            : scratch.


2. 패키지 설치

vsftpd 패키지가 존재하면 설치하도록 한다. 그러면 진행상태를 보여주는 메세지들이 나오고 설치가 완료된다. 메세지들은 생략하도록 한다.

# yum install vsftpd
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
 * base: ftp.daum.net
 * extras: ftp.daum.net
 * rpmforge: ftp.riken.jp
 * updates: ftp.daum.net
Setting up Install Process
.
.
.

Running Transaction
  Installing : vsftpd-2.2.2-11.el6.x86_64
  Verifying  : vsftpd-2.2.2-11.el6.x86_64

Installed:
  vsftpd.x86_64 0:2.2.2-11.el6

Complete!


3. 포트 및 환경 설정

설치가 완료되면 설정파일을 열어 서비스포트를 지정한다. 서비스포트는 well-known 포트인 21번이 기본으로 사용되지만, 변경할 수도 있다.

# vi /etc/vsftpd/vsftpd.conf


파일을 편집하는 화면이 나타나면 아래와 같이 추가해준다. 또한 패시브모드를 위해 여분의 포트도 명시하도록 한다. vi 에디터 사용법은 검색을 통한다.

listen_port=xxxx

pasv_enable=YES
pasv_min_port=5001
pasv_max_port=5005


그리고 로그인 사용자들의 홈디렉토리 위로 이동하지 못하도록 루트디렉토리를 한정지어 놓으려면 아래 부분의 주석을 푼다. 보안상 이렇게 해주는 것도 좋다.

chroot_local_user=YES


4. 서비스 시작

다음과 같이 서비스를 시작해 준다.

# service vsftpd restart
vsftpd에 대한 vsftpd을 시작 중:                            [  OK  ]


5. 방화벽 오픈

마지막으로 방화벽을 오픈해준다. setup 명령으로 텍스트기반 ui로 쉽게 변경할 수 있다.

setup 입력 -> [방화벽 설정] -> [사용자 설정] -> [다음] -> [추가] -> 포트번호와 프로토콜 'tcp' 입력 (패시브모드 포트로 등록한 포트도 등록한다)-> [다음] -> [종료] -> [OK] -> [예] -> [종료] 순으로 나오면 된다.

이 작업이 완료되면 /etc/sysconfig/iptables 파일에 추가된 것을 볼 수 있다.


6. 서비스 등록

재부팅 하여도 시작될 수 있도록 서비스로 등록한다.

setup 명령어를 입력 -> [시스템 서비스] -> vsftpd 항목으로 이동하여 스페이스를 눌러 별표를 표시 -> [확인] -> [종료]


7. selinux 설정

이제 외부에서 접속을 하게 되면 다음과 같이 접속이 되지 않는 경우가 있다.

500 OOPS: cannot change directory:/home/xxxxxxxx


이 경우는 검색을 해보니 SELINUX 보안정책 때문이라고 한다. 다음과 같이 입력하도록 한다.

# setsebool -P ftp_home_dir 1



이제 접속하면 될 것이다.

저작자 표시 비영리 변경 금지
신고
Posted by Life 스토리