2012年8月23日(木)更新ProFTPDを使い、FTPサーバーを立ち上げます。標準の機能に加え、NLSTコマンドの有効化もやっておきます。最近ホームページ関連ではブログ形式がメインでFTPによるアップロードなどはあまり行いませんが、写真集のダウンロードなどには便利でなので使えるようにしておきます。CentOSの標準ftpはvsftpdですが、従来より使いなれたProFTPDを使います。クライアントとしては昔からffftpが有名で、使っている友人も多く私自信も使っていますが、最近のproftpdはRFC規格に厳格に準拠したとかでffftpのNLSTコマンドが使用できません。なったことをいちいち説明するのもめんどうなので従来どおり使えるようにNLST有効化パッチをあててビルド、インストールします。proftpd-1.3.2-1.rf.src.rpmをダウンロード。~/rpm/SRPMS/に置き、ソースインストール。proftpd-1.3.2-1.rf.src.rpmソースを展開しておきます。prodtpd-1.3.2.tar.bz2http://gochagocha.ribbon.to/source/よりNLST有効化パッチproftpd-1.3.2e-nlst-ffftp.patchをいただきました。感謝!内容を確認したら少なくとも行番号と内容は合致しているのでそのまま今回のRPMForgeのバージョンに使えそうです。ダウンロードしたファイルを~/rpm/SOURCES/に置き、ファイル名と中の1.3.2eの部分を1.3.2に変更しておきます。(patchの書き方など全く知らないけど、これでいいのかな?)ためしにパッチ当て。proftpd-1.3.2/modules/mod_ls.cとなり、一瞬で完了。古いprodtpd-1.3.2.tar.bz2を捨てて再度パッチ当てしたソースから作成。proftpd-1.3.2再ビルド。lsrpmができています。本体のみインストール。追加しバージョンの固定をしておきます。設定ファイルは/etc/proftpd.confだけ。オープニングメッセージに表示されるサーバー名。STANDALONEで起動。ほとんどリソースはくわないのでinetdの必要はなさそう。ファイルのタイムスタンプを日本時間で表示する。ユーザのホームディレクトリのみ表示。onにすると遅くなるしDNSが引けないとつながらない。ポートは標準のFTPポート21を使用。安全のためユーザ以外の書込と実行権限を落しておく。ドットファイルも表示。rootでのログイン不可、認証トライは3回まで。Resume機能(途中で転送を中断した後の途中からの継続)を有効にする。アップロードが途中で中断されたとき中途のファイルは削除。子プロセスの数、1ホストからの接続数を制限。...MaxInstancesの分だけ空いているポートでPassivePortsを指定。ファイアウォール(/etc/sysconfig/iptables)にも許可設定しておくこと。外部から確実にこのサーバーに到達するアドレス。認証が成立するまで仮に動作するユーザ、グループ。nobody#systemlogをとる。あとでアタックの検知に使う。その他のログは少し見やすく変更して。%u"#アクセスログ。default#認証ログ。/var/log/proftpd/xfer.logテスト起動設定をして起動します。ブラウザからつないでみます。予想通りSELinuxさん登場!。それにしても自分のホームディレクトリを読み書きするのにいちいちSELinuxさんに許可をお願いするなんて...。登録されたソフト以外ではだめなんだな、きっと。ffftpのNLST、LISTコマンドどちらでも、また通常、PASSIVEモードどちらでもOKなのを確認。サーバーと同一ルーター内からだとPASSIVEモードでないとつながりません。なんでだろう?そういえば昔使っていたルーターで同一ルーター内からは自分のホームページが見れないことがありましたがあのたぐいかな。以上でFTPサーバー完了。写真や資料などをホームページとは別にFTPサイトに保存して公開する場合も多いかと思いますが、その場合ftpでつないでファイル名だけ見ても中身が全然わかりません。そのような場合、写真ファイルなどをサムネイル画像で表示してくれて写真などもその場で見れるファイルブラウザを導入するとftpサイトの閲覧がとても楽になります。WebShareというのを導入してみました。無料のソフトで、写真やファイルの一覧が見れてさらにファイルのダウンロードやアップロード、簡単なテキストファイルの作成なども行えます。