2019/06/14追記
「Samba 4.10.xでActive Directoryを1から立てる」という記事を更新版の記事を作成しています。違いは必要となるパッケージが増えたことについてです。
CentOS7とSamba 4.7.5で環境を作成しなおしたので、記事更新
過去の記事はこちら
2014年2月版「Samba 4.xでActive Directoryを1から立てる」
2016年7月版「Samba 4.4.xでActive Directoryを1から立てる」
Linux上でSambaを使ってActive Directoryサーバを立てるメリット
・Windows Serverを買わなくてもActive Directoryを作れる
ライセンス費用の低減
・Active Directoryユーザの作成などのユーザ管理をWindowsマシンからWindows標準ツールで行える
ユーザ作成/変更、コンピュータアカウントの作成、DNS管理など、Active Directoryの管理を行う際に
良く使う動作については、Linuxのコマンドではなく、WindowsのActive Directory管理ツールで行える
具体的にはADに参加しているWindowsマシンにWindows機能のActive Directory管理ツールを追加インストールしたあと、
ADの管理者ユーザでログオンすることでAD管理を行うことができる
・設定が難しくない
いまのsambaは、DNSサーバとLDAPサーバ機能が統合されており、AD名とAD上の役割と
管理者パスワードを決めてしまえば、あとは良きに計らってくれるので
設定の難易度が非常に低い
もちろん、デメリット、もあります
・ActiveDirectoryの全機能が搭載されていない
ドメイン/フォレストの機能レベルが「Windows Server 2008 R2」までとなっている。
なお、フェールオーバクラスタについては作成できるようになっていました。
→「samba 4.7.4で作ったActive Directory環境でWindowsServer2016フェールオーバークラスターを動作させた」というわけで動作することを確認しました
それでは、実際の手順について・・・
元ネタは公式ページの「Setting up Samba as an Active Directory Domain Controller」となります。
0. CentOS7の最小インストールを実施
1. /etc/hostsの修正
自ホスト名を/etc/hostsに追加
追加の際は、ショートのホスト名と、ドメイン付きのFQDNの両方を列挙すること。
[root@adserver ~]# cat /etc/hosts&lt;br&gt;<br> 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4&lt;br&gt;<br> ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6&lt;br&gt;<br> 172.17.44.40 adserver adserver.adosakana.local&lt;br&gt;<br> [root@adserver ~]#
2. 好みに応じて使うツールをインストール
セッションが途中で切れても良い様に「screen」と、ファイルダウンロードするためにwget(curlでもいいのですが)をインストールします。
[root@adserver ~]# yum install wget screen&lt;br&gt;<br> <略>&lt;br&gt;<br> [root@adserver ~]#
3. 必要なパッケージをインストール
Samba公式の「Operating system requirements/Dependencies – Libraries and programs」に記載されているパッケージをインストール
[root@adserver ~]# yum install attr bind-utils docbook-style-xsl gcc gdb krb5-workstation \&lt;br&gt;<br> libsemanage-python libxslt perl perl-ExtUtils-MakeMaker \&lt;br&gt;<br> perl-Parse-Yapp perl-Test-Base pkgconfig policycoreutils-python \&lt;br&gt;<br> python-crypto gnutls-devel libattr-devel keyutils-libs-devel \&lt;br&gt;<br> libacl-devel libaio-devel libblkid-devel libxml2-devel openldap-devel \&lt;br&gt;<br> pam-devel popt-devel python-devel readline-devel zlib-devel systemd-devel&lt;br&gt;<br> <略>&lt;br&gt;<br> [root@adserver ~]#
4. sambaのtar.gzをダウンロード
[root@adserver ~]# wget https://download.samba.org/pub/samba/stable/samba-4.7.5.tar.gz&lt;br&gt;<br> --2016-xx-xx xx:xx:xx-- https://download.samba.org/pub/samba/stable/samba-4.7.5.tar.gz&lt;br&gt;<br> download.samba.org をDNSに問いあわせています... 144.76.82.156&lt;br&gt;<br> download.samba.org|144.76.82.156|:443 に接続しています... 接続しました。&lt;br&gt;<br> HTTP による接続要求を送信しました、応答を待っています... 200 OK&lt;br&gt;<br> 長さ: 20715838 (20M) [application/gzip]&lt;br&gt;<br> `samba-4.7.5.tar.gz' に保存中&lt;/p&gt;<br> &lt;p&gt;100%[======================================&amp;gt;] 16,862,398 3.71MB/s 時間 5.5s&lt;/p&gt;<br> &lt;p&gt;2018-03-xx xx:xx:xx (2.93 MB/s) - `samba-4.7.5.tar.gz' へ保存完了 [16862398/16862398]&lt;/p&gt;<br> &lt;p&gt;[root@adserver ~]#
5. configure実施
[root@adserver ~]# tar xfz samba-4.7.5.tar.gz&lt;br&gt;<br> [root@adserver ~]# cd samba-4.7.5&lt;br&gt;<br> [root@adserver samba-4.7.5]# ./configure&lt;br&gt;<br> Checking for program gcc or cc : /usr/bin/gcc&lt;br&gt;<br> Checking for program cpp : /usr/bin/cpp&lt;br&gt;<br> <略>&lt;br&gt;<br> Checking if toolchain accepts -fstack-protector : yes&lt;br&gt;<br> 'configure' finished successfully (2m43.587s)&lt;br&gt;<br> [root@adserver samba-4.7.5]#
6. make & make install
[root@adserver samba-4.7.5]# make&lt;br&gt;<br> WAF_MAKE=1 python ./buildtools/bin/waf build&lt;br&gt;<br> Waf: Entering directory `/root/samba-4.7.5/bin'&lt;br&gt;<br> <略>&lt;br&gt;<br> Note: Writing nmblookup4.1&lt;br&gt;<br> Waf: Leaving directory `/root/samba-4.7.5/bin'&lt;br&gt;<br> 'build' finished successfully (22m56.876s)&lt;br&gt;<br> [root@adserver samba-4.7.5]# make install&lt;br&gt;<br> WAF_MAKE=1 python ./buildtools/bin/waf install&lt;br&gt;<br> Waf: Entering directory `/root/samba-4.7.5/bin'&lt;br&gt;<br> <略>&lt;br&gt;<br> * installing bin/default/pidl/Parse::Pidl::Wireshark::NDR.3pm as /usr/local/samba/share/man/man3/Parse::Pidl::Wireshark::NDR.3pm&lt;br&gt;<br> Waf: Leaving directory `/root/samba-4.7.5/bin'&lt;br&gt;<br> 'install' finished successfully (6m48.094s)&lt;br&gt;<br> [root@adserver samba-4.7.5]#
7. インストール完了確認
sambaのバージョン確認
[root@adserver ~]# /usr/local/samba/sbin/samba -V&lt;br&gt;<br> Version 4.7.5&lt;br&gt;<br> [root@adserver ~]#
8. Active Directoryのセットアップ
ドメイン「adosakana.local」を作成します。
また、sambaの機能を使ってAD DNSを構築するので「SAMBA_INTERNAL」を選択します。
なお、「–use-rfc2307」はADにNIS連携機能を追加するオプションです。AD上にUnix用のUID/GID/shell情報なども格納できるようにします。Samba環境では有効にしておくべきものです。
[root@adserver ~]# /usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --interactive&lt;br&gt;<br> Realm [ADOSAKANA.LOCAL]:&lt;br&gt;<br> Domain [ADOSAKANA]:&lt;br&gt;<br> Server Role (dc, member, standalone) [dc]:&lt;br&gt;<br> DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:&lt;br&gt;<br> DNS forwarder IP address (write 'none' to disable forwarding) [172.30.50.100]:&lt;br&gt;<br> Administrator password:&lt;br&gt;<br> Retype password:&lt;br&gt;<br> Looking up IPv4 addresses&lt;br&gt;<br> Looking up IPv6 addresses&lt;br&gt;<br> No IPv6 address will be assigned&lt;br&gt;<br> Setting up secrets.ldb&lt;br&gt;<br> Setting up the registry&lt;br&gt;<br> Setting up the privileges database&lt;br&gt;<br> Setting up idmap db&lt;br&gt;<br> Setting up SAM db&lt;br&gt;<br> Setting up sam.ldb partitions and settings&lt;br&gt;<br> Setting up sam.ldb rootDSE&lt;br&gt;<br> Pre-loading the Samba 4 and AD schema&lt;br&gt;<br> Adding DomainDN: DC=adosakana,DC=local&lt;br&gt;<br> Adding configuration container&lt;br&gt;<br> Setting up sam.ldb schema&lt;br&gt;<br> Setting up sam.ldb configuration data&lt;br&gt;<br> Setting up display specifiers&lt;br&gt;<br> Modifying display specifiers&lt;br&gt;<br> Adding users container&lt;br&gt;<br> Modifying users container&lt;br&gt;<br> Adding computers container&lt;br&gt;<br> Modifying computers container&lt;br&gt;<br> Setting up sam.ldb data&lt;br&gt;<br> Setting up well known security principals&lt;br&gt;<br> Setting up sam.ldb users and groups&lt;br&gt;<br> Setting up self join&lt;br&gt;<br> Adding DNS accounts&lt;br&gt;<br> Creating CN=MicrosoftDNS,CN=System,DC=adosakana,DC=local&lt;br&gt;<br> Creating DomainDnsZones and ForestDnsZones partitions&lt;br&gt;<br> Populating DomainDnsZones and ForestDnsZones partitions&lt;br&gt;<br> Setting up sam.ldb rootDSE marking as synchronized&lt;br&gt;<br> Fixing provision GUIDs&lt;br&gt;<br> A Kerberos configuration suitable for Samba AD has been generated at /usr/local/samba/private/krb5.conf&lt;br&gt;<br> Setting up fake yp server settings&lt;br&gt;<br> Once the above files are installed, your Samba AD server will be ready to use&lt;br&gt;<br> Server Role: active directory domain controller&lt;br&gt;<br> Hostname: adserver&lt;br&gt;<br> NetBIOS Domain: ADOSAKANA&lt;br&gt;<br> DNS Domain: adosakana.local&lt;br&gt;<br> DOMAIN SID: S-1-5-21-98280047-2622333268-1688910966&lt;/p&gt;<br> &lt;p&gt;[root@adserver ~]#
なお、password_hashでエラーとなるとおもいます。
現状の /etc/krb5.conf の内容が問題で発生しています。
この後の手順で正しいものに置き換えるので、この段階では単純に「mv /etc/krb5.conf /etc/krb5.conf.org」などの手段で別の名前として使わなくすれば大丈夫です。
Setting up sam.ldb users and groups&lt;br&gt;<br> ERROR(ldb): uncaught exception - operations error at ../source4/dsdb/samdb/ldb_modules/password_hash.c:3132&lt;br&gt;<br> File "/usr/local/samba/lib64/python2.7/site-packages/samba/netcmd/__init__.py", line 176, in _run&lt;br&gt;<br> return self.run(*args, **kwargs)&lt;br&gt;<br> File "/usr/local/samba/lib64/python2.7/site-packages/samba/netcmd/domain.py", line 474, in run&lt;br&gt;<br> nosync=ldap_backend_nosync, ldap_dryrun_mode=ldap_dryrun_mode)&lt;br&gt;<br> File "/usr/local/samba/lib64/python2.7/site-packages/samba/provision/__init__.py", line 2175, in provision&lt;br&gt;<br> skip_sysvolacl=skip_sysvolacl)&lt;br&gt;<br> File "/usr/local/samba/lib64/python2.7/site-packages/samba/provision/__init__.py", line 1787, in provision_fill&lt;br&gt;<br> next_rid=next_rid, dc_rid=dc_rid)&lt;br&gt;<br> File "/usr/local/samba/lib64/python2.7/site-packages/samba/provision/__init__.py", line 1447, in fill_samdb&lt;br&gt;<br> "KRBTGTPASS_B64": b64encode(krbtgtpass.encode('utf-16-le'))&lt;br&gt;<br> File "/usr/local/samba/lib64/python2.7/site-packages/samba/provision/common.py", line 55, in setup_add_ldif&lt;br&gt;<br> ldb.add_ldif(data, controls)&lt;br&gt;<br> File "/usr/local/samba/lib64/python2.7/site-packages/samba/__init__.py", line 229, in add_ldif&lt;br&gt;<br> self.add(msg, controls)
9. sambaを起動
[root@adserver ~]# ps -ef|grep samba&lt;br&gt;<br> root 11129 23028 0 16:01 pts/0 00:00:00 grep --color=auto samba&lt;br&gt;<br> [root@adserver ~]# /usr/local/samba/sbin/samba&lt;br&gt;<br> [root@adserver ~]# ps -ef|grep samba&lt;br&gt;<br> root 11131 1 14 16:01 ? 00:00:00 /usr/local/samba/sbin/samba&lt;br&gt;<br> root 11132 11131 0 16:01 ? 00:00:00 /usr/local/samba/sbin/samba&lt;br&gt;<br> root 11133 11131 0 16:01 ? 00:00:00 /usr/local/samba/sbin/samba&lt;br&gt;<br> root 11134 11132 0 16:01 ? 00:00:00 /usr/local/samba/sbin/samba&lt;br&gt;<br> root 11135 11134 19 16:01 ? 00:00:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground&lt;br&gt;<br> root 11136 11131 0 16:01 ? 00:00:00 /usr/local/samba/sbin/samba&lt;br&gt;<br> root 11137 11131 0 16:01 ? 00:00:00 /usr/local/samba/sbin/samba&lt;br&gt;<br> root 11138 11131 21 16:01 ? 00:00:00 /usr/local/samba/sbin/samba&lt;br&gt;<br> root 11139 11131 0 16:01 ? 00:00:00 /usr/local/samba/sbin/samba&lt;br&gt;<br> root 11140 11131 0 16:01 ? 00:00:00 /usr/local/samba/sbin/samba&lt;br&gt;<br> root 11141 11131 0 16:01 ? 00:00:00 /usr/local/samba/sbin/samba&lt;br&gt;<br> root 11142 11131 0 16:01 ? 00:00:00 /usr/local/samba/sbin/samba&lt;br&gt;<br> root 11143 11131 0 16:01 ? 00:00:00 /usr/local/samba/sbin/samba&lt;br&gt;<br> root 11144 11131 0 16:01 ? 00:00:00 /usr/local/samba/sbin/samba&lt;br&gt;<br> root 11145 11142 0 16:01 ? 00:00:00 /usr/local/samba/sbin/samba&lt;br&gt;<br> root 11146 11131 2 16:01 ? 00:00:00 /usr/local/samba/sbin/samba&lt;br&gt;<br> root 11147 11145 18 16:01 ? 00:00:00 /usr/local/samba/sbin/winbindd -D --option=server role check:inhibit=yes --foreground&lt;br&gt;<br> root 11148 11131 0 16:01 ? 00:00:00 /usr/local/samba/sbin/samba&lt;br&gt;<br> root 11151 11146 0 16:01 ? 00:00:00 /usr/local/samba/sbin/samba&lt;br&gt;<br> root 11152 11151 17 16:01 ? 00:00:00 python /usr/local/samba/sbin/samba_dnsupdate&lt;br&gt;<br> root 11153 11146 0 16:01 ? 00:00:00 /usr/local/samba/sbin/samba&lt;br&gt;<br> root 11154 11153 17 16:01 ? 00:00:00 python /usr/local/samba/sbin/samba_spnupdate&lt;br&gt;<br> root 11157 11135 0 16:01 ? 00:00:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground&lt;br&gt;<br> root 11158 11135 0 16:01 ? 00:00:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground&lt;br&gt;<br> root 11160 23028 0 16:01 pts/0 00:00:00 grep --color=auto samba&lt;br&gt;<br> root 11161 11147 0 16:01 ? 00:00:00 /usr/local/samba/sbin/winbindd -D --option=server role check:inhibit=yes --foreground&lt;br&gt;<br> [root@adserver ~]#
10.動作確認
CentOS内部からSMB接続を行うテストを実施。
[root@adserver ~]# /usr/local/samba/bin/smbclient --version&lt;br&gt;<br> Version 4.7.5&lt;br&gt;<br> [root@adserver ~]# /usr/local/samba/bin/smbclient -L localhost -U%&lt;/p&gt;<br> &lt;p&gt; Sharename Type Comment&lt;br&gt;<br> --------- ---- -------&lt;br&gt;<br> netlogon Disk&lt;br&gt;<br> sysvol Disk&lt;br&gt;<br> IPC$ IPC IPC Service (Samba 4.7.5)&lt;br&gt;<br> Reconnecting with SMB1 for workgroup listing.&lt;/p&gt;<br> &lt;p&gt; Server Comment&lt;br&gt;<br> --------- -------&lt;/p&gt;<br> &lt;p&gt; Workgroup Master&lt;br&gt;<br> --------- -------&lt;br&gt;<br> [root@adserver ~]#
以前は「Domain=[ADOSAKANA.LOCAL] OS=[Unix] Server=[Samba x.y.z]」という出力もあったのですが、Samba 4.7.5では無くなったようです。
netlogon共有にAdministrator権限でアクセスできるか確認。
[root@adserver ~]# /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator -c 'ls'&lt;br&gt;<br> Enter Administrator's password:&lt;br&gt;<br> . D 0 Fri Mar 2 15:53:48 2018&lt;br&gt;<br> .. D 0 Fri Mar 2 15:58:16 2018&lt;/p&gt;<br> &lt;p&gt; 14034944 blocks of size 1024. 11789628 blocks available&lt;br&gt;<br> [root@adserver ~]#
11.AD DNSの動作テスト
AD DNSが想定通りに動作しているかテストします。
まず、どんなzoneが登録されているのか確認
[root@adserver ~]# /usr/local/samba/bin/samba-tool dns zonelist 127.0.0.1 -U Administrator&lt;br&gt;<br> Password for [ADOSAKANA\Administrator]:&lt;br&gt;<br> 2 zone(s) found&lt;/p&gt;<br> &lt;p&gt; pszZoneName : adosakana.local&lt;br&gt;<br> Flags : DNS_RPC_ZONE_DSINTEGRATED DNS_RPC_ZONE_UPDATE_SECURE&lt;br&gt;<br> ZoneType : DNS_ZONE_TYPE_PRIMARY&lt;br&gt;<br> Version : 50&lt;br&gt;<br> dwDpFlags : DNS_DP_AUTOCREATED DNS_DP_DOMAIN_DEFAULT DNS_DP_ENLISTED&lt;br&gt;<br> pszDpFqdn : DomainDnsZones.adosakana.local&lt;/p&gt;<br> &lt;p&gt; pszZoneName : _msdcs.adosakana.local&lt;br&gt;<br> Flags : DNS_RPC_ZONE_DSINTEGRATED DNS_RPC_ZONE_UPDATE_SECURE&lt;br&gt;<br> ZoneType : DNS_ZONE_TYPE_PRIMARY&lt;br&gt;<br> Version : 50&lt;br&gt;<br> dwDpFlags : DNS_DP_AUTOCREATED DNS_DP_FOREST_DEFAULT DNS_DP_ENLISTED&lt;br&gt;<br> pszDpFqdn : ForestDnsZones.adosakana.local&lt;br&gt;<br> [root@adserver ~]#
Active Directoryで使用するDNSのSRVレコードが登録されているかをhostコマンドを使って確認。
[root@adserver ~]# host -t SRV _ldap._tcp.adosakana.local 127.0.0.1&lt;br&gt;<br> Using domain server:&lt;br&gt;<br> Name: 127.0.0.1&lt;br&gt;<br> Address: 127.0.0.1#53&lt;br&gt;<br> Aliases:&lt;/p&gt;<br> &lt;p&gt;_ldap._tcp.adosakana.local has SRV record 0 100 389 adserver.adosakana.local.&lt;br&gt;<br> [root@adserver ~]# host -t SRV _kerberos._udp.adosakana.local 127.0.0.1&lt;br&gt;<br> Using domain server:&lt;br&gt;<br> Name: 127.0.0.1&lt;br&gt;<br> Address: 127.0.0.1#53&lt;br&gt;<br> Aliases:&lt;/p&gt;<br> &lt;p&gt;_kerberos._udp.adosakana.local has SRV record 0 100 88 adserver.adosakana.local.&lt;br&gt;<br> [root@adserver ~]#
ADサーバのホスト名が登録されているか確認
[root@adserver ~]# host -t A adserver.adosakana.local 127.0.0.1&lt;br&gt;<br> Using domain server:&lt;br&gt;<br> Name: 127.0.0.1&lt;br&gt;<br> Address: 127.0.0.1#53&lt;br&gt;<br> Aliases:&lt;/p&gt;<br> &lt;p&gt;adserver.adosakana.local has address 172.17.44.40&lt;br&gt;<br> [root@adserver ~]#
12. DNSサーバの変更
ADサーバの/etc/resolv.confを、ADサーバ自身を使う様に書き換え
13. /etc/krb5.conf の変更
/usr/local/samba/private/krb5.conf に元となるものがあるので、それを使用する。
[root@adserver ~]# cat /etc/krb5.conf&lt;br&gt;<br> [logging]&lt;br&gt;<br> default = FILE:/var/log/krb5libs.log&lt;br&gt;<br> kdc = FILE:/var/log/krb5kdc.log&lt;br&gt;<br> admin_server = FILE:/var/log/kadmind.log&lt;/p&gt;<br> &lt;p&gt;[libdefaults]&lt;br&gt;<br> default_realm = EXAMPLE.COM&lt;br&gt;<br> dns_lookup_realm = false&lt;br&gt;<br> dns_lookup_kdc = false&lt;br&gt;<br> ticket_lifetime = 24h&lt;br&gt;<br> renew_lifetime = 7d&lt;br&gt;<br> forwardable = true&lt;/p&gt;<br> &lt;p&gt;[realms]&lt;br&gt;<br> EXAMPLE.COM = {&lt;br&gt;<br> kdc = kerberos.example.com&lt;br&gt;<br> admin_server = kerberos.example.com&lt;br&gt;<br> }&lt;/p&gt;<br> &lt;p&gt;[domain_realm]&lt;br&gt;<br> .example.com = EXAMPLE.COM&lt;br&gt;<br> example.com = EXAMPLE.COM&lt;br&gt;<br> [root@adserver ~]# cat /usr/local/samba/private/krb5.conf&lt;br&gt;<br> [libdefaults]&lt;br&gt;<br> default_realm = ADOSAKANA.LOCAL&lt;br&gt;<br> dns_lookup_realm = false&lt;br&gt;<br> dns_lookup_kdc = true&lt;br&gt;<br> [root@adserver ~]# cp /usr/local/samba/private/krb5.conf /etc/krb5.conf&lt;br&gt;<br> cp: `/etc/krb5.conf' を上書きしてもよろしいですか(yes/no)? y&lt;br&gt;<br> [root@adserver ~]# cat /etc/krb5.conf&lt;br&gt;<br> [libdefaults]&lt;br&gt;<br> default_realm = ADOSAKANA.LOCAL&lt;br&gt;<br> dns_lookup_realm = false&lt;br&gt;<br> dns_lookup_kdc = true&lt;br&gt;<br> [root@adserver ~]#
14. Kerberosの動作確認
kinitコマンドを実行して確認します。
[root@adserver ~]# kinit administrator@ADOSAKANA.LOCAL&lt;br&gt;<br> Password for administrator@ADOSAKANA.LOCAL:&lt;br&gt;<br> Warning: Your password will expire in 41 days on 2018年04月13日 15時58分15秒&lt;br&gt;<br> [root@adserver ~]#
正常に設定されていれば、上記の様にAdministratorユーザのパスワード有効期限が表示されます。
ドメイン名指定の大文字/小文字を間違えると下記の様なエラーとなります。
[root@adserver ~]# kinit administrator@adosakana.local&lt;br&gt;<br> Password for administrator@adosakana.local:&lt;br&gt;<br> kinit: KDC reply did not match expectations while getting initial credentials&lt;br&gt;<br> [root@adserver ~]#
また、DNSサーバ指定が誤っている場合は下記の様なエラーです。
[root@adserver ~]# kinit administrator@ADOSAKANA.LOCAL&lt;br&gt;<br> kinit: Cannot resolve servers for KDC in realm "ADOSAKANA.LOCAL" while getting initial credentials&lt;br&gt;<br> [root@adserver ~]#
「klist」コマンドを実行することでも確認出来ます。
[root@adserver ~]# klist&lt;br&gt;<br> Ticket cache: FILE:/tmp/krb5cc_0&lt;br&gt;<br> Default principal: administrator@ADOSAKANA.LOCAL&lt;/p&gt;<br> &lt;p&gt;Valid starting Expires Service principal&lt;br&gt;<br> 2018-03-02T16:06:21 2018-03-03T02:06:21 krbtgt/ADOSAKANA.LOCAL@ADOSAKANA.LOCAL&lt;br&gt;<br> renew until 2018-03-03T16:06:18&lt;br&gt;<br> [root@adserver ~]#
15. フォレストとドメインの機能レベル確認
作成したActive Directoryのドメインの機能レベルとフォレストの機能レベルを確認します。
[root@adserver ~]# /usr/local/samba/bin/samba-tool domain level show&lt;br&gt;<br> Domain and forest function level for domain 'DC=adosakana,DC=local'&lt;/p&gt;<br> &lt;p&gt;Forest function level: (Windows) 2008 R2&lt;br&gt;<br> Domain function level: (Windows) 2008 R2&lt;br&gt;<br> Lowest function level of a DC: (Windows) 2008 R2&lt;br&gt;<br> [root@adserver ~]#
Samba 4.7.5では、Windows Sevrer 2008R2と設定されているようです。
16. firewalldの設定
CentOS7ではfirewalldによりポートが制限されています。
現状を「firewall-cmd –list-all」で確認。
# firewall-cmd --list-all&lt;br&gt;<br> public (active)&lt;br&gt;<br> target: default&lt;br&gt;<br> icmp-block-inversion: no&lt;br&gt;<br> interfaces: ens160&lt;br&gt;<br> sources:&lt;br&gt;<br> services: ssh dhcpv6-client&lt;br&gt;<br> ports:&lt;br&gt;<br> protocols:&lt;br&gt;<br> masquerade: no&lt;br&gt;<br> forward-ports:&lt;br&gt;<br> source-ports:&lt;br&gt;<br> icmp-blocks:&lt;br&gt;<br> rich rules:&lt;br&gt;<br> #
開けるべきポートのテンプレートがあらかじめ用意されているので「firewall-cmd –get-services」を実行して確認します。
# firewall-cmd --get-services&lt;br&gt;<br> RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master high-availability http https imap imaps ipp ipp-client ipsec iscsi-target kadmin kerberos kibana klogin kpasswd kshell ldap ldaps libvirt libvirt-tls managesieve mdns mosh mountd ms-wbt mssql mysql nfs nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server&lt;br&gt;<br> #
SambaをADとして使う場合のポートを「Samba AD DC Port Usage」で確認します。
CentOS7のfirewalldで定義されているものと待避させてみると・・・
サービス | ポート | プロトコル | firewalld定義 |
---|---|---|---|
DNS | 53 | tcp/udp | dns |
Kerberos | 88 | tcp/udp | kerberos,freeipa-ldap,freeipa-ldaps |
End Point Mapper (DCE/RPC Locator Service) | 135 | tcp | freeipa-trust |
NetBIOS Name Service | 137 | udp | samba,samba-client |
NetBIOS Datagram | 138 | udp | samba,samba-client,freeipa-trust |
NetBIOS Session | 139 | tcp | samba,freeipa-trust |
LDAP | 389 | tcp/udp | freeipa-trust(ldap,freeipa-ldapはtcpのみ) |
SMB over TCP | 445 | tcp | samba,freeipa-trust(freeipa-trustはudpも含む) |
Kerberos kpasswd | 464 | tcp/udp | kpasswd,freeipa-ldap,freeipa-ldaps |
LDAPS | 636 | tcp | ldaps,freeipa-ldaps |
Dynamic RPC Ports(4.7以前) | 1024-1300 | tcp | freeipa-trust |
Dynamic RPC Ports(samba 4.7以降) | 49152-65535 | tcp | ? |
Global Catalog | 3268 | tcp | freeipa-trust |
Global Catalog SSL | 3269 | tcp | なし |
・firewalldの定義「samba」「dns」「freeipa-ldaps」「freeipa-trust」を使用
・「Dynamic RPC Ports(samba 4.7以降):49152-65535」を追加するか、smb.confで「rpc server port」を定義するか。
・「Global Catalog SSL:3269」を追加
# firewall-cmd --permanent --zone=public --add-service=samba&lt;br&gt;<br> success&lt;br&gt;<br> # firewall-cmd --permanent --zone=public --add-service=dns&lt;br&gt;<br> success&lt;br&gt;<br> # firewall-cmd --permanent --zone=public --add-service=freeipa-ldaps&lt;br&gt;<br> success&lt;br&gt;<br> # firewall-cmd --permanent --zone=public --add-service=freeipa-trust&lt;br&gt;<br> success&lt;br&gt;<br> # firewall-cmd --reload&lt;br&gt;<br> success&lt;br&gt;<br> # firewall-cmd --list-all&lt;br&gt;<br> public (active)&lt;br&gt;<br> target: default&lt;br&gt;<br> icmp-block-inversion: no&lt;br&gt;<br> interfaces: ens160&lt;br&gt;<br> sources:&lt;br&gt;<br> services: ssh dhcpv6-client samba dns freeipa-ldaps freeipa-trust&lt;br&gt;<br> ports:&lt;br&gt;<br> protocols:&lt;br&gt;<br> masquerade: no&lt;br&gt;<br> forward-ports:&lt;br&gt;<br> source-ports:&lt;br&gt;<br> icmp-blocks:&lt;br&gt;<br> rich rules:&lt;/p&gt;<br> &lt;p&gt;#
# firewall-cmd --permanent --zone=public --add-port=49152-65535/tcp&lt;br&gt;<br> success&lt;br&gt;<br> # firewall-cmd --permanent --zone=public --add-port=3269/tcp&lt;br&gt;<br> success&lt;br&gt;<br> # firewall-cmd --reload&lt;br&gt;<br> success&lt;br&gt;<br> # firewall-cmd --list-all&lt;br&gt;<br> public (active)&lt;br&gt;<br> target: default&lt;br&gt;<br> icmp-block-inversion: no&lt;br&gt;<br> interfaces: ens160&lt;br&gt;<br> sources:&lt;br&gt;<br> services: ssh dhcpv6-client samba dns freeipa-ldaps freeipa-trust&lt;br&gt;<br> ports: 49152-65535/tcp 3269/tcp&lt;br&gt;<br> protocols:&lt;br&gt;<br> masquerade: no&lt;br&gt;<br> forward-ports:&lt;br&gt;<br> source-ports:&lt;br&gt;<br> icmp-blocks:&lt;br&gt;<br> rich rules:&lt;br&gt;<br> #
17. systemdへの登録
systemdへの登録については「Managing the Samba AD DC Service Using Systemd」を参照のこと
CentOS6の場合は「Managing the Samba AD DC Service Using an Init Script」
以上で設定は終了です。