トンネルに接続しても、共有はユーザーが正しいと信じるパスワードを求め続ける。スタンドアロンの Samba 展開では、VPN ログインと SMB ログインは無関係な資格情報であり、一方はトンネルを許可し、もう一方はファイルサーバーが検査する。そのため、パスワードが正しくネットワーク経路が完璧でも、VPN アカウントでドライブをマウントすると失敗する。この違いが VPN 経由のマウント失敗の大半を説明する。

解決策は VPN アカウントをリセットすることではない。Samba サーバーが本当に知っている ID を指定し、同じ ID が共有とディレクトリの権限を持つことを確認することだ。

VPN ログインと SMB ログインは別の ID

VPN アカウントは VPN ゲートウェイが独自のポリシーで評価する。このクライアントがプライベートネットワークに入れるかを答える。そのネットワーク内のファイルサーバーにどの SMB アカウントがあるかは何も語らない。

Samba アカウントはサーバーの認証バックエンドにあり、独自のパスワードデータベースと独自の名前を持つ。二台のマシンがどちらも alice というユーザーを持っていても、ID システム、パスワード、ユーザー識別子を共有しているわけではない。名前は一致するが、アカウントは一致しない。

ドメイン統合された Samba サーバーでは状況が変わる。ID はローカルのアカウント一覧ではなく、ディレクトリと Kerberos から来る。その場合はローカルの複製を作ってドメイン参加を模倣するのではなく、ディレクトリの ID とサポートされる SMB 構成を使い、アカウントを作る前にサーバーがどちらのモデルかを確認する。

Windows が実際にどの ID を使っているかを確認する

Windows はサーバーごとに接続をキャッシュする。同じサーバーへの既存セッションが別のアカウントで開かれていると、新しいマウントはそのセッションを再利用するか、誤ったユーザーを示す認証エラーで失敗する。正しいパスワードが誤って見えるのはこのためだ。資格情報を変える前に現在の接続を調べる。

net use
cmdkey /list
klist

一つ目のコマンドはマウントされたドライブと開いているセッションを、二つ目は自動適用されうる保存済み資格情報を、三つ目はドメイン使用時の Kerberos チケットを示す。保存された 資格情報が、入力しようとしたアカウントを黙って上書きすることがある。

この問題に属する接続または資格情報だけを削除する。すべてのドライブを切断したり、サーバー名を IP アドレスに置き換えたりすると、ID の選択が隠れ、署名や名前ベースのポリシーを壊すことがある。

サーバーが認識するアカウントで共有をマウントする

サーバーが期待する形式でアカウントを渡し、パスワードは Windows に尋ねさせる。そうすれば秘密がコマンド履歴やスクリプトに残らない:

net use Z: \\files.corp.example\team * /user:FILESERVER\alice /persistent:no

バックスラッシュより前のサーバー部分は Samba サーバーの ID コンテキストであり、VPN ゲートウェイではない。アスタリスクは対話的なパスワード入力を求め、/persistent:no はそのマウントを次回のサインインに持ち越さない。空いているドライブ文字を選ぶ。

サーバーがドメイン統合されている場合、ユーザー部分は代わりにディレクトリ名やドメイン修飾された ID になりうる。管理者が文書化した形式を使い、同じ名前のローカルアカウントをでっち上げると、二つ目の ID と保守すべき二つ目のパスワードが生まれる。

アカウントの有効性、共有へのアクセス、ファイルシステムの権利は 三つの確認である

Samba は ID が認証されるか、共有定義がそれを受け入れるか、ファイルシステムが要求された操作を許すかを確認する。最初の確認を通っても残り 二つを通るとは限らない。共有が見えていても、ディレクトリの権限がそう定めているため書き込みを拒否することがある。

valid users で制限された共有は、列挙されたアカウントまたはグループだけを受け入れる。アカウントが正しく認証されても、その行で拒否されることがある。パスワードが違うと結論する前に共有定義を確認する。

ファイルシステム側では、Samba プロセスとマウントされた ID の両方が重要だ。root 所有でモード 700 のディレクトリは、共有定義が許していても通常のアカウントからの書き込みを受け付けない。アカウントが使うべきディレクトリで、まず読み取り、次に書き込みを試す。

ポリシーを壊さずに競合するセッションを片付ける

原因が古いセッションなら、その 一つの接続だけを閉じ、意図したアカウントで再マウントする。保存された資格情報が何度も戻ってくるなら、ドライブ一覧全体ではなくその資格情報を削除する。その後、新しいセッションを net use で確認する。

要求される SMB 署名、暗号化、アカウントポリシーを維持する。署名や暗号化のないセッションを拒否するサーバーはポリシーを適用しているのであって、パスワードを読み違えているのではなく、マウントを通すために弱めるのはセキュリティを症状と引き換えにすることだ。

サーバー名、正確なアカウント形式、うまくいった共有とディレクトリの権限を記録する。さもなければ次にドライブをマウントする人は、ネットワークに到達したときの資格情報が VPN ログインだからこそ、まずそれを試すだろう。

関連記事