戻る

Cygwinで便利!

ProFTPD の動作確認は Cygwin 1.3.22 で行いました。
そして、IP エイリアシングと virtual host を設定してみましたが、
望みどおり動いていません (汗)
設定がおかしいのか、Cygwin 上での ProFTPD の動作がおかしいのか、
多分前者だとは思いますが、とにかく望みどおり動いてません。
今後設定を煮詰める予定です・・・。

virtual host でなく、単体のサーバとしてなら完全に動きますので、
とりあえず情報は公開しておきます。

そして、いつものことですが、
このページでの作業は Administrators に所属しているユーザで
行うことを想定しています。
戻る

ProFTPD を使う

なぜ ProFTPD を使うのか

Windows 上での FTP サーバはいくつか選択肢があって、
個人的には以下の 3 つがおすすめです (どれもレジストしました)
BulletProof FTP Server
RaidenFTPD
Serv-U

これらは Windows Native のアプリケーションで、
シェアウェアだということ以外はパフォーマンスもよく、
特に BulletProof FTP Server はとてもいい感じです。

しかし、これらのアプリケーションを使うと、
Windows のログインアカウントとは別にアカウントとパスワードを
管理する必要があります。
Windows と同じアカウントを同期したパスワードで使うには、
IIS の FTP サービスを使用するか、
Cygwin 上の ProFTPD を使うしかありません。
# 同じことがいいか悪いかは別にしておきましょう

そういうわけで、Cygwin 上の ProFTPD には大きな価値があります。
Linux で ProFTPD を使い慣れている人にとっては
同じ config で動くということも大きな価値でしょう。

必要なパッケージのインストール

私のページのインストール方法を使用した人は
特に確認する必要はありませんが、
それ以外の方法でインストールした人は Cygwin 本体以外に
以下のパッケージをインストールしておく必要があるので確認してください。
インストールは Cygwin 標準の setup.exe から実施しましょう。

所有権 / パーミッションの準備

インストールが終わったら、サービスにインストールする前に
少しだけディレクトリの準備やパーミッションの設定が必要です。
設定を施しておかないと、1 度だけは起動して、
2 度目以降起動しなくなったりするので、
ちゃんと設定しておくことをおすすめします。

ログの出力先は /var/log/proftpd 配下と仮定します。
# 変更する場合は今後の処理全てを読み替えてください

$ mkdir -p /var/log/proftpd
$ chown -R 18:544 /var/log/proftpd
$ chmod 775 /var/log/proftpd
$ chown 18:544 /etc/proftpd.conf
$ chmod 664 /etc/proftpd.conf

anonymous の準備

anonymous アクセスを許可するなら、そのためのユーザを作成しましょう。
ftp というローカルユーザを作成して、アカウントを無効にしてください。
この際、ftp ユーザは users にだけ所属するようにしてください。
その後、以下のコマンドで、Cygwin 上にそのアカウントを反映させましょう。
# anonymous ログインを許可しない場合は必要ありません

$ mkpasswd -l | grep ftp >> /etc/passwd

Windows 上のサービスにインストール

準備が終わったら Windows 上のサービスにインストールしましょう。
proftpd は以下のコマンドでサービスにインストールできます。
# /usr/doc/Cygwin 配下のドキュメントを参考にやや編集しました

$ cygrunsrv -I proftpd -d "CYGWIN proftpd" \
> -p /usr/sbin/proftpd -e CYGWIN="ntsec nosmbntsec" \
> -a "--nodaemon" --termsig TERM --shutdown \
> -1 /var/log/proftpd/cygrunsrv_out.log \
> -2 /var/log/proftpd/cygrunsrv_err.log

実際に使う

後は設定して起動するだけで、ProFTPD は動作します。
ほとんどデフォルトの設定でも動くので、
特に迷うところは無いでしょう。

参考になる Web サイトは以下の通りです。
http://proftpd.linux.co.uk/docs/directives/configuration_full.html
http://www.infoscience.co.jp/technical/proftpd/
http://www.saposen.com/kuniG/text/text2_7.html
http://www2.ocn.ne.jp/~virii/sol8/install/proftpd/
http://village.infoweb.ne.jp/~fwif0083/mine/lan/proftpd/

参考としての私の設定は以下の通りです。
proftpd.conf

注意 ( /etc/ftpusers )

Cygwin で Anonymous を使いたい場合は、
/etc/ftpusers を必ず確認してください。
Cygwin の場合はデフォルトで /etc/ftpusers に ftp , anonymous が
記述されているため、そのままでは使えません。

また、アカウントの一部の人にだけ、FTP を公開したい場合は、
とりあえず以下のコマンドで全員の拒否設定を行った後、
公開したい人だけを /etc/ftpusers から除くと良いでしょう。
$ awk -F: '{print $1}' /etc/passwd > /etc/ftpusers


ところで、FTP はパスワードがネットワーク上を平文で流れるので、
ログインパスワードがどんなに暗号化されていても、
FTP を使った時点でアウトです。
そのための対処ディレクティブとして、UserPassword などもおすすめしておきます。
# ssh のポートフォワーディングなどもありです☆
戻る

ProFTPD を使わなくなったら

Windows 上のサービスからアンインストール

Cygwin をアンインストールするときや、
ProFTPD を使わなくなったときなどはサービスからアンインストールしましょう。

以下のコマンドでアンインストールができます。
$ cygrunsrv -R proftpd
サービスから名前が消えていることを確認してください。
Valid XHTML 1.0 Strict Valid CSS!
戻る