やっていきましょう。
基本的には、以下のページのとおりに勧めていく。
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からドメインに参加する方法などを書いていく