
私はここ 2 週間、自宅のネットワークで Samba を Active Directory コントローラーとして実験しています。
いくつかのガイドとビデオに従ってUbuntuサーバー22.04にSambaをインストールしましたが、このページ大部分はこれでカバーされます。Windows と Linux の両方のコンピューターをドメインに参加させることができます。参加しているコンピューターを . を使用して一覧表示できますsamba-tool computer list
。
samba ツールを使用して、ユーザーとグループを正常に作成しました。Windows クライアントからは、これらのアカウントを使用してログインできます。
Linux(Ubuntu 23.04および23.10)からドメインに参加できます公式Ubuntuに従うドキュメントは見つかりましたが、ログインできません。
bp@bas-hp:samba (master) % sudo login
bas-hp login: [email protected]
Password:
Login incorrect
bas-hp login: [email protected]
Password:
Login incorrect
Kerberosチケットを作成できます
bp@bas-hp:samba (master) % klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: [email protected]
Valid starting Expires Service principal
16-04-24 22:26:57 17-04-24 08:26:57 krbtgt/[email protected]
renew until 17-04-24 22:26:53
私が従っているドキュメントのテスト セクションを試した結果は、順調に進んでいるようです。
bp@legion-ubuntu:~ % getent passwd [email protected]
[email protected]:*:1494001108:1494000513:Bas Prins:/home/[email protected]:/bin/bash
bp@legion-ubuntu:~ % getent passwd [email protected]
[email protected]:*:1494001104:1494000513:bp:/home/[email protected]:/bin/bash
しかし、コマンドを実行すると、groups
気になる結果がいくつか表示されます
bp@legion-ubuntu:~ % groups [email protected]
[email protected] : domain [email protected] denied rodc password replication [email protected] [email protected] enterprise [email protected] domain [email protected]
bp@legion-ubuntu:~ % groups [email protected]
[email protected] : domain [email protected] denied rodc password replication [email protected] [email protected] enterprise [email protected] domain [email protected]
私は並行して、「rodc パスワード レプリケーションの拒否」が何を意味するのか、またそれを修正する必要があるかどうか、またどのように修正する必要があるのかを Google で検索しています。
完全な sssd.conf
[sssd]
domains = sb.lan
config_file_version = 2
services = nss, pam
[domain/sb.lan]
default_shell = /bin/bash
krb5_store_password_if_offline = True
cache_credentials = True
krb5_realm = SB.LAN
realmd_tags = manages-system joined-with-adcli
id_provider = ad
fallback_homedir = /home/%u@%d
ad_domain = sb.lan
use_fully_qualified_names = True
ldap_id_mapping = True
access_provider = ad
timeout = 20
ldap_uri = ldap://dc.sb.lan
ldap_search_base = dc=sb,dc=lan
auth_provider = krb5
krb5_server = dc.sb.lan
krb5_passwd = dc.sb.lan
krb5_validate = True
samba/AD に詳しい方が、この問題をトラブルシューティングする最善の方法についてアドバイスをくださることを期待しています。根本原因を突き止めるために使用できるツールはありますか?
アップデート2
Ubuntuクライアントコンピュータのsssd.confに次の行を追加した後
ad_gpo_access_control = permissive
ようやくコマンドラインからログインできるようになりましたsudo login
。しかし、残念ながら、ログインに成功した後、ポリシーをダウンロードしようとすると思いますが、失敗します。
Last login: Wed Apr 17 14:15:01 CEST 2024 on pts/2
Applying machine settings
ERROR Error from server: error while updating policy: can't get policies for "legion-ubuntu": failed to retrieve the list of GPO (exited with 1): exit status 1
Failed to bind - LDAP client internal error: NT_STATUS_INVALID_PARAMETER
Failed to connect to 'ldap://dc.sb.lan' with backend 'ldap': LDAP client internal error: NT_STATUS_INVALID_PARAMETER
Failed to open session: (1, 'LDAP client internal error: NT_STATUS_INVALID_PARAMETER')
Failure setting user credentials
私は並行してこの問題のトラブルシューティングを行っていますが、もちろん、誰かがどこを修正すればよいかを教えてくれることを期待しています ;-)。自分でこれを解決できたら、質問を更新します。
答え1
クライアント PC に Ubuntu を再インストールし、すべての手順をもう一度実行したところ、問題を解決できました。これで、Samba AD サーバーにログインできるようになりました。
公式ドキュメントから逸脱して私がしなければならなかった 2 つのこと:
- 参加する前にkrb5.confを修正する
- 参加後、sssd.confにパッチを当てる
最初のステップとして、Ubuntu クライアントの krb5 で逆 DNS を無効にする必要があります。
[libdefaults]
rdns = false
次に、ドメインへの参加に成功した後、sudo realm -v join <domain-name>
Ubuntuクライアントのsssd.confに次の行を追加する必要がありました。
# THIS IS MANDATORY to fix "permission denied" when PAM tries to authenticate
# https://serverfault.com/questions/872542/debugging-sssd-login-pam-sss-system->
# suggested work around in question
ad_gpo_access_control = permissive
それを実行してsssdを再起動したら
sudo systemctl restart sssd
ログインできます
bp@legion-ubuntu:~ % sudo login
legion-ubuntu.sb.lan login: SB\bp
Password:
Welcome to Ubuntu 23.04 (GNU/Linux 6.2.0-37-generic x86_64)
エラーは発生しなくなりました。ローカルユーザーをログオフすると、ADユーザーとしてログインできるようになります。