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