Sambaドメインメンバのトラブルシューティング
はじめに
このドキュメントは、Active Directory(AD)フォレストやNT4ドメインのメンバとしてSambaを実行しているときに出くわす可能性がある問題をトラブルシュートするのに役立ちます。
一般
Sambaのログレベルの設定
詳細は、Sambaログレベルの設定を参照してください。
net
コマンドが127.0.0.1
IPアドレスへの接続に失敗する
デフォルトのセッティングを使用すると、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 passwd
やgetent group
コマンドが全ユーザとグループの表示に失敗する場合は:
- ネームサービススイッチ(NSS)が
libnss_winbind
ライブラリを利用できるか確認してください。詳細は「libnss winbindリンク」を参照してください。 - 次のパラメータを
smb.conf
ファイルで有効にしてください:
winbind enum users = yes winbind enum groups = yes
- パフォーマンス上の理由で、多数のユーザーやグループを持つ環境でこれらのセッティングを有効にすることは推奨されません。
- Sambaをリロード
# smbcontrol all reload-config