Sambaドメインメンバのトラブルシューティング

提供:雑廉堂Wiki

はじめに

このドキュメントは、Active Directory(AD)フォレストやNT4ドメインのメンバとしてSambaを実行しているときに出くわす可能性がある問題をトラブルシュートするのに役立ちます。


一般

Sambaのログレベルの設定

詳細は、Sambaログレベルの設定を参照してください。

netコマンドが127.0.0.1IPアドレスへの接続に失敗する

デフォルトのセッティングを使用すると、netコマンドは127.0.0.1のIPアドレスに接続します。もし、Sambaがループバックインターフェースをリッスンしていないと、接続に失敗します。例えば:

# net rpc rights list -U administrator
Enter administrator's password:
Could not connect to server 127.0.0.1
Connection failed: NT_STATUS_CONNECTION_REFUSED

この問題を解決するために、Sambaがループバックインターフェースで追加的にリッスンするように設定します。詳細は「Sambaを特定のインターフェースに紐付けるように構成する」を参照してください。

あるいは、netコマンドに-I IP_address-S host_nameパラメータを渡して、一時的に問題を回避します。

getentがドメインユーザーやグループを検索しない

もし、getent passwd demo01が何も返してこなければ、次を試してみてください。

getent passwd "SAMDOM\demo01"

それでうまく行って、まえのがそうでないのであれば、smb.confに次の行を追加する必要があるかもしれません。

winbind use default domain = yes


Active Directoryフォレスト内のドメインメンバー

ドメイン参加処理のトラブルシューティング

No DNS domain configured. Unable to perform DNS Update.

ホストをActive Directory(AD)に参加させる際、netコマンドがDNSのアップデートに失敗する:

# net ads join -U administrator
Enter administrator's password:
Using short domain name -- SAMDOM
Joined 'AD-Member' to dns domain 'samdom.example.com'
No DNS domain configured for AD-Member. Unable to perform DNS Update.
DNS update failed: NT_STATUS_INVALID_PARAMETER

ドメインへの参加は成功していて、DNSのアップデートにのみ失敗していることに注意してください。

クライアントがドメインに参加したあと、netコマンドはネームサービススイッチ(NSS)ライブラリを利用して完全修飾ドメイン名(FQDN)を探します。もし、DNSや/etc/hostsファイルを使ってFQDNが解決できなければ、DNSアップデートは失敗します。

この問題を解決するために:

  • /etc/hostsファイルにIPアドレスとFQDNを追加してください。例えば:
10.99.0.5     AD-Member.samdom.example.com     AD-Member
  • 再度、net ads joinを実行してください。

それでも動的DNSの更新が失敗する場合、AD DNSサーバーで動的更新が動作するか確認してください。


DNS Update failed: ERROR_DNS_UPDATE_FAILED

ホストをActive Directory(AD)に参加させる際、netがDNSのアップデートに失敗する:

# net ads join -U administrator
Enter administrator's password:
Using short domain name -- SAMDOM
Joined 'M1' to dns domain 'samdom.example.com'
DNS Update for m1.samdom.example.com failed: ERROR_DNS_UPDATE_FAILED
DNS update failed: NT_STATUS_UNSUCCESSFUL

ドメインへの参加は成功しており、DNSの更新だけが失敗していることに注意してください。

問題を解決するには:

  • もし、動的DNS更新が動作しているのであれば、Samba domain controller(DC)を確認してください。詳細については、「動的DNS更新のテスト」を参照してください。
  • net ads joinコマンドを再度実行してください。


DNS Update failed: ERROR_DNS_GSS_ERROR

BIND9_DLZバックエンドを使っている際、DNSサーバーを実行している、AD domain controller(DC)のKerberosの構成が間違っているために、動的DNS更新が失敗します。

# net ads join -U administrator
Enter administrator's password:
Using short domain name -- SAMDOM
Joined 'AD-Member' to dns domain 'samdom.example.com'
DNS Update for AD-Member.samdom.example.com failed: ERROR_DNS_GSS_ERROR
DNS update failed: NT_STATUS_UNSUCCESSFUL

問題を解決するには「BIND9 DLZ DNSバックエンド#BIND9_DLZバックエンドの再構成|BIND9_DLZバックエンドの再構成」を参照してください。


gss_init_sec_context failed with: Miscellaneous failure: Clock skew too great

ホストをADにジョインする際、netコマンドが次のエラーで失敗します:

# net ads join -U administrator 
Enter administrator's password:
gss_init_sec_context failed with [ Miscellaneous failure (see text): Clock skew too great]
kinit succeeded but ads_sasl_spnego_gensec_bind(KRB5) failed: An internal error occurred.
Failed to join domain: failed to connect to AD: An internal error occurred.

Kerberosは、リプレイアタックを防ぐために、時刻の同期を要求します。ローカルマシンの時計はDCに対して5分以上違ってはいけません。

問題を解決するために、正しい時間をセットした上で、再度net ads joinコマンドを実行してください。

さらなる詳細は、「時刻の同期」を参照してください。

Failed to join domain: failed to find DC for domain SAMDOM - Undetermined error

ホストをActive Directory(AD)に参加させる際、netコマンドがドメインコントローラ(DC)を検索するのに失敗します。

# net ads join -U administrator
Enter administrator's password:
Failed to join domain: failed to find DC for domain SAMDOM - Undetermined error

Sambaはドメインに参加する際に、DCを検索するためにDNSリクエストとブロードキャストを使用します。もし、両方が失敗した場合、failed to find DC for domain SAMDOM - Undetermined errorエラーが表示されます。

短期的な解決策として、コマンドに-Sパラメータと、DCの名前を渡すことができます。例えば:

# net ads join -U administrator -S DC1.samdom.example.com

しかしながら、ADでは正しいDNS設定は重要です。将来的に間違えたDNS設定を由来とする問題を回避するために、DNSリゾルバの設定を正しくセットアップしてください。詳細は、「LinuxとUnixでのDNS設定」を参照してください。


Winbindと認証の問題

getentユーティリティーが全ユーザ、あるいはグループの一覧を表示できない

getentユーティリティーが、個々のドメインユーザあるいはグループを表示できても、getent passwdgetent groupコマンドが全ユーザとグループの表示に失敗する場合は:

  • ネームサービススイッチ(NSS)がlibnss_winbindライブラリを利用できるか確認してください。詳細は「libnss winbindリンク」を参照してください。
  • 次のパラメータをsmb.confファイルで有効にしてください:
winbind enum users = yes
winbind enum groups = yes
パフォーマンス上の理由で、多数のユーザーやグループを持つ環境でこれらのセッティングを有効にすることは推奨されません。
  • Sambaをリロード
# smbcontrol all reload-config