あなたのIPv4アドレス:
オペレーティングシステム:
プロバイダー:

open・closed・filteredの違い:ポートチェック結果の読み方

ポートチェックが示すのは、ある場所から1回接続を試みたときにどう見えたか、という結果です。「open」「closed」「filtered」は診断に役立つラベルですが、1回の結果だけでは、経路上のすべての機器を特定することも、アプリケーションが安全かどうかを判断することもできません。

3つのラベルの意味

TCPの場合、openは通常、相手側のエンドポイントが接続の確立を受け入れたことを意味します。closedは通常、明示的に拒否されたことを示します。アドレスは応答したものの、そのポートでTCP接続を受け付けるサービスがなかった状態です。filtered(応答なし)は、タイムアウトまでに判断材料となる応答を得られなかったことを意味します。経路上のファイアウォール、ルーター、ネットワークが、プローブかその応答を破棄した可能性があります。ラベルだけでは、どの機器が破棄したのかはわかりません。

ツールによって、使うプローブや表記が異なることがあります。特にUDPは、接続の確認応答の仕組みを持たないため、応答がないことから状態を判断するのは困難です。何も返さないUDPサービスが存在することもありますし、TCPのチェックに成功しても、同じ番号のUDPについては何もわかりません。ルールを変更する前に、アプリケーションが実際に使っているトランスポートを確認してください。

自宅で公開するサービスへの経路をたどる

自宅でアプリケーションを公開している場合は、まず、意図したポートとインターフェースで待ち受けているかを確認します。127.0.0.1にのみバインドされたプロセスは、ローカルからの接続は受け付けますが、ネットワークから届いたリクエストは受け付けません。次に、ホストのファイアウォールとルーターのポートフォワーディングルールを確認します。プロバイダーがキャリアグレードNATを使っている場合、共有されているパブリックIPv4アドレスでは、自分のルーターへの任意の着信接続が許可されないことがあります。その場合、自分の機器で転送ルールを変えるだけでは不十分です。

2IPのポート開放確認は、自宅ネットワークの外から実行してください。NATループバックは実際の外部からの通信とは挙動が異なるため、内部からテストするだけでは誤った判断をしかねません。外部からの結果を、アプリケーションのローカルログと比べてみましょう。リクエストは届いているのにアプリケーションがエラーを返しているなら、問題はポートではなくアプリケーション層にあるのかもしれません。

アクセス範囲を広げずに問題を解決する

緑色の結果を出すために、ファイアウォール全体を無効にするのはやめましょう。必要なプロトコルとポートだけを許可し、可能であれば接続元のアドレスを制限し、公開するサービスは常に最新の状態に保ってください。開いているポートが自動的に脆弱性になるわけではありませんが、接続を試みる余地を与えることにはなります。closedという結果が出ても、デバイス全体が安全だとは言えません。ほかのサービスにはアクセスできるかもしれないからです。

ポート番号についてはネットワークポートの解説記事で、フィルタリングルールについてはファイアウォールの解説記事で説明しています。スキャナーの状態名は、プローブの種類と応答とあわせて読んで初めて、便利な略語として機能します。

IANAのサービス名・ポート番号レジストリには、割り当て済みの番号とトランスポートが掲載されています。ただし、割り当てがあるからといって、そのポートの通信が安全である、あるいはその名前のアプリケーションのものであるとは限りません。