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

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



■Samba4のインストール


CentOS7でSamba4をインストールし、ActiveDirectoryを構築します。

標準のyumでsamba4はインストール可能なのですが、ドメインコントローラの機能がインストールされませんので、別途リポジトリを指定してインストールを行います。ただ、普通のリポジトリのように何の制限もなくアクセスできるわけではなく、最初にユーザ登録を行ったあとにアクセスキーを入手する必要があります。

https://portal.enterprisesamba.com/

まず、上記サイトにアクセスして左メニューの「Sign up」からユーザ登録を行います。ユーザ登録後は再び上記URLの「Login」から登録したIDでログインを行います。

次に左側メニューの「Edit account」をクリックし、「Username」および「Accesskey」をエディタなどに貼り付けてメモを残しておきます。

次に左側メニューの「Home」をクリックし、スクロールしていくとCentOS7用のrepoデータのリンク ( sernet-samba-4.2.repo ) がありますので、そのファイルを開きサーバ上にリポジトリデータとして保存します。その際、「USERNAME:ACCESSKEY」となっているところは上でメモしたもに置き換えてください。

# vi /etc/yum.repos.d/sernet-samba-4.2.repo

[sernet-samba-4.2]
name=SerNet Samba 4.2 Packages (centos-7)
type=rpm-md
baseurl=https://USERNAME:ACCESSKEY@download.sernet.de/packages/samba/4.2/centos/7/
gpgcheck=1
gpgkey=https://USERNAME:ACCESSKEY@download.sernet.de/packages/samba/4.2/centos/7/repodata/repomd.xml.key
enabled=1


そしてyumからインストールを行います。

# yum install sernet-samba sernet-samba-ad
# rpm -qa | grep samba
sernet-samba-libs-4.2.2-17.el7.x86_64
sernet-samba-4.2.2-17.el7.x86_64
sernet-samba-libsmbclient0-4.2.2-17.el7.x86_64
sernet-samba-winbind-4.2.2-17.el7.x86_64
sernet-samba-ad-4.2.2-17.el7.x86_64
sernet-samba-client-4.2.2-17.el7.x86_64
sernet-samba-common-4.2.2-17.el7.x86_64


■初期設定の事前準備

Samba4の設定に入る前にまず事前準備を行なっておきます。

まずchronyの設定を参照して時刻同期を行なっておきます。時刻が正確でないとドメインコントローラとして正常に稼働しません。そしてネットワークの修正を行います。自身がDNSサーバでない限りは他ホストをリゾルバとして設定されていると思いますが、これを自分自身 ( 127.0.0.1 )に設定しておきます。


# nmcli connection modify em1 ipv4.dns "127.0.0.1"
# systemctl restart NetworkManager


また、Samba4にはLDAPやDNSなども内蔵されています。もしBINDやOpenLDAPなどがサービスとして稼働しているならこれらを事前に停止しておく必要がありますので注意してください。

また、OSのホスト名はドメイン名のものとは異なるものにする必要があるようです。私の場合、以下のエラーメッセージがでて正常にドメインが構築されませんでしたので予め別なホスト名に設定するよう/etc/hostnameを編集しておいてください。

ERROR(<class 'samba.provision.ProvisioningError'>): Provision failed - ProvisioningError: guess_names: 
Domain 'XXXXXXX' must not be equal to short host name 'XXXXXXX'!


■Samba4の初期設定


Samba4の設定を行います。以下のコマンドでドメインを構築します。対話形式で必要な部分のみ入力していきます。


# samba-tool domain provision
Realm [UNIX-POWER.NET]: OFFICEPCV1.UNIX-POWER.NET
 Domain [OFFICEPCV1]:[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]: 192.168.6.17
Administrator password:[パスワード入力]
Retype password:[パスワード入力]
Looking up IPv4 addresses
Looking up IPv6 addresses
No IPv6 address will be assigned
Setting up share.ldb
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=officepcv1,DC=unix-power,DC=net
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=officepcv1,DC=unix-power,DC=net
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:              ad1
NetBIOS Domain:        OFFICEPCV1
DNS Domain:            officepcv1.unix-power.net
DOMAIN SID:            S-1-5-21-3949588463-749162553-4232322790


上記のパスワードを入力する際には長さが6文字以上、英数字記号の3種類を必ず用いるというルールがあります。これらを満たしていなかった場合はエラーで弾かれてしまいますので、上記コマンドを再度実行して要件を満たしたパスワードを設定してください。

また、何らかの理由でドメインプロビジョニングを実施後、再度実施したい場合は以下の3つのファイルを削除してから再度上記を行います。

# rm -rf /etc/samba/etc/smb.conf
# rm -rf /var/lib/samba/private/*
# rm -rf /var/lib/samba/sysvol/*


ドメインプロビジョニングを完了後、以下のファイルを設定しておきます。


# vi /etc/default/sernet-samba

<省略>
SAMBA_START_MODE="ad"
<省略>


続いてkerberosの設定ファイルを編集しておきます。

# vi /etc/krb5.conf


[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log

[libdefaults]
 dns_lookup_realm = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false
# default_realm = EXAMPLE.COM
 default_ccache_name = KEYRING:persistent:%{uid}
 default_realm = OFFICEPCV1.UNIX-POWER.NET
 #dns_lookup_realm = false
 dns_lookup_kdc = true

[realms]
# EXAMPLE.COM = {
#  kdc = kerberos.example.com
#  admin_server = kerberos.example.com
# }
  OFFICEPCV1.UNIX-POWER.NET = {
   kdc = ad1.officepcv1.unix-power.net
  }

[domain_realm]
# .example.com = EXAMPLE.COM
# example.com = EXAMPLE.COM
  .officepcv1.unix-power.net = OFFICEPCV1.UNIX-POWER.NET
  officepcv1.unix-power.net = OFFICEPCV1.UNIX-POWER.NET


上記のkrb5.confの設定が正しいかkinitコマンドで確認を行います。

# kinit administrator@OFFICEPCV1.UNIX-POWER.NET
Password for administrator@OFFICEPCV1.UNIX-POWER.NET:[パスワード入力]
Warning: Your password will expire in 41 days on 2015年07月16日 10時40分03秒


正常にチケットが取得できていればklistコマンドで次のように表示されます。

# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: administrator@OFFICEPCV1.UNIX-POWER.NET

Valid starting       Expires              Service principal
2015-06-04T11:01:45  2015-06-04T21:01:45  krbtgt/OFFICEPCV1.UNIX-POWER.NET@OFFICEPCV1.UNIX-POWER.NET
        renew until 2015-06-11T11:01:42


後は以下でADを起動します。合わせて起動設定も行っておきます。

# systemctl start sernet-samba-ad.service
# chkconfig sernet-samba-ad on
# chkconfig sernet-samba-smbd off
# chkconfig sernet-samba-nmbd off
# chkconfig sernet-samba-winbindd off


以上で1通りの初期設定は完了となります。


ActiveDirectoryには過去のバージョンと互換性を保つべく「機能レベル」という概念があります。Samba4.2からはデフォルトではWindows2008 R2に設定されています。実際に以下のコマンドでドメインおよびフォレストの両方が2008 R2であることが確認できます。


# samba-tool domain level show
Domain and forest function level for domain 'DC=officepcv1,DC=unix-power,DC=net'

Forest function level: (Windows) 2008 R2
Domain function level: (Windows) 2008 R2
Lowest function level of a DC: (Windows) 2008 R2


参考URL : http://www.server-world.info/query?os=CentOS_7&p=samba&f=4




 Copyright(C) 2003-2015 UnixPower on Networking All rights reserved.