このページの本文へ移動

運用開始

~部門サーバの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の変更点の一つとして認識しておくと、今後のトラブル対策に役立つでしょう。

PCサーバ PRIMERGYに関する資料請求・お見積もり・ご相談

Webでのお問い合わせ

入力フォーム

当社はセキュリティ保護の観点からSSL技術を使用しております。

お電話でのお問い合わせ

0120-933-200 富士通コンタクトライン(総合窓口)

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