Samba 4.10.xでActive Directoryを1から立てる

Samba 4.10.2に更新した際に、python関連で修正点があったので更新。なお、この記事は、Active Directoryサーバとして使用することについてのみ解説しています。ファイルサーバとして使用することについては記述していません。

Samba 4.10.xにおける大きな変更点は「python3がデフォルト」「python2サポートの最終バージョン」です。RHEL7/CentOS7環境はpython2なので、あまり変更せずに使える最終バージョンといった感じです。なお、RHEL7/CentOS7のEPELには「python36」というパッケージ名でpython 3.6があるので、それを追加インストールすることはできます。

なお、過去バージョンの履歴。2018年12月版「Samba 4.9.xでActive Directoryを1から立てる」、2018年3月版「Samba 4.7.xでActive Directoryを1から立てる」、2016年7月版「Samba 4.4.xでActive Directoryを1から立てる」、2014年2月版「Samba 4.xでActive Directoryを1から立てる

さて、Linux上でSambaを使ってActive Directoryサーバを立てるメリットは以下の点です。

その1:Windows Serverを買わなくてもActive Directoryを作れる

WindowsのCALを買わずにActive Directory環境の構築ができるため、ライセンス費用の低減になります。

その2:Active Directoryユーザの作成などのユーザ管理をWindowsマシンからWindows標準ツールで行える

ユーザーの作成/変更、コンピューターアカウントの作成、DNSの管理など、Active Directoryの管理を行う際に頻繁に使う操作については、WindowsのActive Directory管理ツールやDNS管理ツールを使用することができる。このため、普段はLinuxのCLIコマンド(samba-toolsやnetコマンドなど)を使う必要はない。

Active Directoryに参加しているWindowsマシンに、Windows機能のActive Directory管理ツールを追加インストールし、Active Directoryの管理者にてログオンすることで、管理ができる。

その3:sambaの設定は難しくない

10年ぐらい前のsambaでは、DNSサーバやLDAPサーバをsambaとは別に用意し、連携する必要がありました。いまのsambaはDNSサーバとLDAPサーバの機能が統合されているため設定が容易になりました。

Active Directory名とActive Directory上の役割、管理者パスワードを設定するぐらいで環境を作成することができます。

逆にデメリットとしてどのようなものがあるか?

その1:Active Directoryの全機能が搭載されていない

ドメイン/フォレストの機能レベルがWindows Server 2012R2レベルまで対応になったものの、「Kerberos関連機能が未搭載」となっています。(samba公式wiki「Raising the Functional Levels」)

「Windows Server 2008 R2」レベルまでであればフルサポートしています。このレベルであれば、Windows Server 2016環境でフェイルオーバークラスターマネージャーでクラスタを組むこともできました。(samba 4.7ぐらいから可能になった)


手順は、公式の「Setting up Samba as an Active Directory Domain Controller」と「Package Dependencies Required to Build Samba」を参照しながら実施していきます。

1. CentOS7の最小インストールを実施

2. /etc/hostsの修正

自ホスト名を/etc/hostsに追加。
追加の際は、ショートのホスト名と、ドメイン付きのFQDNの両方を列挙すること。

1[root@adserver ~]# cat /etc/hosts
2127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
3::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
4172.17.44.40    adserver adserver.adosakana.local
5[root@adserver ~]#

3. 好みに応じて使うツールをインストール

セッションが途中で切れても良い様に「screen」か「tmux」と、ファイルダウンロードするためにwgetかcurlをインストールします。

1[root@adserver ~]# yum install wget screen
2<略>
3[root@adserver ~]#

4. 必要なパッケージをインストール

Samba公式の「Package Dependencies Required to Build Samba」に記載されているパッケージをインストール

1[root@adserver ~]# yum install attr bind-utils docbook-style-xsl gcc gdb krb5-workstation \
2       libsemanage-python libxslt perl perl-ExtUtils-MakeMaker \
3       perl-Parse-Yapp perl-Test-Base pkgconfig policycoreutils-python \
4       python2-crypto gnutls-devel libattr-devel keyutils-libs-devel \
5       libacl-devel libaio-devel libblkid-devel libxml2-devel openldap-devel \
6       pam-devel popt-devel python-devel readline-devel zlib-devel systemd-devel \
7       lmdb-devel jansson-devel gpgme-devel pygpgme libarchive-devel
8<略>
9[root@adserver ~]#

