proftpd をインストールする。あまり使うことはないんだけど一応念のため。debian.dodes.org にあるのは、1.2.6 なので、1.2.10
のソースをget でしてdeb 化する。データベース認証を用いると、mysql やpostgresql がからんでくるので、依存関係のエラーが発生するだろう。rules
を編集するという手もあるだろうが、以下では、足りないパッケージを片っ端からインストールする。
landisk:~# mkdir proftpd
landisk:~# cd proftpd
landisk:~# apt-get source proftpd
landisk:~# cd proftpd-1.2.10
landisk:~# dpkg-buildpackage -rfakeroot
dpkg-checkbuilddeps: Unmet build dependencies: libmysqlclient12-dev
(>= 4.0.23) postgresql-dev (>= 7.2) libwrap0-dev
|
とりあえず、片っ端から apt-get でインストールしていく。
landisk:~# apt-get install postgresql-dev libwrap0-dev
|
libmysqlclient12-dev は、debian.dodes.org にはなかった。ソースからダウンロードし、dpkg-buildpackage
したが、多くの依存関係エラーが発生した。これを全て解決するのは大変なので、apt-line に以下の1行を加えてみることにした。iohack というサイトで、libmysqlclient12-dev
が置いてある。
landisk:~# vi /etc/apt/sources.list
deb http://iohack.sourceforge.jp/debian ./
|
データベースを更新し、インストールする。最後に、dpkg-buildpackage してdpkg -i でインストール。
landisk:~# apt-get update
landisk:~# apt-get install libmysqlclient12-dev
landisk:~# dpkg-buildpackage -rfakeroot
landisk:~# # ls | grep deb
-rw-r--r-- 1 root staff 192192 8月 28 07:28 proftpd-common_1.2.10-15_sh4.deb
-rw-r--r-- 1 root staff 417668 8月 28 07:25 proftpd-doc_1.2.10-15_all.deb
-rw-r--r-- 1 root staff 399188 8月 28 07:28 proftpd-ldap_1.2.10-15_sh4.deb
-rw-r--r-- 1 root staff 414726 8月 28 07:28 proftpd-mysql_1.2.10-15_sh4.deb
-rw-r--r-- 1 root staff 414302 8月 28 07:28 proftpd-pgsql_1.2.10-15_sh4.deb
-rw-r--r-- 1 root staff 388420 8月 28 07:28 proftpd_1.2.10-15_sh4.deb
landisk:~# dpkg -i proftp*.deb
|
インストールする。認証などを行う予定はないので、DB関連のパッケージはインストールしない。
landisk:~# dpkg -i proftpd-doc_1.2.10-15_all.deb
landisk:~# proftpd_1.2.10-15_sh4.deb
landisk:~# proftpd-common_1.2.10-15_sh4.deb
|
たまにしか使わないので inetd 経由で起動する。
landisk:~# vi /etc/inetd.conf
ftp stream tcp nowait root /usr/sbin/tcpd /usr/sbin/proftpd
|
/etc/proftpd.conf を編集する。ListOptions を -l にしておくと、ドットで始まるファイル名が一覧できないので、-a
としておく。
landisk:~# vi /etc/proftpd.conf
ServerName "Debian" ServerType inetd Port 21 DefaultServer on DefaultRoot ~/public_html #ListOptions "-l" ListOptions "-a"
|
■トラブルシューティング
FFFTPを使うとサーバーにファイルはあるのに、FFFTP上にはファイルは表示されないという現象が起きる。これは、proftpd が 1.2.9
から 1.2.10 に変わったことでNLSTの仕様が変更になったからだそう。対策としては、FFFTP側で以下の設定を行う。
「設定変更」→「高度」
1.「NLST -R を使って高速に再起検索」のチェックを外す
2.「LISTコマンドでファイル一覧を取得」にチェックを入れる
また、1.2.9以前のNLSTコマンドと同じ挙動をするようになるパッチがあったので紹介しておきます。
■ProFTPD
NLSTパッチ
⇒ProFTPD1.2.10用 NLSTパッチ
使用法
# tar zxf proftpd-1.2.10.tar.gz
# patch -p0 < proftpd-1.2.10-nlst-ffftp.patch
# cd proftpd-1.2.10
# ./configure ・・・・ |
■参考
将来的にTLS を使うかもしれないので参考サイトをメモ
⇒セキュアFTPサーバの構築(ProFTPD+SSL/TLS)
|