Samba4でのDomain Controller作成

amba4とbindは同じマシン上で作動することとする。

DNS関連設定

参照DNSの変更

vi /etc/resolv.conf

127.0.0.1       localhost
#127.0.1.1      hostname.sugio-garden.com hostname
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

AD用の定義ファイルをコピーする。

cp /usr/share/samba/setup/named.conf.dlz /var/lib/samba/private/named.conf

定義ファイルで実行バージョンに合わせて編集する。

# For BIND 9.10.x
database "dlopen ${MODULESDIR}/bind9/dlz_bind9_10.so";
#${BIND9_10} database "dlopen ${MODULESDIR}/bind9/dlz_bind9_10.so";

BIND9へのレコード登録

samba.sugio-garden.comをドメインコントローラ(この場合、ドメイン名はsugio-garden.com)とする。

samba.sugio-garden.com.    A    4.2.2.3
_ldap._tcp.ad.sugio-garden.com.    SRV    0    0    389    samba.sugio-garden.com.
_kerberos._tcp.sugio-garden.com.    SRV    0    0    88    samba.sugio-garden.com.
_ldap._tcp.dc._msdcs.sugio-garden.com.    SRV    0    0    389    samba.sugio-garden.com.
_kerberos._tcp.dc._msdcs.sugio-garden.com.    SRV    0    0    88    samba.sugio-garden.com.
gc._msdcs.sugio-garden.com.    SRV    0    0    3268    samba.sugio-garden.com.

SAMBA4の設定

パッケージのインストール

apt install samba smbclient krb5-user acl
rm -f /etc/samba/smb.conf

samba4の設定

samba-tool domain provision --dns-backend=BIND9_DLZ --realm=SUGIO-GARDEN.COM     --domain=SUGIO-GARDEN --server-role=dc --function-level=2008_R2     --adminpass=パスワード

個別パラメーターを確認しながら設定する場合には、以下のコマンドを投入する。

samba-tool domain provision --use-rfc2307 --interactive

対話形式の設定を行う。

ドメインコントローラのレベルを変更する。

samba-tool domain level show
samba-tool domain level raise --domain-level 2008_R2 --forest-level 2008_R2
samba-tool domain level show Domain and forest function level for domain 'DC=sugio-garden,DC=com'

sambaの設定ファイルの変更

vi /etc/samba/smb.conf

# Global parameters [global]
        workgroup = SUGIO-GARDEN
        realm = SUGIO-GARDEN.COM
        netbios name = samba
        server role = active directory domain controller
        server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate
        server services = -dns, -nbt

BINDの設定変更する。

bindのバージョンを確認する。

dig @localhost chaos txt version.bind

SAMBA用の設定ファイルをBINDのバージョンに合わせて変更する。

vi /var/lib/samba/private/named.conf

dlz "AD DNS Zone" {
    # For BIND 9.8.x
    # database "dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9.so";
    # For BIND 9.9.x
     database "dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_9.so";
    # For BIND 9.10.x
    # database "dlopen /usr/lib/x86_64-linux-gnu/samba/bind9/dlz_bind9_10.so";
};

SAMBA用の設定ファイルを読み込むようにする。

vi /etc/bind/named.conf

include "/var/lib/samba/private/named.conf";
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";

再起動を行う。

reboot

動作確認

DNS名前解決チェック

hostコマンドで、LDAPサーバ、Kerberosサーバ、自IPのそれぞれが名前解決できるか確認。

host -t SRV _kerberos._udp.sugio-garden.com
host -t A samba.sugio-garden.com
host -t SRV _ldap._tcp.sugio-garden.com

smbclient でサーバと接続確認

smbclient  -L samba.sugio-garden.com -U%

管理者としてログインできるか確認

smbclient //samba.sugio-garden.com/netlogon -Uadministrator

失敗した場合には

  • /etc/samba/smb.conf を削除
  • /var/lib/samba/*.tdb を削除
  • /var/lib/samba/private/ 以下のファイルを削除
  • /var/cache/samba/ 以下のファイル(ディレクトリ含む)を削除
rm /etc/samba/smb.conf
rm /var/lib/samba/*.tdb
rm -R /var/lib/samba/private/*
rm -R /var/cache/samba/

Windowsの参照DNSを変更してドメインに参加する。

SSL対応

Samba4をLDAPSに対応させる。

[global]
    workgroup = DOMAIN.COM
    realm = DOMAIN.COM
    netbios name = ホスト名
    server role = active directory domain controller
    server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate
    server services = -dns, -nbt
    tls enabled = yes
    tls keyfile = 秘密鍵
    tls certfile = 公開鍵
    tls cafile = 証明書