ここで問題発生・・・上記の説明に「RHEL7ではEPELレポジトリを追加する必要があるが、CentOS7とScientific Linux7では不要」とあるが、CentOS7環境で試してみると「perl-Test-Base」と「lmdb-devel」は無い。

EPELレポジトリを追加してから、必要なパッケージのインストールをやり直します。(なお、perl-Test-Baseに関連付いていろいろパッケージが追加されます。)

1[root@adserver ~]# yum install epel-release.noarch
2<略>
3[root@adserver ~]#

5. sambaのtar.gzをダウンロード

samba.orgからsambaをダウンロードします。

3download.samba.org (download.samba.org) をDNSに問いあわせています... 144.76.82.156, 2a01:4f8:192:486::443:2
4download.samba.org (download.samba.org)|144.76.82.156|:443 に接続しています...  接続しました。
5HTTP による接続要求を送信しました、応答を待っています... 200 OK
6長さ: 18053738 (17M) [application/gzip]
7`samba-4.10.2.tar.gz' に保存中
8 
9100%[======================================>] 18,053,738  3.65MB/s 時間 5.9s
10 
112018-12-28 13:10:29 (2.93 MB/s) - `samba-4.10.2.tar.gz' へ保存完了 [18053738/18053738]
12 
13[root@adserver ~]#

6. configure実施

samba 4.10.0より、標準で使用されるpythonのバージョンが3になりました。このため、RHEL7/CentOS7環境では「python3」が無いことにより下記の様なエラーとなります。

1[root@adserver samba-4.10.2]# ./configure
2/usr/bin/env: python3: そのようなファイルやディレクトリはありません
3[root@adserver samba-4.10.2]#

これを避けるために「PYTHON=python2 ./configure」というような形で実行します。(Samba 4.10.0リリースノートより)

1[root@adserver ~]# tar xfz samba-4.10.2.tar.gz
2[root@adserver ~]# cd samba-4.10.2/
3[root@adserver samba-4.10.2]# PYTHON=python2 ./configure
4Setting top to                           : /root/samba-4.10.2
5Setting out to                           : /root/samba-4.10.2/bin
6Checking for 'gcc' (C compiler)          : /usr/bin/gcc
7Checking for program 'git'               : /usr/bin/git
8Checking for c flags '-MMD'              : yes
9Checking for program 'gdb'               : /usr/bin/gdb
10Checking for header sys/utsname.h        : yes
11 
12<略>
13Checking if compiler accepts -fstack-protector                                                  : no
14Checking if compiler accepts -fstack-protector                                                  : no
15Checking if compiler accepts -fstack-clash-protection                                           : yes
16'configure' finished successfully (1m43.247s)
17[root@adserver samba-4.10.2]#

7. make & make install

こちらもRHEL7/CentOS7の場合は「PYTHON=python2 make」、「PYTHON=python2 make install」と実行します。

1[root@adserver samba-4.10.2]# PYTHON=python2 make
2PYTHONHASHSEED=1 WAF_MAKE=1 python2 ./buildtools/bin/waf build
3Waf: Entering directory `/root/samba-4.10.2/bin/default'
4<略>
5[4112/4118] Compiling source4/scripting/man/samba-gpupdate.8.xml
6Note: Writing samba-gpupdate.8
7 
8[4113/4118] Compiling pidl/lib/Parse/Pidl/Wireshark/NDR.pm
9[4114/4118] Compiling pidl/lib/Parse/Pidl/Dump.pm
10[4115/4118] Compiling pidl/lib/Parse/Pidl/Wireshark/Conformance.pm
11[4116/4118] Compiling pidl/pidl
12[4117/4118] Compiling pidl/lib/Parse/Pidl/NDR.pm
13[4118/4118] Compiling pidl/lib/Parse/Pidl/Util.pm
14Waf: Leaving directory `/root/samba-4.10.2/bin/default'
15'build' finished successfully (19m50.933s)
16[root@adserver samba-4.10.2]# PYTHON=python2 make install
17PYTHONHASHSEED=1 WAF_MAKE=1 python2 ./buildtools/bin/waf install
18Waf: Entering directory `/root/samba-4.10.2/bin/default'
19        Selected embedded Heimdal build
20Checking project rules ...
21<略>
22+ install /usr/local/samba/share/man/man3/Parse::Pidl::NDR.3pm (from bin/default/pidl/Parse::Pidl::NDR.3pm)
23+ install /usr/local/samba/share/man/man3/Parse::Pidl::Util.3pm (from bin/default/pidl/Parse::Pidl::Util.3pm)
24Waf: Leaving directory `/root/samba-4.10.2/bin/default'
25'install' finished successfully (5m24.784s)
26[root@adserver samba-4.10.2]#

