私のWindowsドメインには、Windows 2012 R2 Active Directoryを含むUbuntu 18.04 LTSクライアントがあります。このUbuntuクライアントをWindowsドメインとActive Directoryのメンバーにしたいと思います。これを行うための明確な解決策やルーチンはありますか?
答え1
現在、最新のLinuxをADに統合するために推奨されているソリューションは一般的ですsssd
。
これは公式のUbuntu 18.04文書から得られたものです。
必要なパッケージがインストールされていることを確認してください。
sudo apt install krb5-user samba sssd chrony
インストール時に、krb5-user
次の3つのメッセージが表示され、共通のKerberos名が使用されます。
- ドメイン名:ADを扱うときに大文字で表示されるADドメイン名。
- KDCサーバー名:ADドメインコントローラの操作の1つです。
- Kerberos管理サーバーの名前:ADドメインコントローラでもあります。
Active Directory認証はKerberosに基づいているため、システムクロックはADサーバーの時計と合理的に同期する必要があります。通常、ADサーバーはこの目的のためにNTPサービスを提供します。時刻同期を使用している場合はchrony
(最も近い)、ADドメインコントローラの名前を次に追加してください/etc/chrony/chrony.conf
。
server my.ad.domain.controller.example
Linux ディレクトリを Windows システムと共有しなくても、一部の AD 認証関連サービスを実行するには Samba が必要です。次の[global]
セクションに追加してください/etc/samba/smb.conf
。
[global]
workgroup = SHORT_NAME_OF_AD_DOMAIN
client signing = yes
client use spnego = yes
kerberos method = secrets and keytab
realm = AD.DOMAIN.FULL.NAME
security = ads
適切に交換してくださいSHORT_NAME_OF_AD_DOMAIN
。AD.DOMAIN.FULL.NAME
SSSD構成ファイルの作成/etc/sssd/sssd.conf
:
[sssd]
services = nss, pam
config_file_version = 2
domains = AD.DOMAIN.FULL.NAME
[domain/AD.DOMAIN.FULL.NAME]
id_provider = ad
access_provider = ad
# Use this if users are being logged in at /.
# This example specifies /home/DOMAIN-FQDN/user as $HOME. Use with pam_mkhomedir.so
override_homedir = /home/%d/%u
# Uncomment if the client machine hostname doesn't match the computer object on the DC.
# ad_hostname = mymachine.ad.domain.full.name
# Uncomment if DNS SRV resolution is not working
# ad_server = dc.ad.domain.full.name
# Uncomment if the AD domain is named differently than the Samba domain
# ad_domain = AD.DOMAIN.FULL.NAME
# Enumeration is discouraged for performance reasons.
# enumerate = true
このファイルはルートのみアクセスできるように保護する必要があります。それ以外の場合、sssd
起動は拒否されます。
sudo chown root:root /etc/sssd/sssd.conf
sudo chmod 600 /etc/sssd/sssd.conf
システムが常に完全修飾DNSドメイン名を知っていることを確認してください。必要に応じてこれを/etc/hosts
。
次に、変更された構成でサービスを再起動します。
sudo systemctl restart chrony.service
sudo systemctl restart smbd.service nmbd.service
sudo systemctl start sssd.service
kinit
これで、ADを使用して初期Kerberos認証を実行できます。ドメインに新しいシステムを追加するために必要な権限を持つADユーザーアカウントを使用して、rootとしてこれを実行します。
sudo kinit Administrator
実際にKerberos認定チケットを入手したことを確認してください。
sudo klist
これで、次のコマンドを使用して実際にADドメインに参加できます。
sudo net ads join -k
このコマンドが正常に完了したら、Linuxコマンドを使用してADユーザーのユーザーアカウント情報を照会できます。
getent passwd some-AD-username
新しいユーザーはいつでもADに追加できるため、ログイン時にすべてのADユーザーのホームディレクトリがまだ存在しない場合に自動的に作成するメカニズムを設定する必要があります。この行をに追加してください/etc/pam.d/common-session
。session required pam_unix.so ...
行の直後:
session required pam_mkhomedir.so skel=/etc/skel/ umask=0022
override_homedir
sssd.conf
次の行は、ADユーザーのホームディレクトリのパス名を決定します。