Samba4.0でドメインコントローラーの実現
2012/12/11にSamba4.0がリリースされました。6年の歳月を費やしたそうです。
私自身Sambaには苦い思い出しかないのですが、ActiveDirectoryのドメインコントローラー機能が出来るそうです。
主な機能は以下となります。
- グループポリシー機能
- RSATによるAD DC管理
- DRSによる複製機能
- BIND9と連携したDNS自動更新機能
- RODC(Read Only Domain Controller)機能
- s3fs(Samba3 File Server)モジュールによるファイルサーバー機能
- Samba3からのユーザー、端末情報の移行
Samba4.0のリリースにより、WindowsサーバーライセンスとCAL(クライアントアクセスライセンス)が不要になるので、コスト削減が出来るかもしれない。
基本的な構築方法は以下となります。
Samba4.0のインストール
EPELリポジトリを有効にする
# rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-6 # rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm # wget http://wing-net.ddo.jp/wing/6/EL6.wing.repo # vi EL6.wing.repo ----------------------- [wing] name=EL $releasever - $basearch - wing Repository baseurl=http://wing-net.ddo.jp/wing/$releasever/$basearch/ enabled=1 ←1にする gpgcheck=0 priority=2 [wing-source] name=EL $releasever - $basearch - wing source Repository baseurl=http://wing-net.ddo.jp/wing/$releasever/SRPMS/ enabled=1 ←1にする gpgcheck=0 priority=2 -----------------------
yumでインストール
# yum install samba4 samba4-client samba4-common samba4-dc samba4-dc-libs samba4-libs samba4-python ldb-tools krb5-workstation
インストール結果
# rpm -qa | grep samba4 samba4-libs-4.0.5-1.el6_7.wing.x86_64 samba4-dc-4.0.5-1.el6_7.wing.x86_64 samba4-common-4.0.5-1.el6_7.wing.x86_64 samba4-4.0.5-1.el6_7.wing.x86_64 samba4-python-4.0.5-1.el6_7.wing.x86_64 samba4-dc-libs-4.0.5-1.el6_7.wing.x86_64 samba4-client-4.0.5-1.el6_7.wing.x86_64
Samba4設定に入る前の事前準備
DNS情報とDOMAIN名をifcfg-eth0に記述します。
# cd /etc/sysconfig/network-scripts/ # vi ifcfg-eth0 ----------------------- DNS1="127.0.0.1" DNS2="192.168.255.10" DOMAIN="is-dc.local" ----------------------- # /etc/init.d/network restart
あと、忘れてはいけないのが、時刻同期。時刻が正確でないと、正常稼働しません。
ntpなどで時刻同期がされるようにしてください。
samba4の設定
samba-toolを利用し、ドメインを構築します。
今回ドメインを『is-dc.local』とします。サーバー自身のホスト名は『test-is』で、IPは『192.168.255.34』となります。
# samba-tool domain provision ---------------------------------------------- Realm [EXAMPLE.JP]: is-dc.local ←ドメイン入力 Domain [is-dc]: ←Enter Server Role (dc, member, standalone) [dc]: ←Enter DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: ←Enter DNS forwarder IP address (write 'none' to disable forwarding) [127.0.0.1]: ←Enter Administrator password: ※英数字記号じゃないとダメ Retype password: ※英数字記号じゃないとダメ Looking up IPv4 addresses Looking up IPv6 addresses No IPv6 address will be assigned Setting up secrets.ldb Setting up the registry Setting up the privileges database Setting up idmap db Setting up SAM db Setting up sam.ldb partitions and settings Setting up sam.ldb rootDSE Pre-loading the Samba 4 and AD schema Adding DomainDN: DC=is-dc,DC=local Adding configuration container Setting up sam.ldb schema Setting up sam.ldb configuration data Setting up display specifiers Modifying display specifiers Adding users container Modifying users container Adding computers container Modifying computers container Setting up sam.ldb data Setting up well known security principals Setting up sam.ldb users and groups Setting up self join Adding DNS accounts Creating CN=MicrosoftDNS,CN=System,DC=is-dc,DC=local Creating DomainDnsZones and ForestDnsZones partitions Populating DomainDnsZones and ForestDnsZones partitions Setting up sam.ldb rootDSE marking as synchronized Fixing provision GUIDs A Kerberos configuration suitable for Samba 4 has been generated at /var/lib/samba/private/krb5.conf Once the above files are installed, your Samba4 server will be ready to use Server Role: active directory domain controller Hostname: test-is NetBIOS Domain: IS-DC DNS Domain: is-dc.local DOMAIN SID: S-1-5-21-**********-**********-********** ----------------------------------------------
不要なログが出るのでsmb.confを修正
# vi /etc/samba/smb.conf ---------------------------------------------- # Global parameters [global] workgroup = IS-DC realm = IS-DC.LOCAL netbios name = TEST-IS server role = active directory domain controller dns forwarder = 127.0.0.1 printing = bsd ←追加 [netlogon] path = /var/lib/samba/sysvol/is-dc.local/scripts read only = No [sysvol] path = /var/lib/samba/sysvol read only = No ---------------------------------------------- # /etc/init.d/samba restart
Kerberosの設定
# vi krb5.conf ---------------------------------------------- [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = IS-DC.LOCAL dns_lookup_realm = false dns_lookup_kdc = true ticket_lifetime = 24h renew_lifetime = 7d forwardable = true [realms] IS-DC.LOCAL = { kdc = test-is.is-dc.local ←Hostname + DNS Domain } [domain_realm] .is-dc.local = IS-DC.LOCAL is-dc.local = IS-DC.LOCAL ----------------------------------------------
Kerberosの設定が正しいか確認
# kinit administrator@IS-DC.LOCAL Password for administrator@IS-DC.LOCAL: Warning: Your password will expire in 41 days on Wed Jun 19 15:18:33 2013
正常にチケットが取得出来ればklistで以下の様に表示される
# klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: administrator@IS-DC.LOCAL Valid starting Expires Service principal 05/08/13 15:34:21 05/09/13 01:34:21 krbtgt/IS-DC.LOCAL@IS-DC.LOCAL renew until 05/15/13 15:34:14
DNSの登録状況の確認
# samba-tool dns query 127.0.0.1 is-dc.local @ A -U administrator Password for [IS-DC\administrator]: Name=, Records=1, Children=0 A: 192.168.255.43 (flags=600000f0, serial=1, ttl=900) Name=_msdcs, Records=0, Children=0 Name=_sites, Records=0, Children=1 Name=_tcp, Records=0, Children=4 Name=_udp, Records=0, Children=2 Name=DomainDnsZones, Records=0, Children=2 Name=ForestDnsZones, Records=0, Children=2 Name=test-is, Records=1, Children=0 A: 192.168.255.43 (flags=f0, serial=1, ttl=900)
ユーザ追加
# samba-tool user add testuser New Password:※英数字記号じゃないとダメ Retype Password:※英数字記号じゃないとダメ User 'testuser' created successfully
ユーザリスト
# samba-tool user list Administrator testuser krbtgt Guest
※Windows端末をドメイン参加させる場合、ネットワークアダプタのWins設定で、構築したドメコンのIPを指定する必要がある。
ディスカッション
コメント一覧
まだ、コメントがありません