웹서버관련정보/리눅스

[강좌-스크랩] 리눅스에서 Vsftpd(FTP서버)설치하기

박디 2007. 4. 4. 17:09

리눅스에 아파치 웹서버 설치에 이어서 FTP서버를 설치해보기로 했다. 찾아보던중 좋은 곳이

있어서 허락없이 퍼왔으니 출처를 밝히도록 하겠다. 출처 : http://superuser.co.kr

이걸보면서 직접 설치했었기 때문에.. 마지막에 나의 의견도 짤막하게 넣을것이다..

설치환경 : Fedora 4 core

- 원문 시작 -

VSFTP 설치하기

리눅스에서 사용할 수 있는 ftp 데몬은 proftp, wu-ftp를 비롯하여 많은 데몬들이 있습니다.
그중 레드헷의 최신 배포판에서 기본 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 로 접속을 해 봅시다

사용자 삽입 이미지
음.. 접속이 잘 되는군요.. 설치강좌는 여기까지
이름 : 윤 일

email :
admin@rootman.org, rootman@intermerit.com
homepage :
http://rootman.org

----------------------------------------------------------------------------
여기까지 원문이 끝나고.. 개인적으로 이것대로 설치를했었다. 그러나 막히는 곳이 한곳 있었는데

바로 xinetd 때문이었다. 분명 깔끔하게 설치를 다했으나 /etc/init.d에서 xinetd를 찾지 못하는

것이었다. 해결방법은 별것 아니었다. 페도라4의 3번설치시디의 /fedora/rpms 디렉토리내의

'xinetd-2.3.13-6.i386.rpm' 요파일을 패키지설치로 설치 하면 끝이다. 이렇게 설치해준뒤의

원문 강좌의 vsftp재시작을 해보고 ftp에 anonymous로 로그인 해보면 매우잘되는것을

볼수있을것이다. 활용방법은 다음에 퍼오던지 하도록 하겠다.