Open DirectoryにバインドされたMacがホストするSMB共有をマウントできない場合

SMB 3のセキュリティ要件で、SMBを使った共有ポイントのマウントが認められない場合があります。

接続設定を確認する

macOSでサーバに接続する場合、Server Message Block(SMB)3がデフォルトの方法になっています。この接続方法では、認証後にValidate Negotiateリクエストを実行する必要があります。SMB 3のセッションはすべて、ゲスト接続または匿名接続でない限り、署名が必要です。

macOSファイルサーバがOpen Directoryクライアントであり、Lightweight Directory Access Protocol(LDAP)サーバに匿名バインドで接続されている場合は、次のいずれかの方法で接続してください。

  • LDAPサーバへの接続時に認証バインドを使う

  • ファイルサーバのロールをOpen Directoryレプリカに変更する。これに伴い、サーバにkerberosも設定されます。

  • クライアントでValidate Negotiateリクエストを無効にする。

  • SMB 2だけを使うようにSMBサーバまたはクライアントを設定する。

セッション署名について

SMB 3でセッションに署名するには、バインドされているコンピュータが、ディレクトリサーバのユーザ全員のmd4(パスワード)にアクセスできなければなりません。そのため、SMB 3では、「信頼された」コンピュータへのクライアント接続しか許可されません。たとえば、ディレクトリ管理者(diradmin)の資格情報を使って認証バインドされるコンピュータが該当します。

ユーザの認証に使うアカウントがあるディレクトリサーバに対し、diradminでサーバを認証バインドできない場合は、クライアントのValidate Negotiateリクエストを無効にするか、セキュリティの低いSMB 2接続だけを認めるようにサーバを調整することができます。その場合は、SMBサーバ設定、クライアント設定、またはその両方を変更してください。

クライアントでValidate Negotiateリクエストを無効にする

Validate Negotiateを無効にすると、中間者攻撃の被害に遭いやすくなります。Validate Negotiateリクエストを無効にするのは、クライアントとサーバの両方が安全なネットワーク上にある場合に限ってください。

「/etc」ディレクトリの「nsmb.conf」ファイルでvalidate_neg_off設定の値を設定するには、テキストエディタまたはターミナルを使います。クライアントサイドのSMB構成オプションについて詳しくは、「nsmb.conf」のmanページを参照してください。

「nsmb.conf」ファイルでValidate Negotiateリクエストを無効に設定した場合、以下のようになります。

[default]

validate_neg_off=yes

SMB 3接続を拒否するようにmacOS Serverを設定する

Validate NegotiateリクエストはSMB 3の機能で、クライアントが送信します。クライアントがこうしたリクエストを送信できないようにするため、SMB 2接続だけを受け入れるようにmacOS Serverを設定しておけます。サーバの環境設定ファイルのビットフィールドで、サーバのダイアレクトを指定します。このビットフィールドのキーワードはProtocolVersionMapです。以下の3つのビットだけを使います。

意味

1

SMB 1をサポートする

2

SMB 1をサポートする

4

SMB 3をサポートする

複数のダイアレクトをサポートするには、ビットを組み合わせます。

以下の例では、SMB 2を許可するようにProtocolVersionMapを設定します。具体的には、ProtocolVersionMapを「2」に設定します。

sudo scutil --prefs com.apple.smb.server.plist

get /

d.add ProtocolVersionMap # 2

set /

commit

apply

quit

問題がある場合

何が起きているのか詳しく教えてください。次にできることを提案します。

対処法を確認する

公開日: