vsftpd 설정하기

업무/Linux 2008. 8. 22. 18:01
ftp 서버로 오랫동안 지켜오던 Proftpd의 자리를 누군가 빼앗으려 한다. 그 분은 proftpd의 문제점을 모두 보완하고, 속도, 성능, 보안을 향상시켜 더욱 강력하게 만들어 졌다. 그분이 바로 금번 리뷰에서 소개할 vsftpd 이다. 이름에서부터 알 수 있듯 Very Secure FTP 서버이다. 이 프로그램은 배포사이트에서 최상급 형용사(most, fastest)를 사용하여 자랑할 만큼 자신 있게 말하는 부분이 속도와 보안성이다. 

   Probably the most secure and fastest FTP server for UNIX-like systems.

 최신버전인 2.0.3으로 업그래이드 되면서 많은 버그들이 고쳐졌으며, 특히 SSL 쪽 버그를 많이 고쳤다고 한다. 금번 리뷰에서는 vsftpd를 설치해서 운영하면서 장, 단점을 살펴보도록 하겠다.

  먼저 공식 웹사이트에서 소스를 다운로드 받는다.

  vsftpd-2.0.3.tar.gz 파일의 용량은 겨우 150K에 불과하다. 압축을 풀고, 모든 프로그램의 설치과정에 있었던 컴파일 환경설정과정인 configure 과정은 vsftpd는 없다. 바로 컴파일 한 다음 , 설치하면 된다.


tar xvfz vsftpd-2.0.3.tar.gz

cd vsftpd-2.0.3

make && make install


  컴파일을 성공적으로 마쳤다면, 설치가 될 것이다. 설치된 파일을 찾아보면 겨우 /usr/local/sbin/vsftpd 라는 것을 알 수 있다.


  그런 다음 설정파일 샘플을 복사한다. 아래는 install 명령어를 사용하여 소스디렉토리의 vsftpd.conf 파일을 /etc/vsftpd.conf 파일으로 복사하며, 퍼미션을 600으로 변경한다.

install -m 600 vsftpd.conf /etc/vsftpd.conf


  FTP서버를 xinetd모드로 운영하기 위해 xinetd.d/vsftpd 파일을 /etc/xinetd.d/vsftpd 으로 복사하며, 퍼미션을 600으로 변경한다.

install -m 600 xinetd.d/vsftpd /etc/xinetd.d/vsftpd


  마지막으로 pam인증을 하기위해 pam 설정파일을 복사해 준다. 이 파일을 복사해 주지 않으면, 접속은 되지만, 정확한 id와 비밀번호를 넣었음에도 로그인 실패라고 나오며, 별도 로그는 남지 않음에 주의하기 바란다.

cp RedHat/vsftpd.pam  /etc/pam.d/vsftpd


  이렇게 설치를 했다면, 이제 설정파일(/etc/vsftpd.conf)을 수정해야 한다. vsftpd의 운영방법은 크게 standalone으로 독자적인 데몬을 이용하여 서버를 운영하는 방법과, xinetd의 도움을 받아 운용하는 방법이 있다. FTP서버가 파일서버용도가 아니라면, 꼭 떠있을 필요는 없기에 xinetd모드로 설정하겠다. 하지만, 꼭 standalone모드로 돌려야 한다면, 간단하게 /etc/vsftpd.conf 파일에서 listen=YES 으로 하고, xinetd에 등록된 vsftp를 ntsysv등의 유틸리티로 내려주고 xinetd를 재 시작해주고, /usr/local/sbin/vsftpd & 이렇게 데몬을 띄워주면 운영가능하다. 이제 xinetd모드로 설정하는 법을 알아 보도록 하자.

  먼저 xinetd설정파일(/etc/xinetd.d/vsftpd)을 확인한다.

위 설정파일은 위 설치과정에서 소스파일 디렉토리에서 복사한 파일이다. 보다 자세한 설정을 하길 원한다면, xinetd 매뉴얼을 참고하길 바란다.

  ntsysv 명령으로 서버 시작시 자동 시작하게 설정한다.


이렇게 설정하고, xinetd를 재 시작한다.


이렇게 하면, 21번 포트로 접속을 받아들일 준비가 된다. 마지막으로 설정파일을 수정하여 일반적인 ftp 서버에 맞게 맞추어 보겠다.

