Proftpd は FTPサーバであり、他のコンピュータ(クライアント)から接続してファイルの転送を行うことができる。
%su Password: # cd /usr/ports/ftp/proftpd # make install clean # rehash
インストールが完了すると、/usr/local/etc/rc.d/ に proftpd の起動/終了シェルスクリプトが作られる。
Proftpd の動作モードは2タイプある。この部分が混乱するところであり、キモイところである。
次のどちらかの方法で設定すればよい。
| タイプ | standalone | inetd経由 |
|---|---|---|
| プロセス | 常時稼動 | 要求時のみ稼動 |
| 接続 | 早っ | もっさり |
| 有効にするもの | /etc/rc.conf | /etc/inetd.conf |
| 無効にするもの | /etc/inetd.conf | /etc/rc.conf |
| 設定ファイル | /usr/local/etc/proftpd.conf | /usr/local/etc/proftpd.conf |
| アクセス制限 | /usr/local/etc/proftpd.conf | /etc/hosts.allow と /usr/local/etc/proftpd.conf |
| 偏見的メリット | 早っ | sshdなどと同じファイルでアクセス制限が可能 |
| 偏見的デメリット | 別に常時稼動していなくてもいい | もっさり |
Standalone モードは、Proftpd が常に稼動している状態であり、inetdを経由するよりも少しばかり早く反応する。
ただし、アクセス制限は、/usr/local/etc/proftpd.conf で行う必要があり、/etc/hosts.allow での制限が有効にならない。
inetd を使って、FTPポートにパケットが届いた場合だけ、Proftpd を起動するため、standalone モードに比べて、若干、接続までに時間を要する。
inetd を使って起動する方法は、/etc/hosts.allow でアクセス制限ができる(telnetd や sshd と同じファイルでアクセス制限の管理ができる)。
※/usr/local/etc/proftpd.conf に記入したアクセス制限も当然ながら有効である。
まず起動してみる(後にリブートでも自動起動するか確認しておくこと)。
# cd /usr/local/etc/rc.d # ./proftpd start
proftpd が動いているか確認。
# ps aux | grep ftpd
proftpd が動いているようなら、他のコンピュータから接続してみる。
*次のメッセージが表示されて Proftpd が起動しない(ftp.vdobv.comは仮)。
Starting proftpd. - warning: unable to determine IP address of 'ftp.vdobv.com' - error: no valid servers configured - Fatal: error processing configuration file '/usr/local/etc/proftpd.conf'
このような場合は、/etc/hosts に、例えば下記のように、自分自身を追加してみる。
127.0.0.1 ftp.vdobv.com
*FFFTP(クライアント)で接続してもサーバ側のファイル一覧が表示されない。
FFFTPの高度タブで、NLST -R のチェックを外し、LIST をチェックして、再接続して、更新する。
*次のメッセージが表示されて Proftpd が起動しない。
Starting proftpd. - mod_tls/2.1.2: compiled using OpenSSL version 'OpenSSL 0.9.8h 28 May 2008' headers, but linked to OpenSSL version 'OpenSSL 0.9.8j 07 Jan 2009' library - Fatal: unable to load module 'mod_tls.c': Operation not permitted
OpenSSLのバージョンアップで再インストールした場合など、Proftpdに影響する場合がある。make しなおせばいい。