■Samba4のインストール
まず、最初にこちらを参照してepelリポジトリを有効にしておきます。そしてsamba4をyumからインストールするため下記のようにwingリポジトリを有効にします。
# wget http://wing-net.ddo.jp/wing/6/EL6.wing.repo # mv EL6.wing.repo /etc/yum.repos.d/ # vi /etc/yum.repos.d/EL6.wing.repo [wing] name=EL $releasever - $basearch - wing Repository baseurl=http://wing-net.ddo.jp/wing/$releasever/$basearch/ enabled=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 gpgcheck=0 priority=2 |
そしてyumからインストールを行います。
# yum install samba4 samba4-client ldb-tools krb5-workstation # rpm -qa | grep samba4 samba4-python-4.0.3-5.el6_5.wing.i686 samba4-common-4.0.3-5.el6_5.wing.i686 samba4-libs-4.0.3-5.el6_5.wing.i686 samba4-dc-4.0.3-5.el6_5.wing.i686 samba4-4.0.3-5.el6_5.wing.i686 samba4-dc-libs-4.0.3-5.el6_5.wing.i686 samba4-client-4.0.3-5.el6_5.wing.i686 |
■事前準備
Samba4の設定に入る前にまず事前準備を行なっておきます。
まずNTPの設定を参照して時刻同期を行なっておきます。時刻が正確でないとドメインコントローラとして正常に稼働しません。
そしてネットワークの修正を行います。自身がDNSサーバでない限りは他ホストをリゾルバとして設定されていると思いますが、これを自分自身 ( 127.0.0.1 )に設定しておきます。CentOS6から変更方法が異なっており以前までは/etc/resolv.confにネームサーバのIPアドレスを書き込んでいましたが、CentOS6から/etc/sysconfig/network-scripts/ifcfg-eth0から読み込んで設定されるようになっています。従いまして/etc/resolv.confに設定したところで再起動すると元に戻ってしまいますので注意してください。
# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DNS1=127.0.0.1 DNS2=192.168.12.20 DOMAIN=unix-power.local # /etc/rc.d/init.d/network restart |
また、Samba4にはLDAPやDNSなども内蔵されています。もしBINDやOpenLDAPなどがサービスとして稼働しているならこれらを事前に停止しておく必要がありますので注意してください。
■Samba4の設定
Samba4の設定を行います。まず以下のコマンドでドメインを構築します。Samba4ではsamba-toolコマンドを利用しドメインコントローラ構築、Samba3によるDC環境からの移行、ユーザ登録など全ての設定を実施可能です。
# samba-tool domain provision Realm: unix-power.local Domain [unix-power]: [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) [192.168.12.1]: [Enter] Administrator password: [password入力] Retype password: [password入力] Looking up IPv4 addresses More than one IPv4 address found. Using 192.168.11.20 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=unix-power,DC=local Adding configuration container Setting up sam.ldb schema Setting up sam.ldb configuration data Setting up 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=unix-power,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/samba4/private/krb5.conf Once the above files are installed, your Samba4 server will be ready to use Server Role: active directory domain controller Hostname: SAMBA NetBIOS Domain: UNIX-POWER DNS Domain: unix-power.local DOMAIN SID: S-1-5-21-3360439422-3946603968-2847524696 |
上記のパスワードを入力する際には長さが6文字以上、英数字記号の3種類を必ず用いるというルールがあります。これらを満たしていなかった場合はエラーで弾かれてしまいますので、上記コマンドを再度実行して要件を満たしたパスワードを設定してください。
インストールは以上で完了ですので次のコマンドでsamba4を起動します。
# /etc/rc.d/init.d/samba start Starting samba: [ OK ] |
このとき/var/log/messagesには次のようなエラーログが記録されています。
smbd[4585]: [2013/03/11 23:05:39.569657, 0] ../source3/smbd/server.c:1280(main) smbd[4585]: standard input is not a socket, assuming -D option smbd[4607]: [2013/03/11 23:05:41.049993, 0] ../source3/printing/print_cups.c:151(cups_connect) smbd[4607]: Unable to connect to CUPS server localhost:631 - 接続を拒否されました smbd[4606]: [2013/03/11 23:05:41.051510, 0] ../source3/printing/print_cups.c:528(cups_async_callback) smbd[4606]: failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL smbd[4611]: [2013/03/11 23:06:41.105889, 0] ../source3/printing/print_cups.c:151(cups_connect) smbd[4611]: Unable to connect to CUPS server localhost:631 - 接続を拒否されました smbd[4606]: [2013/03/11 23:06:41.107359, 0] ../source3/printing/print_cups.c:528(cups_async_callback) smbd[4606]: failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL |
これを出さないように次の設定を/etc/samba/smb.confに追記しsambaを再起動します。
# vi /etc/samba/smb.conf [global] printing = bsd # /etc/rc.d/init.d/samba restart |
Kerberosの設定として/etc/krb5.confの内容を次のように編集します。
# vi /etc/krb5.conf [libdefaults] default_realm = UNIX-POWER.LOCAL dns_lookup_realm = false dns_lookup_kdc = true [realms] EXAMPLE.COM = { kdc = kerberos.example.com admin_server = kerberos.example.com } UNIX-POWER.LOCAL = { kdc = samba.unix-power.local } [domain_realm] .unix-power.local = UNIX-POWER.LOCAL unix-power.local = UNIX-POWER.LOCAL |
ここでkinitコマンドで次のようにKerberosの設定が正しいか確認できます。
# kinit administrator@UNIX-POWER.LOCAL Password for administrator@UNIX-POWER.LOCAL: Warning: Your password will expire in 40 days on Tue Apr 23 22:33:27 2013 |
正常にチケットが取得できていればklistコマンドで次のように表示されます。
# klist Ticket cache: FILE:/tmp/krb5cc_0 Default principal: administrator@UNIX-POWER.LOCAL Valid starting Expires Service principal 03/14/13 21:44:48 03/15/13 07:44:48 krbtgt/UNIX-POWER.LOCAL@UNIX-POWER.LOCAL renew until 03/15/13 21:44:45 |
この状態でDNSの登録状況がどうなっているか確認してみます。次のコマンドで確認できます。
# samba-tool dns query 127.0.0.1 unix-power.local @ A -U administrator Password for [UNIX-POWER\administrator]: Name=, Records=2, Children=0 A: 192.168.11.20 (flags=600000f0, serial=1, ttl=900) A: 192.168.12.20 (flags=600000f0, serial=110, 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=samba, Records=2, Children=0 A: 192.168.11.20 (flags=f0, serial=1, ttl=900) A: 192.168.12.20 (flags=f0, serial=110, ttl=900) |
上記のように特に何も操作せずに利用可能となっています。IPアドレスが2つ登録されているのはこのサーバに2つのNICが搭載されており、それぞれにIPアドレスを割り当てているためです。次に以下のWindows2008 Server R2をドメインに参加させてみます。
ホスト名:win2008
IPアドレス:192.168.12.201
この状態で再度、DNSのクエリを実行してみます。
# samba-tool dns query 127.0.0.1 unix-power.local @ A -U administrator Password for [UNIX-POWER\administrator]: Name=, Records=2, Children=0 A: 192.168.11.20 (flags=600000f0, serial=1, ttl=900) A: 192.168.12.20 (flags=600000f0, serial=110, 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=samba, Records=2, Children=0 A: 192.168.11.20 (flags=f0, serial=1, ttl=900) A: 192.168.12.20 (flags=f0, serial=110, ttl=900) Name=win2008, Records=1, Children=0 A: 192.168.12.201 (flags=f0, serial=110, ttl=1200) |
上記のように自動で登録されました。
■機能レベルの設定
ActiveDirectoryには過去のバージョンと互換性を保つべく「機能レベル」という概念があります。機能レベルは上げることのみ可能で下げることは不可能です。機能レベルにはドメインの機能レベルとフォレストの機能レベルがあります。ドメインの機能レベルはそのドメインのドメインコントローラとして許可される最小バージョンを意味します。
ドメインの機能レベル | ドメインコントローラ | |||
Windows2000混在 | WindowsNT4.0 BDC | Windows2000 Server | WindowsServer 2003 | |
Windows2000ネイティブ | Windows2000 Server | WindowsServer 2003 | WindowsServer 2008 | |
WindowsServer 2003 中間 | WindowsNT4.0 BDC | WindowsServer 2003 | ||
WindowsServer 2003 | WindowsServer 2003 | WindowsServer 2008 | ||
WindowsServer 2008 | WindowsServer 2003 | WindowsServer 2008 |
一方、フォレストの機能レベルはそのフォレストのドメインとして許可される最小のドメイン機能レベルを意味します。
フォレストの機能レベル | ドメインの機能レベル | ||||
Windows2000 | Windows2000混在 | Windows2000ネイティブ | WindowsServer2003中間 | WindowsServer2003 | WindowsServer2008 |
WindowsServer2003中間 | WindowsServer2003中間 | WindowsServer2003 | |||
WindowsServer2003 | WindowsServer2003 | WindowsServer2008 | |||
WindowsServer2008 | WindowsServer2008 |
それではSamba4の機能レベルはインストール直後はどうなっているのか確認してみましょう。以下のコマンドから確認可能です。
# samba-tool domain level show Domain and forest function level for domain 'DC=unix-power,DC=local' Forest function level: (Windows) 2003 Domain function level: (Windows) 2003 Lowest function level of a DC: (Windows) 2008 R2 |
上記結果からドメイン、フォレストの両者の機能レベルは2003であることがわかります。最下行に表示されているのはフォレスト内の最低機能レベルが2008 R2であることを表しています。機能レベルが上がると利用できる機能も増えますのでドメイン、フォレストの機能レベルを2008 R2に上げておきましょう。
# samba-tool domain level raise --domain-level 2008_R2 --forest-level 2008_R2 Domain function level changed! Forest function level changed! All changes applied successfully! |
再度、機能レベルを確認してみます。
# samba-tool domain level show Domain and forest function level for domain 'DC=unix-power,DC=local' Forest function level: (Windows) 2008 R2 Domain function level: (Windows) 2008 R2 Lowest function level of a DC: (Windows) 2008 R2 |
2008 R2に機能レベルが上ったことが確認できます。上記ではsamba-toolから変更を行なっておりますが、RSATからでも同様の処理を実行可能です。