RouterOS は OpenVPN ログインで NPS に到達しても拒否されることがあり、よくある原因はどちらも認証のように聞こえる 二つの設定です。一方はトンネル用の暗号ダイジェストを選び、もう一方はユーザーの資格情報を RADIUS にどう提示するかを決めます。ダイジェストを変えても PAP 要求が MS-CHAPv2 になることは決してなく、サービスを何度再起動しても同じです。以下のチェックリストはこの 二つを分け、その後で 一件の失敗したログインを、それを判定した NPS ポリシーまで追跡します。

ステップ 1: どちらかを変更する前に両方の設定を読む

トンネルを終端するルーターで有効な OpenVPN サーバー設定を出力します。バックアップやコピーしたフォーラム投稿からではありません。重要な 二つのフィールドは通常同じメニューにあり、代替手段のように読めます。そうではありません。一方はデータチャネル、もう一方は資格情報の交換に関するものです。

/interface ovpn-server server print
/interface ovpn-server server export

auth フィールドは sha1 や sha256 などのダイジェストを列挙し、トンネルパケットを認証する HMAC を制御します。user-auth-method フィールドは pap か mschap2 を選び、ルーターがユーザーの資格情報を RADIUS にどう提示するかを決めます。ダイジェストの変更は 二つ目の動作を変えられず、だからこそ同じ拒否が 一つ目への調整のたびに残ります。

お使いのリリースが user-auth-method をまったく公開していない場合は、ここで止めてください。古い RouterOS ビルドでは OpenVPN サーバーで提供されないことがあり、修正は新しいものからコピーしたコマンドではなく、サポートできるリリースに属します。

ステップ 2: 実際にログインを拒否したポリシーを見つける

NPS 側では、接続要求がネットワークポリシーに対して評価され、一致したポリシーに記載された認証方法は、クライアントが実際に提示したものでなければなりません。要約件数を読むのではなく、一件の失敗したログインを時刻とユーザーで関連付けます。セキュリティログは許可された要求と拒否された要求を理由コード付きで記録し、ルーターの一般的な失敗行よりはるかに多くを伝えます。

Get-WinEvent -LogName Security -MaxEvents 200 |
  Where-Object { $_.Id -in 6272,6273 } |
  Format-List TimeCreated,Id,Message

イベントでは 三つを読みます。一致したポリシー名、認証方法、理由コードです。MS-CHAPv2 を要求するポリシーは、パスワードが正しくても PAP 要求を拒否し、ドメインアカウントを要求するポリシーはローカルアカウントを拒否します。RADIUS クライアントのエントリもルーターの送信元アドレスと一致する必要があり、そうでなければポリシーが参照される前に要求が破棄されます。これらのどれも OpenVPN ログには現れません。

要求が NPS にまったく届かない場合は、ここで止めてください。それは共有シークレット、クライアントアドレス、または UDP 1812 の問題であり、認証方法を変えても解決しません。

ステップ 3: 両側で 一つの方法を変更する

承認された設計が MS-CHAPv2 なら、ルーターに設定し、一致するポリシーがそれを受け入れることを確認します。片側を変えて再テストし、その後に反対側を変えます。両方を一度に変えると、どちらが重要だったのか言えなくなります。

/interface ovpn-server server set user-auth-method=mschap2
/interface ovpn-server server print
/log print where topics~"radius"

エラーを消すために NPS でより弱い方法をすべて有効にしないでください。バックエンドには、選んだ方法が検証できる材料が必要です。MS-CHAPv2 はパスワードまたはドメインへのアクセスを必要とし、ポリシーはその材料を発明できません。ポリシーを広げると、攻撃者が同じアカウントに対して試せることも広がります。方法、ポリシー名、変更参照をまとめて記録し、次の人が推測ではなく決定を引き継げるようにします。

トンネルの証明書検証は以前とまったく同じに保ちます。資格情報の方法はサーバー ID の代わりにはならず、テストを通すために TLS チェックを下げることは 一つの問題をより悪い問題と交換します。

ステップ 4: 三件のログインと 一つの権限をテストする

許可されたユーザー、誤ったパスワード、除外されたユーザーを、それぞれ新しいセッションでテストします。一つ目は経路を証明し、二つ目は資格情報の検査が本物であることを証明し、三つ目はポリシーが除外すべき人を依然として除外していることを証明します。キャッシュされたセッションは 三つすべてを隠せるので、試行の間に切断してください。

/log print where topics~"ovpn"
/radius monitor 0

認証の成功はチェックリストの終わりではありません。クライアントが受け取ったアドレスと、そのアドレスが到達できるリソースを確認します。ユーザーは正しく認証しても間違ったプールに落ちることがあるからです。割り当てられたアドレスが間違っている場合、問題は方法ではなく、プロファイルまたは RADIUS 応答属性にあります。チケットを閉じる前に両方を確認してください。

ルーター設定と NPS ポリシーが同じ方法を示し、許可されたユーザーが新しいセッションで接続し、誤ったパスワードが拒否され、除外されたユーザーが引き続き除外され、割り当てられたアドレスが意図したプールと一致するとき、チェックリストは完了です。それ未満では次のログインが偶然に委ねられます。

関連記事