やっていきましょう。
基本的には、以下のページのとおりに勧めていく。
Setting up Samba as an Active Directory Domain Controller  
前提
- ドメイン名と、ドメインコントローラのホスト名は以下の通り  
- ドメイン名  
contoso.local
 - ホスト名  
dc01
 
 - ドメイン名  
 - 静的IPアドレスが設定されていること
 - バックエンドのDNSサーバはBINDを使用する  
- 既にBINDが動作している場合、
contoso.localドメインは名前解決できないようにしておく 
 - 既にBINDが動作している場合、
 - 機能レベルは
Windows 2008 R2 
ホスト名の設定
hostnamectl set-hostname dc01
hostsファイルの編集
FQDNと短いホスト名がドメインコントローラのIPアドレスに正しく解決される必要があるためhostsファイルを編集する  
vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.10.7 dc01.contoso.local dc01
Sambaのインストール
epelレポジトリの追加yum install epel-release- ビルドに必要なパッケージのインストール  
yum install attr bind-utils docbook-style-xsl gcc gdb krb5-workstation \ libsemanage-python libxslt perl perl-ExtUtils-MakeMaker \ perl-Parse-Yapp perl-Test-Base pkgconfig policycoreutils-python \ python2-crypto gnutls-devel libattr-devel keyutils-libs-devel \ libacl-devel libaio-devel libblkid-devel libxml2-devel openldap-devel \ pam-devel popt-devel python-devel readline-devel zlib-devel systemd-devel \ lmdb-devel jansson-devel gpgme-devel pygpgme libarchive-devel - ソースコードのダウンロードと展開  
cd /usr/local/src mkdir samba cd samba curl -LO https://download.samba.org/pub/samba/stable/samba-4.9.4.tar.gz tar -zxfv samba-4.9.4.tar.gz rm samba-4.9.4.tar.gz - インストール
特にオプションなどは指定せずデフォルト設定でインストールするcd samba-4.9.4 ./configure make make install'install' finished successfullyと表示されたらインストール完了 - インストールされたことを確認  
/usr/local/samba/sbin/samba -V Version 4.9.4 
ADのプロビジョニング
- UNIX属性を有効にし対話環境でセットアップ  
/usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --interactive --function-level=2008_R2いろいろ聞かれるので適宜回答する
DNS backendはBIND_DLZを回答するRealm [CONTOSO.LOCAL]: CONTOSO.LOCAL Domain [CONTOSO]: CONTOSO Server Role (dc, member, standalone) [dc]: dc DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: BIND9_DLZ Administrator password: Retype password:以下のようにドメインに関する情報が表示されたらプロビジョニング完了
Looking up IPv4 addresses Looking up IPv6 addresses No IPv6 address will be assigned Setting up share.ldb Setting up secrets.ldb Setting up the registry Setting up the privileges database Setting up idmap db Setting up SAM db Setting up sam.ldb partitions and settings Setting up sam.ldb rootDSE Pre-loading the Samba 4 and AD schema Unable to determine the DomainSID, can not enforce uniqueness constraint on local domainSIDs Adding DomainDN: DC=contoso,DC=local Adding configuration container Setting up sam.ldb schema Setting up sam.ldb configuration data Setting up display specifiers Modifying display specifiers and extended rights Adding users container Modifying users container Adding computers container Modifying computers container Setting up sam.ldb data Setting up well known security principals Setting up sam.ldb users and groups Setting up self join Adding DNS accounts Creating CN=MicrosoftDNS,CN=System,DC=contoso,DC=local Creating DomainDnsZones and ForestDnsZones partitions Populating DomainDnsZones and ForestDnsZones partitions See /usr/local/samba/bind-dns/named.conf for an example configuration include file for BIND and /usr/local/samba/bind-dns/named.txt for further documentation required for secure DNS updates Setting up sam.ldb rootDSE marking as synchronized Fixing provision GUIDs A Kerberos configuration suitable for Samba AD has been generated at /usr/local/samba/private/krb5.conf Merge the contents of this file with your system krb5.conf or replace it with this one. Do not create a symlink! Setting up fake yp server settings Once the above files are installed, your Samba AD server will be ready to use Server Role: active directory domain controller Hostname: dc01 NetBIOS Domain: CONTOSO DNS Domain: CONTOSO.LOCAL DOMAIN SID: S-1-5-21-2614513918-2685075268-614796884 
Kerberos認証の設定
cp /usr/local/samba/private/krb5.conf /etc/krb5.conf
AD DNSのバックエンドを設定
- BINDのインストール  
yum install named - BINDのバージョンを確認  
named -v BIND 9.9.4-RedHat-9.9.4-73.el7_6 (Extended Support Version) - BINDの設定
フォワーダなど内部DNSとして必要な設定を行う /etc/named.confに以下を追加include "/usr/local/samba/bind-dns/named.conf";- 
/usr/local/samba/bind-dns/named.confのファイルを編集し、インストールしたBIND用のモジュールのコメントを外すdlz "AD DNS Zone" { # For BIND 9.8 # database "dlopen /usr/local/samba/lib/bind9/dlz_bind9.so"; # For BIND 9.9 database "dlopen /usr/local/samba/lib/bind9/dlz_bind9_9.so"; # For BIND 9.10 # database "dlopen /usr/local/samba/lib/bind9/dlz_bind9_10.so"; # For BIND 9.11 # database "dlopen /usr/local/samba/lib/bind9/dlz_bind9_11.so"; }; /etc/named.confのoptionセクションに以下を追加tkey-gssapi-keytab "/usr/local/samba/private/dns.keytab";/usr/local/samba/private/dns.keytabの権限を設定するchmod 640 /usr/local/samba/private/dns.keytab chown root:named /usr/local/samba/private/dns.keytab/etc/krb5.confがBIND実行ユーザから読み取り可能であることを確認ls -al /etc/krb5.conf -rw-rw-rw- 1 root root 92 3月 4 23:34 /etc/krb5.conf- DNSを更新するための
nsupdateコマンドが存在することを確認which nsupdate /bin/nsupdate - BINDの設定を確認する
以下のコマンドを実行し何も表示されなければOKnamed-checkconf - BINDを起動する
named-chrootではDNSが自動で更新されないため素のnamedを起動する必要があるsystemctl start named - DNSの設定
nmcli connection modify ens160 ipv4.dns 127.0.0.1 ipv4.dns-search contoso.local 
Chronyの設定
- Chronyのインストール  
yum install chrony - Chronyの設定
NTPサーバとして必要な設定を行う ntp_signedディレクトリの権限を変更chown root:chrony /usr/local/samba/var/lib/ntp_signd/ chmod 750 /usr/local/samba/var/lib/ntp_signd//etc/chronyd.confに以下を追加・編集bindcmdaddress 192.168.10.7 ntpsigndsocket /usr/local/samba/var/lib/ntp_signd- Chronyを起動する  
systemctl start chronyd 
Sambaの起動
- Systemdのユニットファイルを作成  
/etc/systemd/system/samba-ad-dc.service[Unit] Description=Samba Active Directory Domain Controller After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local/samba/sbin/samba -D PIDFile=/usr/local/samba/var/run/samba.pid ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target - Systemdをリロード  
systemctl daemon-reload - Sambaを起動する  
systemctl start samba-ad-dc.service 
テスト
- 
システムボリュームツリーが共有されていることを確認
smbclient -L localhost -U%netlogonとsysvolがあればOKSharename Type Comment --------- ---- ------- netlogon Disk sysvol Disk IPC$ IPC IPC Service (Samba 4.9.4) Reconnecting with SMB1 for workgroup listing. Server Comment --------- ------- Workgroup Master --------- ------- - 
認証の確認
smbclient //localhost/netlogon -UAdministrator -c 'ls'プロビジョニング時に指定したパスワードを入力し以下のように表示されればOK
Enter SAMBA\Administrator's password: . D 0 Mon Mar 4 23:34:42 2019 .. D 0 Mon Mar 4 23:34:47 2019 43273580 blocks of size 1024. 36718156 blocks available _ldap._tcp.contoso.localのSRVレコードが解決できることを確認host -t SRV _ldap._tcp.contoso.local _ldap._tcp.contoso.local has SRV record 0 100 389 dc01.contoso.local._kerberos_tcp.contoso.localのSRVレコードが解決できることを確認host -t SRV _kerberos._tcp.contoso.local _kerberos._tcp.contoso.local has SRV record 0 100 389 dc01.contoso.local.- DCのAレコードが解決できることを確認  
host -t A dc01.contoso.local. dc01.contoso.local has address 192.168.10.7 - ドメイン管理者アカウントのKerberosチケットを要求  
kinit administrator@CONTOSO.LOCAL Password for administrator@CONTOSO.LOCAL: - Kerberosチケットが発行されたことを確認  
klist administrator@CONTOSO.LOCAL Ticket cache: FILE:/tmp/krb5cc_0 Default principal: administrator@CONTOSO.LOCAL Valid starting Expires Service principal 2019-03-04T23:54:08 2019-03-05T09:54:08 krbtgt/CONTOSO.LOCAL@CONTOSO.LOCAL renew until 2019-03-05T23:54:05 
ドメイン環境下でユーザを管理できるのは非常に便利
気が向いたら、ドメインを管理する方法や、WindowsとLinuxからドメインに参加する方法などを書いていく