8. インストール完了確認

インストールされたsambaのバージョンを確認します。

1[root@adserver samba-4.10.2]# /usr/local/samba/sbin/samba -V
2Version 4.10.2
3[root@adserver samba-4.10.2]#

9. Active Directoryのセットアップ

ドメイン「adosakana.local」を作成します。
また、sambaの機能を使ってAD DNSを構築するので「SAMBA_INTERNAL」を選択します。

なお、「–use-rfc2307」はADにNIS連携機能を追加するオプションです。AD上にUnix用のUID/GID/shell情報なども格納できるようにします。Samba環境では有効にしておくべきものです。

また、セットアップ中、「Merge the contents of this file with your system krb5.conf or replace it with this one. Do not create a symlink!」とメッセージが出ますが、これは、この手順で自動生成されたkrb5.confをシステムのもつkrb5.confと統合しろ、というお知らせです。後の手順で対処します。

1[root@adserver samba-4.10.2]# /usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --interactive
2Realm [example.com]:  ADOSAKANA.LOCAL
3Domain [ADOSAKANA]:
4Server Role (dc, member, standalone) [dc]:
5DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
6DNS forwarder IP address (write 'none' to disable forwarding) [172.30.50.100]:  172.30.50.100
7Administrator password:
8Retype password:
9Looking up IPv4 addresses
10Looking up IPv6 addresses
11No IPv6 address will be assigned
12Setting up share.ldb
13Setting up secrets.ldb
14Setting up the registry
15Setting up the privileges database
16Setting up idmap db
17Setting up SAM db
18Setting up sam.ldb partitions and settings
19Setting up sam.ldb rootDSE
20Pre-loading the Samba 4 and AD schema
21Unable to determine the DomainSID, can not enforce uniqueness constraint on local domainSIDs
22 
23Adding DomainDN: DC=adosakana,DC=local
24Adding configuration container
25Setting up sam.ldb schema
26Setting up sam.ldb configuration data
27Setting up display specifiers
28Modifying display specifiers and extended rights
29Adding users container
30Modifying users container
31Adding computers container
32Modifying computers container
33Setting up sam.ldb data
34Setting up well known security principals
35Setting up sam.ldb users and groups
36Setting up self join
37Adding DNS accounts
38Creating CN=MicrosoftDNS,CN=System,DC=adosakana,DC=local
39Creating DomainDnsZones and ForestDnsZones partitions
40Populating DomainDnsZones and ForestDnsZones partitions
41Setting up sam.ldb rootDSE marking as synchronized
42Fixing provision GUIDs
43A Kerberos configuration suitable for Samba AD has been generated at /usr/local/samba/private/krb5.conf
44Merge the contents of this file with your system krb5.conf or replace it with this one. Do not create a symlink!
45Setting up fake yp server settings
46Once the above files are installed, your Samba AD server will be ready to use
47Server Role:           active directory domain controller
48Hostname:              wk70
49NetBIOS Domain:        ADOSAKANA
50DNS Domain:            adosakana.local
51DOMAIN SID:            S-1-5-21-3471449246-245784766-327389652
52[root@adserver samba-4.10.2]#

10. sambaを起動

sambaが起動していないことを確認した上で、sambaを起動します。

