ポートスキャンでは誰がログインを受け付けるか分からない
開いたソケットは身元や認証情報について何も語りません。ハンドシェイクには実際のプロフィールを使い、その後ルートと到達性を別の段階で確認してください。
VPN の問題を前にポートスキャンの結果を振りかざすと、到達できるものがあるか、それは思っているサービスか、自分の身元を受け付けるかという三つの問いが混ざってしまう。スキャナは最初の問いには答え、二つ目には漠然と示すだけだ。三つ目の問いにはまったく答えられない、認証情報の受け付けはトランスポートの検査が行うことではないからだ。出力を読む前に、どちらの問いを立てているのかを決めよう。
スキャナは最初の問いには答え、二つ目には漠然と示すだけだ。
開いたソケットはソケットについての事実にすぎない
TCP 接続が成功したということは、何かがその端点を受け付けたというだけだ。待ち受けているのが目的の VPN サービスであること、提示された証明書が期待する名前と一致すること、TLS の検証が通ることを示すものではない。同じホスト名のゲートウェイ管理ページはまったく別のサービスであり、トンネルについては何も示さない。結果は到達性についての事実として扱い、それ以上にはしないことだ。
検査が本当に役立つのは、除外するときだ。自分がいる場所から何も接続を受け付けないなら、ハンドシェイクは成功しえない、その時点で探索は何よりも先に到達性へと絞られる。
UDP の沈黙にはいくつかの説明がある
UDP のプロトコルは、認証されていないパケットを正当に無視することがある、だから応答がないことは判断ではない。経路上のフィルタリング、閉じた端点、あるいは有効なものを受け取るまで意図的に黙っているサービスのいずれかを意味しうる。沈黙を閉じたポートと読むと、本当の不具合がプロファイルにあるのに、人はファイアウォールの規則へと向かう。何か結論を出す前に、別のネットワークから検査をやり直すこと。
曖昧さはプロトコルの性質であって、道具の欠陥ではない。結果を報告するときはそれをはっきり述べるべきだ、自信のある間違いは不確かな正しさより悪いのだから。
信頼の判断は依然としてあなたのものだ
開いたポートは信頼の判断を行わない、だからスキャナの結果は証明書の検証を切る理由にならない。その検証は、意図した相手に届いたかどうかを答えるためにあり、スキャナはそれに答えていない。身元と認証には運用者の実際のプロフィールとクライアントを使い、検証の設定はそのままの状態にしておくこと。
スキャンが開いていると言い、ハンドシェイクが失敗するなら、失敗の興味深い部分はハンドシェイクの側にあり、スキャンの側にはない。
まずやり取りを、次にルートを試す
認証が成功したら、次の段階を別々に調べる、データの関連付け、インストールされたルート、アプリケーションの到達性だ。前の段階が健全に見えていてもそれぞれが失敗しうるし、それぞれに独自の証拠がある。クライアントと待ち受け側のログを、狭い範囲の取得やカウンタと突き合わせれば、繰り返しのスキャンでは決して得られない経路の診断が得られる。ネットワークを比べるときはプロファイルと端点を固定し、交渉がどこで止まるかを記録すること。
診断の範囲も許可されたものに限ること。自分が所有しないシステムを調べるのは、道具が結果について何と言おうと、トラブルシューティングの手法ではない。
スキャンが答えるのは到達性だ。認証には認証情報が要り、ルートにはパケットが要る。サービスがあらゆるログインを拒むのにスキャナは開いたポートを報告でき、別のネットワークからは有効なセッションが動いているのに閉じたポートを報告できる。結果は一本の経路についての一つの観察として扱い、認証情報と戻りのルートを別々に試すこと。