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の両方を列挙すること。
2 | 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4& lt ;br& gt ;<br> |
3 | ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6& lt ;br& gt ;<br> |
4 | 172.17.44.40 adserver adserver.adosakana. local & lt ;br& gt ;<br> |
2. 好みに応じて使うツールをインストール
セッションが途中で切れても良い様に「screen」と、ファイルダウンロードするためにwget(curlでもいいのですが)をインストールします。
3. 必要なパッケージをインストール
Samba公式の「Operating system requirements/Dependencies – Libraries and programs」に記載されているパッケージをインストール
2 | libsemanage-python libxslt perl perl-ExtUtils-MakeMaker \& lt ;br& gt ;<br> |
3 | perl-Parse-Yapp perl-Test-Base pkgconfig policycoreutils-python \& lt ;br& gt ;<br> |
4 | python-crypto gnutls-devel libattr-devel keyutils-libs-devel \& lt ;br& gt ;<br> |
5 | libacl-devel libaio-devel libblkid-devel libxml2-devel openldap-devel \& lt ;br& gt ;<br> |
6 | pam-devel popt-devel python-devel readline-devel zlib-devel systemd-devel& lt ;br& gt ;<br> |
4. sambaのtar.gzをダウンロード
3 | download.samba.org をDNSに問いあわせています... 144.76.82.156& lt ;br& gt ;<br> |
4 | download.samba.org|144.76.82.156|:443 に接続しています... 接続しました。& lt ;br& gt ;<br> |
5 | HTTP による接続要求を送信しました、応答を待っています... 200 OK& lt ;br& gt ;<br> |
6 | 長さ: 20715838 (20M) [application/ gzip ]& lt ;br& gt ;<br> |
7 | `samba-4.7.5. tar .gz' に保存中& lt ;/p& gt ;<br> |
8 | & lt ;p& gt ;100%[======================================& gt ;] 16,862,398 3.71MB/s 時間 5.5s& lt ;/p& gt ;<br> |
9 | & 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> |
10 | & lt ;p& gt ;[root@adserver ~] |
5. configure実施
3 | [root@adserver samba-4.7.5] |
4 | Checking for program gcc or cc : /usr/bin/gcc& lt ;br& gt ;<br> |
5 | Checking for program cpp : /usr/bin/cpp& lt ;br& gt ;<br> |
7 | Checking if toolchain accepts -fstack-protector : yes & lt ;br& gt ;<br> |
8 | 'configure' finished successfully (2m43.587s)& lt ;br& gt ;<br> |
9 | [root@adserver samba-4.7.5] |
6. make & make install
1 | [root@adserver samba-4.7.5] |
2 | WAF_MAKE=1 python ./buildtools/bin/waf build& lt ;br& gt ;<br> |
3 | Waf: Entering directory `/root/samba-4.7.5/bin'& lt ;br& gt ;<br> |
5 | Note: Writing nmblookup4.1& lt ;br& gt ;<br> |
6 | Waf: Leaving directory `/root/samba-4.7.5/bin'& lt ;br& gt ;<br> |
7 | 'build' finished successfully (22m56.876s)& lt ;br& gt ;<br> |
8 | [root@adserver samba-4.7.5] |
9 | WAF_MAKE=1 python ./buildtools/bin/waf install & lt ;br& gt ;<br> |
10 | Waf: Entering directory `/root/samba-4.7.5/bin'& lt ;br& gt ;<br> |
12 | * 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> |
13 | Waf: Leaving directory `/root/samba-4.7.5/bin'& lt ;br& gt ;<br> |
14 | 'install' finished successfully (6m48.094s)& lt ;br& gt ;<br> |
15 | [root@adserver samba-4.7.5] |
7. インストール完了確認
sambaのバージョン確認
2 | Version 4.7.5& lt ;br& gt ;<br> |
8. Active Directoryのセットアップ
ドメイン「adosakana.local」を作成します。
また、sambaの機能を使ってAD DNSを構築するので「SAMBA_INTERNAL」を選択します。
なお、「–use-rfc2307」はADにNIS連携機能を追加するオプションです。AD上にUnix用のUID/GID/shell情報なども格納できるようにします。Samba環境では有効にしておくべきものです。
2 | Realm [ADOSAKANA.LOCAL]:& lt ;br& gt ;<br> |
3 | Domain [ADOSAKANA]:& lt ;br& gt ;<br> |
4 | Server Role ( dc , member, standalone) [ dc ]:& lt ;br& gt ;<br> |
5 | DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:& lt ;br& gt ;<br> |
6 | DNS forwarder IP address (write 'none' to disable forwarding) [172.30.50.100]:& lt ;br& gt ;<br> |
7 | Administrator password:& lt ;br& gt ;<br> |
8 | Retype password:& lt ;br& gt ;<br> |
9 | Looking up IPv4 addresses& lt ;br& gt ;<br> |
10 | Looking up IPv6 addresses& lt ;br& gt ;<br> |
11 | No IPv6 address will be assigned& lt ;br& gt ;<br> |
12 | Setting up secrets.ldb& lt ;br& gt ;<br> |
13 | Setting up the registry& lt ;br& gt ;<br> |
14 | Setting up the privileges database& lt ;br& gt ;<br> |
15 | Setting up idmap db& lt ;br& gt ;<br> |
16 | Setting up SAM db& lt ;br& gt ;<br> |
17 | Setting up sam.ldb partitions and settings& lt ;br& gt ;<br> |
18 | Setting up sam.ldb rootDSE& lt ;br& gt ;<br> |
19 | Pre-loading the Samba 4 and AD schema& lt ;br& gt ;<br> |
20 | Adding DomainDN: DC=adosakana,DC= local & lt ;br& gt ;<br> |
21 | Adding configuration container& lt ;br& gt ;<br> |
22 | Setting up sam.ldb schema& lt ;br& gt ;<br> |
23 | Setting up sam.ldb configuration data& lt ;br& gt ;<br> |
24 | Setting up display specifiers& lt ;br& gt ;<br> |
25 | Modifying display specifiers& lt ;br& gt ;<br> |
26 | Adding users container& lt ;br& gt ;<br> |
27 | Modifying users container& lt ;br& gt ;<br> |
28 | Adding computers container& lt ;br& gt ;<br> |
29 | Modifying computers container& lt ;br& gt ;<br> |
30 | Setting up sam.ldb data& lt ;br& gt ;<br> |
31 | Setting up well known security principals& lt ;br& gt ;<br> |
32 | Setting up sam.ldb users and groups & lt ;br& gt ;<br> |
33 | Setting up self join & lt ;br& gt ;<br> |
34 | Adding DNS accounts& lt ;br& gt ;<br> |
35 | Creating CN=MicrosoftDNS,CN=System,DC=adosakana,DC= local & lt ;br& gt ;<br> |
36 | Creating DomainDnsZones and ForestDnsZones partitions& lt ;br& gt ;<br> |
37 | Populating DomainDnsZones and ForestDnsZones partitions& lt ;br& gt ;<br> |
38 | Setting up sam.ldb rootDSE marking as synchronized& lt ;br& gt ;<br> |
39 | Fixing provision GUIDs& lt ;br& gt ;<br> |
40 | A Kerberos configuration suitable for Samba AD has been generated at /usr/ local /samba/private/krb5.conf& lt ;br& gt ;<br> |
41 | Setting up fake yp server settings& lt ;br& gt ;<br> |
42 | Once the above files are installed, your Samba AD server will be ready to use& lt ;br& gt ;<br> |
43 | Server Role: active directory domain controller& lt ;br& gt ;<br> |
44 | Hostname: adserver& lt ;br& gt ;<br> |
45 | NetBIOS Domain: ADOSAKANA& lt ;br& gt ;<br> |
46 | DNS Domain: adosakana. local & lt ;br& gt ;<br> |
47 | DOMAIN SID: S-1-5-21-98280047-2622333268-1688910966& lt ;/p& gt ;<br> |
48 | & lt ;p& gt ;[root@adserver ~] |
なお、password_hashでエラーとなるとおもいます。
現状の /etc/krb5.conf の内容が問題で発生しています。
この後の手順で正しいものに置き換えるので、この段階では単純に「mv /etc/krb5.conf /etc/krb5.conf.org」などの手段で別の名前として使わなくすれば大丈夫です。
1 | Setting up sam.ldb users and groups & lt ;br& gt ;<br> |
2 | ERROR(ldb): uncaught exception - operations error at ../source4/dsdb/samdb/ldb_modules/password_hash.c:3132& lt ;br& gt ;<br> |
3 | File "/usr/local/samba/lib64/python2.7/site-packages/samba/netcmd/__init__.py" , line 176, in _run& lt ;br& gt ;<br> |
4 | return self.run(*args, **kwargs)& lt ;br& gt ;<br> |
5 | File "/usr/local/samba/lib64/python2.7/site-packages/samba/netcmd/domain.py" , line 474, in run& lt ;br& gt ;<br> |
6 | nosync=ldap_backend_nosync, ldap_dryrun_mode=ldap_dryrun_mode)& lt ;br& gt ;<br> |
7 | File "/usr/local/samba/lib64/python2.7/site-packages/samba/provision/__init__.py" , line 2175, in provision& lt ;br& gt ;<br> |
8 | skip_sysvolacl=skip_sysvolacl)& lt ;br& gt ;<br> |
9 | File "/usr/local/samba/lib64/python2.7/site-packages/samba/provision/__init__.py" , line 1787, in provision_fill& lt ;br& gt ;<br> |
10 | next_rid=next_rid, dc_rid=dc_rid)& lt ;br& gt ;<br> |
11 | File "/usr/local/samba/lib64/python2.7/site-packages/samba/provision/__init__.py" , line 1447, in fill_samdb& lt ;br& gt ;<br> |
12 | "KRBTGTPASS_B64" : b64encode(krbtgtpass.encode( 'utf-16-le' ))& lt ;br& gt ;<br> |
13 | File "/usr/local/samba/lib64/python2.7/site-packages/samba/provision/common.py" , line 55, in setup_add_ldif& lt ;br& gt ;<br> |
14 | ldb.add_ldif(data, controls)& lt ;br& gt ;<br> |
15 | File "/usr/local/samba/lib64/python2.7/site-packages/samba/__init__.py" , line 229, in add_ldif& lt ;br& gt ;<br> |
16 | self.add(msg, controls) |
9. sambaを起動
2 | root 11129 23028 0 16:01 pts/0 00:00:00 grep --color=auto samba& lt ;br& gt ;<br> |
5 | root 11131 1 14 16:01 ? 00:00:00 /usr/ local /samba/sbin/samba& lt ;br& gt ;<br> |
6 | root 11132 11131 0 16:01 ? 00:00:00 /usr/ local /samba/sbin/samba& lt ;br& gt ;<br> |
7 | root 11133 11131 0 16:01 ? 00:00:00 /usr/ local /samba/sbin/samba& lt ;br& gt ;<br> |
8 | root 11134 11132 0 16:01 ? 00:00:00 /usr/ local /samba/sbin/samba& lt ;br& gt ;<br> |
9 | 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> |
10 | root 11136 11131 0 16:01 ? 00:00:00 /usr/ local /samba/sbin/samba& lt ;br& gt ;<br> |
11 | root 11137 11131 0 16:01 ? 00:00:00 /usr/ local /samba/sbin/samba& lt ;br& gt ;<br> |
12 | root 11138 11131 21 16:01 ? 00:00:00 /usr/ local /samba/sbin/samba& lt ;br& gt ;<br> |
13 | root 11139 11131 0 16:01 ? 00:00:00 /usr/ local /samba/sbin/samba& lt ;br& gt ;<br> |
14 | root 11140 11131 0 16:01 ? 00:00:00 /usr/ local /samba/sbin/samba& lt ;br& gt ;<br> |
15 | root 11141 11131 0 16:01 ? 00:00:00 /usr/ local /samba/sbin/samba& lt ;br& gt ;<br> |
16 | root 11142 11131 0 16:01 ? 00:00:00 /usr/ local /samba/sbin/samba& lt ;br& gt ;<br> |
17 | root 11143 11131 0 16:01 ? 00:00:00 /usr/ local /samba/sbin/samba& lt ;br& gt ;<br> |
18 | root 11144 11131 0 16:01 ? 00:00:00 /usr/ local /samba/sbin/samba& lt ;br& gt ;<br> |
19 | root 11145 11142 0 16:01 ? 00:00:00 /usr/ local /samba/sbin/samba& lt ;br& gt ;<br> |
20 | root 11146 11131 2 16:01 ? 00:00:00 /usr/ local /samba/sbin/samba& lt ;br& gt ;<br> |
21 | 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> |
22 | root 11148 11131 0 16:01 ? 00:00:00 /usr/ local /samba/sbin/samba& lt ;br& gt ;<br> |
23 | root 11151 11146 0 16:01 ? 00:00:00 /usr/ local /samba/sbin/samba& lt ;br& gt ;<br> |
24 | root 11152 11151 17 16:01 ? 00:00:00 python /usr/ local /samba/sbin/samba_dnsupdate& lt ;br& gt ;<br> |
25 | root 11153 11146 0 16:01 ? 00:00:00 /usr/ local /samba/sbin/samba& lt ;br& gt ;<br> |
26 | root 11154 11153 17 16:01 ? 00:00:00 python /usr/ local /samba/sbin/samba_spnupdate& lt ;br& gt ;<br> |
27 | 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> |
28 | 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> |
29 | root 11160 23028 0 16:01 pts/0 00:00:00 grep --color=auto samba& lt ;br& gt ;<br> |
30 | 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> |
10.動作確認
CentOS内部からSMB接続を行うテストを実施。
2 | Version 4.7.5& lt ;br& gt ;<br> |
4 | & lt ;p& gt ; Sharename Type Comment& lt ;br& gt ;<br> |
5 | --------- ---- -------& lt ;br& gt ;<br> |
6 | netlogon Disk& lt ;br& gt ;<br> |
7 | sysvol Disk& lt ;br& gt ;<br> |
8 | IPC$ IPC IPC Service (Samba 4.7.5)& lt ;br& gt ;<br> |
9 | Reconnecting with SMB1 for workgroup listing.& lt ;/p& gt ;<br> |
10 | & lt ;p& gt ; Server Comment& lt ;br& gt ;<br> |
11 | --------- -------& lt ;/p& gt ;<br> |
12 | & lt ;p& gt ; Workgroup Master& lt ;br& gt ;<br> |
13 | --------- -------& lt ;br& gt ;<br> |
以前は「Domain=[ADOSAKANA.LOCAL] OS=[Unix] Server=[Samba x.y.z]」という出力もあったのですが、Samba 4.7.5では無くなったようです。
netlogon共有にAdministrator権限でアクセスできるか確認。
2 | Enter Administrator's password:& lt ;br& gt ;<br> |
3 | . D 0 Fri Mar 2 15:53:48 2018& lt ;br& gt ;<br> |
4 | .. D 0 Fri Mar 2 15:58:16 2018& lt ;/p& gt ;<br> |
5 | & lt ;p& gt ; 14034944 blocks of size 1024. 11789628 blocks available& lt ;br& gt ;<br> |
11.AD DNSの動作テスト
AD DNSが想定通りに動作しているかテストします。
まず、どんなzoneが登録されているのか確認
2 | Password for [ADOSAKANA\Administrator]:& lt ;br& gt ;<br> |
3 | 2 zone(s) found& lt ;/p& gt ;<br> |
4 | & lt ;p& gt ; pszZoneName : adosakana. local & lt ;br& gt ;<br> |
5 | Flags : DNS_RPC_ZONE_DSINTEGRATED DNS_RPC_ZONE_UPDATE_SECURE& lt ;br& gt ;<br> |
6 | ZoneType : DNS_ZONE_TYPE_PRIMARY& lt ;br& gt ;<br> |
7 | Version : 50& lt ;br& gt ;<br> |
8 | dwDpFlags : DNS_DP_AUTOCREATED DNS_DP_DOMAIN_DEFAULT DNS_DP_ENLISTED& lt ;br& gt ;<br> |
9 | pszDpFqdn : DomainDnsZones.adosakana. local & lt ;/p& gt ;<br> |
10 | & lt ;p& gt ; pszZoneName : _msdcs.adosakana. local & lt ;br& gt ;<br> |
11 | Flags : DNS_RPC_ZONE_DSINTEGRATED DNS_RPC_ZONE_UPDATE_SECURE& lt ;br& gt ;<br> |
12 | ZoneType : DNS_ZONE_TYPE_PRIMARY& lt ;br& gt ;<br> |
13 | Version : 50& lt ;br& gt ;<br> |
14 | dwDpFlags : DNS_DP_AUTOCREATED DNS_DP_FOREST_DEFAULT DNS_DP_ENLISTED& lt ;br& gt ;<br> |
15 | pszDpFqdn : ForestDnsZones.adosakana. local & lt ;br& gt ;<br> |
Active Directoryで使用するDNSのSRVレコードが登録されているかをhostコマンドを使って確認。
2 | Using domain server:& lt ;br& gt ;<br> |
3 | Name: 127.0.0.1& lt ;br& gt ;<br> |
6 | & lt ;p& gt ;_ldap._tcp.adosakana. local has SRV record 0 100 389 adserver.adosakana. local .& lt ;br& gt ;<br> |
8 | Using domain server:& lt ;br& gt ;<br> |
9 | Name: 127.0.0.1& lt ;br& gt ;<br> |
12 | & lt ;p& gt ;_kerberos._udp.adosakana. local has SRV record 0 100 88 adserver.adosakana. local .& lt ;br& gt ;<br> |
ADサーバのホスト名が登録されているか確認
2 | Using domain server:& lt ;br& gt ;<br> |
3 | Name: 127.0.0.1& lt ;br& gt ;<br> |
6 | & lt ;p& gt ;adserver.adosakana. local has address 172.17.44.40& lt ;br& gt ;<br> |
12. DNSサーバの変更
ADサーバの/etc/resolv.confを、ADサーバ自身を使う様に書き換え
13. /etc/krb5.conf の変更
/usr/local/samba/private/krb5.conf に元となるものがあるので、それを使用する。
3 | default = FILE:/var/log/krb5libs.log& lt ;br& gt ;<br> |
4 | kdc = FILE:/var/log/krb5kdc.log& lt ;br& gt ;<br> |
5 | admin_server = FILE:/var/log/kadmind.log& lt ;/p& gt ;<br> |
6 | & lt ;p& gt ;[libdefaults]& lt ;br& gt ;<br> |
7 | default_realm = EXAMPLE.COM& lt ;br& gt ;<br> |
8 | dns_lookup_realm = false & lt ;br& gt ;<br> |
9 | dns_lookup_kdc = false & lt ;br& gt ;<br> |
10 | ticket_lifetime = 24h& lt ;br& gt ;<br> |
11 | renew_lifetime = 7d& lt ;br& gt ;<br> |
12 | forwardable = true & lt ;/p& gt ;<br> |
13 | & lt ;p& gt ;[realms]& lt ;br& gt ;<br> |
14 | EXAMPLE.COM = {& lt ;br& gt ;<br> |
15 | kdc = kerberos.example.com& lt ;br& gt ;<br> |
16 | admin_server = kerberos.example.com& lt ;br& gt ;<br> |
18 | & lt ;p& gt ;[domain_realm]& lt ;br& gt ;<br> |
19 | .example.com = EXAMPLE.COM& lt ;br& gt ;<br> |
20 | example.com = EXAMPLE.COM& lt ;br& gt ;<br> |
22 | [libdefaults]& lt ;br& gt ;<br> |
23 | default_realm = ADOSAKANA.LOCAL& lt ;br& gt ;<br> |
24 | dns_lookup_realm = false & lt ;br& gt ;<br> |
25 | dns_lookup_kdc = true & lt ;br& gt ;<br> |
27 | cp : `/etc/krb5.conf' を上書きしてもよろしいですか( yes /no)? y& lt ;br& gt ;<br> |
29 | [libdefaults]& lt ;br& gt ;<br> |
30 | default_realm = ADOSAKANA.LOCAL& lt ;br& gt ;<br> |
31 | dns_lookup_realm = false & lt ;br& gt ;<br> |
32 | dns_lookup_kdc = true & lt ;br& gt ;<br> |
14. Kerberosの動作確認
kinitコマンドを実行して確認します。
2 | Password for administrator@ADOSAKANA.LOCAL:& lt ;br& gt ;<br> |
3 | Warning: Your password will expire in 41 days on 2018年04月13日 15時58分15秒& lt ;br& gt ;<br> |
正常に設定されていれば、上記の様にAdministratorユーザのパスワード有効期限が表示されます。
ドメイン名指定の大文字/小文字を間違えると下記の様なエラーとなります。
2 | Password for administrator@adosakana. local :& lt ;br& gt ;<br> |
3 | kinit: KDC reply did not match expectations while getting initial credentials& lt ;br& gt ;<br> |
また、DNSサーバ指定が誤っている場合は下記の様なエラーです。
2 | kinit: Cannot resolve servers for KDC in realm "ADOSAKANA.LOCAL" while getting initial credentials& lt ;br& gt ;<br> |
「klist」コマンドを実行することでも確認出来ます。
2 | Ticket cache: FILE:/tmp/krb5cc_0& lt ;br& gt ;<br> |
3 | Default principal: administrator@ADOSAKANA.LOCAL& lt ;/p& gt ;<br> |
4 | & lt ;p& gt ;Valid starting Expires Service principal& lt ;br& gt ;<br> |
5 | 2018-03-02T16:06:21 2018-03-03T02:06:21 krbtgt/ADOSAKANA.LOCAL@ADOSAKANA.LOCAL& lt ;br& gt ;<br> |
6 | renew until 2018-03-03T16:06:18& lt ;br& gt ;<br> |
15. フォレストとドメインの機能レベル確認
作成したActive Directoryのドメインの機能レベルとフォレストの機能レベルを確認します。
2 | Domain and forest function level for domain 'DC=adosakana,DC=local' & lt ;/p& gt ;<br> |
3 | & lt ;p& gt ;Forest function level: (Windows) 2008 R2& lt ;br& gt ;<br> |
4 | Domain function level: (Windows) 2008 R2& lt ;br& gt ;<br> |
5 | Lowest function level of a DC: (Windows) 2008 R2& lt ;br& gt ;<br> |
Samba 4.7.5では、Windows Sevrer 2008R2と設定されているようです。
16. firewalldの設定
CentOS7ではfirewalldによりポートが制限されています。
現状を「firewall-cmd –list-all」で確認。
2 | public (active)& lt ;br& gt ;<br> |
3 | target: default& lt ;br& gt ;<br> |
4 | icmp-block-inversion: no& lt ;br& gt ;<br> |
5 | interfaces: ens160& lt ;br& gt ;<br> |
7 | services: ssh dhcpv6-client& lt ;br& gt ;<br> |
9 | protocols:& lt ;br& gt ;<br> |
10 | masquerade: no& lt ;br& gt ;<br> |
11 | forward-ports:& lt ;br& gt ;<br> |
12 | source -ports:& lt ;br& gt ;<br> |
13 | icmp-blocks:& lt ;br& gt ;<br> |
14 | rich rules:& lt ;br& gt ;<br> |
開けるべきポートのテンプレートがあらかじめ用意されているので「firewall-cmd –get-services」を実行して確認します。
2 | 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」を追加
12 | public (active)& lt ;br& gt ;<br> |
13 | target: default& lt ;br& gt ;<br> |
14 | icmp-block-inversion: no& lt ;br& gt ;<br> |
15 | interfaces: ens160& lt ;br& gt ;<br> |
16 | sources:& lt ;br& gt ;<br> |
17 | services: ssh dhcpv6-client samba dns freeipa-ldaps freeipa-trust& lt ;br& gt ;<br> |
19 | protocols:& lt ;br& gt ;<br> |
20 | masquerade: no& lt ;br& gt ;<br> |
21 | forward-ports:& lt ;br& gt ;<br> |
22 | source -ports:& lt ;br& gt ;<br> |
23 | icmp-blocks:& lt ;br& gt ;<br> |
24 | rich rules:& lt ;/p& gt ;<br> |
8 | public (active)& lt ;br& gt ;<br> |
9 | target: default& lt ;br& gt ;<br> |
10 | icmp-block-inversion: no& lt ;br& gt ;<br> |
11 | interfaces: ens160& lt ;br& gt ;<br> |
12 | sources:& lt ;br& gt ;<br> |
13 | services: ssh dhcpv6-client samba dns freeipa-ldaps freeipa-trust& lt ;br& gt ;<br> |
14 | ports: 49152-65535/tcp 3269/tcp& lt ;br& gt ;<br> |
15 | protocols:& lt ;br& gt ;<br> |
16 | masquerade: no& lt ;br& gt ;<br> |
17 | forward-ports:& lt ;br& gt ;<br> |
18 | source -ports:& lt ;br& gt ;<br> |
19 | icmp-blocks:& lt ;br& gt ;<br> |
20 | 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」
以上で設定は終了です。
いつも参考にさせていただいています。
samba4.7でフェールオーバクラスタとして利用できるということですが、
これはどのように構成する事になるのでしょうか。
Windowsserver2012R2に対してドメイン参加させてバックアップとして使えないか検討していたですが、
samba側の昨日バージョンが古いため拒否されました。
そこでこちらに情報のあったフェールオーバークラスタとして構成する事を考えましたが
ドメインに参加させられないsambaをどのようにクラスタノードとするかが分かりません。
出来たらご教授いただけないでしょうか。
Windows Serverのフェールオーバークラスタは、Active Directoryを必要とするが、そのActive Directoryをsambaで構成することが出来る。という意味です。
sambaをフェールオーバークラスタとして使える、というわけではありません。
なるほど。
理解しました。
ありがとうございました。