1[root@adserver samba-4.10.2]# ps -ef|grep samba
2root      30118   5011  0 18:40 pts/0    00:00:00 grep --color=auto samba
3[root@adserver samba-4.10.2]# /usr/local/samba/sbin/samba
4[root@adserver samba-4.10.2]# ps -ef|grep samba
5root      30120      1 12 18:41 ?        00:00:00 /usr/local/samba/sbin/samba
6root      30121  30120  0 18:41 ?        00:00:00 /usr/local/samba/sbin/samba
7root      30122  30120  1 18:41 ?        00:00:00 /usr/local/samba/sbin/samba
8root      30123  30120  0 18:41 ?        00:00:00 /usr/local/samba/sbin/samba
9root      30124  30120  0 18:41 ?        00:00:00 /usr/local/samba/sbin/samba
10root      30125  30120 11 18:41 ?        00:00:00 /usr/local/samba/sbin/samba
11root      30126  30120  0 18:41 ?        00:00:00 /usr/local/samba/sbin/samba
12root      30127  30120  0 18:41 ?        00:00:00 /usr/local/samba/sbin/samba
13root      30128  30120  0 18:41 ?        00:00:00 /usr/local/samba/sbin/samba
14root      30129  30120  0 18:41 ?        00:00:00 /usr/local/samba/sbin/samba
15root      30130  30120  0 18:41 ?        00:00:00 /usr/local/samba/sbin/samba
16root      30131  30120  0 18:41 ?        00:00:00 /usr/local/samba/sbin/samba
17root      30132  30120  0 18:41 ?        00:00:00 /usr/local/samba/sbin/samba
18root      30133  30120  0 18:41 ?        00:00:00 /usr/local/samba/sbin/samba
19root      30134  30121  0 18:41 ?        00:00:00 /usr/local/samba/sbin/samba
20root      30136  30129  0 18:41 ?        00:00:00 /usr/local/samba/sbin/samba
21root      30137  30134 17 18:41 ?        00:00:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground
22root      30140  30136 16 18:41 ?        00:00:00 /usr/local/samba/sbin/winbindd -D --option=server role check:inhibit=yes --foreground
23root      30144  30137  0 18:41 ?        00:00:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground
24root      30145  30137  0 18:41 ?        00:00:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground
25root      30146  30140  1 18:41 ?        00:00:00 /usr/local/samba/sbin/winbindd -D --option=server role check:inhibit=yes --foreground
26root      30151  30140  0 18:41 ?        00:00:00 /usr/local/samba/sbin/winbindd -D --option=server role check:inhibit=yes --foreground
27root      30152  30140  0 18:41 ?        00:00:00 /usr/local/samba/sbin/winbindd -D --option=server role check:inhibit=yes --foreground
28root      30153  30137  0 18:41 ?        00:00:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground
29root      30155   5011  0 18:41 pts/0    00:00:00 grep --color=auto samba
30[root@adserver samba-4.10.2]#

11. 動作確認

CentOS内部からSMB接続を行うテストを実施。

1[root@adserver samba-4.10.2]# /usr/local/samba/bin/smbclient --version
2Version 4.10.2
3[root@adserver samba-4.10.2]# /usr/local/samba/bin/smbclient -L localhost -U%
4 
5        Sharename       Type      Comment
6        ---------       ----      -------
7        netlogon        Disk
8        sysvol          Disk
9        IPC$            IPC       IPC Service (Samba 4.10.2)
10Reconnecting with SMB1 for workgroup listing.
11 
12        Server               Comment
13        ---------            -------
14 
15        Workgroup            Master
16        ---------            -------
17[root@adserver samba-4.10.2]#

以前は「Domain=[ADOSAKANA.LOCAL] OS=[Unix] Server=[Samba x.y.z]」という出力もあったのですが、Samba 4.7以降では無くなっています。

netlogon共有にAdministrator権限でアクセスできるか確認。

1[root@adserver samba-4.10.2]# /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator -c 'ls'
2Enter ADOSAKANA\Administrator's password:
3  .                                   D        0  Tue Mar 27 17:47:04 2018
4  ..                                  D        0  Tue Mar 27 17:47:51 2018
5 
6                17811456 blocks of size 1024. 12499620 blocks available
7[root@adserver samba-4.10.2]#

12. AD DNSの動作テスト

AD DNSが想定通りに動作しているかテストします。

まず、どんなzoneが登録されているのか確認します。

1[root@adserver samba-4.10.2]# /usr/local/samba/bin/samba-tool dns zonelist 127.0.0.1 -U Administrator
2Password for [ADOSAKANA\Administrator]:
3  2 zone(s) found
4 
5  pszZoneName                 : adosakana.local
6  Flags                       : DNS_RPC_ZONE_DSINTEGRATED DNS_RPC_ZONE_UPDATE_SECURE
7  ZoneType                    : DNS_ZONE_TYPE_PRIMARY
8  Version                     : 50
9  dwDpFlags                   : DNS_DP_AUTOCREATED DNS_DP_DOMAIN_DEFAULT DNS_DP_ENLISTED
10  pszDpFqdn                   : DomainDnsZones.adosakana.local
11 
12  pszZoneName                 : _msdcs.adosakana.local
13  Flags                       : DNS_RPC_ZONE_DSINTEGRATED DNS_RPC_ZONE_UPDATE_SECURE
14  ZoneType                    : DNS_ZONE_TYPE_PRIMARY
15  Version                     : 50
16  dwDpFlags                   : DNS_DP_AUTOCREATED DNS_DP_FOREST_DEFAULT DNS_DP_ENLISTED
17  pszDpFqdn                   : ForestDnsZones.adosakana.local
18[root@adserver samba-4.10.2]#

