富士通

 

運用開始

~部門サーバのWindows Server 2008への移行~

Windows Server 2008 β(以降、Windows Server 2008)に移行した部門のサーバ環境で、日々運用を行っています。そんな中、FTPクライアントを用いて何気ない操作を行ったところ、FTPサーバから応答がないという事がありました。この問題に対し、どのように調査し解決に至ったかを以下にまとめました。

FTPサーバから応答がない!

Windows Server 2008に移行した部門サーバで、FTP.exe(FTPクライアントプログラム)を用いて、FTPサーバのデータを入手しようとFTPサーバへの接続を行いました。ところが、接続は正常に行えたものの、lsコマンドやdirコマンド(どちらもファイルやディレクトリ情報を表示するコマンド)入力後、いつまで経っても応答が返ってこない、という問題に遭遇しました。

図1 Windows Server 2008にてFTPコマンドls実行

様々なコマンドを試し、cdコマンドなど使用できるコマンドもありましたが、一部でこのような現象になることがわかりました。

原因を追究してみると・・・。

FTPクライアント機能はUnixベースアプリケーション用サブシステム(「プログラムと機能」 「機能の追加」選択しインストールします。以降、SUA)や、Internet Explorer(以降、IE)も有しています。ところが、これらは問題なく通信できたのです。運用OSがβ版であったため、もしや不具合なのでは?という疑念を持ち、問題の原因追究のためパケットを採取することにしました。

FTPでは制御に21番ポートを、データ転送に20番ポートを使用します。問題のケースは、FTPサーバがクライアントへ20番ポートを使用してデータ転送パケットを送信していましたが、その後のパケット出力がありませんでした。FTPサーバから応答がなかったのは、このように通信が途絶えていたためでした。そこで、Windows Server 2008の既定で有効となっているファイアウォールがブロックしているのでは、考えました。

この問題の対策として、Windowsファイアウォールの設定でFTP.exeを例外として登録し、ファイアウォールの対象からはずすことにしました。具体的には以下の操作です。 「コントロールパネル」 「Windowsファイアウォールの設定」の「例外」タブ欄に、プログラムを追加登録します。ここで「プログラムの追加」を選択し、パスにC:\Windows\System32\FTP.exeを指定します。

図2 「例外」タブによるプログラムの追加

これによってFTP.exeはファイアウォールにブロックされることなく、通信できるようになりました。問題の発生するFTPコマンドは、FTPクライアントの要求に対し、FTPサーバからデータ転送されるため、ファイアウォールがパケットをブロックしていたのです。

なお、SUAとIEはパッシブモード(常にFTPクライアントから通信の接続要求を行う方法)で動作するプログラムであるため、ファイアウォールにブロックされることがありませんでした。

参考

もし、Windows Server 2008がServerCoreならば、コマンドプロンプトからネットワーク設定や変更が出来るnetshコマンドを使用し、図2と同じ設定を行うことが可能です。

入力例
> netsh advfirewall firewall add rule name="AllowFTP.exe" dir=in program="C:\Windows\System32\FTP.exe" action=allow

Windows Vistaではなぜ問題にならなかったのか?

ファイアウォールに関してWindows Vistaでも既定で有効であるため、Windows VistaでFTP.exeを使用したとき今回のようにブロックされることがあるはずです。なのに、なぜ問題にならないのか・・・、という疑問が残ります。
Windows Vistaの場合、このような事態に遭遇すると、ダイアログによるメッセージが通知されるのです。そのため、ユーザはファイアウォールによってブロックされていると気付くことができます。また、Windows XPの場合も同様にメッセージ通知されました。

図3 Windows XPによる通知画面

最後に

Windows XPやWindows Vistaでは図3のようなメッセージ通知がありますので、即座に対応することできますが、Windows Server 2008ではメッセージ通知がないため、すぐ原因に気付くことができませんでした。
このような悩みを解決するために、Windows Server 2008でもメッセージ通知の設定が可能です。図2の左画像「例外」タブの「Windows ファイアウォールによる新しいプログラムのブロック時に通知を受ける」にチェックを入れるだけです。 このチェックはWindows XP、Windows Vistaと同様にWindows Server 2003 R2でも既定でチェックが入っていますが、Windows Server 2008では入っていません。Windows Server 2008の変更点の一つとして認識しておくと、今後のトラブル対策に役立つでしょう。


本製品・ソリューションに関する資料請求・お見積もり・ご相談

 お電話でのお問い合わせ

0120-933-200 富士通コンタクトライン

受付時間 9時~17時30分
(土・日・祝日・当社指定の休業日を除く)

 Webフォームでのお問い合わせはこちら

 オンラインでのご購入・お見積もり

富士通直販サイト WEB MART[法人]

(法人・SOHOのお客様向けPCサーバのご購入はこちら)