![Active Directory ドメインへの参加に関する問題](https://rvso.com/image/89183/Active%20Directory%20%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%81%B8%E3%81%AE%E5%8F%82%E5%8A%A0%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E5%95%8F%E9%A1%8C.png)
Ubuntu 14.04 サーバーを Windows 2003 R2 ドメインに参加させようとしています。管理者によると、コントローラー側から見るとドメインの一部だそうです。しかし、SSSD が起動できず、DNS 更新が失敗します。
私はこれを機能させるためにさまざまなガイドに従ってきましたが、エラーなしでどれも完了できませんでした。
Ubuntu サーバー ガイド
キロルート
ネットナード
Fedora SSSD ガイド
検出は正常に動作しているようです:
kyle@Server21:~$ realm discover COMPANYNAME.LOCAL
CompanyName.Local
type: kerberos
realm-name: COMPANYNAME.LOCAL
domain-name: companyname.local
configured: kerberos-member
server-software: active-directory
client-software: sssd
required-package: sssd-tools
required-package: sssd
required-package: libnss-sss
required-package: libpam-sss
required-package: adcli
required-package: samba-common-bin
login-formats: %U
login-policy: allow-realm-logins
companyname.local
type: kerberos
realm-name: COMPANYNAME.LOCAL
domain-name: companyname.local
configured: no
realmd
私もドメインに参加していると言っています:
kyle@Server21:~$ realm join COMPANYNAME.LOCAL
realm: Already joined to this domain
Kerberos が管理者の認証を取得しました:
kyle@Server21:~$ kinit -V administrator
Using default cache: /tmp/krb5cc_0
Using principal: [email protected]
Password for [email protected]:
Authenticated to Kerberos v5
しかし、参加する時になると、DNS 更新が失敗します。
kyle@Server21:~$ sudo net ads join -k
Using short domain name -- COMPANYNAME
Joined 'SERVER21' to dns domain 'CompanyName.Local'
No DNS domain configured for server21. Unable to perform DNS Update.
DNS update failed: NT_STATUS_INVALID_PARAMETER
SSSD の起動にはまだ問題があります:
kyle@Server21:~$ systemctl status sssd.service
● sssd.service - System Security Services Daemon
Loaded: loaded (/lib/systemd/system/sssd.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Wed 2016-06-22 09:57:57 EDT; 37min ago
Process: 16027 ExecStart=/usr/sbin/sssd -D -f (code=exited, status=1/FAILURE)
Jun 22 09:57:55 Server21 sssd[16038]: Starting up
Jun 22 09:57:55 Server21 sssd[16041]: Starting up
Jun 22 09:57:55 Server21 sssd[16042]: Starting up
Jun 22 09:57:56 Server21 sssd[be[16043]: Starting up
Jun 22 09:57:57 Server21 sssd[be[16043]: Failed to read keytab [default]: No such file or directory
Jun 22 09:57:57 Server21 sssd[16031]: Exiting the SSSD. Could not restart critical service [COMPANYNAME.LOCAL].
Jun 22 09:57:57 Server21 systemd[1]: sssd.service: Control process exited, code=exited status=1
Jun 22 09:57:57 Server21 systemd[1]: Failed to start System Security Services Daemon.
Jun 22 09:57:57 Server21 systemd[1]: sssd.service: Unit entered failed state.
Jun 22 09:57:57 Server21 systemd[1]: sssd.service: Failed with result 'exit-code'.
krb5.conf
私にとって特有な部分は次の部分だけです[libdefaults]
:
kyle@Server21:~$ cat /etc/krb5.conf
[libdefaults]
default_realm = COMAPNYNAME.LOCAL
以前のインストールでは、何か他のものがあったと思ったのです[realms]
が、それが何だったか思い出せません。Fedora ガイドでは、DNS ルックアップが機能していない場合にそこに何かを追加することについて説明していますが、そこに何があるべきかを正確に把握できるほど詳細には説明されていません。
に対する私の変更点smb.conf
:
[global]
## Browsing/Identification ###
# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = COMPANYNAME
client signing = yes
client use spnego = yes
kerberos method = secrets and keytab
realm = COMPANYNAME.LOCAL
security = ads
私のsssd.conf
kyle@Server21:~$ sudo cat /etc/sssd/sssd.conf
[sssd]
services = nss, pam
config_file_version = 2
domains = COMPANYNAME.LOCAL
[domain/COMPANYNAME.LOCAL]
id_provider = ad
access_provider = ad
override_homedir = /home/%d/%u
Ubuntu ガイドでは所有権と権限が重要であると述べられています。
kyle@Server21:~$ sudo ls -la /etc/sssd
total 12
drwx--x--x 2 sssd sssd 4096 Jun 21 14:34 .
drwxr-xr-x 103 root root 4096 Jun 22 10:21 ..
-rw------- 1 root root 172 Jun 21 14:22 sssd.conf
Ubuntu ガイドでは、このhosts
ファイルによって DNS の更新に問題が発生する可能性があるとも述べられていますが、私はその例に正しく従ったと思います。
kyle@Server21:~$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 Server21
192.168.XXX.XXX Server21 Server21.COMPANYNAME.LOCAL
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
では、どこが間違っているのでしょうか? ドメイン コントローラーはドメインの一部であると表示しています。Apache と OpenSSH は両方とも起動しており、アクセス可能です。しかし、このサーバーはさらに多くのことを行う予定なので、先に進む前にすべてが正しく構成されていることを確認したいと思います。
編集:
私はhosts
アドバイスに基づいてファイルを変更しましたこのページこれで次のようになります。
kyle@Server21:~$ cat /etc/hosts
127.0.0.1 localhost
127.0.1.1 Server21.COMPANYNAME.LOCAL Server21
192.168.11.11 Server21.COMPANYNAME.LOCAL Server21
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
返される値getent
:
kyle@Server21:~$ sudo getent hosts Server21
127.0.1.1 Server21.COMPANYNAME.LOCAL Server21 Server21
192.168.11.11 Server21.COMPANYNAME.LOCAL Server21 Server21
そして、net ads join
今度は別のエラーメッセージが表示されます:
kyle@Server21:~$ sudo net ads join -k
Failed to join domain: failed to lookup DC info for domain 'COMPANYNAME.LOCAL' over rpc: An internal error occurred.
resolv.conf
これまでのところ、このエラーに関して私が見つけた唯一のアドバイスは、AD サーバーが存在し、その IP が唯一のエントリであることを確認することです。
kyle@Server21:~$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.XXX.XXX
コメントに返信するには:
kyle@Server21:~$ nslookup -type=SRV _ldap._tcp.companyname.local
Server: 192.168.XXX.XXX
Address: 192.168.XXX.XXX#53
_ldap._tcp.companyname.local service = 0 100 389 companynamedc.companyname.local.
途中で SSSD が起動できるようになり、現在はアクティブになっています。ただし、何をすれば問題が解決したのかはわかりません。
答え1
問題は、管理者がこのサーバーのドメイン コントローラーにエントリを作成したことに起因しているようです。これにより競合が発生し、参加しようとしたときに Kerberos が次のエラーに遭遇したようです。
kyle@Server21:~$ sudo net ads join -k
Failed to join domain: failed to lookup DC info for domain 'COMPANYNAME.LOCAL' over rpc: An internal error occurred.
私の管理者は、サーバーが自分の側でドメインに参加しており、realmd
私も参加していると示していたため、このエラーが完全に正確だったかどうかはわかりません。
kyle@Server21:~$ realm join COMPANYNAME.LOCAL
realm: Already joined to this domain
Kerberos 参加を成功させるために私が実行した手順は次のとおりです。
- 管理者がドメインコントローラのエントリを削除しました
- 以下を使用して Kerberos 構成を再実行します。
sudo dpkg-reconfigure krb5-config
- 構成のオプションを選択して、ドメインコントローラを
[realms]
セクションに明示的に追加します。krb5.conf
- 新しいレコードが作成されるようにホスト名を変更しました
- 新しいチケットを取得しました
kinit
- ドメインに参加しました
sudo net ads join -k
最終結果:
kyle@SERV21:~$ sudo net ads join -k
Using short domain name -- COMPANYNAME
Joined 'SERV21' to dns domain 'CompanyName.Local'
答え2
Server21 でこれを試してください:
realm leave -v -U [your admin username] COMPANYNAME.LOCAL
それから
realm join -v -U [your admin username] COMPANYNAME.LOCAL