Active Directoryで使用するDNSのSRVレコードが登録されているかをhostコマンドを使って確認します。

1[root@adserver samba-4.10.2]# host -t SRV _ldap._tcp.adosakana.local 127.0.0.1
2Using domain server:
3Name: 127.0.0.1
4Address: 127.0.0.1#53
5Aliases:
6 
7_ldap._tcp.adosakana.local has SRV record 0 100 389 adserver.adosakana.local.
8[root@adserver samba-4.10.2]# host -t SRV _kerberos._udp.adosakana.local 127.0.0.1
9Using domain server:
10Name: 127.0.0.1
11Address: 127.0.0.1#53
12Aliases:
13 
14_kerberos._udp.adosakana.local has SRV record 0 100 88 adserver.adosakana.local.
15[root@adserver samba-4.10.2]#

ADサーバのホスト名が登録されているか確認します。

1[root@adserver samba-4.10.2]# host -t A adserver.adosakana.local 127.0.0.1
2Using domain server:
3Name: 127.0.0.1
4Address: 127.0.0.1#53
5Aliases:
6 
7adserver.adosakana.local has address 172.17.15.70
8[root@adserver samba-4.10.2]#

13. DNSサーバの変更

ADサーバの/etc/resolv.confを、ADサーバ自身を使う様に書き換えます。

14. /etc/krb5.conf の変更

/usr/local/samba/private/krb5.conf に元となるものが自動生成されているので、それを使用する。

