UnixPower on Networking
  http://www.unix-power.net/

 
 Top - Linux - CentOS6 Samba4のインストール



■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からでも同様の処理を実行可能です。




 関連記事
 Samba4の概要
 Samba4をRSATで管理

 Samba4で2台目のDCを追加する
 Samba4でsamba-toolを使う
 Copyright(C) 2003-2015 UnixPower on Networking All rights reserved.