위 설정파일은 기본적으로 ftp 서버를 운영하기 위한 설정이다.


  무명접속을 허용하지 않으며(anonymous_enable=NO), 서버의계정 접속을 허용하며(local_enable=YES), 디렉토리에 접근시 메시지를 보여주며(dirmessage_enable=YES), xferlog를 /var/log/vsftpd.log에 기록하며(xferlog_enable=YES, xferlog_file=/var/log/vsftpd.log), 기본적으로 모든 사용자 접속을 허용하며(userlist_enable=NO), pam인증에 사용될 서비스파일은 vsftpd라는 파일이라고 지정(pam_service_name=vsftpd)하였다. 이젠 접속해 보도록 하겠다.

지금까지 ftp 서버를 설치과정과, 기본적으로 운영할 수 있게 설정하는 과정에 대해서 알아 봤다. 이제 어떤점이 좋은지 알아 보도록 하겠다.


  설치과정에서 보았듯이 실행파일의 용량이 작다. 다음은 proftpd 1.2.10버전과 비교한 자료이다.

proftpd는 408KByte이며, vsftpd는 88KByte이다. 약 1/5배이다.


  설정파일이 간단하며 직관적이다.

항  목

Proftpd

vsftpd

standalone운용

ServerType  standalone

listen=YES

무명접속허용

<Anonymous  > ~~~~ </Anonymous>

anonymous_enable=NO

전송속도제한

TransferRate APPE,RETR,STOR,STOU 100.0:152428800

anon_max_rate=100

chroot home directory

DefaultRoot  ~

chroot_local_user=YES


위 표는 proftpd와 vsftpd 설정파일의 일부이다. vsftpd의 설정파일이 보다 직관적이며, 쉽게 설정할 수 있음을 알 수 있다.


  기본적으로 ascii 모드로 파일 전송을 막을 수 있다. 이 설정은 아주 유용하게 사용된다. PC에서 ftp 클라이언트로 알ftp, wsftp 등 ftp 전용 클라이언트를 사용하지 않고, 인터넷익스플러로를 사용한다면, 서버에 텍스트파일을 올리고 받으면 파일의 마지막 "CRLF"문자가 "LF"로 변하여 올라간다. 그 파일을 다시 PC로 받았을때 곤란한 경우가 생긴다. 근본적으로 ascii 모드의 사용을 차단하므로 이런 경우를 막을 수 있다. 나는 보안, 빠른 속도, 안정성 보다는 이면이 마음에 들어 vsftpd를 처음 사용하게 되었다. 설정항목은 다음과 같다.

ascii_download_enable = NO
ascii_upload_enable = NO


  SSL 을 사용한 보안 통신이 가능하다. 이는 ftp 취약점인 스누핑이나 스푸핑에 id와 password같은 중요정보가 노출된다는 점이 보완되며, 중요한 데이터를 보호 할 수 있다. 그렇지만, 아직 일반화 되지않았기 때문에 ftp서버는 SSL을 사용하지 않는 일반적인 형태로 운영해야 할 것 같다.

 

  vsftpd는 보안뿐만 아니리 뛰어난 성능을 자랑한다.

  위 그래프는 대형 사이트에서 1600접속 까지 지속적이며, 안정적이게 운영된다는 것을 강조하기위해배포 사이트에 올라온 그래프이다. 한 서버에서 저렇게 많은 접속자를 처리한다는 것은, 안정성, 성능을 신뢰 할 수 있을 듯 하다.


 다음은 이 vsftpd를 사용하는 커다란 ftp 사이트들이다.

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...


 vsftpd는 GPL라이센스를 따르는 아주 훌륭한 FTP서버이다. 단지 아쉬운 점은 가볍게 만들기 위해  mysql과의 연동과 같은 유용한 기능들이 빠져있다. 그만큼 성능이 우수하니 대 만족이다.


참고사이트 : vsftpd.beasts.org

참고서적 : 리눅스 서버관리 실무 바이블 ( 수퍼유저코리아, 박성수)

test OS : Fedora Core 2 (Kernel 2.6.10)

작성자 수퍼유저코리아 정우영 (doly@superuser.co.kr)

저작권 : 본 문서는 파일형식(pdf)을 바꾸지 않는 한 자유롭게 배포 가능합니다


WRITTEN BY
가별이
내가 천사의 말 한다 해도

,