自宅サーバー構築メモ The last update of this page 2009/02/26
使用するソースとダウンロード先
proftpd-1.3.2.tar.bz2 http://www.proftpd.org/
インストール
解凍・コンフィグレーション・コンパイル・インストール
tar xvfj proftpd-1.3.2.tar.bz2
cd proftpd-1.3.2
./configure
make
make install
設定
xinetd用の設定ファイルを用意する
vi /etc/xinetd.d/ftp
xinetd用設定ファイル内容
service ftp
{
socket_type = stream
wait = no
user = root
env += TZ=/etc/localtime
server = /usr/local/sbin/in.proftpd
log_on_success += HOST PID
log_on_failure += HOST
nice = 10
disable = no
}

xinetdを再起動
/etc/rc.d/init.d/xinetd restart

proftpd設定ファイルの編集
vi /usr/local/etc/proftpd.conf
proftpd.confサンプル
#サーバ名
ServerName "hosso.com"

ServerType inetd

DefaultServer on

#ログイン時に表示されるメッセージ
ServerIdent on "WELCOME HOSSO.COM FTP SERVER"

#NISサーバー用
PersistentPasswd off

#rootのログインは許可しない
RootLogin off

#サーバーとクライアント間で何も通信が無い状態でタイムアウトになるまでの時間。単位:秒
TimeoutIdle 10800

#ログイン後、無通信状態でタイムアウトになるまでの時間。単位:秒
TimeoutNoTransfer 10800

#何回失敗したら切断されるか
MaxLoginAttempts 2

#フォワーディングを許可
AllowForeignAddress On
PassivePorts 10020 10022

#GMTにするかどうか
TimesGMT FALSE

#ファイルアップロードのResume機能(転送を中断点から再開する機能)を有効にするか指定する。
AllowStoreRestart on

#ファイルダウンロードのResume機能(転送を中断点から再開する機能)を有効にするか指定する。
AllowRetrieveRestart on

#スタンドアロンで動作している場合のProFTPDの待ち受けTCPポート番号を指定する
Port 21

#/etc/shellsにシェルバイナリが記述されていないユーザのログインを許可するか指定します。(デフォルト:on(拒否する))
RequireValidShell on

#新規作成されるファイルパーミッションのマスク値を指定する。(例えばマスク値に022を指定すれば 新規作成されるテキストファイルの基本パーミッションは666であるため単純に減算してパーミッションが644に設定されるということ。)
Umask 022

#スタンドアロンで動作している場合の親プロセスが生成する子プロセス数を指定する。最大値を超えた接続は切断されます。(子プロセスはクライアントが 接続されるたびに生成される。よって同時に接続を許すクライアント数を指定する。)
MaxInstances 30

#ProFTPDを動作させるユーザ名 グループ名を指定する
User nobody
Group nobody

#ファイルの上書きを許可する(デフォルトではクライアントはファイルを上書きできない)
<Directory />
AllowOverwrite on
</Directory>

#全てのユーザーに隠しファイルの表示を許可する
ListOptions "-a"

#Identを使用させない
IdentLookups off

#基本的にユーザーのログイン後のディレクトリは、ホームディレクトリのpublic_htmlフォルダ
DefaultRoot ~/public_html/ !root
DefaultRoot / root

#ログイン後のディレクトリ
DefaultChDir /