(2023/4/8加筆・修正)
我が家ではNAS上のドメインコントローラーで家族のログイン情報を一元管理しています。ubuntu環境を立ち上げる際にまず作業したのがドメインへの参加でした。結構ハマったので記録に残しておきます。
ドメインへの参加
https://www.server-world.info/query?os=Ubuntu_20.04&p=realmd
$sudo apt -y install realmd sssd sssd-tools libnss-sss libpam-sss adcli samba-common-bin oddjob oddjob-mkhomedir packagekit
$sudo realm join ドメイン名
参考にさせていただいた手順の中では、DNSサーバーを設定する手順があったですがすっ飛ばしてしまいました。我が家ではDNSサーバーはONUルーターに一任し、内部ドメインの場合のみドメインコントローラーを指す仕様にしています。
がまずは、ドメイン参加でエラーが発生しました。
* Sending NetLogon ping to domain controller: 192.168.xx.xx
* Received NetLogon info from: xxxx.xxxx.home
:
* Using GSS-SPNEGO for SASL bind
! Couldn’t authenticate to active directory: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server not found in Kerberos database)
adcli: couldn’t connect to xxxxx.home domain: Couldn’t authenticate to active directory: SASL(-1): generic failure: GSSAPI Error: Unspecified GSS failure. Minor code may provide more information (Server not found in Kerberos database)
! Insufficient permissions to join the domain
realm: レルムに参加できませんでした: Insufficient permissions to join the domain
以下のサイトによるとドメインコントローラとして認識されているPCのホスト名と、そのPCをIPアドレスで逆引きした際のホスト名が一致しないと問題が起きるようです。上記エラーログにて、ドメインコントローラーのIPアドレスとホスト名が表示されていますが、IPアドレスで逆引きするとルーターが配布している仮ホスト名が応答されていました。
対策としては2つあるようです。
- set a correct DNS reverse PTR that points back to the DNS name of the AD controller
- add the option rnds = false in the [libdefaults] setion in `/etc/krb5.conf`
対策1)/etc/hostsファイルにドメインコントローラーのホスト情報を追加する
*対策2がUbuntu22.04ではうまくいかなかったので、こちらの対策を取りました。
$sudo vi /etc/hosts
<追加>
192.168.xxx.xxx (ドメインコントローラのFQDN)(ドメインコントローラのホスト名)
対策2)krb5処理における逆引き処理を無効にする
*こちらの対策はUbuntu22.04ではうまく行きませんでした
$sudo apt-get install krb5-user
$sudo vi /etc/krb5.conf
<追加>
[libdefaults]
rnds = false
DNSの逆引きが正常がうまくできるようになると、joinすることができました。
正常に参加できたのを確かめる
$id ユーザー名@ドメイン名
ログイン時にホームディレクトリを作成する。
$sudo vi /etc/pam.d/common-session
# 最終行に追記 (ログイン時にホームディレクトリを自動作成)
session optional pam_mkhomedir.so skel=/etc/skel umask=077
実際にログインできるかテスト
$su – ユーザー名@ドメイン名
:
System error
なんでやねん。ドメイン参加できているのに・・・
いろいろ調べた回避策は
https://serverfault.com/questions/872542/debugging-sssd-login-pam-sss-system-error
$sudo vi /etc/sssd/sssd.conf
<以下を追加>
ad_gpo_ignore_unreadable = True
ad_gpo_access_control = permissive
普通の環境ではActive DirectroyサーバーをDNSとして利用するはずなので問題が起きないのでしょう。たぶん。