Windows Server 2008 は極めて機能が豊富です。
ファイルサーバーだけでなくインターネット関係の機能も充実していて、おなじみの IIS や FTP、SharePoint Services なども使えます。
その FTP サーバーですが、従来なら IIS の一機能として使ってきましたし、2008 でも同様です。
しかし、2008 からはもう一つの方法があって、新たに FTP7.5 というサーバーが登場しました(マイクロソフトより無償でダウンロードできます)。
実は 2008 では、FTP は IIS6.0 の機能として働き、IIS7.0 の機能ではありません。しかし、FTP7.5 をインストールすると、IIS7.0 の機能として FTP が使えるようになるのです。実際動作させると、UNIX 系OSのFTPによく似た使い方ができるようです。
そこで職場の 2008 にも FTP7.5 を導入してテストしていたのですが、どうしてもうまく動きませんでした。接続はできるのに、ファイルの一覧表示が全くされないのです。動作自体は問題ないのですが、ファイアウォールで引っ掛かるのか、権限の問題で引っ掛かるのか、とにかく表示するために後もうちょっとだけ設定が足りないという雰囲気でした。
web をさまよっていろいろ調べているうちに、解決策が見つかりました。
どうやらファイアウォールの設定が不十分のようで、なんとコマンドで設定しなくてはいけないのです。
以下が使用したコマンドです。
- 21番ポートを開ける設定
netsh advfirewall firewall add rule name="FTP (no SSL)" action=allow protocol=TCP dir=in localport=21 - 動的ファイアウォールにFTP用設定を行う(?)
netsh advfirewall set global StatefulFtp enable
この2つのコマンドを実行したところ、ウソのようにFTPが正常に使えるようになりました。
なんでこんな設定を別にしなくてはいけないのか分かりませんが、いろいろ調べてやっと分かったことで、どこにもこのようなことは書いてありませんでした。
どうもやっぱりサーバーに関しては不親切なところが多いですね。一から十まで親切丁寧に教えろとは言いませんので、どこかを調べると明確な回答が得られるような仕組みがほしいと強く思いました。