-ProFTPD 설치 방법- 

일단, MySQL은 설치되었다고 가정하고...저의 경우에는 RedHat 7.2에 
기본적으로 들어있는 RPM 으로 설치를 했습니다. 

그다음은 ProFTPD 설치를 합니다. 
www.proftpd.org 에 가셔서 1.2.5rc1 버전을 다운받습니다. 
압축 푸시고 
./configure --prefix=/usr --with-modules=mod_sql:mod_sql_mysql \\ 
--with-includes=/usr/include/mysql --with-libraries=/usr/lib/mysql \\ 
--sysconfdir=/etc --localstatedir=/var 
make 
make install 

-설정 방법- 

그리고 mysql에 database를 만듭니다. 
database 이름은 proftp로 짓습니다. 
그리고 아래의 테이블을 만듭니다. 아래 테이블은 아래에 있던 
ProFTP + MySQL 팁에서 가져왔습니다. 단 한가지 다른 점이 있다면 
group 테이블에서 Field 에 gname 을 groupname으로 변경했습니다. 
1.2.5rc1에서 Default로 groupname을 찾습니다. 

* 테이블명: users 
    +---------+------------------+------+-----+---------+-------+ 
    | Field  | Type            | Null | Key | Default | Extra | 
    +---------+------------------+------+-----+---------+-------+ 
    | userid  | char(12)        |      | PRI |        |      | 
    | uid    | int(10) unsigned | YES  |    | NULL    |      | 
    | gid    | int(10) unsigned | YES  |    | NULL    |      | 
    | passwd  | char(63)        | YES  |    | NULL    |      | 
    | shell  | char(255)        | YES  |    | NULL    |      | 
    | homedir | char(255)        | YES  |    | NULL    |      | 
    | count  | int(10) unsigned |      |    | 0      |      | 
    | valid  | int(10) unsigned | YES  |    | NULL    |      | 
    +---------+------------------+------+-----+---------+-------+ 

  * 테이블명: groups 
    +-----------+------------------+------+-----+---------+-------+ 
    | Field    | Type            | Null | Key | Default | Extra | 
    +-----------+------------------+------+-----+---------+-------+ 
    | groupname | char(12)        |      | PRI |        |      | 
    | gid      | int(10) unsigned |      |    | 0      |      | 
    | members  | text            | YES  |    | NULL    |      | 
    +-----------+------------------+------+-----+---------+-------+ 

그리고 /etc/proftpd.conf 를 아래와 같이 편집합니다. 
물론 서버명이나 포트, 디렉토리 같은 부분은 여러분에게 
맞게 변경해주시기 바랍니다. 

ServerName                      "r2al3ac's FTP server" 
ServerType                      standalone 
ServerIdent                    on "r2al3ac's FTP server ready..." 
ServerAdmin                    "r2al3ac@hananet.net" 
DefaultServer                  on 

Port                            21 

Umask                          022 

MaxInstances                    30 

User                            nobody 
Group                          nobody 

#아래 SQLConnectInfo 문에서 proftp는 데이터베이스명이며 아이디와 비밀번 
호는 
#여러분의 mysql 설정에 맞게 변경해주시면 됩니다. 
#보시면 1.2.4 버전때와는 다른점이 있음을 알 수 있습니다. 
SQLConnectInfo                  proftp@localhost:3306 아이디 비밀번호 
SQLAuthTypes                    Backend 
SQLAuthenticate                on 
SQLUserInfo                    users userid passwd uid gid homedir 
shell 
SQLLog                          PASS updatecount 
SQLNamedQuery                  updatecount UPDATE "count=count+1 
WHERE userid='%u'" users 
SQLUserWhereClause              "valid = 1" 
SQLDefaultHomeDir              /var/ftp 
DisplayLogin                    welcome.msg 
DisplayFirstChdir              .message 

DefaultRoot                    /var/ftp 
MaxClients                      4 
MaxClientsPerHost              1 
MaxHostsPerUser                1 

RequireValidShell              off 

AllowRetrieveRestart            on 
AllowStoreRestart              on 
AllowOverwrite                  on 

<Directory /var/ftp> 
<Limit READ> 
AllowAll 
</Limit> 
<Limit WRITE> 

</Limit> 
<Limit WRITE> 
DenyAll 
</Limit> 
</Directory> 

<Directory /var/ftp/pub/*> 
<Limit READ> 
AllowAll 
</Limit> 
<Limit WRITE> 
DenyAll 
</Limit> 
</Directory> 

<Directory /var/ftp/incoming/*> 
<Limit READ> 
DenyAll 
</Limit> 
<Limit STOR MKD> 
AllowAll 
</Limit> 
</Directory> 

-테스트 하기- 

1. mysql에서 proftp 데이터베이스에 users 테이블에 사용자를 하나 등록 시 
킵니다. 단, 반드시 valid 값을 1로 주셔야 됩니다. 만약 1이 아닐경우에는 
로그인이 되지 않습니다. 

2. /usr/sbin/prftpd start 를 쳐서 proftpd 를 실행합니다. 

3. ftp 나 ncftp 를 사용해서 1번에서 등록해준 사용자와 비밀번호로 로그인 
을 해봅니다. 

-만약 안된다면- 

proftpd.conf 셋팅에 문제는 없는지 확인해보시고, 
포트를 다른 걸로 바꿔보시고, 
그래도 안된다면 아래와 같은 방법으로 proftpd를 디버그 모드로 실행해서 
어디서 어떻게 잘못되었는지 알아보시기 바랍니다. 

/usr/sbin/proftpd -d 5 -n -c /etc/proftpd.conf 

이렇게 입력하시면 디버그 모드로 실행이 됩니다. 

그리고 터미널 창을 하나 더 열어서 ftp 로 접속을 시도해 보시면 
어디서 어떻게 잘못되었는지 알 수 있습니다. 

-덧붙이는 말- 

위에서 SQLAuthenticate 부분을 on 이라고 해놓았는데, 만약 
group 테이블을 사용하지 않으시면 SQLAuthenticate users 로 
바꿔서 사용하시면 됩니다. 

하지만 on으로 해놓아도 별문제 없이 쓰실수 있습니다. 

설정문과 관련해서 자세한 것은 proftpd 문서를 참고하시기 
바랍니다. 참고로 proftpd.oops.org 나 www.proftpd.org 문서들은 
outdate 되어서 1.2.5rc1 과는 차이가 있으므로 proftpd1.2.5rc1을 
다운받으면 안에 첨부된 문서를 참조하셔야됩니다.