ログインは成功し、トンネルも確立するのに、ファイアウォールの内側からは何も応答しない。SonicWall SSL VPN でこの症状が出るときは、アカウントが認証を通過したうえで、その後の二つの許可のどちらかで止まっていることが多い。SSL VPN サービスへの受け入れか、リソースへの到達許可である。ローカルと LDAP のアカウントが混在すると事態は悪化する。二つのストアがこれらの許可に至る経路が違うからだ。クライアント側から見た症状は同じなので、層を意識して切り分ける必要がある。

症状と、その背後にある三つの許可

ユーザー名から到達可能なサーバーまでの間には、独立した三つの判断がある。認証方式は、資格情報が受け入れられるか、どのストアが受け入れるかを決める。SSL VPN サービスへの所属は、その身元がそもそも SSL VPN を使えるかを決める。VPN アクセスリストは、セッションがどのプライベート宛先に届くかを決める。一つを通っても、次の二つについては何も分からない。

認証は通ったが SSL VPN サービスのグループに入っていないユーザーには、確立しても何も運ばない接続が見える。ファイアウォールのログには失敗ではなく、ログインの受け入れが記録される。早く見抜く価値のあるケースだ。修正はグループへの所属であり、パスワードの再設定ではない。

受け入れられてもリソースがないユーザーには、接続はするが有用な場所へルーティングされないセッションが見える。どちらもヘルプデスクからは壊れたトンネルに見えるが、どちらも設定の問題であって接続性の問題ではない。

ドメイン欄はディレクトリではない

NetExtender はドメインを尋ねるが、その欄は Active Directory の検索ベースではない。既定の構成では、この欄はファイアウォールに設定された SSL VPN ユーザードメインと一致していなければならず、その文書化された既定値は LocalDomain。 比較は大文字と小文字を区別するため、大文字小文字が異なる値はアカウントが正しくても失敗する。

認証パーティションを設定している場合は、パーティション名が外部認証コンテキストを選び、設定済みの既定値は独自の役割を保つ。どちらの構成でも、クライアント側のドメインラベルはユーザー名の一部として LDAP や RADIUS に転送されないため、ディレクトリ検索の制御には使えない。

三つの文字列はメモで分けておく。会社の DNS サフィックス、LDAP 検索ベース、NetExtender のドメインラベルである。似て見えるが、どれも他の代わりにはならない。別のファームウェア版についてのフォーラム投稿の値ではなく、この設置環境の運用者が示した値を使う。

受け入れとリソースアクセスは別の許可

ローカルアカウントは、サービスが受け入れる前に SSL VPN サービスのグループへの所属が必要だ。ディレクトリアカウントは、サポートされているグループマッピングのワークフローで同じグループに到達する。つまり LDAP のグループ関係を設定し、そのうえで ディレクトリ側の想定ではなく、実際に有効な所属として検証する必要がある。

次にリソースアクセスがある。ユーザーまたはグループの VPN アクセスで設定する。役割に必要な具体的なサブネットとサービスだけを与え、一つのアプリケーションが必要だからといって LAN 全体を渡す近道はしない。セッションのルート、アクセス規則、宛先サービスの権限は、すべてその範囲と一致していなければならない。

LayerWhat it decidesWhere it is set
AuthenticationWhether the credential is accepted, and by which storeAuthentication method and directory configuration
AdmissionWhether the identity may use the SSL VPNSSL VPN service group membership
ResourceWhich destinations the session may reachVPN Access on the user or group

クライアント上のルートは宛先を選択可能にするだけで、許可を与えるものではない。SSL VPN グループへの所属も、アカウントをファイアウォール管理者にするものではなく、一般的な権限付与として扱うべきではない。

二つの身元、それぞれ四つの確認

ローカルアカウント一つとディレクトリアカウント一つでテストする。どちらも権限を狭くし、どちらもテスト用アカウントとして文書化する。それぞれについて、ログインを受け入れた認証元、有効なグループ、割り当てられたリソースアクセス、許可されたアプリケーション操作を一つ記録する。四つの確認、二つのストア、組み合わせごとの文書化された結果である。

次に否定ケースを試す。アカウントが到達すべきでないリソースと、そもそも拒否されるべきアカウントである。肯定経路だけを示す設計は、特に同じ短いユーザー名が両方のストアにある場合に、第二の入口を開けたままにしがちだ。ディレクトリアカウントを無効にし、ローカルのアカウントが黙って使え続けないことを確認する。

重複名の確認は、インシデントの後ではなく展開の一環として行う。同じ人物が二つのストアにいることは、サポート上の便利さであると同時に監査上の問題であり、ファイアウォールは設定したほうを喜んで認証する。

復旧経路は狭く保つ

ローカルアカウントを除外するのではなく、アカウント区分ごとに MFA ポリシーを維持する。ディレクトリ障害時の承認済み復旧経路としてローカルアカウントを使うなら、その経路を名前を特定した管理者に限定し、意図的に運用する。従業員全員にローカルの緊急アカウントを与えるのは、監視の弱い二つ目の認証システムだからだ。

クライアントのドメイン、認証元、有効なアクセスを同じ記録に書く。そうすれば次の管理者は、ログインが通るまでドメイン文字列を試すのではなく、機能する混在アカウントの設計を再現できる。

関連記事