■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