(第1回)LinuxにSamba4(ActiveDirectory)を構築【CentOS7】

(第1回)LinuxにSamba4(ActiveDirectory)を構築【CentOS7】

目次

はじめに
SELinuxの停止
パッケージの更新
ホストの設定
hostsの設定
時刻同期の設定
firewalldの停止
次回予告

はじめに

LinuxにSamba4を構築というテーマで今回から記事を書いていきます。Samba4の強みは、WindowsのActive Directory と互換のある機能が提供できる点です。これによって、Linux上でもActiveDirectoryと同等の機能が構築でき、コンピューターやユーザーの一元管理が可能となり、管理の手間を減らすことが出来ます。こうした機能を導入するための手順をこれからご紹介していきます。基本情報は下記になります。

OSバージョン7.6.1810
host名ad01
ドメインexample.com
IPアドレス192.168.4.128


SELinuxの停止

まず、SELinuxですがこれは細かいアクセス制御などが出来るシステムです。非常に便利な機能ですが、設定の際に起動していると予期せぬ制約などが入ってくる恐れがあるため、設定作業時は停止させておきます。
SELinuxの設定ファイルを開くために、「etc/selinux/config」 コマンドを実行します。

[root@localhost ~]# vi /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

設定ファイルが開いたら、「SELINUX=」を「enforcing」から「disabled」に変更します。

設定の変更をしたので、この後再起動が必要となります。

パッケージの更新

次に、CentOSの各パッケージを更新して最新の状態にしておきます。更新するために、「 yum update -y」のコマンドを実行します。
すべてのパッケージを更新すると、現在作業中のシステムに支障が出る場合などもあるため、そういった場合は「exclude」コマンドをつかうか「yum update …」で指定したパッケージだけを更新する方法があります。
例:「yum update –exclude=php*」 php関連のパッケージの更新を除く

[root@localhost ~]# yum update -y
  readline.x86_64 0:6.2-10.el7                                        rpm.x86_64 0:4.11.3-35.el7
  rpm-build-libs.x86_64 0:4.11.3-35.el7                               rpm-libs.x86_64 0:4.11.3-35.el7
  rpm-python.x86_64 0:4.11.3-35.el7                                   rsyslog.x86_64 0:8.24.0-34.el7
  selinux-policy.noarch 0:3.13.1-229.el7_6.12                         selinux-policy-targeted.noarch 0:3.13.1-229.el7_6.12
  setup.noarch 0:2.8.71-10.el7                                        shadow-utils.x86_64 2:4.1.5.1-25.el7_6.1
  shared-mime-info.x86_64 0:1.8-4.el7                                 sudo.x86_64 0:1.8.23-3.el7
  systemd.x86_64 0:219-62.el7_6.6                                     systemd-libs.x86_64 0:219-62.el7_6.6
  systemd-sysv.x86_64 0:219-62.el7_6.6                                tar.x86_64 2:1.26-35.el7
  teamd.x86_64 0:1.27-5.el7                                           trousers.x86_64 0:0.3.14-2.el7
  tuned.noarch 0:2.10.0-6.el7_6.3                                     tzdata.noarch 0:2019a-1.el7
  util-linux.x86_64 0:2.23.2-59.el7_6.1                               vim-minimal.x86_64 2:7.4.160-5.el7
  virt-what.x86_64 0:1.18-4.el7                                       wpa_supplicant.x86_64 1:2.6-12.el7
  xfsprogs.x86_64 0:4.5.0-19.el7_6                                    yum.noarch 0:3.4.3-161.el7.centos
  yum-plugin-fastestmirror.noarch 0:1.1.31-50.el7                     zlib.x86_64 0:1.2.7-18.el7

置換:
  NetworkManager.x86_64 1:1.4.0-12.el7        grub2.x86_64 1:2.02-0.44.el7.centos       grub2-tools.x86_64 1:2.02-0.44.el7.centos
  pygobject3-base.x86_64 0:3.14.0-3.el7       rdma.noarch 0:7.3_4.7_rc2-5.el7

完了しました!
[root@localhost ~]#

上記画面のように各パッケージが順次更新されていき、完了しました!のメッセージが表示されると無事終了となります。

ホストの設定

