그중 레드헷의 최신 배포판에서 기본 ftp 데몬으로 채택하고 있는 vsftp의 설치방법과 운영방법, 활용법에 대해 얘기하려 합니다.
0. 왜 VSFTP를 추천하는가?
서버 운영에 있어서 가장 중요한 요소는 보안문제입니다. 기존의 proftp와 wu-ftp 는 보안 홀에 대한 보고가 빈번히 일어나 서버의 보안이 흔들린 경우가 많았습니다. vsftp 는 보안부분을 특히 강조한 서버데몬으로서 REDHAT, SUSE, OPEN-BSD에서 기본 FTP 데몬으로 채택하고 있으며 vsftp를 매우 신뢰하고 있습니다. vsftp에서 보안, 빠른 퍼모먼스, 안정성을 주요 특징으로 소개하고 있고 그 성능도 여느 ftp 서버보다 탁월한듯 합니다.
지원하는 대표적인 기능으로는 가상IP 지원, 가상유저 지원, Standalon 과 inetd 지원, 강력한 사용자 설정, 전송 대역폭 조절기능, 환경설정파일을 IP별로 독립적 운영 지원, IP별 제한기능등이 있습니다. 또한 config 파일의 설정문법도 아주 간단해서 FTP 서버관리를 쉽게 할 수 있습니다.
아래 리스트는 현재 VSFTP 를 신뢰하고 사용하고 있는 대표적인 사이트입니다.
ftp.redhat.com
ftp.suse.com
ftp.debian.org
ftp.openbsd.org
ftp.freebsd.org
ftp.gnu.org
ftp.gnome.org
ftp.kde.org
ftp.kernel.org
rpmfind.net
ftp.linux.org.uk
ftp.gimp.org
ftp-stud.fht-esslingen.de
gd.tuwien.ac.at
ftp.sunet.se
ftp.ximian.com
ftp.engardelinux.org
ftp.sunsite.org.uk
ftp.isc.org
이러쿵 저러쿵 얘기하는것 보다 위의 리스트들이 더 신뢰를 주는것 같군요.
1. VSFTP 설치
vsftp 홈페이지 : http://vsftpd.beasts.org/
vsftp 다운로드 : ftp://vsftpd.beasts.org/users/cevans/
먼저 VSFTP의 설치를 위해 ftp://vsftpd.beasts.org/users/cevans/ 에 접속해 최신버젼을
다운받습니다. 현재 이 강좌를 쓰고 있는 시점의 최신버젼은 vsfpd-2.0.1 버젼이군요.. 그럼 vsftpd-2.0.1을 다운받았다는 가정하에 이 강좌를 진행하겠습니다. 버젼별로 큰 차이는 없으니까 다른 버젼을 1.2.2 버젼을 선택하신분들도 설치하시는데는 큰 어려움이 없으실겁니다.
다운받은 파일을 /root/SRC 라는 디렉토리에 옮겨서 설치작업을 시작하도록 하겠습니다. /root/SRC 에서 작업하는 특별한 이유가 있는건 아닙니다. 그러니까 각자 작업공간을 만들어 작업하시면 됩니다. 저는 소스설치한 데몬이나, 유틸의 소스들을 한곳에 모아두는 습관이 있어 /root/SRC 에서 항상 작업을 하는편입니다. 뽀족히 설치작업할 위치가 없다면 저를 따라 /root/SRC 에서 작업을 하는게 좋겠네요

파일이 설치할 디렉토리로 옮겨졌으면 vsftpd-2.0.1.tar.gz 을 압축을 해제합니다.