1[root@adserver samba-4.10.2]# ls -l /etc/krb5.conf /usr/local/samba/private/krb5.conf
2-rw-r--r--. 1 root root 641 10月 30 23:40 /etc/krb5.conf
3-rw-rw-rw-. 1 root root  96 12月 28 14:13 /usr/local/samba/private/krb5.conf
4[root@adserver samba-4.10.2]# cat /usr/local/samba/private/krb5.conf
5[libdefaults]
6        default_realm = ADOSAKANA.LOCAL
7        dns_lookup_realm = false
8        dns_lookup_kdc = true
9[root@adserver samba-4.10.2]# cp /usr/local/samba/private/krb5.conf /etc/krb5.conf
10cp: `/etc/krb5.conf' を上書きしますか? y
11[root@adserver samba-4.10.2]#

15. Kerberosの動作確認

「kinit administrator@ドメイン名」を実行して確認します。

1[root@adserver samba-4.10.2]# kinit administrator@ADOSAKANA.LOCAL
2Password for administrator@ADOSAKANA.LOCAL:
3Warning: Your password will expire in 41 days on 2019年02月08日 14時13分15秒
4[root@adserver samba-4.10.2]#

正常に設定されていれば、上記の様にAdministratorユーザのパスワード有効期限が表示されます。

「klist」コマンドでも確認することが出来ます。

1[root@adserver samba-4.10.2]# klist
2Ticket cache: FILE:/tmp/krb5cc_0
3Default principal: administrator@ADOSAKANA.LOCAL
4 
5Valid starting       Expires              Service principal
62018-12-28T14:26:25  2018-12-29T00:26:25  krbtgt/ADOSAKANA.LOCAL@ADOSAKANA.LOCAL
7        renew until 2018-12-29T14:26:22
8[root@adserver samba-4.10.2]#

なお、ドメイン名指定の大文字/小文字を間違えると下記の様なエラーとなります。

1[root@adserver ~]# kinit administrator@adosakana.local
2Password for administrator@adosakana.local:
3kinit: KDC reply did not match expectations while getting initial credentials
4[root@adserver ~]#

DNSサーバ指定が誤っている場合は下記の様なエラーです。

1[root@adserver ~]# kinit administrator@ADOSAKANA.LOCAL
2kinit: Cannot resolve servers for KDC in realm "ADOSAKANA.LOCAL" while getting initial credentials
3[root@adserver ~]#

16. フォレストとドメインの機能レベル確認

作成したActive Directoryのドメインの機能レベルとフォレストの機能レベルを確認します。

1[root@adserver samba-4.10.2]# /usr/local/samba/bin/samba-tool domain level show
2Domain and forest function level for domain 'DC=adosakana,DC=local'
3 
4Forest function level: (Windows) 2008 R2
5Domain function level: (Windows) 2008 R2
6Lowest function level of a DC: (Windows) 2008 R2
7[root@adserver samba-4.10.2]#

Samba 4.10.2でもWindows Server 2008R2が標準設定となっています。

17. firewalldの設定

CentOS7ではfirewalldによりポートが制限されています。
現状を「firewall-cmd –list-all」で確認します。

1[root@adserver samba-4.10.2]# firewall-cmd --list-all
2public (active)
3  target: default
4  icmp-block-inversion: no
5  interfaces: ens160
6  sources:
7  services: ssh dhcpv6-client
8  ports:
9  protocols:
10  masquerade: no
11  forward-ports:
12  source-ports:
13  icmp-blocks:
14  rich rules:
15[root@adserver samba-4.10.2]#

開けるべきポートのテンプレートがあらかじめ用意されているので「firewall-cmd –get-services」を実行して確認します 。

1[root@adserver samba-4.10.2]# firewall-cmd --get-services
2RH-Satellite-6 amanda-client amanda-k5-client bacula bacula-client bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client dns docker-registry docker-swarm dropbox-lansync elasticsearch freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target jenkins kadmin kerberos kibana klogin kpasswd kprop kshell ldap ldaps libvirt libvirt-tls managesieve mdns minidlna mongodb mosh mountd ms-wbt mssql murmur mysql nfs nfs3 nmea-0183 nrpe ntp openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius redis rpc-bind rsh rsyncd samba samba-client sane sip sips smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh syncthing syncthing-gui synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-https xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server
3[root@adserver samba-4.10.2]#
サービス ポート プロトコル 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」を追加

1[root@adserver samba-4.10.2]# firewall-cmd --permanent --zone=public --add-service=samba
2success
3[root@adserver samba-4.10.2]# firewall-cmd --permanent --zone=public --add-service=dns
4success
5[root@adserver samba-4.10.2]# firewall-cmd --permanent --zone=public --add-service=freeipa-ldaps
6success
7[root@adserver samba-4.10.2# firewall-cmd --permanent --zone=public --add-service=freeipa-trust
8success
9[root@adserver samba-4.10.2]# firewall-cmd --reload
10success
11[root@adserver samba-4.10.2]# firewall-cmd --list-all
12public (active)
13  target: default
14  icmp-block-inversion: no
15  interfaces: eth0
16  sources:
17  services: ssh dhcpv6-client samba dns freeipa-ldaps freeipa-trust
18  ports:
19  protocols:
20  masquerade: no
21  forward-ports:
22  source-ports:
23  icmp-blocks:
24  rich rules:
25 
26[root@adserver samba-4.10.2#
1[root@adserver samba-4.10.2]# firewall-cmd --permanent --zone=public --add-port=49152-65535/tcp
2success
3[root@adserver samba-4.10.2]# firewall-cmd --permanent --zone=public --add-port=3269/tcp
4success
5[root@adserver samba-4.10.2]# firewall-cmd --reload
6success
7[root@adserver samba-4.10.2]# firewall-cmd --list-all
8public (active)
9  target: default
10  icmp-block-inversion: no
11  interfaces: eth0
12  sources:
13  services: ssh dhcpv6-client samba dns freeipa-ldaps freeipa-trust
14  ports: 49152-65535/tcp 3269/tcp
15  protocols:
16  masquerade: no
17  forward-ports:
18  source-ports:
19  icmp-blocks:
20  rich rules:
21 
22[root@adserver samba-4.10.2]#

18. systemdへの登録

systemdへの登録については「Managing the Samba AD DC Service Using Systemd」を参照のこと
CentOS6の場合は「Managing the Samba AD DC Service Using an Init Script

以上で設定は終了です。

“Samba 4.10.xでActive Directoryを1から立てる” への1件の返信

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

This site uses Akismet to reduce spam. Learn how your comment data is processed.

StatCounter - Free Web Tracker and Counter