ホスト名を変更するために、「nmcli general hostname ホスト名」のコマンドを実行します。コマンド実行後[hostname」コマンドで設定したホスト名の確認ができます。今回はad01を設定したので、下記で確認が出来ました。ちなみにホスト名とドメイン名に関してわかりやすく解説しているサイトがあったのでこちら載せておきます。
ドメイン・ホスト名とは?

[root@localhost ~]# nmcli general hostname ad01
[root@localhost ~]# hostname
ad01
[root@localhost ~]#

こちらも設定した後、再起動が必要となります。ホスト名の設定方法はいくつかありますので、下記のサイトも参考にしていただけたらと思います。
CentOS7のホスト名設定について

hostsの設定

次にhostsファイルの設定を行います。 hostsファイルとはDNSより先に参照されるIPアドレスとドメイン名の一覧のこと。ファイル形式としてはテキストファイル。
ここにIPアドレスとドメイン名を対にして記載しておくことにより、DNSが応答しないときや、Webサイトを新しいサーバで構築する時などに活用できます。

「etc/selinux/config」のコマンドを実行してhostsファイルを開きます。

[root@localhost ~]# vi /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.4.121   ad01

ここに自身のホスト名とIPアドレスを追加入力します。これでhostsファイルの設定は完了です。

時刻同期の設定

時刻はログを確認する上などで、正確な時刻が必要となるため同期設定を行います。
「etc/chrony.conf」のコマンドを実行します。

[root@localhost ~]# vi /etc/chrony.conf
# Use public servers from the pool.ntp.org project.
# Please consider joining the pool (http://www.pool.ntp.org/join.html).
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server ntp.nict.jp iburst

元々設定されているntpサーバーをコメントアウトして、時刻同期をしたいサーバを記入します。

[root@localhost ~]# systemctl restart chronyd
[root@localhost ~]# systemctl status chronyd
● chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
   Active: active (running) since 木 2019-05-16 16:35:51 JST; 12s ago
     Docs: man:chronyd(8)
           man:chrony.conf(5)
  Process: 35400 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
  Process: 35396 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 35398 (chronyd)
   CGroup: /system.slice/chronyd.service
           └─35398 /usr/sbin/chronyd

 5月 16 16:35:51 ad01 systemd[1]: Starting NTP client/server...
 5月 16 16:35:51 ad01 chronyd[35398]: chronyd version 3.2 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +SCFILTER +SECHASH ...+DEBUG)
 5月 16 16:35:51 ad01 chronyd[35398]: Frequency -1894.005 +/- 1.227 ppm read from /var/lib/chrony/drift
 5月 16 16:35:51 ad01 systemd[1]: Started NTP client/server.
 5月 16 16:35:56 ad01 chronyd[35398]: Selected source 133.243.238.164
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]#

設定を変更した後はデーモンの再起動が必要です。デーモンはUNIX系のOSの常駐プログラムのことを指します。デーモンは名前の最後にdをつけるのが慣例となっています。後で出てきますが、firewalldもfirewallデーモンのことを指してます。
再起動したあとは、ステータスを確認し問題なく動いていることを確認します。

[root@localhost ~]# chronyc sources
210 Number of sources = 1
MS Name/IP address         Stratum Poll Reach LastRx Last sample
===============================================================================
^* ntp-b3.nict.go.jp             1   6    17    43    +78us[ +313us] +/- 3585us
[root@localhost ~]#

「chronyc sources」コマンドを入力して同期が正しく出来ていることを確認します。

firewalldの停止

firewalldデーモンの停止を行います。
「systemctl stop firewalld」コマンドを実行して、fireWalldデーモンを停止させます。停止完了したかどうかを確認するために、「systemctl status firewalld」コマンドを実行します。コマンド実行後、下に現状のfirewalldのステータスが出てきます。

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since 木 2019-05-16 16:37:22 JST; 7s ago
     Docs: man:firewalld(1)
  Process: 14060 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
 Main PID: 14060 (code=exited, status=0/SUCCESS)

 5月 16 16:25:37 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
 5月 16 16:25:38 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
 5月 16 16:37:21 ad01 systemd[1]: Stopping firewalld - dynamic firewall daemon...
 5月 16 16:37:22 ad01 systemd[1]: Stopped firewalld - dynamic firewall daemon.
[root@localhost ~]#

ステータスを確認して「Active: inactive(dead)」になっていることが確認できたら無事動作完了となります。

次回予告


第一回での設定作業はここまでとします。 次回はsamba4のインストールについて紹介します。