VPN の問題を前にポートスキャンの結果を振りかざすと、到達できるものがあるか、それは思っているサービスか、自分の身元を受け付けるかという三つの問いが混ざってしまう。スキャナは最初の問いには答え、二つ目には漠然と示すだけだ。三つ目の問いにはまったく答えられない、認証情報の受け付けはトランスポートの検査が行うことではないからだ。出力を読む前に、どちらの問いを立てているのかを決めよう。

スキャナは最初の問いには答え、二つ目には漠然と示すだけだ。

開いたソケットはソケットについての事実にすぎない

TCP 接続が成功したということは、何かがその端点を受け付けたというだけだ。待ち受けているのが目的の VPN サービスであること、提示された証明書が期待する名前と一致すること、TLS の検証が通ることを示すものではない。同じホスト名のゲートウェイ管理ページはまったく別のサービスであり、トンネルについては何も示さない。結果は到達性についての事実として扱い、それ以上にはしないことだ。

検査が本当に役立つのは、除外するときだ。自分がいる場所から何も接続を受け付けないなら、ハンドシェイクは成功しえない、その時点で探索は何よりも先に到達性へと絞られる。

UDP の沈黙にはいくつかの説明がある

UDP のプロトコルは、認証されていないパケットを正当に無視することがある、だから応答がないことは判断ではない。経路上のフィルタリング、閉じた端点、あるいは有効なものを受け取るまで意図的に黙っているサービスのいずれかを意味しうる。沈黙を閉じたポートと読むと、本当の不具合がプロファイルにあるのに、人はファイアウォールの規則へと向かう。何か結論を出す前に、別のネットワークから検査をやり直すこと。

曖昧さはプロトコルの性質であって、道具の欠陥ではない。結果を報告するときはそれをはっきり述べるべきだ、自信のある間違いは不確かな正しさより悪いのだから。

信頼の判断は依然としてあなたのものだ

開いたポートは信頼の判断を行わない、だからスキャナの結果は証明書の検証を切る理由にならない。その検証は、意図した相手に届いたかどうかを答えるためにあり、スキャナはそれに答えていない。身元と認証には運用者の実際のプロフィールとクライアントを使い、検証の設定はそのままの状態にしておくこと。

スキャンが開いていると言い、ハンドシェイクが失敗するなら、失敗の興味深い部分はハンドシェイクの側にあり、スキャンの側にはない。

まずやり取りを、次にルートを試す

認証が成功したら、次の段階を別々に調べる、データの関連付け、インストールされたルート、アプリケーションの到達性だ。前の段階が健全に見えていてもそれぞれが失敗しうるし、それぞれに独自の証拠がある。クライアントと待ち受け側のログを、狭い範囲の取得やカウンタと突き合わせれば、繰り返しのスキャンでは決して得られない経路の診断が得られる。ネットワークを比べるときはプロファイルと端点を固定し、交渉がどこで止まるかを記録すること。

診断の範囲も許可されたものに限ること。自分が所有しないシステムを調べるのは、道具が結果について何と言おうと、トラブルシューティングの手法ではない。

スキャンが答えるのは到達性だ。認証には認証情報が要り、ルートにはパケットが要る。サービスがあらゆるログインを拒むのにスキャナは開いたポートを報告でき、別のネットワークからは有効なセッションが動いているのに閉じたポートを報告できる。結果は一本の経路についての一つの観察として扱い、認証情報と戻りのルートを別々に試すこと。

関連記事