강좌
클라우드/리눅스에 관한 강좌입니다.
해킹&보안 분류

proftpd에 설치와 활용하기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

proftpd에 설치와 활용하기

 

이전부터 리눅스의 FTP 서버라면 당연히 wu-ftpd를 기본적으로 사용하곤 하였다.

 

 

 

 

물론 최근에도 wu-ftpd를 사용하는 서버가 적지 않지만 그동안 wu-ftpd는 보안상 너무나 치명적이면서 많은 문제점들을 노출하여 왔고, 이로 인하여 적지 않게 공격의 대상이 되곤 하였다.

 

 

 

 

그래서 wu-ftpd와는 근본적으로 다른 FTP 서버의 필요성이 제기되었으며 이러한 필요에 의하여 wu-ftpd의 문제점을 개선한 proftpd가 개발되었다.

 

 

 

 

그러나 소스는 완전히 독립적인 proftpd가 개발되었고 지금도 계속 개발되고 있는 proftpd는 설정 파일의 형식이 아파치(apache)와 유사하여 이해하기 쉽고 제공되는 기능도 매우 다양하다.

 

 

 

 

더구나 인터넷 수퍼데몬(inetd, xinetd)뿐만 아니라 독립실행형(standalone) 형태로도 서비스를 제공할 수 있으며 다중 가상 FTP서버와 anonymous FTP 서비스를 제공할 수 있다.

 

어떤 사이트에서 proftpd를 사용하고 있는가?

 

일일이 나열하기가 힘들 정도로 많은 곳에서 proftpd를 사용하고 있고 사용하는 비율도 계속적으로 늘고 있다.

 

 

 

 

가장 대표적인 사이트는 다음과 같다.

 

국외 : ftp.kernel.org, SourceForge, ftp.samba.org, Slackware

국내 : superuser.co.kr, ftp.bora.net 등외에도 많은 곳에서 proftpd를 사용하고 있다.

 

 

 

 

 

Proftpd 홈페이지 : http://proftpd.org/

 

4fa9a09b911cbcf61026701b24d6b6bc_1674712762_8171.png
 

[그림] proftpd 홈페이지

 

현재까지 안전한 proftpd 버전은?

 

현재를 기준으로 가장 안정한 proftpd 버전은 무엇인지 확인하기 위해 아래의 URL에 접속하여 어떤 버전이 어떤 취약성이 있는지 확인하기 바란다.

 

 

 

 

 

http://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=proftpd

 

가급적 가장 최신의 버전을 다운로드 받아 설치하기 바란다.

 

 

 

 

 

 

5.1.1 proftpd 설치

 

proftpd의 소스는 ftp://ftp.proftpd.org/distrib/source에서 제공하고 있으며 리눅스 사용자를 위해 rpmsrpm으로 패키징 된 형식의 파일을 ftp://ftp.proftpd.org/distrib/packages/에서 별도로 제공하고 있으니 각자 상황에 맞게 적당히 설치하기 바란다.

 

 

 

 

만약 rpm이 자신의 시스템 버전에 맞지 않아 rpm 설치가 불가한 경우 srpm을 다운로드 및 설치 후 아래와 같이 SPECS 디렉토리로 이동하여 “rpm -bb spec파일을 실행하면 RPMS 디렉토리에 자신의 버전에 맞는 rpm 버전을 생성할 수 있다.

 

 

 

 

만약 버전 때문에 위 명령어가 작동하지 않는다면 rpm 대신 rpmbuild를 사용하면 된다.

 

 

 

 

 

 

[root@www root]# cd /usr/src/redhat/SPECS/

[root@www SPECS]# rpm -bb proftpd.spec

 

5.1.2 proftpd 버전 및 모듈 정보 확인

 

설치를 완료한 후 또는 이미 설치되어 있는 경우 현재 시스템에 설치되어 있는 proftpd의 버전 정보를 확인하려면 다음과 같이 -v 또는 -vv 옵션으로 상세한 정보를 확인할 수 있다.

 

[root@www root]# proftpd -vv

- ProFTPD Version: 1.3.1 (stable)

- Scoreboard Version: 01040002

- Built: Fri Feb 15 10:58:27 KST 2008

 

또한 아래와 같이 -l 옵션을 이용하면 현재 어떠한 모듈이 포함되어 있는지 모듈 정보를 알 수 있다.

 

 

 

 

 

 

[root@www root] # /usr/sbin/proftpd -l

Compiled-in modules:

mod_core.c

mod_xfer.c

mod_auth_unix.c

mod_auth_file.c

mod_auth.c

mod_ls.c

mod_log.c

mod_site.c

mod_auth_pam.c

mod_ratio.c

mod_readme.c

mod_cap.c

 

 

5.1.3 문법(syntax) 설정 확인

 

proftpd 버전에 따라 제공되는 지시자도 다소의 차이가 있으므로, 설정 파일(proftpd.conf) 을 수정한 다음에 변경된 내용을 적용하기 위해 바로 proftpd 데몬을 재가동하는 것은 좋지 않다.

 

 

 

 

왜냐하면 만약 문법상의 오류가 있을 경우에는 데몬이 작동하지 않게 되기 때문이다.

 

 

 

 

따라서 데몬을 재가동하기 전에 문법상의 에러는 없는지 먼저 확인하는 것이 좋은데, 아파치에서는 “httpd -t”로 확인하는 것처럼 proftpd는 아래와 같이 “-td5” 옵션을 주어 확인하면 된다.

 

 

 

 

참고로 설정 내용을 변경한 후에 xinetd 모드로 작동할 경우에는 설정 내용이 바로 적용되지만 Standalone의 경우 반드시 재 구동을 해 주어야 된다.

 

 

 

 

 

 

[root@www root]# proftpd -td5

Checking syntax of configuration file

- parsing '/etc/proftpd.conf' configuration

- Fatal: unknown configuration directive 'erverName' on line 11 of '/etc/proftpd/proftpd.conf'.

 

위의 경우 proftpd가 참조하고 있는 설정파일인 /etc/proftpd.conf11번째 줄에서 에러가 난 것을 알 수 있는데, 메시지의 내용으로 보아 ServerName 대신 S가 빠진 erverName 으로 설정되어 에러가 난 것임을 알 수 있다.

 

 

 

 

만약 정상적이라면 다음과 같이 보이게 될 것이다.

 

# proftpd -td5

Checking syntax of configuration file

- parsing '/etc/proftpd.conf' configuration

www.server.com -

www.server.com - Config for FTP Server:

www.server.com - /

www.server.com - AllowOverwrite

www.server.com - Umask

www.server.com - ListOptions

www.server.com - TimesGMT

www.server.com - MaxClientsPerHost

www.server.com - MaxHostsPerUser

www.server.com - RootLogin

www.server.com - DefaultServer

www.server.com - IdentLookups

www.server.com - ServerIdent

www.server.com - Umask

www.server.com - UserID

www.server.com - UserName

www.server.com - GroupID

www.server.com - GroupName

www.server.com - ListOptions

www.server.com - TimeoutIdle

www.server.com - TimeoutNoTransfer

www.server.com - TimeoutLogin

www.server.com - TimesGMT

www.server.com - DeferWelcome

www.server.com - MaxClientsPerHost

www.server.com - MaxHostsPerUser

www.server.com - RootLogin

Syntax check complete.

 

 

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,791 개
  • 현재 접속자 :  218 명