◆ドメインコントローラー1の設計
OS:Ubuntu24.04 #RHELがサポートしていない為。
ホスト名:dc1
ドメイン名:ad.co.jp #最近は.localは推奨されていないらしい。
NIC1:10.0.1.10/24 #設定用
NIC2:192.168.128.10/24
DNS1:192.168.128.1 #インストール時のみ使用。以降DNS2の設定に変更
DNS2:127.0.0.1
GW:192.168.128.1
$ sudo vi /etc/timezone
Asia/Tokyo
$ sudo apt install samba krb5-config winbind smbclient
realm設定
Configuring Kerberos Authentication
Default Kerberos version 5 realm:
⑴ AD.CO.JP

Kelrberos server for your realm:
⑵ dc1.ad.co.jp

Admin server for your kelrberos realm:
⑶ dc1.ad.co.jp
$ sudo vi /etc/hosts
192.168.128.10 dc1.ad.co.jp dc1
$ sudo mv /etc/samba/smb.conf{,.org}
注:domain provisionの方法は二つある。一つは対話式。
$ sudo samba-tool domain provision --use-rfc2307 # password以外の空白はデフォルト
Realm [AD.CO.JP]:
Domain [AD]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.53]: 8.8.8.8 #google
Administrator password:
Retype password:
もう一つはバッチ処理する場合。
sudo samba-tool domain provision \
--domain AD \
--realm=AD.CO.JP \
--adminpass=Passw0rd \
--server-role=dc \
--use-rfc2307 \
--dns-backend=SAMBA_INTERNAL
後者の場合の方は、パスワードが明記されており、それがhistioryコマンドなど記録にも残るので使用には注意が必要。
$ sudo cp /var/lib/samba/private/krb5.conf /etc/
$sudo systemctl disable smbd nmbd winbind systemd-resolved.service #この辺忘れると後で失敗する。
Synchronizing state of smbd.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install disable smbd
Synchronizing state of nmbd.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install disable nmbd
Synchronizing state of winbind.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install disable winbind
Removed "/etc/systemd/system/nmb.service".
Removed "/etc/systemd/system/smb.service".
Removed "/etc/systemd/system/sysinit.target.wants/systemd-resolved.service".
Removed "/etc/systemd/system/multi-user.target.wants/smbd.service".
Removed "/etc/systemd/system/multi-user.target.wants/nmbd.service".
Removed "/etc/systemd/system/multi-user.target.wants/winbind.service".
Removed "/etc/systemd/system/dbus-org.freedesktop.resolve1.service".
$ sudo systemctl unmask samba-ad-dc.service
$ sudo systemctl enable samba-ad-dc.service
Synchronizing state of samba-ad-dc.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable samba-ad-dc
$ sudo samba-tool domain level show
Domain and forest function level for domain 'DC=ad,DC=co,DC=jp'
Forest function level: (Windows) 2008 R2
Domain function level: (Windows) 2008 R2
Lowest function level of a DC: (Windows) 2008 R2
$ sudo rm /etc/resolv.conf
$ sudo vi /etc/resolv.conf
nameserver 127.0.0.1
$ sudo vi /etc/nsswitch.conf #winbind機構をNSSに設定
passwd: files systemd winbind
group: files systemd winbind
$ sudo vi /etc/netplan/50-cloud-init.yaml
(前略)
nameservers:
addresses: [127.0.0.1]
(以下略)
$ sudo netplan apply
$ sudo reboot
◆動作確認
$ hostname
dc1
$ hostname -f
dc1.ad.co.jp
$ sudo samba-tool dns zonecreate 192.168.128.10 128.168.192.in-addr.arpa -U administrator
WARNING: Using passwords on command line is insecure. Installing the setproctitle python module will hide these from shortly after program start.
Password for [AD\administrator]:
Zone 128.168.192.in-addr.arpa created successfully
$ host -t A dc1.ad.co.jp #テスト
dc1.ad.co.jp has address 10.0.1.10
dc1.ad.co.jp has address 192.168.128.10
$ host -t SRV _kerberos._udp.ad.co.jp
_kerberos._udp.ad.co.jp has SRV record 0 100 88 dc1.ad.co.jp.
$ host -t SRV _ldap._tcp.ad.co.jp
_ldap._tcp.ad.co.jp has SRV record 0 100 389 dc1.ad.co.jp.
$ smbclient -L localhost -U%
Sharename Type Comment
--------- ---- -------
sysvol Disk
netlogon Disk
IPC$ IPC IPC Service (Samba 4.19.5-Ubuntu)
SMB1 disabled -- no workgroup available
$ sudo samba-tool domain level show
Domain and forest function level for domain 'DC=ad,DC=co,DC=jp'
Forest function level: (Windows) 2008 R2
Domain function level: (Windows) 2008 R2
Lowest function level of a DC: (Windows) 2008 R2
$ sudo vi /etc/samba/smb.conf
# Global parameters
[global]
dns forwarder = 8.8.8.8 #上位のDNS
netbios name = DC1
realm = AD.CO.JP
server role = active directory domain controller
workgroup = AD
idmap_ldb:use rfc2307 = yes #Unix属性の有効化
[sysvol]
path = /var/lib/samba/sysvol
read only = No
[netlogon]
path = /var/lib/samba/sysvol/ad.co.jp/scripts
read only = No
$ sudo apt-get install kinit heimdal-clients -y #Kerberos認証で使用。ADインストールのタイミングにインストールしても良い
$ sudo kinit Administrator@AD.CO.JP #Kerberos認証
Administrator@AD.CO.JP's Password:
$ sudo klist #発行されたチケット情報の確認。
Credentials cache: FILE:/tmp/krb5cc_0
Principal: Administrator@AD.CO.JP
Issued Expires Principal
Nov 3 15:42:23 2024 Nov 4 01:42:23 2024 krbtgt/AD.CO.JP@AD.CO.JP
$ sudo samba-tool user add testuser1 Passw0rd #ユーザー登録
User 'testuser1' added successfully
◆Windowsクライアントからアクセス
WindowsServerのADと同じ方法でログオン出来れば、成功です。

例題
問題集103頁問4,5,16,18~21
アクティブディレクトリの名前解決 - Linux技術者認定 LinuC | LPI-Japan
Sambaの概念とアーキテクチャ - Linux技術者認定 LinuC | LPI-Japan
Samba4のAD互換ドメインコントローラ - Linux技術者認定 LinuC | LPI-Japan