[Network]
|
|||||||||||
電子メールの送受信が異常に遅い―― XPのファイアウォール機能とidentサービス ――
|
|||||||||||
|
解説 |
Windows XPは、OSの標準機能としてファイアウォール(パケット・フィルタ)が用意されている。チェックボックスを1つオンにするだけで利用できるのだから、インターネットに接続しているユーザーならばぜひとも活用したいところだ(詳細については「TIPS:Windows XPのファイアウォール機能を活用する」)。Windows XPのファイアウォール機能を有効にしても、インターネット上のアプリケーションはほとんどそのまま利用することができるので、使わない理由はないだろう(ただしアプリケーションによってはいくらか制約を受ける場合がある)。
ファイアウォールを有効にしておくと、インターネット側から自分のマシンや、ICSのクライアントとなっているマシン上で動作しているサービスを利用することはできなくなる。もし外部からアクセスしようとしても(外部からTCPやUDPで接続しようとしても)、外部へは一切何も応答を返さないので、外部からはサービスが存在しているかどうかすら分からない。例えばポート・スキャンのような攻撃が行われても、外部へは何も応答を返さないので、外部からはそのマシンが存在しているかどうかも分からず、(ログ機能が有効ならば)単にログ・ファイルに記録が残るだけである。
だがこのような動作は、ファイアウォールの振る舞いとしては望ましいのであるが、時としてトラブルの元になることがある。例えばインターネット上のメール・サーバにアクセスする場合、サーバによっては、クライアント側のホストに対しident(identdやauthなどとも呼ばれることがある)というプロトコルを使って逆に認証を行う場合がある。ident(Identification Protocol)は、TCPの113番ポートを使った認証用のプロトコルであり、RFC1413で定義されている。identは、サーバとの通信に使用しているコネクションのタイプ(OSタイプやその所有者)を調べるために使われることが多い。例えばクライアントからメール・サーバにTCPで接続すると、逆にサーバからこのidentプロトコルを使って、その通信が本当にそのクライアントから発行されているかどうかが確認される。だがこのidentの普及度はそう高くなく、identに対してクライアントから応答を返さなくても特に問題はないだろう(ファイアウォールによっては、ダミーのident応答を返す機能を持っているものさえある)。実際、Windowsマシンに対してこのident要求を送っても、そのようなサービスはもともと用意されていないので、拒否されるだけである。正確にいうと、「そのようなサービスはありません」という応答(TCPのReset応答)をすぐに返す。サーバ側でも、identが拒否されたからとしても特にサービス自体を切断したりすることもなく、実際には問題がないことがほとんどである。identは過去との互換性のためにだけ存在しているようなものといえよう。
だがXPのファイアウォール機能を有効にしていると、この「拒否応答」すら返さなくなってしまう(「拒否を返す」のではなく、本当に「何も返さない」)。するとサーバによっては、何も応答が返ってこないので、ident要求がタイムアウトするまでメールの送受信を行わない、という動きをする場合がある。これをユーザーの側から見ると、ファイアウォールが無効ならばメールの送受信がすぐにできるが、ファイアウォール機能を有効にしていると、メールの送受信がなぜかしばらく(例えば20秒とか30秒程度)待たされてしまう、という現象となって現れることがある。
このような予期しないタイムアウト待ちを避けたければ、ident要求に対して、拒否応答を返すようにすればよい。具体的には、ファイアウォールの[詳細設定]ダイアログにある「サービス」タブで、ident用のサービス(TCPの113番)を定義して公開すればよい。実際にはWindows OSでは(デフォルトでは)identサービスは実装されていないため、TCPの113番をブロックしないようにしても、外部から攻撃されるという問題はない。単に拒否応答が返されるようになるだけである(実際は拒否応答ではなく、オープン後にすぐクローズするという動作になるようだ。この場合はどちらでも問題ない)。もちろんそのようなタイプのメール・サーバなどを使っていないのであれば、無理にこのポートをオープンにする必要はないので、このような設定は行わなくてもよい。
操作方法 |
Windows XPのファイアウォール機能において、identサービス用のポートをオープンにして外部へ拒否応答を返すようにするには、ファイアウォールの「サービス」タブで新たにident用のサービスを定義する。[サービス]タブは、外部に対してサーバやサービスを公開する場合に、そのサーバのIPアドレスやポート番号を設定するためのものであるが、identはデフォルトでは用意されていないので、新たに定義する必要がある。
ファイアウォールの設定を変更するには、まず[スタート]メニューから[接続]−[すべての接続の表示]を選び(もしくは[コントロール パネル]の[ネットワークとインターネット接続]−[ネットワーク接続]を選ぶ)、「ネットワーク接続」のウィンドウを表示させる。そしてファイアウォールが有効になっているネットワーク・アイコンを選択して右クリックし、ポップアップ・メニューから[プロパティ]を表示させる。
ファイアウォールのサービス設定を変更する | ||||||||||||
ファイアウォールが有効になっているネットワーク・アイコンを選択して、[プロパティ]ダイアログの[詳細設定]タブを選択する。公開するサービスを設定するには[設定]ボタンをクリックする。 | ||||||||||||
|
[詳細設定]ダイアログにいくつかタブがあるが、ここでは[サービス]タブに注目する。これは、外部に対してサーバやサービスを公開する場合に、そのサーバのIPアドレスやポート番号を設定するためのものであるが、identはデフォルトでは用意されていないので、新たに定義する必要がある。
サービスの公開の設定 | ||||||
デフォルトではFTPやWebサーバ向けの定義が用意されているが、identサービスはないので自分で追加する必要がある。FTPサーバやWebサーバをインターネットに向けて公開する場合は、必要なプロトコルをチェックして、[編集]を押す。 | ||||||
|
identサービスを公開するためのルールはデフォルトでは用意されていないので、新たに定義することにする。
新しい公開用サービスの設定 | |||||||||||||||
|
以上の設定で、ident要求に対して拒否応答を返す定義が完了しているはずである。実際にメールの送受信などを行って、無用なタイムアウトが生じていないかどうかを確認しておこう。
関連記事(Windows Server Insider) | ||
Windows TIPS:Windows XPのファイアウォール機能を活用する | ||
Windows TIPS:Windows 2000/Windows XPのICSを活用する(NATを利用する方法) | ||
この記事と関連性の高い別の記事
- Windows XPのファイアウォール機能を活用する(1)(TIPS)
- ネットワークの接続拒否とタイムアウトの違いを知る(TIPS)
- XP SP2のファイアウォールでリモート管理を有効にする(TIPS)
- グループポリシーでWindowsファイアウォールをまとめて管理する(ドメイン向け推奨Windowsファイアウォール設定)(TIPS)
- Windowsのポート445(ダイレクト・ホスティングSMBサービス)に注意(TIPS)
このリストは、デジタルアドバンテージが開発した自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
「Windows TIPS」 |
- Azure Web Appsの中を「コンソール」や「シェル」でのぞいてみる (2017/7/27)
AzureのWeb Appsはどのような仕組みで動いているのか、オンプレミスのWindows OSと何が違うのか、などをちょっと探訪してみよう - Azure Storage ExplorerでStorageを手軽に操作する (2017/7/24)
エクスプローラのような感覚でAzure Storageにアクセスできる無償ツール「Azure Storage Explorer」。いざというときに使えるよう、事前にセットアップしておこう - Win 10でキーボード配列が誤認識された場合の対処 (2017/7/21)
キーボード配列が異なる言語に誤認識された場合の対処方法を紹介。英語キーボードが日本語配列として認識された場合などは、正しいキー配列に設定し直そう - Azure Web AppsでWordPressをインストールしてみる (2017/7/20)
これまでのIaaSに続き、Azureの大きな特徴といえるPaaSサービス、Azure App Serviceを試してみた! まずはWordPressをインストールしてみる
|
|