2010/09/12

mount.cifsとNTLMV2とWindows2008R2

Samba 3.2.0pre2 リリースノート - Samba-JP
現在のkernelバージョン中では smbfsはもはやサポートされず、smbmountはこのSambaバージョンでは削除されました。その代わりにcifs(mount.cifs)を使ってください。

・・・sambaの3.2からはsmbmountが無くなっていたらしいです。
知らなんだ。

何でこんなことを言っているかというと、今ようやくWindows鯖を2008R2に移行しているところで、そうしたらlinux側から共有ディレクトリにアクセスできないという事態に陥り・・・。
理由を追っていくと、windows鯖側でNTLMV2以外のアクセスを許可しないようにしている(LMCompatibilityLevel=5)のがいけないっぽいのですが、cifsのマウントオプションで
sec=ntlmv2やntlmv2i
とすると”error 22 = 無効な引数です”と文句を言われます。
LAN Manager 認証レベルを4にしてsec=ntlmやntlmssp、ntlm2とすれば繋がることはツナガルのですが・・・。
その際のセキュリティのイベントログ:
詳細な認証情報:
ログオン プロセス: NtLmSsp
認証パッケージ: NTLM
移行されたサービス: -
パッケージ名 (NTLM のみ): NTLM V1
キーの長さ: 0

mount.cifsのオプション
mount.cifs
NLTMv2について
@IT:@ITハイブックス連携企画 > Windows サーバー セキュリティ徹底解説

smbclientではちゃんとNTLMV2でツナガります。
詳細な認証情報:
ログオン プロセス: NtLmSsp
認証パッケージ: NTLM
移行されたサービス: -
パッケージ名 (NTLM のみ): NTLM V2
キーの長さ: 128

ちなみに、sec=ntlmv2ではなく、ntlm2とするとNTLMSSP_NEGOTIATE_EXTENDED_SESSIONSECURITYになるらしいです。(認証ではなくセッションセキュリティのレベル)
NTLMの認証やセッションの説明は↓が詳しいかと
NTLM 認証プロトコルとセキュリティサポートプロバイダ
NTLM2 Session Security


そんなこんなでgoogle先生を頼りにネットをさまよっていたら
[linux-cifs-client] failed connections to 2008r2 server in high security mode
にはvistaや2008(R2ではなく無印)ではwindowsのバグでINVALID PARAMETERと出てくるらしいと言う話が。
win7には影響しないと書いてありますが、同じコードからビルドされているハズの2008R2でも効果がありました。

クライアント接続はまたは Windows Vista で Windows Server 2008 で、NTLMv2 応答のみ送信する] の認証レベルを使用する場合に"STATUS_INVALID_PARAM"エラー コードを返す
1. レジストリ エディターを開きます。 これを行うには、 開始 ] をクリックして、 regedit の 検索の開始 ボックスに入力して Enter を押します。
2. 次のレジストリ サブキーを見つけて右クリックします:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0
3. [ 編集 ] メニューの [ 新規作成 ] をポイントし、[ DWORD (32 ビット) の値 ] をクリックします。
4. AllowLegacySrvCall を入力して Enter を押します。
5. AllowLegacySrvCall ] を右クリックし、 変更 を実行します。
6. 1 の データを値 ボックスに入力し、 [OK] を実行します。
7. レジストリ エディターを終了します。

hotfixも配っているのですが、2008R2には適用できなかったのでレジストリを編集。
詳細な認証情報:
ログオン プロセス: NtLmSsp
認証パッケージ: NTLM
移行されたサービス: -
パッケージ名 (NTLM のみ): NTLM V2
キーの長さ: 0
NTLMV2で繋がりました!
・・・但し、セッションキーは生成されていない模様・・・。なんでだろ?

0 件のコメント:

コメントを投稿