新しい会話を開始

未解決

127 メッセージ

1102

2023年2月22日 00:00

[PowerScale] SPNのはなし ~その認証、NTLMじゃないですか?!

皆様こんにちは、ネットワールドのストレージ担当です。
中の人は最近Hello Cycling(レンタサイクル)で初めて電動自転車に乗って、楽さにびっくりしました。

今回はSPNについて書いていこうと思います。が、
よくある(?)Unityのようなストレージとは違って、PowerScaleではSmartConnect機能を使ってサーバ名を設定しますよね。IP Poolごとに設定が可能な、SmartConnect Zone Name!
PowerScaleではAuthentication Providerの設定で、1ドメインに1つのコンピュータ名しか登録できないのに、なんで名前を複数使えるんだろう、DNS委任設定してるからかな~くらいに思っていたのですが、最近個人的にそのあたりの理解が深まったので調べたことの整理と備忘のため、記事にしてみます。
※ 以下、 当方が普段AD構築をやっているわけではないので、ライトに要点をかいつまんだ内容になっていると思いますのでご了承ください


さて、SPN(Service Principal Name)ですが、これはPowerScaleの機能ではなく、AD/Kerberos認証の話です。
(なのでPowerScaleに関わらず、AD連携するストレージ全般に共通の話でもあります。)

まず、SPNとは何ぞや、というところですが、
SPNとは、Active DirectoryでKerberos認証を利用する際、クライアントがサーバ上のサービスを一意に識別するため登録名。偽のサーバがなりすましてサービスを乗っ取ることを防ぐ。
(IT用語辞典より)
です。ちなみに当然ですが、一意に識別するための登録名なので、フォレスト全体で一意なものしか登録できません。


すなわちAD連携するストレージにおいては、CIFS/SMB領域を提供するときのサービス名(=ファイルサーバ名)がSPNと関係してきます。
ではPowerScaleに関するSPNはどうなっているか、ですが、OneFSに関する過去資料を見ていたところ
以下の記載がありました。
 ※SPNはドメイン参加時に自動で登録されます。もしくは別途コマンドで登録することも可能です。
が、弊社の検証環境で試したところ、SPNは以下の感じでドメイン参加時に指定するMachine accountの名前しか登録されていませんでしたので、仕様が変わったのかもしれません。(ドメイン参加してない状態で、AccessZoneのAuthentication Providerが設定できないため、登録すべきZoneNameがわからないので当然と言えば当然?)
 ※ ドメイン参加するとMachine accountで指定したコンピュータオブジェクトが作成され、そこにSPNが設定されます




じゃぁSmartConnectZoneNameやAliasを1つ1つ手で登録する必要があるんですか・・?
(数が多いとめんどいな、、、ADは触りたくないな・・・)
という疑問が出てきますが、答えはそんなことはない、です。

なぜなら
1.必ずしも登録しなくてもファイルサーバとして使える
or
2.OneFS側からSPNの操作ができる
です。



1.についてはDNSの委任設定を実施して、名前解決ができる状態になっていれば、よくある環境ではIPでもファイルサーバにアクセスできるからです。軽く検索すると以下のような記載がありました。

Windows 10 バージョン 1507 および Windows Server 2016 以降、Kerberos クライアントは SPN で IPv4 および IPv6 のホスト名をサポートするように構成できます。
既定でホスト名が IP アドレスの場合、Windows はホストの Kerberos 認証は試行しません。 NTLM などの他の有効な認証プロトコルにフォールバックします。 
https://learn.microsoft.com/ja-jp/windows-server/security/kerberos/configuring-kerberos-over-ip

つまり、よほど?凝った環境でなければIPでのサービスアクセスは制限されていないので、PowerScaleのSPNを登録していない環境では、単純に名前解決したあとのIPでファイルサーバへのアクセスを試行していて、Kerberos認証ではなくNTLM認証が利用されていると、思われます。

実際、ドメインユーザでログインしたWindows ClientからSPNとして登録されていない名前でPowerScaleにアクセスしたところ、以下のようにドメインコントローラ側で、NTLM認証の際に出力されるというイベントが出力されていることも確認できました。

NetworldTech_7-1677041502121.png

 

ただしSPNを登録しないまま利用する場合、
(NTLM認証を制限しないということは、それに起因するリスクを許容しているという選択の結果かもですが、)
サービス名を検証していないのでIT用語辞典の説明にあったとおり、”偽のサーバがなりすましてサービスを乗っ取る”という事態が起こりえます。(AD自体が乗っ取られればSPNなんて関係ないでしょうが。。)
ちなみに、SmartConnect Zone Nameで指定しているのと同じ名前が、PowerScale以外のADのコンピュータオブジェクトにSPNとして登録されている場合には、ファイルサーバにアクセスできません。
(ファイルサーバ切替の際にDNSの名前変更だけでちょこちょこやろうとしてうまく行かないのはおそらくこのためです。)



そこで、きちんとKerberos認証を利用するべく、かつサービス名を登録して名前の重複が発生しないようにすべく

2.OneFS側からSPNの操作ができる について簡単に紹介です。
なんと、isi auth ads spn コマンドを使えば一発で登録すべき必要なSPNの登録が可能です!!(要Domain Admins権限)


NetworldTech_0-1677040334570.png

まずドメインコントローラから、ドメイン参加したPowerScaleのSPNを確認すると、デフォルトではこんな感じ(上図)になっています。
pscale-cls1というのはPowerScale自体のコンピュータオブジェクトの名前で、この他にisilon.emc.localという名前でSmartConnect Zone Nameを設定しているのですが、そちらはSPNとしての登録はありません。 

NetworldTech_2-1677040504767.png

次に、PowerScale側から例のコマンドで確認するとこんな感じ(上図)です。「spn list」で、現在SPNとして登録されている値の一覧を、「spn check」で登録されているべき名前の一覧を表示してくれます。


NetworldTech_4-1677041038180.png

 

そして、現状を確認した上で、不足分を登録してくれる便利コマンド「spn fix」を実行します。
こんな感じ(上図)で、先ほどmissingとして表示されていたものの登録を試みてくれます。

NetworldTech_5-1677041151412.png

改めて、「spn list」コマンド、およびドメインコントローラ双方から、SPNが追加されていることが確認できます!

とまぁこんな具合になります。
ちなみにSPNが適切に登録されていない場合には以下のようなイベントが出たりします(Informationですけどね。(^o^))

NetworldTech_6-1677041306463.png

 


ということで、今回はPowerScaleとSPNについてのお話でした。少しでも何かに役立てば幸いです。
それでは最後まで読んでいただきありがとうございました。

Networld Techのブログ一覧はこちら!
https://www.networld.co.jp/product/emc/tech-blog/


レスポンスがありません。
イベントは見つかりませんでした!

Top