압축이 풀리면 vsftpd-2.0.1 이라는 디렉토리가 생깁니다. 설치를 위해 이 디렉토리로 이동합니다.
VSFTP 소스가 있는 디렉토리에서 make 명령을 하면 vsftpd 라는 바이너리 파일이 생성됩니다.
ls 명령으로 새로 생성된 vsftpd 바이너리 파일을 확인할 수 있습니다.
VSFTP를 운영하기 위해서는 nobody 사용자가 필요합니다. 다음과 같이 현재 nobody 사용자가 존재하는지 체크를 하세요
[root@develop vsftpd-2.0.1]# grep nobody /etc/passwd
nobody:x:99:99:Nobody:/:/bin/bash
위와같이 nobody 가 존재할 경우는 nobody를 새로 생성하지 않아도 됩니다. 만약 nobody 사용자가 존재하지 않을경우 아래와 같이 nobody 사용자를 추가해 줍니다.
VSFTP는 empty 라는 디렉토리를 필요로 합니다. 기본구성은 /usr/share/empty 입니다. /usr/share/empty 디렉토리가 존재하는지 확인한 후 존재하지 않는다면 empty 디렉토리를 생성해 줍니다.
다음은 Anonymous FTP에서 사용할 ftp 계정이 필요합니다. ftp 계정이 존재하지 않는다면 추가해야 됩니다. ftp 계정의 HOME Directory 즉 Anonymous 접근의 루트로 /var/ftp 로 설정하기 위해 -d /var/ftp 옵션을 주어 ftp 계정을 생성해 줍니다. 먼저 /var/ftp 디렉토리를 생성합니다. 만약 이미 /var/ftp 라는 디렉토리가 있을 경우 다음과 같이 디렉토리의 소유자와 그룹을 root로 변경하고 og(Other, Group)에 w(쓰기권한)을 제거합니다
* /var/ftp가 존재할 경우
* ftp 계정이 없고 /var/ftp가 존재하지 않을경우
[root@develop vsftpd-2.0.1]# mkdir /var/ftp --> /var/ftp 가 없을 경우
이제 install 과정을 진행하겠습니다. make install 을 해 줌으로서 생성된 vsftpd 파일이 /usr/local/sbin 에 복사가 되고 vsftpd의 man 페이지 /usr/local/man/man5, /usr/local/man/man8 로 복사가 되고 inet 모드로 운영할 때 사용할 vsftpd 파일도 /etc/xinetd.d 디렉토리에 복사됩니다. make install을 진행하기 전 /usr/local/sbin 디렉토리와 /usr/local/man/man5, /usr/local/man/man8 디렉토리를 먼저 생성해 줍니다.
[root@develop vsftpd-2.0.1]# mkdir /usr/local/sbin
[root@develop vsftpd-2.0.1]# mkdir /usr/local/man/man8
[root@develop vsftpd-2.0.1]# mkdir /usr/local/man/man5
디렉토리가 모두 생성되었으면 make install을 합니다.
위와 같이 출력되면 에러 없이 install 이 실행된것입니다. 이제 VSFTP의 환경설정파일인 vsftpd.conf를 /etc 디렉토리에 복사합니다.
[root@develop vsftpd-2.0.1]# cp vsftpd.conf /etc
시스템의 local 사용자들의 접속을 허가 하기 위해 복사된 /etc/vsftpd.conf 를 열고 local_enable=YES 부분과 write_enable=YES, local_umask=022 부분의 주석을 제거합니다.
[root@develop vsftpd-2.0.1]# vi /etc/vsftpd.conf
주석을 제거했으면 저장하고 편집모드를 빠져나옵니다.
마지막으로 local 계정 사용자들의 로그인 인증을 위해 설치디렉토리안의 RedHat 디렉토리안에 있는 vsftpd.pam 파일을 /etc/pam.d 디렉토리에 ftp 라는 이름으로 복사를 합니다.
이제 모든 설치 과정은 끝났습니다. 그럼 VSFTP가 잘 작동하는지 테스트를 해 볼껀데 테스트는 xinetd 모드로 VSFTP 데몬을 돌리고 VSFTP의 standalone 모드로 운영하는 방법과 xinetd 모드로 운영하는 자세한 방법은 'VSFTP 운영및 활용 강좌'에서 다루도록 하죠.
우선 install 할때 복사되었던 /etc/xinetd.d/vsftp 파일을 열어 disable = no 로 설정되어 있나 확인합니다. 혹시 disable = yes 로 되어 있다면 no 로 변경해 줍니다.
vsftpd 의 실행을 위해 xinetd를 restart 합니다.
xinetd 데몬이 정상적으로 실행되었으면 anonymous 로 접속을 해 봅시다
'Operating System > Linux' 카테고리의 다른 글
| 손에 잡히는 Linux Security ② (0) | 2007/05/22 |
|---|---|
| 손에 잡히는 Linux Security ① (0) | 2007/05/12 |
| portsentry를 이용한 Port Scan 검사 및 방어 Program (0) | 2007/05/12 |
| sendmail을 이용한 Mail Server 설정하기 (0) | 2007/05/12 |
| 보안점검 명령어 (0) | 2007/05/10 |
| wget 명령어 사용법 (0) | 2007/05/10 |
| SWAP 영역 늘리기 (0) | 2007/05/10 |
| VSFTP 설치하기 (0) | 2007/05/10 |
| Complete reference guide to creating a remote Log Server (0) | 2007/05/09 |
| syslog-ng를 이용한 보안장비 로그서버 구축 및 활용 (0) | 2007/05/09 |
| PICO, VI Editor 사용법 (0) | 2007/05/08 |