Samba 4.13.xでActive Directoryを1から立てる(SELinux設定無視版)


Samba 4.11以降はPython 2環境で使えなくなり、また、CentOS7のサポート的にも先がないので、CentOS8とSamba 4.13.xベースで環境を作りました。

なお、CentOS7でもEPELレポジトリのpython36をインストールすることで利用することは可能です。

この手順はSELinuxの設定をちゃんとやるのが面倒になったので、SELINUX=permissive で逃げています。

2022/03/14追記: samba 4.15.5 でも同じ手順で設定しました。ただ、CentOS8 Streamの場合、パッケージ名の違いによりbootstrap.shでの必須パッケージがインストールできないことに注意が必要です。

2022/04/24追記:samba 4.16.0 を CentOS8 Streamで試したところ、必要なパッケージに変化がありました。また、標準状態ではconfigureが失敗します。

作成するもの

・CentOS8を使用した ユーザ管理を行うためのActive Directoryサーバ構築
・ファイルサーバとしてのsamba利用はここでは扱わない
・既存Windows Active Directoryサーバの連携についても扱わない

この構成の利点

・Windows ServerがなくてもActive Directory環境を構築できる

Windows ServerがなくてもActive Directory環境を構築できるので、Windows Server上で必要となるCALが不要。
Windows フェイルオーバークラスターを作ることも可能。

・Active Directoryユーザの作成などの操作はWindows標準のツールを使える

ユーザーの作成/変更、コンピューターアカウントの作成、DNSの管理など、Active Directoryの管理を行う際に頻繁に使う操作については、WindowsのActive Directory管理ツールやDNS管理ツールを使用することができます。

普段の運用はLinuxのCLIコマンド(samba-toolsやnetコマンドなど)を使う必要はありません。

・sambaの細かい設定は不要

sambaに行う設定は「Active Directory名」「Active Directory上の役割」「管理者パスワード」ぐらいです。

あと、CentOS側でfirewalldに対してポートを開ける設定とsambaが自動起動するように設定を追加するだけです。

かつてはDNSサーバやLDAPサーバと連携させて、とか必要でしたが、現在は必要な機能がsambaに含まれている感じです。

この構成の欠点

・Active Directoryの全機能が搭載されていない

ドメイン/フォレストの機能レベルがWindows Server 2012R2レベルまで対応になったものの、「Kerberos関連機能が未搭載」となっています。(samba公式wiki「Raising the Functional Levels」)

構築手順

手順は、公式の「Setting up Samba as an Active Directory Domain Controller」と「Package Dependencies Required to Build Samba」を参照しながら実施していきます。

(1) CentOS8の最小限インストールを実施

CentOS8で「サーバー(GUI使用)」でインストールするとちょっと面倒くさいので「最小限のインストール」でインストールします。

再起動後は「yum update -y」でパッケージを最新にします。

(2) /etc/hostsの修正

自ホスト名を /etc/hosts に追加。
追加の際は、ショートのホスト名とドメイン付きのFQDNの両方を列挙する。

[root@centos8 ~]# vi /etc/hosts
[root@centos8 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
172.17.44.48 centos8 centos8.adosakana.local
[root@centos8 ~]# hostname
centos8.adosakana.local
[root@centos8 ~]#

(3) 必要なパッケージをインストール

Samba公式の「Package Dependencies Required to Build Samba」に記載されているパッケージをインストールする。

2020/11/02現在では各OS用にセットアップ用シェルスクリプトが用意されているので、それを使用する。(CentOS7用もあります)

CentOS8の場合「https://git.samba.org/?p=samba.git;a=blob_plain;f=bootstrap/generated-dists/centos8/bootstrap.sh;hb=v4-13-test」をダウンロードするので、下記の様に実行する。

[root@centos8 ~]# curl -o bootstrap.sh "https://git.samba.org/?p=samba.git;a=blob_plain;f=bootstrap/generated-dists/centos8/bootstrap.sh;hb=v4-13-test"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  2074    0  2074    0     0   1585      0 --:--:--  0:00:01 --:--:--  1585
[root@centos8 ~]#

ダウンロードが終わったら「sh bootstrap.sh」で実行します。
なお、この操作によりEPELレポジトリが追加されます。

[root@centos8 ~]# sh bootstrap.sh
+ yum update -y
メタデータの期限切れの最終確認: 0:12:05 時間前の 2020年11月02日 12時55分33秒 に 実施しました。
依存関係が解決しました。
行うべきことはありません。
完了しました!
+ yum install -y dnf-plugins-core
メタデータの期限切れの最終確認: 0:12:06 時間前の 2020年11月02日 12時55分33秒 に 実施しました。
パッケージ dnf-plugins-core-4.0.12-4.el8_2.noarch はすでにインストールされています。
依存関係が解決しました。
行うべきことはありません。
完了しました!
+ yum install -y epel-release
メタデータの期限切れの最終確認: 0:12:07 時間前の 2020年11月02日 12時55分33秒 に 実施しました。
依存関係が解決しました。
================================================================================
 パッケージ            Arch            バージョン         リポジトリー    サイズ
================================================================================
インストール中:
 epel-release          noarch          8-8.el8            extras           23 k

トランザクションの概要
================================================================================
インストール  1 パッケージ

ダウンロードサイズの合計: 23 k
インストール済みのサイズ: 32 k
パッケージのダウンロード:
epel-release-8-8.el8.noarch.rpm                 364 kB/s |  23 kB     00:00
--------------------------------------------------------------------------------
合計                                             35 kB/s |  23 kB     00:00
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備              :                                                       1/1
  インストール中    : epel-release-8-8.el8.noarch                           1/1
  scriptlet の実行中: epel-release-8-8.el8.noarch                           1/1
  検証              : epel-release-8-8.el8.noarch                           1/1

インストール済み:
  epel-release-8-8.el8.noarch

完了しました!
+ yum -v repolist all
ロードされたプラグイン: builddep, changelog, config-manager, copr, debug, debuginfo-install, download, generate_completion_cache, needs-restarting, playground, repoclosure, repodiff, repograph, repomanage, reposync
YUM version: 4.2.17
cachedir: /var/cache/dnf
User-Agent: constructed: 'libdnf (CentOS Linux 8; generic; Linux.x86_64)'
repo: キャッシュを使用: AppStream
AppStream: は 2020年10月31日 02時58分38秒 から取得したメタデータを使用中
repo: キャッシュを使用: BaseOS
BaseOS: は 2020年10月31日 02時58分33秒 から取得したメタデータを使用中
repo: キャッシュを使用: extras
extras: は 2020年09月18日 00時13分28秒 から取得したメタデータを使用中
repo: リモートからダウンロード中: epel-modular
Extra Packages for Enterprise Linux Modular 8 - 108 kB/s |  97 kB     00:00
epel-modular: は 2020年10月16日 00時23分17秒 から取得したメタデータを使用中
repo: リモートからダウンロード中: epel
Extra Packages for Enterprise Linux 8 - x86_64  5.0 MB/s | 8.2 MB     00:01
epel: は 2020年11月01日 10時30分27秒 から取得したメタデータを使用中
Completion plugin: Generating completion cache...

Repo-id            : AppStream
Repo-name          : CentOS-8 - AppStream
Repo-status        : 有効化
Repo-revision      : 8.2.2004
Repo-distro-tags      : [cpe:/o:centos:centos:8]:  , 8, C, O, S, e, n, t
Repo-updated       : 2020年10月31日 02時58分38秒
Repo-pkgs          : 5,365
Repo-available-pkgs: 4,933
Repo-size          : 6.3 G
Repo-mirrors       : http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=AppStream&infra=stock
Repo-baseurl       : http://ftp.iij.ad.jp/pub/linux/centos/8.2.2004/AppStream/x86_64/os/
                   : (9 more)
Repo-expire        : 172,800 秒 (最終: 2020年11月02日 12時55分26秒)
Repo-filename      : /etc/yum.repos.d/CentOS-AppStream.repo

Repo-id            : AppStream-source
Repo-name          : CentOS-8 - AppStream Sources
Repo-status        : 無効化
Repo-baseurl       : http://vault.centos.org/centos/8/AppStream/Source/
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/CentOS-Sources.repo

Repo-id            : BaseOS
Repo-name          : CentOS-8 - Base
Repo-status        : 有効化
Repo-revision      : 8.2.2004
Repo-distro-tags      : [cpe:/o:centos:centos:8]:  , 8, C, O, S, e, n, t
Repo-updated       : 2020年10月31日 02時58分33秒
Repo-pkgs          : 1,675
Repo-available-pkgs: 1,673
Repo-size          : 1.0 G
Repo-mirrors       : http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=BaseOS&infra=stock
Repo-baseurl       : http://ftp.iij.ad.jp/pub/linux/centos/8.2.2004/BaseOS/x86_64/os/
                   : (9 more)
Repo-expire        : 172,800 秒 (最終: 2020年11月02日 12時55分32秒)
Repo-filename      : /etc/yum.repos.d/CentOS-Base.repo

Repo-id            : BaseOS-source
Repo-name          : CentOS-8 - BaseOS Sources
Repo-status        : 無効化
Repo-baseurl       : http://vault.centos.org/centos/8/BaseOS/Source/
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/CentOS-Sources.repo

Repo-id            : Devel
Repo-name          : CentOS-8 - Devel WARNING! FOR BUILDROOT USE ONLY!
Repo-status        : 無効化
Repo-mirrors       : http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=Devel&infra=stock
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/CentOS-Devel.repo

Repo-id            : HighAvailability
Repo-name          : CentOS-8 - HA
Repo-status        : 無効化
Repo-mirrors       : http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=HighAvailability&infra=stock
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/CentOS-HA.repo

Repo-id            : PowerTools
Repo-name          : CentOS-8 - PowerTools
Repo-status        : 無効化
Repo-mirrors       : http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=PowerTools&infra=stock
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/CentOS-PowerTools.repo

Repo-id            : base-debuginfo
Repo-name          : CentOS-8 - Debuginfo
Repo-status        : 無効化
Repo-baseurl       : http://debuginfo.centos.org/8/x86_64/
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/CentOS-Debuginfo.repo

Repo-id            : c8-media-AppStream
Repo-name          : CentOS-AppStream-8 - Media
Repo-status        : 無効化
Repo-baseurl       : file:///media/CentOS/AppStream,
                   : file:///media/cdrom/AppStream,
                   : file:///media/cdrecorder/AppStream
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/CentOS-Media.repo

Repo-id            : c8-media-BaseOS
Repo-name          : CentOS-BaseOS-8 - Media
Repo-status        : 無効化
Repo-baseurl       : file:///media/CentOS/BaseOS, file:///media/cdrom/BaseOS,
                   : file:///media/cdrecorder/BaseOS
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/CentOS-Media.repo

Repo-id            : centosplus
Repo-name          : CentOS-8 - Plus
Repo-status        : 無効化
Repo-mirrors       : http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=centosplus&infra=stock
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/CentOS-centosplus.repo

Repo-id            : centosplus-source
Repo-name          : CentOS-8 - Plus Sources
Repo-status        : 無効化
Repo-baseurl       : http://vault.centos.org/centos/8/centosplus/Source/
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/CentOS-Sources.repo

Repo-id            : cr
Repo-name          : CentOS-8 - cr
Repo-status        : 無効化
Repo-mirrors       : http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=cr&infra=stock
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/CentOS-CR.repo

Repo-id            : epel
Repo-name          : Extra Packages for Enterprise Linux 8 - x86_64
Repo-status        : 有効化
Repo-revision      : 1604193488
Repo-updated       : 2020年11月01日 10時30分27秒
Repo-pkgs          : 6,605
Repo-available-pkgs: 6,604
Repo-size          : 9.2 G
Repo-metalink      : https://mirrors.fedoraproject.org/metalink?repo=epel-8&arch=x86_64&infra=stock&content=centos
  Updated          : 2020年11月02日 13時07分46秒
Repo-baseurl       : https://nrt.edge.kernel.org/fedora-buffet/epel/8/Everything/x86_64/
                   : (28 more)
Repo-expire        : 172,800 秒 (最終: 2020年11月02日 13時07分46秒)
Repo-filename      : /etc/yum.repos.d/epel.repo

Repo-id            : epel-debuginfo
Repo-name          : Extra Packages for Enterprise Linux 8 - x86_64 - Debug
Repo-status        : 無効化
Repo-metalink      : https://mirrors.fedoraproject.org/metalink?repo=epel-debug-8&arch=x86_64&infra=stock&content=centos
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/epel.repo

Repo-id            : epel-modular
Repo-name          : Extra Packages for Enterprise Linux Modular 8 - x86_64
Repo-status        : 有効化
Repo-revision      : 1602775383
Repo-updated       : 2020年10月16日 00時23分17秒
Repo-pkgs          : 73
Repo-available-pkgs: 0
Repo-size          : 61 M
Repo-metalink      : https://mirrors.fedoraproject.org/metalink?repo=epel-modular-8&arch=x86_64&infra=stock&content=centos
  Updated          : 2020年11月02日 13時07分45秒
Repo-baseurl       : rsync://ftp.jaist.ac.jp/pub/Linux/Fedora/epel/8/Modular/x86_64/
                   : (50 more)
Repo-expire        : 172,800 秒 (最終: 2020年11月02日 13時07分45秒)
Repo-filename      : /etc/yum.repos.d/epel-modular.repo

Repo-id            : epel-modular-debuginfo
Repo-name          : Extra Packages for Enterprise Linux Modular 8 - x86_64 -
                   : Debug
Repo-status        : 無効化
Repo-metalink      : https://mirrors.fedoraproject.org/metalink?repo=epel-modular-debug-8&arch=x86_64&infra=stock&content=centos
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/epel-modular.repo

Repo-id            : epel-modular-source
Repo-name          : Extra Packages for Enterprise Linux Modular 8 - x86_64 -
                   : Source
Repo-status        : 無効化
Repo-metalink      : https://mirrors.fedoraproject.org/metalink?repo=epel-modular-source-8&arch=x86_64&infra=stock&content=centos
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/epel-modular.repo

Repo-id            : epel-playground
Repo-name          : Extra Packages for Enterprise Linux 8 - Playground - x86_64
Repo-status        : 無効化
Repo-metalink      : https://mirrors.fedoraproject.org/metalink?repo=playground-epel8&arch=x86_64&infra=stock&content=centos
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/epel-playground.repo

Repo-id            : epel-playground-debuginfo
Repo-name          : Extra Packages for Enterprise Linux 8 - Playground - x86_64
                   : - Debug
Repo-status        : 無効化
Repo-metalink      : https://mirrors.fedoraproject.org/metalink?repo=playground-debug-epel8&arch=x86_64&infra=stock&content=centos
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/epel-playground.repo

Repo-id            : epel-playground-source
Repo-name          : Extra Packages for Enterprise Linux 8 - Playground - x86_64
                   : - Source
Repo-status        : 無効化
Repo-metalink      : https://mirrors.fedoraproject.org/metalink?repo=playground-source-epel8&arch=x86_64&infra=stock&content=centos
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/epel-playground.repo

Repo-id            : epel-source
Repo-name          : Extra Packages for Enterprise Linux 8 - x86_64 - Source
Repo-status        : 無効化
Repo-metalink      : https://mirrors.fedoraproject.org/metalink?repo=epel-source-8&arch=x86_64&infra=stock&content=centos
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/epel.repo

Repo-id            : epel-testing
Repo-name          : Extra Packages for Enterprise Linux 8 - Testing - x86_64
Repo-status        : 無効化
Repo-metalink      : https://mirrors.fedoraproject.org/metalink?repo=testing-epel8&arch=x86_64&infra=stock&content=centos
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/epel-testing.repo

Repo-id            : epel-testing-debuginfo
Repo-name          : Extra Packages for Enterprise Linux 8 - Testing - x86_64 -
                   : Debug
Repo-status        : 無効化
Repo-metalink      : https://mirrors.fedoraproject.org/metalink?repo=testing-debug-epel8&arch=x86_64&infra=stock&content=centos
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/epel-testing.repo

Repo-id            : epel-testing-modular
Repo-name          : Extra Packages for Enterprise Linux Modular 8 - Testing -
                   : x86_64
Repo-status        : 無効化
Repo-metalink      : https://mirrors.fedoraproject.org/metalink?repo=testing-modular-epel8&arch=x86_64&infra=stock&content=centos
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/epel-testing-modular.repo

Repo-id            : epel-testing-modular-debuginfo
Repo-name          : Extra Packages for Enterprise Linux Modular 8 - Testing -
                   : x86_64 - Debug
Repo-status        : 無効化
Repo-metalink      : https://mirrors.fedoraproject.org/metalink?repo=testing-modular-debug-epel8&arch=x86_64&infra=stock&content=centos
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/epel-testing-modular.repo

Repo-id            : epel-testing-modular-source
Repo-name          : Extra Packages for Enterprise Linux Modular 8 - Testing -
                   : x86_64 - Source
Repo-status        : 無効化
Repo-metalink      : https://mirrors.fedoraproject.org/metalink?repo=testing-modular-source-epel8&arch=x86_64&infra=stock&content=centos
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/epel-testing-modular.repo

Repo-id            : epel-testing-source
Repo-name          : Extra Packages for Enterprise Linux 8 - Testing - x86_64 -
                   : Source
Repo-status        : 無効化
Repo-metalink      : https://mirrors.fedoraproject.org/metalink?repo=testing-source-epel8&arch=x86_64&infra=stock&content=centos
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/epel-testing.repo

Repo-id            : extras
Repo-name          : CentOS-8 - Extras
Repo-status        : 有効化
Repo-revision      : 1600355621
Repo-updated       : 2020年09月18日 00時13分28秒
Repo-pkgs          : 27
Repo-available-pkgs: 27
Repo-size          : 311 k
Repo-mirrors       : http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=extras&infra=stock
Repo-baseurl       : http://ftp.yz.yamagata-u.ac.jp/pub/linux/centos/8.2.2004/extras/x86_64/os/
                   : (9 more)
Repo-expire        : 172,800 秒 (最終: 2020年11月02日 12時55分33秒)
Repo-filename      : /etc/yum.repos.d/CentOS-Extras.repo

Repo-id            : extras-source
Repo-name          : CentOS-8 - Extras Sources
Repo-status        : 無効化
Repo-baseurl       : http://vault.centos.org/centos/8/extras/Source/
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/CentOS-Sources.repo

Repo-id            : fasttrack
Repo-name          : CentOS-8 - fasttrack
Repo-status        : 無効化
Repo-mirrors       : http://mirrorlist.centos.org/?release=8&arch=x86_64&repo=fasttrack&infra=stock
Repo-expire        : 172,800 秒 (最終: 不明)
Repo-filename      : /etc/yum.repos.d/CentOS-fasttrack.repo
Total packages: 13,745
+ yum config-manager --set-enabled PowerTools -y
+ yum config-manager --set-enabled Devel -y
+ yum update -y
CentOS-8 - Devel WARNING! FOR BUILDROOT USE ONL  22 kB/s |  15 kB     00:00
CentOS-8 - PowerTools                           1.4 MB/s | 1.9 MB     00:01
依存関係が解決しました。
行うべきことはありません。
完了しました!
+ yum install -y --setopt=install_weak_deps=False '@Development Tools' acl attr autoconf avahi-devel bind-utils binutils bison ccache chrpath cups-devel curl dbus-devel docbook-dtds docbook-style-xsl flex gawk gcc gdb git glib2-devel glibc-common glibc-langpack-en glusterfs-api-devel glusterfs-devel gnutls-devel gpgme-devel gzip hostname htop jansson-devel keyutils-libs-devel krb5-devel krb5-server libacl-devel libarchive-devel libattr-devel libblkid-devel libbsd-devel libcap-devel libcephfs-devel libicu-devel libnsl2-devel libpcap-devel libtasn1-devel libtasn1-tools libtirpc-devel libunwind-devel libuuid-devel libxslt lmdb lmdb-devel make mingw64-gcc ncurses-devel openldap-devel pam-devel patch perl perl-Archive-Tar perl-ExtUtils-MakeMaker perl-Parse-Yapp perl-Test-Simple perl-generators perl-interpreter pkgconfig popt-devel procps-ng psmisc python3 python3-cryptography python3-devel python3-dns python3-gpg python3-libsemanage python3-markdown python3-policycoreutils python3-pyasn1 quota-devel readline-devel redhat-lsb rng-tools rpcgen rpcsvc-proto-devel rsync sed sudo systemd-devel tar tree wget which xfsprogs-devel yum-utils zlib-devel
メタデータの期限切れの最終確認: 0:00:05 時間前の 2020年11月02日 13時07分57秒 に 実施しました。
パッケージ acl-2.2.53-1.el8.x86_64 はすでにインストールされています。
パッケージ curl-7.61.1-12.el8.x86_64 はすでにインストールされています。
パッケージ gawk-4.2.1-1.el8.x86_64 はすでにインストールされています。
パッケージ glibc-common-2.28-101.el8.x86_64 はすでにインストールされています。
パッケージ gzip-1.9-9.el8.x86_64 はすでにインストールされています。
パッケージ hostname-3.20-6.el8.x86_64 はすでにインストールされています。
パッケージ libxslt-1.1.32-4.el8.x86_64 はすでにインストールされています。
パッケージ procps-ng-3.3.15-1.el8.x86_64 はすでにインストールされています。
パッケージ python3-cryptography-2.3-3.el8.x86_64 はすでにインストールされていま す。
パッケージ python3-gpg-1.10.0-6.el8.0.1.x86_64 はすでにインストールされています 。
パッケージ rng-tools-6.8-3.el8.x86_64 はすでにインストールされています。
パッケージ sed-4.5-1.el8.x86_64 はすでにインストールされています。
パッケージ sudo-1.8.29-5.el8.x86_64 はすでにインストールされています。
パッケージ tar-2:1.30-4.el8.x86_64 はすでにインストールされています。
パッケージ which-2.21-12.el8.x86_64 はすでにインストールされています。
依存関係が解決しました。
================================================================================
 パッケージ                      Arch   バージョン             Repo       サイズ
================================================================================
インストール中:
 attr                            x86_64 2.4.48-3.el8           BaseOS      68 k
 avahi-devel                     x86_64 0.7-19.el8             PowerTools  38 k
 bind-utils                      x86_64 32:9.11.13-6.el8_2.1   AppStream  443 k
 ccache                          x86_64 3.7.7-1.el8            epel       232 k
 chrpath                         x86_64 0.16-7.el8             BaseOS      33 k
 cups-devel                      x86_64 1:2.2.6-33.el8         AppStream  148 k
 dbus-devel                      x86_64 1:1.12.8-10.el8_2      AppStream   67 k
 docbook-dtds                    noarch 1.0-69.el8             AppStream  377 k
 docbook-style-xsl               noarch 1.79.2-7.el8           AppStream  1.6 M
 glib2-devel                     x86_64 2.56.4-8.el8           BaseOS     423 k
 glibc-langpack-en               x86_64 2.28-101.el8           BaseOS     821 k
 glusterfs-api-devel             x86_64 6.0-37.el8             PowerTools  28 k
 glusterfs-devel                 x86_64 6.0-37.el8             PowerTools 163 k
 gnutls-devel                    x86_64 3.6.8-11.el8_2         AppStream  2.2 M
 gpgme-devel                     x86_64 1.10.0-6.el8.0.1       PowerTools 163 k
 htop                            x86_64 2.2.0-6.el8            epel       112 k
 jansson-devel                   x86_64 2.11-3.el8             AppStream   16 k
 keyutils-libs-devel             x86_64 1.5.10-6.el8           BaseOS      48 k
 krb5-devel                      x86_64 1.17-18.el8            BaseOS     549 k
 krb5-server                     x86_64 1.17-18.el8            BaseOS     1.1 M
 libacl-devel                    x86_64 2.2.53-1.el8           BaseOS      79 k
 libarchive-devel                x86_64 3.3.2-8.el8_1          PowerTools 131 k
 libattr-devel                   x86_64 2.4.48-3.el8           BaseOS      34 k
 libblkid-devel                  x86_64 2.32.1-22.el8          BaseOS      83 k
 libbsd-devel                    x86_64 0.9.1-4.el8            epel       159 k
 libcap-devel                    x86_64 2.26-3.el8             BaseOS      33 k
 libcephfs-devel                 x86_64 1:12.2.7-9.el8         PowerTools  39 k
 libicu-devel                    x86_64 60.3-2.el8_1           BaseOS     922 k
 libnsl2-devel                   x86_64 1.2.0-2.20180605git4a062cf.el8
                                                               PowerTools  35 k
 libpcap-devel                   x86_64 14:1.9.0-3.el8         PowerTools 140 k
 libtasn1-devel                  x86_64 4.13-3.el8             AppStream  335 k
 libtasn1-tools                  x86_64 4.13-3.el8             AppStream   35 k
 libtirpc-devel                  x86_64 1.1.4-4.el8            BaseOS     127 k
 libunwind-devel                 x86_64 1.3.1-3.el8            epel        87 k
 libuuid-devel                   x86_64 2.32.1-22.el8          BaseOS      95 k
 lmdb                            x86_64 0.9.23-2.el8           epel        33 k
 lmdb-devel                      x86_64 0.9.23-2.el8           epel        28 k
 mingw64-gcc                     x86_64 7.2.0-2.el8            PowerTools 9.9 M
 ncurses-devel                   x86_64 6.1-7.20180224.el8     BaseOS     527 k
 openldap-devel                  x86_64 2.4.46-11.el8_1        BaseOS     811 k
 pam-devel                       x86_64 1.3.1-8.el8            BaseOS     209 k
 patch                           x86_64 2.7.6-11.el8           BaseOS     138 k
 perl                            x86_64 4:5.26.3-416.el8       AppStream   72 k
 perl-Archive-Tar                noarch 2.30-1.el8             AppStream   79 k
 perl-ExtUtils-MakeMaker         noarch 1:7.34-1.el8           AppStream  300 k
 perl-Parse-Yapp                 noarch 1.21-2.el8             BaseOS      53 k
 perl-Test-Simple                noarch 1:1.302135-1.el8       AppStream  516 k
 perl-interpreter                x86_64 4:5.26.3-416.el8       BaseOS     6.3 M
 popt-devel                      x86_64 1.16-14.el8            BaseOS      30 k
 psmisc                          x86_64 23.1-4.el8             BaseOS     150 k
 python3-dns                     noarch 1.15.0-10.el8          BaseOS     253 k
 python3-libsemanage             x86_64 2.9-2.el8              BaseOS     127 k
 python3-markdown                noarch 2.6.11-2.el8           PowerTools 133 k
 python3-policycoreutils         noarch 2.9-9.el8              BaseOS     2.2 M
 python3-pyasn1                  noarch 0.3.7-6.el8            AppStream  126 k
 python36                        x86_64 3.6.8-2.module_el8.1.0+245+c39af44f
                                                               AppStream   19 k
 python36-devel                  x86_64 3.6.8-2.module_el8.1.0+245+c39af44f
                                                               AppStream   16 k
 quota-devel                     x86_64 1:4.04-10.el8          Devel       36 k
 readline-devel                  x86_64 7.0-10.el8             BaseOS     204 k
 redhat-lsb                      x86_64 4.1-47.el8             AppStream   30 k
 rpcgen                          x86_64 1.3.1-4.el8            PowerTools  52 k
 rpcsvc-proto-devel              x86_64 1.3.1-4.el8            PowerTools  30 k
 rsync                           x86_64 3.1.3-7.el8            BaseOS     404 k
 systemd-devel                   x86_64 239-31.el8_2.2         BaseOS     365 k
 tree                            x86_64 1.7.0-15.el8           BaseOS      59 k
 wget                            x86_64 1.19.5-8.el8_1.1       AppStream  735 k
 xfsprogs-devel                  x86_64 5.0.0-2.el8            BaseOS      69 k
 yum-utils                       noarch 4.0.12-4.el8_2         BaseOS      66 k
 zlib-devel                      x86_64 1.2.11-16.el8_2        BaseOS      57 k
group/module パッケージをインストール中:
 asciidoc                        noarch 8.6.10-0.5.20180627gitf7c2274.el8
                                                               AppStream  216 k
 autoconf                        noarch 2.69-27.el8            AppStream  710 k
 automake                        noarch 1.16.1-6.el8           AppStream  713 k
 binutils                        x86_64 2.30-73.el8            BaseOS     5.7 M
 bison                           x86_64 3.0.4-10.el8           AppStream  688 k
 byacc                           x86_64 1.9.20170709-4.el8     AppStream   91 k
 ctags                           x86_64 5.8-22.el8             AppStream  170 k
 diffstat                        x86_64 1.61-7.el8             AppStream   44 k
 flex                            x86_64 2.6.1-9.el8            AppStream  320 k
 gcc                             x86_64 8.3.1-5.el8.0.2        AppStream   23 M
 gcc-c++                         x86_64 8.3.1-5.el8.0.2        AppStream   12 M
 gdb                             x86_64 8.2-11.el8             AppStream  297 k
 git                             x86_64 2.18.4-2.el8_2         AppStream  186 k
 glibc-devel                     x86_64 2.28-101.el8           BaseOS     1.0 M
 intltool                        noarch 0.51.0-11.el8          AppStream   66 k
 jna                             x86_64 4.5.1-5.el8            AppStream  242 k
 libtool                         x86_64 2.4.6-25.el8           AppStream  709 k
 ltrace                          x86_64 0.7.91-28.el8          AppStream  160 k
 make                            x86_64 1:4.2.1-10.el8         BaseOS     498 k
 patchutils                      x86_64 0.3.4-10.el8           AppStream  116 k
 perl-Fedora-VSP                 noarch 0.001-9.el8            AppStream   24 k
 perl-generators                 noarch 1.10-9.el8             AppStream   18 k
 pesign                          x86_64 0.112-25.el8           AppStream  181 k
 pkgconf                         x86_64 1.4.2-1.el8            BaseOS      38 k
 pkgconf-m4                      noarch 1.4.2-1.el8            BaseOS      17 k
 pkgconf-pkg-config              x86_64 1.4.2-1.el8            BaseOS      15 k
 redhat-rpm-config               noarch 122-1.el8              AppStream   83 k
 rpm-build                       x86_64 4.14.2-37.el8          AppStream  171 k
 rpm-sign                        x86_64 4.14.2-37.el8          BaseOS      78 k
 source-highlight                x86_64 3.1.8-16.el8           AppStream  661 k
 strace                          x86_64 4.24-9.el8             BaseOS     972 k
 systemtap                       x86_64 4.2-6.el8              AppStream   18 k
 valgrind                        x86_64 1:3.15.0-11.el8        AppStream   12 M
 valgrind-devel                  x86_64 1:3.15.0-11.el8        AppStream   91 k
依存関係のインストール中:
 adobe-mappings-cmap             noarch 20171205-3.el8         AppStream  2.1 M
 adobe-mappings-cmap-deprecated  noarch 20171205-3.el8         AppStream  119 k
 adobe-mappings-pdf              noarch 20180407-1.el8         AppStream  707 k
 alsa-lib                        x86_64 1.2.1.2-3.el8          AppStream  441 k
 annobin                         x86_64 8.90-1.el8.0.1         AppStream  201 k
 at                              x86_64 3.1.20-11.el8          BaseOS      81 k
 atk                             x86_64 2.28.1-1.el8           AppStream  272 k
 avahi                           x86_64 0.7-19.el8             BaseOS     282 k
 avahi-glib                      x86_64 0.7-19.el8             BaseOS      15 k
 avahi-libs                      x86_64 0.7-19.el8             BaseOS      62 k
 bc                              x86_64 1.07.1-5.el8           BaseOS     129 k
 bind-libs                       x86_64 32:9.11.13-6.el8_2.1   AppStream  172 k
 bind-libs-lite                  x86_64 32:9.11.13-6.el8_2.1   AppStream  1.2 M
 bind-license                    noarch 32:9.11.13-6.el8_2.1   AppStream  101 k
 boost-atomic                    x86_64 1.66.0-7.el8           AppStream   13 k
 boost-chrono                    x86_64 1.66.0-7.el8           AppStream   22 k
 boost-date-time                 x86_64 1.66.0-7.el8           AppStream   29 k
 boost-filesystem                x86_64 1.66.0-7.el8           AppStream   48 k
 boost-iostreams                 x86_64 1.66.0-7.el8           AppStream   39 k
 boost-program-options           x86_64 1.66.0-7.el8           AppStream  140 k
 boost-random                    x86_64 1.66.0-7.el8           AppStream   21 k
 boost-regex                     x86_64 1.66.0-7.el8           AppStream  281 k
 boost-system                    x86_64 1.66.0-7.el8           AppStream   18 k
 boost-thread                    x86_64 1.66.0-7.el8           AppStream   58 k
 boost-timer                     x86_64 1.66.0-7.el8           AppStream   20 k
 bzip2                           x86_64 1.0.6-26.el8           BaseOS      60 k
 cairo                           x86_64 1.15.12-3.el8          AppStream  721 k
 checkpolicy                     x86_64 2.9-1.el8              BaseOS     348 k
 cmake-filesystem                x86_64 3.11.4-7.el8           AppStream   40 k
 copy-jdk-configs                noarch 3.7-1.el8              AppStream   27 k
 cpp                             x86_64 8.3.1-5.el8.0.2        AppStream   10 M
 cups                            x86_64 1:2.2.6-33.el8         AppStream  1.4 M
 cups-client                     x86_64 1:2.2.6-33.el8         AppStream  168 k
 cups-filesystem                 noarch 1:2.2.6-33.el8         AppStream  108 k
 cups-filters                    x86_64 1.20.0-19.el8.0.1      AppStream  782 k
 cups-filters-libs               x86_64 1.20.0-19.el8.0.1      AppStream  135 k
 cups-libs                       x86_64 1:2.2.6-33.el8         BaseOS     432 k
 cyrus-sasl                      x86_64 2.1.27-1.el8           BaseOS      96 k
 cyrus-sasl-devel                x86_64 2.1.27-1.el8           BaseOS     128 k
 desktop-file-utils              x86_64 0.23-8.el8             AppStream   80 k
 dwz                             x86_64 0.12-9.el8             AppStream  109 k
 dyninst                         x86_64 10.1.0-4.el8           AppStream  3.8 M
 ed                              x86_64 1.14.2-4.el8           BaseOS      82 k
 efi-srpm-macros                 noarch 3-2.el8                AppStream   22 k
 efivar-libs                     x86_64 36-1.el8               BaseOS      97 k
 elfutils                        x86_64 0.178-7.el8            BaseOS     540 k
 emacs-filesystem                noarch 1:26.1-5.el8           BaseOS      69 k
 esmtp                           x86_64 1.2-15.el8             epel        57 k
 fontconfig                      x86_64 2.13.1-3.el8           BaseOS     275 k
 fontpackages-filesystem         noarch 1.44-22.el8            BaseOS      16 k
 fribidi                         x86_64 1.0.4-8.el8            AppStream   89 k
 gc                              x86_64 7.6.4-3.el8            AppStream  109 k
 gd                              x86_64 2.2.5-6.el8            AppStream  144 k
 gdb-headless                    x86_64 8.2-11.el8             AppStream  3.7 M
 gdk-pixbuf2                     x86_64 2.36.12-5.el8          BaseOS     467 k
 gdk-pixbuf2-modules             x86_64 2.36.12-5.el8          AppStream  109 k
 gettext-common-devel            noarch 0.19.8.1-17.el8        BaseOS     419 k
 gettext-devel                   x86_64 0.19.8.1-17.el8        BaseOS     331 k
 ghc-srpm-macros                 noarch 1.4.2-7.el8            AppStream  9.3 k
 ghostscript                     x86_64 9.25-5.el8_1.1         AppStream   82 k
 git-core                        x86_64 2.18.4-2.el8_2         AppStream  4.0 M
 git-core-doc                    noarch 2.18.4-2.el8_2         AppStream  2.3 M
 glibc-headers                   x86_64 2.28-101.el8           BaseOS     473 k
 glusterfs                       x86_64 6.0-37.el8             BaseOS     663 k
 glusterfs-api                   x86_64 6.0-37.el8             AppStream   95 k
 glusterfs-client-xlators        x86_64 6.0-37.el8             BaseOS     870 k
 glusterfs-libs                  x86_64 6.0-37.el8             BaseOS     413 k
 gmp-c++                         x86_64 1:6.1.2-10.el8         BaseOS      33 k
 gmp-devel                       x86_64 1:6.1.2-10.el8         BaseOS     187 k
 gnutls-c++                      x86_64 3.6.8-11.el8_2         AppStream   46 k
 gnutls-dane                     x86_64 3.6.8-11.el8_2         AppStream   45 k
 go-srpm-macros                  noarch 2-16.el8               AppStream   14 k
 google-droid-sans-fonts         noarch 20120715-13.el8        AppStream  2.5 M
 graphite2                       x86_64 1.3.10-10.el8          AppStream  122 k
 graphviz                        x86_64 2.40.1-40.el8          AppStream  1.7 M
 gtk-update-icon-cache           x86_64 3.22.30-5.el8          AppStream   32 k
 gtk2                            x86_64 2.24.32-4.el8          AppStream  3.4 M
 guile                           x86_64 5:2.0.14-7.el8         AppStream  3.5 M
 harfbuzz                        x86_64 1.7.5-3.el8            AppStream  295 k
 hicolor-icon-theme              noarch 0.17-2.el8             AppStream   49 k
 isl                             x86_64 0.16.1-6.el8           AppStream  841 k
 jasper-libs                     x86_64 2.0.14-4.el8           AppStream  167 k
 java-1.8.0-openjdk-headless     x86_64 1:1.8.0.272.b10-1.el8_2
                                                               AppStream   34 M
 javapackages-filesystem         noarch 5.3.0-1.module_el8.0.0+11+5b8c10bd
                                                               AppStream   30 k
 jbig2dec-libs                   x86_64 0.14-4.el8_2           AppStream   67 k
 jbigkit-libs                    x86_64 2.1-14.el8             AppStream   55 k
 kernel-headers                  x86_64 4.18.0-193.28.1.el8_2  BaseOS     4.0 M
 lcms2                           x86_64 2.9-2.el8              AppStream  165 k
 libICE                          x86_64 1.0.9-15.el8           AppStream   74 k
 libSM                           x86_64 1.2.3-1.el8            AppStream   48 k
 libX11                          x86_64 1.6.8-3.el8            AppStream  611 k
 libX11-common                   noarch 1.6.8-3.el8            AppStream  158 k
 libX11-xcb                      x86_64 1.6.8-3.el8            AppStream   14 k
 libXau                          x86_64 1.0.8-13.el8           AppStream   36 k
 libXaw                          x86_64 1.0.13-10.el8          AppStream  194 k
 libXcomposite                   x86_64 0.4.4-14.el8           AppStream   28 k
 libXcursor                      x86_64 1.1.15-3.el8           AppStream   36 k
 libXdamage                      x86_64 1.1.4-14.el8           AppStream   27 k
 libXext                         x86_64 1.3.3-9.el8            AppStream   45 k
 libXfixes                       x86_64 5.0.3-7.el8            AppStream   25 k
 libXft                          x86_64 2.3.2-10.el8           AppStream   66 k
 libXi                           x86_64 1.7.9-7.el8            AppStream   49 k
 libXinerama                     x86_64 1.1.4-1.el8            AppStream   16 k
 libXmu                          x86_64 1.1.2-12.el8           AppStream   74 k
 libXpm                          x86_64 3.5.12-8.el8           AppStream   58 k
 libXrandr                       x86_64 1.5.1-7.el8            AppStream   33 k
 libXrender                      x86_64 0.9.10-7.el8           AppStream   33 k
 libXt                           x86_64 1.1.5-12.el8           AppStream  186 k
 libXtst                         x86_64 1.2.3-7.el8            AppStream   22 k
 libXxf86misc                    x86_64 1.0.4-1.el8            AppStream   23 k
 libXxf86vm                      x86_64 1.1.4-9.el8            AppStream   19 k
 libatomic_ops                   x86_64 7.6.2-3.el8            AppStream   38 k
 libbabeltrace                   x86_64 1.5.4-2.el8            AppStream  201 k
 libbsd                          x86_64 0.9.1-4.el8            epel       106 k
 libcephfs2                      x86_64 1:12.2.7-9.el8         PowerTools 486 k
 libcom_err-devel                x86_64 1.45.4-3.el8           BaseOS      38 k
 libdatrie                       x86_64 0.2.9-7.el8            AppStream   33 k
 liberation-fonts-common         noarch 1:2.00.3-7.el8         BaseOS      25 k
 liberation-mono-fonts           noarch 1:2.00.3-7.el8         BaseOS     505 k
 libesmtp                        x86_64 1.0.6-18.el8           epel        70 k
 libfontenc                      x86_64 1.1.3-8.el8            AppStream   37 k
 libglvnd                        x86_64 1:1.2.0-6.el8          AppStream   98 k
 libglvnd-glx                    x86_64 1:1.2.0-6.el8          AppStream  136 k
 libgpg-error-devel              x86_64 1.31-1.el8             BaseOS      64 k
 libgs                           x86_64 9.25-5.el8_1.1         AppStream  3.1 M
 libicu                          x86_64 60.3-2.el8_1           BaseOS     8.8 M
 libidn                          x86_64 1.34-5.el8             AppStream  239 k
 libijs                          x86_64 0.35-5.el8             AppStream   30 k
 libipt                          x86_64 1.6.1-8.el8            AppStream   50 k
 libjpeg-turbo                   x86_64 1.5.3-10.el8           AppStream  156 k
 libkadm5                        x86_64 1.17-18.el8            BaseOS     185 k
 liblockfile                     x86_64 1.14-1.el8             AppStream   32 k
 libmcpp                         x86_64 2.7.2-20.el8           AppStream   81 k
 libmpc                          x86_64 1.0.2-9.el8            AppStream   59 k
 libpaper                        x86_64 1.1.24-22.el8          AppStream   45 k
 libpkgconf                      x86_64 1.4.2-1.el8            BaseOS      35 k
 libpng12                        x86_64 1.2.57-5.el8           AppStream  160 k
 librados-devel                  x86_64 1:12.2.7-9.el8         PowerTools 106 k
 librados2                       x86_64 1:12.2.7-9.el8         AppStream  2.9 M
 librsvg2                        x86_64 2.42.7-3.el8           AppStream  570 k
 libselinux-devel                x86_64 2.9-3.el8              BaseOS     199 k
 libsepol-devel                  x86_64 2.9-1.el8              BaseOS      86 k
 libstdc++-devel                 x86_64 8.3.1-5.el8.0.2        AppStream  2.0 M
 libthai                         x86_64 0.1.27-2.el8           AppStream  203 k
 libtiff                         x86_64 4.0.9-17.el8           AppStream  188 k
 libunwind                       x86_64 1.3.1-3.el8            epel        75 k
 libverto-devel                  x86_64 0.3.0-5.el8            BaseOS      18 k
 libverto-libevent               x86_64 0.3.0-5.el8            BaseOS      16 k
 libwebp                         x86_64 1.0.0-1.el8            AppStream  273 k
 libxcb                          x86_64 1.13.1-1.el8           AppStream  229 k
 libxcrypt-devel                 x86_64 4.1.1-4.el8            BaseOS      25 k
 libxshmfence                    x86_64 1.3-2.el8              AppStream   13 k
 lksctp-tools                    x86_64 1.0.18-3.el8           BaseOS     100 k
 lmdb-libs                       x86_64 0.9.23-5.el8           AppStream   58 k
 lua                             x86_64 5.3.4-11.el8           AppStream  193 k
 m4                              x86_64 1.4.18-7.el8           BaseOS     223 k
 mailcap                         noarch 2.1.48-3.el8           BaseOS      39 k
 mailx                           x86_64 12.5-29.el8            BaseOS     257 k
 mcpp                            x86_64 2.7.2-20.el8           AppStream   31 k
 mesa-libGL                      x86_64 19.3.4-2.el8           AppStream  184 k
 mesa-libGLU                     x86_64 9.0.0-15.el8           AppStream  185 k
 mesa-libglapi                   x86_64 19.3.4-2.el8           AppStream   63 k
 mingw-binutils-generic          x86_64 2.30-1.el8             PowerTools 1.5 M
 mingw-filesystem-base           noarch 104-1.el8              PowerTools  40 k
 mingw64-binutils                x86_64 2.30-1.el8             PowerTools 2.9 M
 mingw64-cpp                     x86_64 7.2.0-2.el8            PowerTools 7.0 M
 mingw64-crt                     noarch 5.0.2-2.el8            PowerTools 2.5 M
 mingw64-filesystem              noarch 104-1.el8              PowerTools 171 k
 mingw64-headers                 noarch 5.0.2-2.el8            PowerTools 5.4 M
 mingw64-winpthreads             noarch 5.0.2-2.el8            PowerTools  52 k
 mokutil                         x86_64 1:0.3.0-9.el8          BaseOS      44 k
 ncurses-c++-libs                x86_64 6.1-7.20180224.el8     BaseOS      58 k
 ncurses-compat-libs             x86_64 6.1-7.20180224.el8     BaseOS     331 k
 nettle-devel                    x86_64 3.4.1-1.el8            AppStream  636 k
 nspr                            x86_64 4.25.0-2.el8_2         AppStream  142 k
 nss                             x86_64 3.53.1-11.el8_2        AppStream  721 k
 nss-softokn                     x86_64 3.53.1-11.el8_2        AppStream  484 k
 nss-softokn-freebl              x86_64 3.53.1-11.el8_2        AppStream  289 k
 nss-sysinit                     x86_64 3.53.1-11.el8_2        AppStream   71 k
 nss-tools                       x86_64 3.53.1-11.el8_2        AppStream  559 k
 nss-util                        x86_64 3.53.1-11.el8_2        AppStream  135 k
 ocaml-srpm-macros               noarch 5-4.el8                AppStream  9.4 k
 openblas-srpm-macros            noarch 2-2.el8                AppStream  7.9 k
 openjpeg2                       x86_64 2.3.1-6.el8            AppStream  154 k
 p11-kit-devel                   x86_64 0.23.14-5.el8_0        BaseOS      86 k
 pango                           x86_64 1.42.4-6.el8           AppStream  298 k
 pcre-cpp                        x86_64 8.42-4.el8             BaseOS      47 k
 pcre-devel                      x86_64 8.42-4.el8             BaseOS     551 k
 pcre-utf16                      x86_64 8.42-4.el8             BaseOS     195 k
 pcre-utf32                      x86_64 8.42-4.el8             BaseOS     186 k
 pcre2-devel                     x86_64 10.32-1.el8            BaseOS     605 k
 pcre2-utf16                     x86_64 10.32-1.el8            BaseOS     228 k
 pcre2-utf32                     x86_64 10.32-1.el8            BaseOS     220 k
 perl-Algorithm-Diff             noarch 1.1903-9.el8           AppStream   52 k
 perl-Archive-Zip                noarch 1.60-3.el8             AppStream  108 k
 perl-Attribute-Handlers         noarch 0.99-416.el8           AppStream   88 k
 perl-B-Debug                    noarch 1.26-2.el8             AppStream   26 k
 perl-B-Lint                     noarch 1.20-11.el8            AppStream   25 k
 perl-CGI                        noarch 4.38-2.el8             AppStream  208 k
 perl-CPAN                       noarch 2.18-397.el8           AppStream  554 k
 perl-CPAN-Meta                  noarch 2.150010-396.el8       AppStream  191 k
 perl-CPAN-Meta-Requirements     noarch 2.140-396.el8          AppStream   37 k
 perl-CPAN-Meta-YAML             noarch 0.018-397.el8          AppStream   34 k
 perl-Carp                       noarch 1.42-396.el8           BaseOS      30 k
 perl-Class-ISA                  noarch 0.36-1022.el8          AppStream   15 k
 perl-Compress-Bzip2             x86_64 2.26-6.el8             AppStream   72 k
 perl-Compress-Raw-Bzip2         x86_64 2.081-1.el8            AppStream   40 k
 perl-Compress-Raw-Zlib          x86_64 2.081-1.el8            AppStream   68 k
 perl-Config-Perl-V              noarch 0.30-1.el8             AppStream   22 k
 perl-DB_File                    x86_64 1.842-1.el8            AppStream   83 k
 perl-Data-Dump                  noarch 1.23-7.el8             AppStream   36 k
 perl-Data-Dumper                x86_64 2.167-399.el8          BaseOS      58 k
 perl-Data-OptList               noarch 0.110-6.el8            AppStream   31 k
 perl-Data-Section               noarch 0.200007-3.el8         AppStream   30 k
 perl-Devel-PPPort               x86_64 3.36-5.el8             AppStream  118 k
 perl-Devel-Peek                 x86_64 1.26-416.el8           AppStream   93 k
 perl-Devel-SelfStubber          noarch 1.06-416.el8           AppStream   75 k
 perl-Devel-Size                 x86_64 0.81-2.el8             AppStream   34 k
 perl-Digest                     noarch 1.17-395.el8           AppStream   27 k
 perl-Digest-HMAC                noarch 1.03-17.el8            AppStream   20 k
 perl-Digest-MD5                 x86_64 2.55-396.el8           AppStream   37 k
 perl-Digest-SHA                 x86_64 1:6.02-1.el8           AppStream   66 k
 perl-Encode                     x86_64 4:2.97-3.el8           BaseOS     1.5 M
 perl-Encode-Locale              noarch 1.05-9.el8             AppStream   21 k
 perl-Encode-devel               x86_64 4:2.97-3.el8           AppStream   39 k
 perl-Env                        noarch 1.04-395.el8           AppStream   21 k
 perl-Errno                      x86_64 1.28-416.el8           BaseOS      76 k
 perl-Error                      noarch 1:0.17025-2.el8        AppStream   46 k
 perl-Exporter                   noarch 5.72-396.el8           BaseOS      34 k
 perl-ExtUtils-CBuilder          noarch 1:0.280230-2.el8       AppStream   48 k
 perl-ExtUtils-Command           noarch 1:7.34-1.el8           AppStream   19 k
 perl-ExtUtils-Embed             noarch 1.34-416.el8           AppStream   79 k
 perl-ExtUtils-Install           noarch 2.14-4.el8             AppStream   46 k
 perl-ExtUtils-MM-Utils          noarch 1:7.34-1.el8           AppStream   17 k
 perl-ExtUtils-Manifest          noarch 1.70-395.el8           AppStream   37 k
 perl-ExtUtils-Miniperl          noarch 1.06-416.el8           AppStream   76 k
 perl-ExtUtils-ParseXS           noarch 1:3.35-2.el8           AppStream   83 k
 perl-File-CheckTree             noarch 4.42-303.el8           AppStream   23 k
 perl-File-Fetch                 noarch 0.56-2.el8             AppStream   33 k
 perl-File-HomeDir               noarch 1.002-4.el8            AppStream   61 k
 perl-File-Listing               noarch 6.04-17.el8            AppStream   18 k
 perl-File-Path                  noarch 2.15-2.el8             BaseOS      38 k
 perl-File-Temp                  noarch 0.230.600-1.el8        BaseOS      63 k
 perl-File-Which                 noarch 1.22-2.el8             AppStream   23 k
 perl-Filter                     x86_64 2:1.58-2.el8           AppStream   82 k
 perl-Filter-Simple              noarch 0.94-2.el8             AppStream   29 k
 perl-Getopt-Long                noarch 1:2.50-4.el8           BaseOS      63 k
 perl-Git                        noarch 2.18.4-2.el8_2         AppStream   77 k
 perl-HTML-Parser                x86_64 3.72-14.el8            AppStream  119 k
 perl-HTML-Tagset                noarch 3.20-33.el8            AppStream   24 k
 perl-HTTP-Cookies               noarch 6.04-2.el8             AppStream   39 k
 perl-HTTP-Date                  noarch 6.02-18.el8            AppStream   19 k
 perl-HTTP-Message               noarch 6.18-1.el8             AppStream  100 k
 perl-HTTP-Negotiate             noarch 6.01-19.el8            AppStream   22 k
 perl-HTTP-Tiny                  noarch 0.074-1.el8            BaseOS      58 k
 perl-IO                         x86_64 1.38-416.el8           BaseOS     141 k
 perl-IO-Compress                noarch 2.081-1.el8            AppStream  258 k
 perl-IO-HTML                    noarch 1.001-10.el8           AppStream   28 k
 perl-IO-Socket-IP               noarch 0.39-5.el8             AppStream   47 k
 perl-IO-Socket-SSL              noarch 2.066-4.el8            AppStream  297 k
 perl-IO-Zlib                    noarch 1:1.10-416.el8         AppStream   80 k
 perl-IPC-Cmd                    noarch 2:1.02-1.el8           AppStream   43 k
 perl-IPC-SysV                   x86_64 2.07-397.el8           AppStream   43 k
 perl-IPC-System-Simple          noarch 1.25-17.el8            AppStream   43 k
 perl-JSON-PP                    noarch 1:2.97.001-3.el8       AppStream   68 k
 perl-LWP-MediaTypes             noarch 6.02-14.el8            AppStream   29 k
 perl-Locale-Codes               noarch 3.57-1.el8             AppStream  311 k
 perl-Locale-Maketext            noarch 1.28-396.el8           AppStream   99 k
 perl-Locale-Maketext-Simple     noarch 1:0.21-416.el8         AppStream   78 k
 perl-MIME-Base64                x86_64 3.15-396.el8           BaseOS      31 k
 perl-MRO-Compat                 noarch 0.13-4.el8             AppStream   24 k
 perl-Math-BigInt                noarch 1:1.9998.11-7.el8      BaseOS     196 k
 perl-Math-BigInt-FastCalc       x86_64 0.500.600-6.el8        AppStream   27 k
 perl-Math-BigRat                noarch 0.2614-1.el8           AppStream   40 k
 perl-Math-Complex               noarch 1.59-416.el8           BaseOS     108 k
 perl-Memoize                    noarch 1.03-416.el8           AppStream  118 k
 perl-Module-Build               noarch 2:0.42.24-5.el8        AppStream  273 k
 perl-Module-CoreList            noarch 1:5.20181130-1.el8     AppStream   87 k
 perl-Module-CoreList-tools      noarch 1:5.20181130-1.el8     AppStream   22 k
 perl-Module-Load                noarch 1:0.32-395.el8         AppStream   19 k
 perl-Module-Load-Conditional    noarch 0.68-395.el8           AppStream   24 k
 perl-Module-Loaded              noarch 1:0.08-416.el8         AppStream   74 k
 perl-Module-Metadata            noarch 1.000033-395.el8       AppStream   44 k
 perl-Module-Pluggable           noarch 2:5.2-7.el8            AppStream   34 k
 perl-NTLM                       noarch 1.09-17.el8            AppStream   24 k
 perl-Net-HTTP                   noarch 6.17-2.el8             AppStream   43 k
 perl-Net-Ping                   noarch 2.55-416.el8           AppStream  101 k
 perl-Net-SSLeay                 x86_64 1.88-1.el8             AppStream  379 k
 perl-Package-Generator          noarch 1.106-11.el8           AppStream   27 k
 perl-Params-Check               noarch 1:0.38-395.el8         AppStream   24 k
 perl-Params-Util                x86_64 1.07-22.el8            AppStream   44 k
 perl-PathTools                  x86_64 3.74-1.el8             BaseOS      90 k
 perl-Perl-OSType                noarch 1.010-396.el8          AppStream   29 k
 perl-PerlIO-via-QuotedPrint     noarch 0.08-395.el8           AppStream   13 k
 perl-Pod-Checker                noarch 4:1.73-395.el8         AppStream   33 k
 perl-Pod-Escapes                noarch 1:1.07-395.el8         BaseOS      20 k
 perl-Pod-Html                   noarch 1.22.02-416.el8        AppStream   87 k
 perl-Pod-LaTeX                  noarch 0.61-302.el8           AppStream   41 k
 perl-Pod-Parser                 noarch 1.63-396.el8           AppStream  108 k
 perl-Pod-Perldoc                noarch 3.28-396.el8           BaseOS      86 k
 perl-Pod-Plainer                noarch 1.04-7.el8             AppStream   14 k
 perl-Pod-Simple                 noarch 1:3.35-395.el8         BaseOS     213 k
 perl-Pod-Usage                  noarch 4:1.69-395.el8         BaseOS      34 k
 perl-Scalar-List-Utils          x86_64 3:1.49-2.el8           BaseOS      68 k
 perl-SelfLoader                 noarch 1.23-416.el8           AppStream   82 k
 perl-Socket                     x86_64 4:2.027-3.el8          BaseOS      59 k
 perl-Software-License           noarch 0.103013-2.el8         AppStream  138 k
 perl-Storable                   x86_64 1:3.11-3.el8           BaseOS      98 k
 perl-Sub-Exporter               noarch 0.987-15.el8           AppStream   73 k
 perl-Sub-Install                noarch 0.928-14.el8           AppStream   27 k
 perl-Sys-Syslog                 x86_64 0.35-397.el8           AppStream   50 k
 perl-Term-ANSIColor             noarch 4.06-396.el8           BaseOS      46 k
 perl-Term-Cap                   noarch 1.17-395.el8           BaseOS      23 k
 perl-TermReadKey                x86_64 2.37-7.el8             AppStream   40 k
 perl-Test                       noarch 1.30-416.el8           AppStream   89 k
 perl-Test-Harness               noarch 1:3.42-1.el8           AppStream  279 k
 perl-Text-Balanced              noarch 2.03-395.el8           AppStream   58 k
 perl-Text-Diff                  noarch 1.45-2.el8             AppStream   45 k
 perl-Text-Glob                  noarch 0.11-4.el8             AppStream   17 k
 perl-Text-ParseWords            noarch 3.30-395.el8           BaseOS      18 k
 perl-Text-Soundex               x86_64 3.05-8.el8             AppStream   32 k
 perl-Text-Tabs+Wrap             noarch 2013.0523-395.el8      BaseOS      24 k
 perl-Text-Template              noarch 1.51-1.el8             AppStream   64 k
 perl-Text-Unidecode             noarch 1.30-5.el8             AppStream  149 k
 perl-Thread-Queue               noarch 3.13-1.el8             AppStream   24 k
 perl-Time-HiRes                 x86_64 1.9758-1.el8           AppStream   61 k
 perl-Time-Local                 noarch 1:1.280-1.el8          BaseOS      34 k
 perl-Time-Piece                 x86_64 1.31-416.el8           AppStream   98 k
 perl-TimeDate                   noarch 1:2.30-13.el8          AppStream   53 k
 perl-Try-Tiny                   noarch 0.30-2.el8             AppStream   44 k
 perl-URI                        noarch 1.73-3.el8             AppStream  116 k
 perl-Unicode-Collate            x86_64 1.25-2.el8             AppStream  686 k
 perl-Unicode-Normalize          x86_64 1.25-396.el8           BaseOS      82 k
 perl-WWW-RobotRules             noarch 6.02-18.el8            AppStream   22 k
 perl-XML-LibXML                 x86_64 1:2.0132-2.el8         AppStream  372 k
 perl-XML-NamespaceSupport       noarch 1.12-4.el8             AppStream   30 k
 perl-XML-Parser                 x86_64 2.44-11.el8            AppStream  226 k
 perl-XML-SAX                    noarch 1.00-1.el8             AppStream   65 k
 perl-XML-SAX-Base               noarch 1.09-4.el8             AppStream   35 k
 perl-autodie                    noarch 2.29-396.el8           AppStream   98 k
 perl-bignum                     noarch 0.49-2.el8             AppStream   44 k
 perl-constant                   noarch 1.33-396.el8           BaseOS      25 k
 perl-devel                      x86_64 4:5.26.3-416.el8       AppStream  599 k
 perl-encoding                   x86_64 4:2.22-3.el8           AppStream   68 k
 perl-experimental               noarch 0.019-2.el8            AppStream   24 k
 perl-inc-latest                 noarch 2:0.500-9.el8          AppStream   25 k
 perl-libnet                     noarch 3.11-3.el8             AppStream  121 k
 perl-libnetcfg                  noarch 4:5.26.3-416.el8       AppStream   77 k
 perl-libs                       x86_64 4:5.26.3-416.el8       BaseOS     1.6 M
 perl-libwww-perl                noarch 6.34-1.el8             AppStream  212 k
 perl-local-lib                  noarch 2.000024-2.el8         AppStream   74 k
 perl-macros                     x86_64 4:5.26.3-416.el8       BaseOS      72 k
 perl-open                       noarch 1.11-416.el8           AppStream   77 k
 perl-parent                     noarch 1:0.237-1.el8          BaseOS      20 k
 perl-perlfaq                    noarch 5.20180605-1.el8       AppStream  386 k
 perl-podlators                  noarch 4.11-1.el8             BaseOS     118 k
 perl-srpm-macros                noarch 1-25.el8               AppStream   11 k
 perl-threads                    x86_64 1:2.21-2.el8           BaseOS      61 k
 perl-threads-shared             x86_64 1.58-2.el8             BaseOS      48 k
 perl-utils                      noarch 5.26.3-416.el8         AppStream  128 k
 perl-version                    x86_64 6:0.99.24-1.el8        AppStream   67 k
 pixman                          x86_64 0.38.4-1.el8           AppStream  257 k
 platform-python-devel           x86_64 3.6.8-23.el8           AppStream  246 k
 poppler                         x86_64 0.66.0-26.el8          AppStream  933 k
 poppler-data                    noarch 0.4.9-1.el8            AppStream  2.1 M
 poppler-utils                   x86_64 0.66.0-26.el8          AppStream  228 k
 python-rpm-macros               noarch 3-38.el8               AppStream   14 k
 python-srpm-macros              noarch 3-38.el8               AppStream   14 k
 python3-audit                   x86_64 3.0-0.17.20191104git1c2f876.el8
                                                               BaseOS      86 k
 python3-bind                    noarch 32:9.11.13-6.el8_2.1   AppStream  148 k
 python3-pip                     noarch 9.0.3-16.el8           AppStream   19 k
 python3-pyparsing               noarch 2.1.10-7.el8           BaseOS     142 k
 python3-rpm-generators          noarch 5-6.el8                AppStream   24 k
 python3-rpm-macros              noarch 3-38.el8               AppStream   13 k
 python3-setools                 x86_64 4.2.2-2.el8            BaseOS     601 k
 python3-setuptools              noarch 39.2.0-5.el8           BaseOS     162 k
 qpdf-libs                       x86_64 7.1.1-10.el8           AppStream  338 k
 qt5-srpm-macros                 noarch 5.12.5-3.el8           AppStream   10 k
 redhat-lsb-core                 x86_64 4.1-47.el8             AppStream   46 k
 redhat-lsb-cxx                  x86_64 4.1-47.el8             AppStream   23 k
 redhat-lsb-desktop              x86_64 4.1-47.el8             AppStream   26 k
 redhat-lsb-languages            x86_64 4.1-47.el8             AppStream   25 k
 redhat-lsb-printing             x86_64 4.1-47.el8             AppStream   23 k
 redhat-lsb-submod-multimedia    x86_64 4.1-47.el8             AppStream   22 k
 redhat-lsb-submod-security      x86_64 4.1-47.el8             AppStream   22 k
 rust-srpm-macros                noarch 5-2.el8                AppStream  9.2 k
 sgml-common                     noarch 0.6.3-50.el8           BaseOS      62 k
 spax                            x86_64 1.5.3-13.el8           BaseOS     217 k
 systemtap-client                x86_64 4.2-6.el8              AppStream  3.7 M
 systemtap-devel                 x86_64 4.2-6.el8              AppStream  2.3 M
 systemtap-runtime               x86_64 4.2-6.el8              AppStream  504 k
 systemtap-sdt-devel             x86_64 4.2-6.el8              AppStream   81 k
 tbb                             x86_64 2018.2-9.el8           AppStream  160 k
 time                            x86_64 1.9-3.el8              BaseOS      54 k
 tzdata-java                     noarch 2020d-1.el8            AppStream  190 k
 unzip                           x86_64 6.0-43.el8             BaseOS     195 k
 urw-base35-bookman-fonts        noarch 20170801-10.el8        AppStream  857 k
 urw-base35-c059-fonts           noarch 20170801-10.el8        AppStream  884 k
 urw-base35-d050000l-fonts       noarch 20170801-10.el8        AppStream   79 k
 urw-base35-fonts                noarch 20170801-10.el8        AppStream   12 k
 urw-base35-fonts-common         noarch 20170801-10.el8        AppStream   23 k
 urw-base35-gothic-fonts         noarch 20170801-10.el8        AppStream  654 k
 urw-base35-nimbus-mono-ps-fonts noarch 20170801-10.el8        AppStream  801 k
 urw-base35-nimbus-roman-fonts   noarch 20170801-10.el8        AppStream  865 k
 urw-base35-nimbus-sans-fonts    noarch 20170801-10.el8        AppStream  1.3 M
 urw-base35-p052-fonts           noarch 20170801-10.el8        AppStream  982 k
 urw-base35-standard-symbols-ps-fonts
                                 noarch 20170801-10.el8        AppStream   44 k
 urw-base35-z003-fonts           noarch 20170801-10.el8        AppStream  279 k
 util-linux-user                 x86_64 2.32.1-22.el8          BaseOS      98 k
 vim-filesystem                  noarch 2:8.0.1763-13.el8      AppStream   48 k
 words                           noarch 3.0-28.el8             BaseOS     1.4 M
 xdg-utils                       noarch 1.1.2-5.el8            AppStream   84 k
 xml-common                      noarch 0.6.3-50.el8           BaseOS      39 k
 xorg-x11-font-utils             x86_64 1:7.5-40.el8           AppStream  103 k
 xorg-x11-fonts-ISO8859-1-100dpi noarch 7.5-19.el8             AppStream  1.1 M
 xorg-x11-server-utils           x86_64 7.7-27.el8             AppStream  198 k
 zip                             x86_64 3.0-23.el8             BaseOS     270 k
 zstd                            x86_64 1.4.2-2.el8            AppStream  385 k
モジュールストリームの有効化中:
 javapackages-runtime                   201801
 python36                               3.6
グループのインストール中:
 Development Tools

トランザクションの概要
================================================================================
インストール  521 パッケージ

ダウンロードサイズの合計: 277 M
インストール済みのサイズ: 1.0 G
パッケージのダウンロード:
(1/521): adobe-mappings-cmap-deprecated-2017120 1.2 MB/s | 119 kB     00:00
<略>
  zstd-1.4.2-2.el8.x86_64

完了しました!
+ yum clean all
57 ファイルが削除されました
[root@centos8 ~]#

注: 2022/03/14時点でCentOS 8 stream上でsamba-4.15.5をコンパイルしようとしたところ、「libgpgme11-dev」と「libarchive-dev」がないことによるエラーがでました。

Checking for program 'gpgme-config'                                                             : not found
Checking for library gpgme                                                                      : no
Checking for gpgme_new                                                                          : not found
GPGME support not found. Try installing libgpgme11-dev or gpgme-devel and python-gpgme. Otherwise, use --without-gpgme to build without GPGME support or --without-ad-dc to build without the Samba AD DC. GPGME support is required for the GPG encrypted password sync feature
(complete log in /root/samba-4.15.5/bin/config.log)
Checking for libarchive existence
Checking for header archive.h                                                                   : no
libarchive support not found. Try installing libarchive-dev or libarchive-devel. Otherwise, use --without-libarchive to build without libarchive support. libarchive support is required for the smbclient tar-file mode
(complete log in /root/samba-4.15.5/bin/config.log)

これらは「yum install gpgme-devel」「yum install libarchive-devel」で対応できました。

2022/04/25追記:samba 4.16.0の場合、必要とするパッケージが増えていました
「yum install libaio-devel libxml2-devel perl-JSON python3-iso8601 python3-setproctitle」で追加となりました。ただ、これを追加しても、後述のconfigureで失敗しました。

(3.5) 追加パッケージ

ドキュメントに書いていないのだが、Kerberosの動作確認で使用するコマンドklist, kinitは「krb5-workstation」というパッケージに入っているのでインストールする。

[root@centos8 ~]# yum install krb5-workstation
メタデータの期限切れの最終確認: 0:02:13 時間前の 2020年11月02日 15時41分35秒 に実施し ました。
依存関係が解決しました。
======================================================================================
 パッケージ                Arch            バージョン           リポジトリー    サイズ
======================================================================================
インストール中:
 krb5-workstation          x86_64          1.17-18.el8          BaseOS          940 k

トランザクションの概要
======================================================================================
インストール  1 パッケージ

ダウンロードサイズの合計: 940 k
インストール済みのサイズ: 3.3 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
krb5-workstation-1.17-18.el8.x86_64.rpm               3.9 MB/s | 940 kB     00:00
--------------------------------------------------------------------------------------
合計                                                  1.1 MB/s | 940 kB     00:00
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備              :                                                             1/1
  インストール中    : krb5-workstation-1.17-18.el8.x86_64                         1/1
  scriptlet の実行中: krb5-workstation-1.17-18.el8.x86_64                         1/1
  検証              : krb5-workstation-1.17-18.el8.x86_64                         1/1

インストール済み:
  krb5-workstation-1.17-18.el8.x86_64

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

(4) sambaのtar.gzをダウンロード

samba.orgからsambaをダウンロードします。

[root@centos8 ~]# curl -O https://download.samba.org/pub/samba/stable/samba-4.13.3.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 17.5M  100 17.5M    0     0   565k      0  0:00:31  0:00:31 --:--:-- 1384k
[root@centos8 ~]#

(5) 展開とconfigure実施

sambaのtar.gz展開とconfigureを実行します。

[root@centos8 ~]# tar xfz samba-4.13.3.tar.gz
[root@centos8 ~]# cd samba-4.13.3
[root@centos8 samba-4.13.3]# ./configure
Setting top to                           : /root/samba-4.13.3
Setting out to                           : /root/samba-4.13.3/bin
Checking for 'gcc' (C compiler)          : /usr/bin/gcc
Checking for program 'git'               : /usr/bin/git
Checking for c flags '-MMD'              : yes
Checking for program 'gdb'               : /usr/bin/gdb
Checking for header sys/utsname.h        : yes
Checking uname sysname type              : Linux
Checking uname machine type              : x86_64
Checking uname release type              : 4.18.0-240.el8.x86_64
Checking uname version type              : #1 SMP Fri Sep 25 19:48:47 UTC 2020
Checking for header stdio.h              : yes
Checking simple C program                : ok
Checking compiler accepts ['-Werror']    : yes
Checking linker accepts ['-Wl,-rpath,.'] : yes
Checking for rpath library support       : yes
<略>
Checking if compiler accepts -fstack-protector-strong                                           : no
Checking if compiler accepts -fstack-protector                                                  : no
Checking if compiler accepts -fstack-clash-protection                                           : yes
'configure' finished successfully (2m51.769s)
[root@centos8 samba-4.13.3]#

2022/04/25追記: samba-4.16.0 / CentOS8 Stream環境で試したところ、下記のようなpyembedがnot foundとなるエラーで失敗しました。

# ./configure
<略>
python-config                                                                     : /usr/bin/python3-config
Asking python-config for pyembed '--cflags --libs --ldflags --embed' flags        : not found
Asking python-config for pyembed '--cflags --libs --ldflags' flags                : not found
The configuration failed
(complete log in /root/samba-4.16.0/bin/config.log)
#

(6) make & make install

単純にmake ,make installを実行します。

[root@centos8 samba-4.13.3]# make
PYTHONHASHSEED=1 WAF_MAKE=1  ./buildtools/bin/waf build
Waf: Entering directory `/root/samba-4.13.3/bin/default'
symlink: tevent.py -> python/tevent.py
symlink: _tdb_text.py -> python/_tdb_text.py
symlink: _ldb_text.py -> python/_ldb_text.py
symlink: samba/__init__.py -> python/samba/__init__.py
symlink: samba/auth_util.py -> python/samba/auth_util.py
symlink: samba/colour.py -> python/samba/colour.py
symlink: samba/common.py -> python/samba/common.py
symlink: samba/compat.py -> python/samba/compat.py
symlink: samba/dbchecker.py -> python/samba/dbchecker.py
symlink: samba/descriptor.py -> python/samba/descriptor.py
symlink: samba/dnsresolver.py -> python/samba/dnsresolver.py
<略>
Note: Writing samba-gpupdate.8

Waf: Leaving directory `/root/samba-4.13.3/bin/default'
Build commands will be stored in bin/default/compile_commands.json
'build' finished successfully (33m0.654s)
[root@centos8 samba-4.13.3]#
[root@centos8 samba-4.13.3]# make install
PYTHONHASHSEED=1 WAF_MAKE=1  ./buildtools/bin/waf install
Waf: Entering directory `/root/samba-4.13.3/bin/default'
* create /usr/local/samba/etc
* create /usr/local/samba/var
* create /usr/local/samba/var/lib
* create /usr/local/samba/private
* create /usr/local/samba/bind-dns
* create /usr/local/samba/var/locks
* create /usr/local/samba/var/cache
* create /usr/local/samba/var/lock
* create /usr/local/samba/var/run
        Selected embedded Heimdal build
Checking project rules ...
<略>
+ install /usr/local/samba/share/man/man8/samba-gpupdate.8 (from bin/default/source4/scripting/man/samba-gpupdate.8)
Waf: Leaving directory `/root/samba-4.13.3/bin/default'
Build commands will be stored in bin/default/compile_commands.json
'install' finished successfully (14m32.055s)
[root@centos8 samba-4.13.3]#

(7) インストール完了確認

インストールされたsambaのバージョンを確認します。

[root@centos8 samba-4.13.3]# /usr/local/samba/sbin/samba -V
Version 4.13.3
[root@centos8 samba-4.13.3]#

(8) Active Directoryのセットアップ

ドメイン「teatad2.local」を作成します。

sama-tools domain provisionを実行する際のオプションは「–use-rfc2307」を付けて、NIS連携機能を使えるようにします。これによりActiveDirectory上にUID/GID/shellなどの情報も格納できるようになります。

[root@centos8 samba-4.13.3]# /usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --interactive
Realm [TESTAD2.LOCAL]:  testad2.local
Domain [testad2]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: 
DNS forwarder IP address (write 'none' to disable forwarding) [172.17.44.49]:
Administrator password:
Retype password:
INFO 2021-01-21 16:49:45,252 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #2122: Looking up IPv4 addresses
INFO 2021-01-21 16:49:45,257 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #2139: Looking up IPv6 addresses
WARNING 2021-01-21 16:49:45,259 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #2146: No IPv6 address will be assigned
INFO 2021-01-21 16:49:46,177 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #2290: Setting up share.ldb
INFO 2021-01-21 16:49:46,212 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #2294: Setting up secrets.ldb
INFO 2021-01-21 16:49:46,246 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #2299: Setting up the registry
INFO 2021-01-21 16:49:46,348 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #2302: Setting up the privileges database
INFO 2021-01-21 16:49:46,399 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #2305: Setting up idmap db
INFO 2021-01-21 16:49:46,435 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #2312: Setting up SAM db
INFO 2021-01-21 16:49:46,448 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #897: Setting up sam.ldb partitions and settings
INFO 2021-01-21 16:49:46,449 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #909: Setting up sam.ldb rootDSE
INFO 2021-01-21 16:49:46,455 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #1322: Pre-loading the Samba 4 and AD schema
Unable to determine the DomainSID, can not enforce uniqueness constraint on local domainSIDs

INFO 2021-01-21 16:49:46,523 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #1400: Adding DomainDN: DC=testad2,DC=local
INFO 2021-01-21 16:49:46,555 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #1432: Adding configuration container
INFO 2021-01-21 16:49:46,585 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #1447: Setting up sam.ldb schema
INFO 2021-01-21 16:49:51,918 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #1465: Setting up sam.ldb configuration data
INFO 2021-01-21 16:49:52,194 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #1506: Setting up display specifiers
INFO 2021-01-21 16:49:55,576 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #1514: Modifying display specifiers and extended rights
INFO 2021-01-21 16:49:55,641 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #1521: Adding users container
INFO 2021-01-21 16:49:55,644 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #1527: Modifying users container
INFO 2021-01-21 16:49:55,645 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #1530: Adding computers container
INFO 2021-01-21 16:49:55,647 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #1536: Modifying computers container
INFO 2021-01-21 16:49:55,649 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #1540: Setting up sam.ldb data
INFO 2021-01-21 16:49:55,905 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #1570: Setting up well known security principals
INFO 2021-01-21 16:49:55,979 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #1584: Setting up sam.ldb users and groups
INFO 2021-01-21 16:49:56,534 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #1592: Setting up self join
Repacking database from v1 to v2 format (first record CN=MSMQ-Migrated-User,CN=Schema,CN=Configuration,DC=testad2,DC=local)
Repack: re-packed 10000 records so far
Repacking database from v1 to v2 format (first record CN=serviceAdministrationPoint-Display,CN=408,CN=DisplaySpecifiers,CN=Configuration,DC=testad2,DC=local)
Repacking database from v1 to v2 format (first record CN=6bcd568d-8314-11d6-977b-00c04f613221,CN=Operations,CN=DomainUpdates,CN=System,DC=testad2,DC=local)
INFO 2021-01-21 16:50:00,299 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/sambadns.py #1143: Adding DNS accounts
INFO 2021-01-21 16:50:00,350 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/sambadns.py #1177: Creating CN=MicrosoftDNS,CN=System,DC=testad2,DC=local
INFO 2021-01-21 16:50:00,422 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/sambadns.py #1190: Creating DomainDnsZones and ForestDnsZones partitions
INFO 2021-01-21 16:50:00,563 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/sambadns.py #1195: Populating DomainDnsZones and ForestDnsZones partitions
Repacking database from v1 to v2 format (first record DC=h.root-servers.net,DC=RootDNSServers,CN=MicrosoftDNS,DC=DomainDnsZones,DC=testad2,DC=local)
Repacking database from v1 to v2 format (first record DC=_msdcs.testad2.local,CN=MicrosoftDNS,DC=ForestDnsZones,DC=testad2,DC=local)
INFO 2021-01-21 16:50:01,185 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #2026: Setting up sam.ldb rootDSE marking as synchronized
INFO 2021-01-21 16:50:01,192 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #2031: Fixing provision GUIDs
INFO 2021-01-21 16:50:04,392 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #2365: A Kerberos configuration suitable for Samba AD has been generated at /usr/local/samba/private/krb5.conf
INFO 2021-01-21 16:50:04,393 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #2366: Merge the contents of this file with your system krb5.conf or replace it with this one. Do not create a symlink!
INFO 2021-01-21 16:50:04,774 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #2096: Setting up fake yp server settings
INFO 2021-01-21 16:50:04,899 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #490: Once the above files are installed, your Samba AD server will be ready to use
INFO 2021-01-21 16:50:04,900 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #494: Server Role:           active directory domain controller
INFO 2021-01-21 16:50:04,900 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #495: Hostname:              centos8
INFO 2021-01-21 16:50:04,900 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #496: NetBIOS Domain:        TESTAD2
INFO 2021-01-21 16:50:04,900 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #497: DNS Domain:            testad2.local
INFO 2021-01-21 16:50:04,900 pid:88031 /usr/local/samba/lib64/python3.6/site-packages/samba/provision/__init__.py #498: DOMAIN SID:            S-1-5-21-1972786440-1566357171-3630376140
[root@centos8 samba-4.13.3]#

このコマンドにより/usr/local/samba/etc/smb.conf が作成されます。

[root@centos8 samba-4.13.3]# cat /usr/local/samba/etc/smb.conf
# Global parameters
[global]
        dns forwarder = 172.17.44.49
        netbios name = CENTOS8
        realm = TESTAD2.LOCAL
        server role = active directory domain controller
        workgroup = TESTAD2
        idmap_ldb:use rfc2307 = yes

[sysvol]
        path = /usr/local/samba/var/locks/sysvol
        read only = No

[netlogon]
        path = /usr/local/samba/var/locks/sysvol/testad2.local/scripts
        read only = No
[root@centos8 samba-4.13.3]#

(9) resolv.confの書き換え

/etc/resolv.conf のnameserverをCentOS8のネットワークインタフェースIPに変更し、またsearchをActive Directory名に変更します。

[root@centos8 samba-4.13.3]# cat /etc/resolv.conf
# Generated by NetworkManager
search testad2.local
nameserver 172.17.44.47
[root@centos8 samba-4.13.3]#

(10) /etc/krb5.conf の書き換え

/usr/local/samba/private/krb5.conf に元となるものが自動生成されているので、それを使用して /etc/krb5.conf を置き換えます。

[root@centos8 samba-4.13.3]# ls -l /etc/krb5.conf /usr/local/samba/private/krb5.conf
-rw-r--r--. 1 root root 812  8月 12 04:52 /etc/krb5.conf
-rw-r--r--. 1 root root 197  1月 21 16:50 /usr/local/samba/private/krb5.conf
[root@centos8 samba-4.13.3]# cat /usr/local/samba/private/krb5.conf
[libdefaults]
        default_realm = TESTAD2.LOCAL
        dns_lookup_realm = false
        dns_lookup_kdc = true

[realms]
TESTAD2.LOCAL = {
        default_domain = testad2.local
}

[domain_realm]
        centos8 = TESTAD2.LOCAL
[root@centos8 samba-4.13.3]# cp /usr/local/samba/private/krb5.conf /etc/krb5.conf
cp: '/etc/krb5.conf' を上書きしますか? y
[root@centos8 samba-4.13.3]# cat /etc/krb5.conf
[libdefaults]
        default_realm = TESTAD2.LOCAL
        dns_lookup_realm = false
        dns_lookup_kdc = true

[realms]
TESTAD2.LOCAL = {
        default_domain = testad2.local
}

[domain_realm]
        centos8 = TESTAD2.LOCAL
[root@centos8 samba-4.13.3]#

(11) sambaの起動

sambaが起動していないことを確認した上で、sambaを起動します。

[root@centos8 samba-4.13.3]# ps -ef|grep samba
root       88045    1640  0 16:51 pts/0    00:00:00 grep --color=auto samba
[root@centos8 samba-4.13.3]# /usr/local/samba/sbin/samba
[root@centos8 samba-4.13.3]# ps -ef|grep samba
root       88047       1 31 16:51 ?        00:00:00 samba: root process        .
root       88048   88047  0 16:51 ?        00:00:00 samba: tfork waiter process(88049)
root       88049   88048  0 16:51 ?        00:00:00 samba: task[s3fs] pre-fork master
root       88050   88047  0 16:51 ?        00:00:00 samba: tfork waiter process(88051)
root       88051   88050  1 16:51 ?        00:00:00 samba: task[rpc] pre-fork master
root       88052   88049  0 16:51 ?        00:00:00 samba: tfork waiter process(88053)
root       88053   88052 29 16:51 ?        00:00:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground
root       88054   88047  0 16:51 ?        00:00:00 samba: tfork waiter process(88055)
root       88055   88054  0 16:51 ?        00:00:00 samba: task[nbt] pre-fork master
root       88056   88051  0 16:51 ?        00:00:00 samba: tfork waiter process(88058)
root       88057   88047  0 16:51 ?        00:00:00 samba: tfork waiter process(88060)
root       88058   88056  1 16:51 ?        00:00:00 samba: task[rpc] pre-forked worker(0)
root       88059   88051  0 16:51 ?        00:00:00 samba: tfork waiter process(88061)
root       88060   88057  0 16:51 ?        00:00:00 samba: task[wrepl] pre-fork master
root       88061   88059  0 16:51 ?        00:00:00 samba: task[rpc] pre-forked worker(1)
root       88062   88047  0 16:51 ?        00:00:00 samba: tfork waiter process(88065)
root       88063   88051  0 16:51 ?        00:00:00 samba: tfork waiter process(88064)
root       88064   88063  0 16:51 ?        00:00:00 samba: task[rpc] pre-forked worker(2)
root       88065   88062 89 16:51 ?        00:00:01 samba: task[ldap] pre-fork master
root       88066   88051  0 16:51 ?        00:00:00 samba: tfork waiter process(88068)
root       88067   88047  0 16:51 ?        00:00:00 samba: tfork waiter process(88069)
root       88068   88066  0 16:51 ?        00:00:00 samba: task[rpc] pre-forked worker(3)
root       88069   88067  0 16:51 ?        00:00:00 samba: task[cldap] pre-fork master
root       88070   88047  0 16:51 ?        00:00:00 samba: tfork waiter process(88071)
root       88071   88070  1 16:51 ?        00:00:00 samba: task[kdc] pre-fork master
root       88072   88047  0 16:51 ?        00:00:00 samba: tfork waiter process(88073)
root       88073   88072  1 16:51 ?        00:00:00 samba: task[drepl] pre-fork master
root       88074   88047  0 16:51 ?        00:00:00 samba: tfork waiter process(88079)
root       88075   88071  0 16:51 ?        00:00:00 samba: tfork waiter process(88076)
root       88076   88075  0 16:51 ?        00:00:00 samba: task[kdc] pre-forked worker(0)
root       88077   88071  0 16:51 ?        00:00:00 samba: tfork waiter process(88078)
root       88078   88077  0 16:51 ?        00:00:00 samba: task[kdc] pre-forked worker(1)
root       88079   88074  0 16:51 ?        00:00:00 samba: task[winbindd] pre-fork master
root       88080   88071  0 16:51 ?        00:00:00 samba: tfork waiter process(88084)
root       88081   88047  0 16:51 ?        00:00:00 samba: tfork waiter process(88083)
root       88082   88079  0 16:51 ?        00:00:00 samba: tfork waiter process(88086)
root       88083   88081  0 16:51 ?        00:00:00 samba: task[ntp_signd] pre-fork master
root       88084   88080  0 16:51 ?        00:00:00 samba: task[kdc] pre-forked worker(2)
root       88085   88047  0 16:51 ?        00:00:00 samba: tfork waiter process(88088)
root       88086   88082 25 16:51 ?        00:00:00 /usr/local/samba/sbin/winbindd -D --option=server role check:inhibit=yes --foreground
root       88087   88071  0 16:51 ?        00:00:00 samba: tfork waiter process(88089)
root       88088   88085  0 16:51 ?        00:00:00 samba: task[kcc] pre-fork master
root       88089   88087  0 16:51 ?        00:00:00 samba: task[kdc] pre-forked worker(3)
root       88090   88047  0 16:51 ?        00:00:00 samba: tfork waiter process(88091)
root       88091   88090  0 16:51 ?        00:00:00 samba: task[dnsupdate] pre-fork master
root       88092   88047  0 16:51 ?        00:00:00 samba: tfork waiter process(88093)
root       88093   88092  1 16:51 ?        00:00:00 samba: task[dns] pre-fork master
root       88100   88053  0 16:51 ?        00:00:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground
root       88101   88053  0 16:51 ?        00:00:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground
root       88106   88053  0 16:51 ?        00:00:00 /usr/local/samba/sbin/smbd -D --option=server role check:inhibit=yes --foreground
root       88110   88065  0 16:51 ?        00:00:00 samba: tfork waiter process(88111)
root       88111   88110  0 16:51 ?        00:00:00 samba: task[ldap] pre-forked worker(0)
root       88112   88065  0 16:51 ?        00:00:00 samba: tfork waiter process(88113)
root       88113   88112  0 16:51 ?        00:00:00 samba: task[ldap] pre-forked worker(1)
root       88114   88065  0 16:51 ?        00:00:00 samba: tfork waiter process(88115)
root       88115   88114  0 16:51 ?        00:00:00 samba: task[ldap] pre-forked worker(2)
root       88116   88065  0 16:51 ?        00:00:00 samba: tfork waiter process(88117)
root       88117   88116  0 16:51 ?        00:00:00 samba: task[ldap] pre-forked worker(3)
root       88119    1640  0 16:51 pts/0    00:00:00 grep --color=auto samba
[root@centos8 samba-4.13.3]#

(12) sambaの動作確認

CentOS内部からSMB接続を行うテストを行います。

[root@centos8 samba-4.13.3]# /usr/local/samba/bin/smbclient --version
Version 4.13.3
[root@centos8 samba-4.13.3]# /usr/local/samba/bin/smbclient -L localhost -U%

        Sharename       Type      Comment
        ---------       ----      -------
        sysvol          Disk
        netlogon        Disk
        IPC$            IPC       IPC Service (Samba 4.13.3)
SMB1 disabled -- no workgroup available
[root@centos8 samba-4.13.3]#

次にnetlogon共有にAdministrator権限でアクセスできるか確認します。

[root@centos8 samba-4.13.3]# /usr/local/samba/bin/smbclient //localhost/netlogon -UAdministrator -c 'ls'
Enter TESTAD2\Administrator's password:
  .                                   D        0  Thu Jan 21 16:49:46 2021
  ..                                  D        0  Thu Jan 21 16:49:56 2021

                63747676 blocks of size 1024. 59865376 blocks available
[root@centos8 samba-4.13.3]#

(13) AD DNSの動作確認

AD DNSが想定通りに動作しているかをテストします。

まず「/usr/local/samba/bin/samba-tool dns zonelist 127.0.0.1 -U Administrator」を実行して、登録されているDNSゾーンを確認します。

[root@centos8 samba-4.13.3]# /usr/local/samba/bin/samba-tool dns zonelist 127.0.0.1 -U Administrator
Password for [TESTAD2\Administrator]:
  2 zone(s) found

  pszZoneName                 : testad2.local
  Flags                       : DNS_RPC_ZONE_DSINTEGRATED DNS_RPC_ZONE_UPDATE_SECURE
  ZoneType                    : DNS_ZONE_TYPE_PRIMARY
  Version                     : 50
  dwDpFlags                   : DNS_DP_AUTOCREATED DNS_DP_DOMAIN_DEFAULT DNS_DP_ENLISTED
  pszDpFqdn                   : DomainDnsZones.testad2.local

  pszZoneName                 : _msdcs.testad2.local
  Flags                       : DNS_RPC_ZONE_DSINTEGRATED DNS_RPC_ZONE_UPDATE_SECURE
  ZoneType                    : DNS_ZONE_TYPE_PRIMARY
  Version                     : 50
  dwDpFlags                   : DNS_DP_AUTOCREATED DNS_DP_FOREST_DEFAULT DNS_DP_ENLISTED
  pszDpFqdn                   : ForestDnsZones.testad2.local
[root@centos8 samba-4.13.3]#

Active Directoryで使用するDNSのSRVレコードが登録されているかをhostコマンドを使って確認します。

[root@centos8 samba-4.13.3]# host -t SRV _ldap._tcp.testad2.local 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:

_ldap._tcp.testad2.local has SRV record 0 100 389 centos8.testad2.local.
[root@centos8 samba-4.13.3]# host -t SRV _kerberos._udp.testad2.local 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:

_kerberos._udp.testad2.local has SRV record 0 100 88 centos8.testad2.local.
[root@centos8 samba-4.13.3]#

ADサーバのホスト名が登録されているか確認します。

[root@centos8 samba-4.13.3]# host -t A centos8.testad2.local 127.0.0.1
Using domain server:
Name: 127.0.0.1
Address: 127.0.0.1#53
Aliases:

centos8.testad2.local has address 172.17.44.47
[root@centos8 samba-4.13.3]#

こんな感じで応答があればOKです。「Host ~ not found: 3(NXDOMAIN)」なんて言われたらホスト名が登録されていません。

(14) Kerberosの動作確認

「kinit administrator」を実行して確認します。

(なお、kinit,klistがインストールされていない場合は「yum install krb5-workstation」でインストールします。

[root@centos8 samba-4.13.3]# kinit administrator
Password for administrator@TESTAD2.LOCAL:
Warning: Your password will expire in 41 days on 2021年03月04日 16時49分56秒
[root@centos8 samba-4.13.3]#

正常に設定されていると、Administratorユーザのパスワード有効期限が表示されます。

「klist」コマンドでも確認します。

[root@centos8 samba-4.13.3]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: administrator@TESTAD2.LOCAL

Valid starting       Expires              Service principal
2021-01-21T16:58:49  2021-01-22T02:58:49  krbtgt/TESTAD2.LOCAL@TESTAD2.LOCAL
        renew until 2021-01-22T16:58:46
[root@centos8 samba-4.13.3]#

なお、DNSサーバ指定が誤っていてAD DNS以外を指定してしまっている場合やsambaが起動していない場合は下記の様になります。

[root@centos8 samba-4.13.3]# kinit administrator
kinit: Cannot find KDC for realm "TESTAD2.LOCAL" while getting initial credentials
[root@centos8 samba-4.13.3]#

(15) フォレストとドメインの機能レベル確認

作成したActive Directoryのドメインの機能レベルとフォレストの機能レベルを確認します。

[root@centos8 samba-4.13.3]# /usr/local/samba/bin/samba-tool domain level show
Domain and forest function level for domain 'DC=testad2,DC=local'

Forest function level: (Windows) 2008 R2
Domain function level: (Windows) 2008 R2
Lowest function level of a DC: (Windows) 2008 R2
[root@centos8 samba-4.13.3]#

samba 4.13.3でもWindows Server 2008 R2が標準設定となっています。

(16) firewalldの設定

CentOS8ではfirewalldによりポートへのアクセスが制限されています。

まずは「firewall-cmd –list-all」コマンドで確認します。

[root@centos8 ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192
  sources:
  services: cockpit dhcpv6-client ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
[root@centos8 ~]#

開けるべきポートのテンプレートがいくつか用意されているので「firewall-cmd –get-services」を実行して確認します。

[root@centos8 ~]# firewall-cmd --get-services
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bb bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc bittorrent-lsd ceph ceph-mon cfengine cockpit condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns dns-over-tls docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger freeipa-4 freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git grafana gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kdeconnect kerberos kibana klogin kpasswd kprop kshell kube-apiserver ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns memcache minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql murmur mysql nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy prometheus proxy-dhcp ptp pulseaudio puppetmaster quassel radius rdp redis redis-sentinel rpc-bind rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync spotify-sync squid ssdp ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tentacle tftp tftp-client tile38 tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server
[root@centos8 ~]#

「samba」「samba-client」「samba-dc」という3種類の定義がある。

それぞれどういう設定されているかは/usr/lib/firewalld/services ディレクトリにあるxmlファイルを確認する。

[root@centos8 ~]# ls /usr/lib/firewalld/services/sam*
/usr/lib/firewalld/services/samba-client.xml
/usr/lib/firewalld/services/samba-dc.xml
/usr/lib/firewalld/services/samba.xml
[root@centos8 ~]# cat /usr/lib/firewalld/services/samba.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Samba</short>
  <description>This option allows you to access and participate in Windows file and printer sharing networks. You need the samba package installed for this option to be useful.</description>
  <port protocol="udp" port="137"/>
  <port protocol="udp" port="138"/>
  <port protocol="tcp" port="139"/>
  <port protocol="tcp" port="445"/>
  <helper name="netbios-ns"/>
</service>
[root@centos8 ~]# cat /usr/lib/firewalld/services/samba-dc.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Samba DC</short>
  <description>This option allows you to use this computer as a Samba Active Directory Domain Controller. You need the samba-dc package installed for this option to be useful.</description>
  <port protocol="tcp" port="53"/><!-- DNS -->
  <port protocol="udp" port="53"/><!-- DNS -->
  <port protocol="tcp" port="88"/><!-- Kerberos -->
  <port protocol="udp" port="88"/><!-- Kerberos -->
  <port protocol="tcp" port="135"/><!-- End Point Mapper (DCE/RPC Locator Service -->
  <port protocol="udp" port="137"/><!-- NetBIOS Name Service -->
  <port protocol="udp" port="138"/><!-- NetBIOS Datagram -->
  <port protocol="tcp" port="139"/><!-- NetBIOS Session -->
  <port protocol="tcp" port="389"/><!-- LDAP -->
  <port protocol="udp" port="389"/><!-- CLDAP -->
  <port protocol="tcp" port="445"/><!-- SMB over TCP -->
  <port protocol="tcp" port="464"/><!-- Kerberos kpasswd -->
  <port protocol="udp" port="464"/><!-- Kerberos kpasswd -->
  <port protocol="tcp" port="636"/><!-- LDAPS -->
  <port protocol="tcp" port="49152-65535"/><!-- Dynamic RPC Ports -->
  <port protocol="tcp" port="3268"/><!-- Global Catalog -->
  <port protocol="tcp" port="3269"/><!-- Global Catalog SSL -->
  <helper name="netbios-ns"/>
</service>
[root@centos8 ~]# cat /usr/lib/firewalld/services/samba-client.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
  <short>Samba Client</short>
  <description>This option allows you to access Windows file and printer sharing networks. You need the samba-client package installed for this option to be useful.</description>
  <port protocol="udp" port="137"/>
  <port protocol="udp" port="138"/>
  <helper name="netbios-ns"/>
</service>
[root@centos8 ~]#

次にsambaで使用するポート一覧を「Samba AD DC Port Usage」で確認します。

サービスポートプロトコルfirewalld定義
DNS53tcp/udpsamba-dc
Kerberos88tcp/udpsamba-dc
ntp(注1)123udpntp
End Point Mapper (DCE/RPC Locator Service)135tcpsamba-dc
NetBIOS Name Service137udpsamba-dc,samba,samba-client
NetBIOS Datagram138udpsamba-dc,samba,samba-client
NetBIOS Session139tcpsamba-dc,samba
LDAP389tcp/udpsamba-dc
SMB over TCP445tcpsamba-dc,samba
Kerberos kpasswd464tcp/udpsamba-dc
LDAPS 注2636tcpsamba-dc
Global Catalog3268tcpsamba-dc
Global Catalog SSL 注23269tcpsamba-dc
Dynamic RPC Ports 注349152-65535tcpsamba-dc

注1: ntpはADのDCサーバとして動作させる場合に設定するべきもの
注2: smb.conf内で「tls enabled=yes」設定を行った場合に必要なポート
注3: samba 4.7以降で必要なポート範囲。samba 4.7より前はTCP 1024~1300だった。smb.confの「rpc server port」でポートの範囲を変更することも可能

CentOS8では「samba-dc」と「ntp」を使用すれば良いようだ。

[root@centos8 ~]# firewall-cmd --permanent --zone=public --add-service=samba-dc
success
[root@centos8 ~]# firewall-cmd --permanent --zone=public --add-service=ntp
success
[root@centos8 ~]# firewall-cmd --reload
success
[root@centos8 ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens192
  sources:
  services: cockpit dhcpv6-client ntp samba-dc ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
[root@centos8 ~]#

なお、CentOS7の場合は下記だった。

# firewall-cmd --permanent --zone=public --add-service=samba
# firewall-cmd --permanent --zone=public --add-service=dns
# firewall-cmd --permanent --zone=public --add-service=freeipa-ldaps
# firewall-cmd --permanent --zone=public --add-service=freeipa-trust
# firewall-cmd --permanent --zone=public --add-port=49152-65535/tcp
# firewall-cmd --permanent --zone=public --add-port=3269/tcp
# firewall-cmd --reload

(17) systemdへの登録

自動起動をするためにsystemdへ登録します。

CentOS7以降のsystemd環境については「Managing the Samba AD DC Service Using Systemd」、CentOS6などのinit script環境は「Managing the Samba AD DC Service Using an Init Script」を参照して実行します。

CentOS8の場合はまず既存でSamba関連の登録がないことを確認します。

登録されている可能性がある名前は「smbd」「nmbd」「winbind」「samba」なので下記の様に確認します

[root@centos8 ~]# systemctl list-unit-files|grep -e smb -e nmb -e winb -e samba
[root@centos8 ~]#

何も表示されなければ問題ありません。

既に登録がある場合は、それを使用しないように「systemctl mask 名前」「systemctl disable 名前」とコマンドを2つ実行して無効化します。

次にsystemdへ登録するサービス起動用のファイル /etc/systemd/system/samba-ad-dc.service を作成します。

[root@centos8 ~]# vi /etc/systemd/system/samba-ad-dc.service
[root@centos8 ~]# cat /etc/systemd/system/samba-ad-dc.service
[Unit]
Description=Samba Active Directory Domain Controller
After=network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/samba/sbin/samba -D
PIDFile=/usr/local/samba/var/run/samba.pid
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
[root@centos8 ~]#

上記ファイル作成後「systemctl daemon-reload」を実行するとsystemd上で認識されます。

[root@centos8 ~]# systemctl daemon-reload
[root@centos8 ~]# systemctl list-unit-files|grep -e smb -e nmb -e winb -e samba
samba-ad-dc.service                        disabled
[root@centos8 ~]#

初期状態は「disabled」なので、有効化します。

[root@centos8 ~]# systemctl enable samba-ad-dc
Created symlink /etc/systemd/system/multi-user.target.wants/samba-ad-dc.service → /etc/systemd/system/samba-ad-dc.service.
[root@centos8 ~]# systemctl list-unit-files|grep -e smb -e nmb -e winb -e samba
samba-ad-dc.service                        enabled
[root@centos8 ~]#

いま手動で起動しているsambaをsystemd管轄下に変えるため、sambaを強制停止します。

[root@centos8 ~]# pkill samba
[root@centos8 ~]# ps -ef|grep samba
root       88681    1640  0 17:02 pts/0    00:00:00 grep --color=auto samba
[root@centos8 ~]#

(18) SELinux対応

systemdで起動しようとすると失敗します。

[root@centos8 ~]# systemctl start samba-ad-dc
Job for samba-ad-dc.service failed because the control process exited with error code.
See "systemctl status samba-ad-dc.service" and "journalctl -xe" for details.
[root@centos8 ~]# journalctl -xe
 1月 21 17:02:40 centos8.testad2.local systemd[88684]: samba-ad-dc.service: Fai>
-- Subject: Process /usr/local/samba/sbin/samba could not be executed
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- The process /usr/local/samba/sbin/samba could not be executed and failed.
--
-- The error number returned by this process is 13.
 1月 21 17:02:40 centos8.testad2.local systemd[1]: samba-ad-dc.service: Control>
 1月 21 17:02:40 centos8.testad2.local systemd[1]: samba-ad-dc.service: Failed >
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- The unit samba-ad-dc.service has entered the 'failed' state with result 'exi>
 1月 21 17:02:40 centos8.testad2.local systemd[1]: Failed to start Samba Active>
-- Subject: Unit samba-ad-dc.service has failed
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- Unit samba-ad-dc.service has failed.
--
-- The result is failed.
[root@centos8 ~]#

/var/log/messages を確認すると、下記の様な出力です。

Nov  2 16:48:07 centos8 systemd[1]: Starting Samba Active Directory Domain Controller...
Nov  2 16:48:07 centos8 systemd[48877]: samba-ad-dc.service: Failed to execute command: Permission denied
Nov  2 16:48:07 centos8 systemd[48877]: samba-ad-dc.service: Failed at step EXEC spawning /usr/local/samba/sbin/samba: Permission denied
Nov  2 16:48:07 centos8 systemd[1]: samba-ad-dc.service: Control process exited, code=exited status=203
Nov  2 16:48:07 centos8 systemd[1]: samba-ad-dc.service: Failed with result 'exit-code'.
Nov  2 16:48:07 centos8 systemd[1]: Failed to start Samba Active Directory Domain Controller.

これはSELinuxによりsystemdから/usr/local/samba/sbin/samba へのアクセスが制限されているために発生しています。

samba公式だと「Troubleshooting SELinux on a Samba AD DC」というページがありますが、かなり雑な対応策になっています。

ちゃんと対応すると面倒くさいので、ひとまず「SELINUX=permissive」で逃げます。

(18-0) SELinuxをちゃんと使わない設定

いろいろ面倒なので、とりあえず、SELinuxを警告だけする形で設定します。

/etc/selinux/config内の「SELINUX=enforcing」を「SELINUX=permissive」に変更して、OS再起動します。

これで、sambaがひとまず起動する様になっているはずです

で・・・本来はここからSELinux用にちゃんと設定していく必要があるのですが、まだまとめ切れていません。

なので、ここから先は参考情報のみとなります。

(18-1) SELinux対応のための調査

現状、/usr/local/sambaに設定されているコンテキスト情報を確認

[root@centos8 ~]# ls -lZd /usr/local/samba/
drwxr-xr-x. 13 root root unconfined_u:object_r:usr_t:s0 149 11月  2 14:10 /usr/local/samba/
[root@centos8 ~]#

/var/log/audit/audit.log に出力されているsamba関連のSELinuxの動作ログを確認します。

[root@centos8 ~]# grep samba /var/log/audit/audit.log
type=AVC msg=audit(1604303085.462:635): avc:  denied  { execute } for  pid=48851 comm="(samba)" name="samba" dev="dm-0" ino=2049192 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file permissive=0
type=SERVICE_START msg=audit(1604303085.468:636): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=samba-ad-dc comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'UID="root" AUID="unset"
type=AVC msg=audit(1604303085.468:637): avc:  denied  { unlink } for  pid=1 comm="systemd" name="samba.pid" dev="dm-0" ino=52125406 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:usr_t:s0 tclass=file permissive=0
type=AVC msg=audit(1604303092.550:638): avc:  denied  { execute } for  pid=48859 comm="(samba)" name="samba" dev="dm-0" ino=2049192 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file permissive=0
type=SERVICE_START msg=audit(1604303092.555:639): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=samba-ad-dc comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'UID="root" AUID="unset"
type=AVC msg=audit(1604303092.555:640): avc:  denied  { unlink } for  pid=1 comm="systemd" name="samba.pid" dev="dm-0" ino=52125406 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:usr_t:s0 tclass=file permissive=0
type=AVC msg=audit(1604303287.537:641): avc:  denied  { execute } for  pid=48877 comm="(samba)" name="samba" dev="dm-0" ino=2049192 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file permissive=0
type=SERVICE_START msg=audit(1604303287.541:642): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=samba-ad-dc comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'UID="root" AUID="unset"
type=AVC msg=audit(1604303287.541:643): avc:  denied  { unlink } for  pid=1 comm="systemd" name="samba.pid" dev="dm-0" ino=52125406 scontext=system_u:system_r:init_t:s0 tcontext=unconfined_u:object_r:usr_t:s0 tclass=file permissive=0
[root@centos8 ~]#

次に /etc/selinux/targeted/contexts/ にある既存定義でsambaに関するものを調べて見る。

[root@centos8 ~]# grep -e smb -e nmbd -e samba -e winbind /etc/selinux/targeted/contexts/files/file_contexts
/var/nmbd(/.*)? system_u:object_r:samba_var_t:s0
/etc/samba(/.*)?        system_u:object_r:samba_etc_t:s0
/opt/vmware/(workstation|player)/bin/vmware-nmbd        --      system_u:object_r:vmware_host_exec_t:s0
/opt/vmware/(workstation|player)/bin/vmware-smbd        --      system_u:object_r:vmware_host_exec_t:s0
/opt/vmware/(workstation|player)/bin/vmware-smbpasswd   --      system_u:object_r:vmware_host_exec_t:s0
/opt/vmware/(workstation|player)/bin/vmware-smbpasswd\.bin      --      system_u:object_r:vmware_host_exec_t:s0
/var/run/nmbd(/.*)?     system_u:object_r:nmbd_var_run_t:s0
/var/lib/samba(/.*)?    system_u:object_r:samba_var_t:s0
/var/log/samba(/.*)?    system_u:object_r:samba_log_t:s0
/var/run/samba(/.*)?    system_u:object_r:smbd_var_run_t:s0
/var/cache/samba(/.*)?  system_u:object_r:samba_var_t:s0
/var/spool/samba(/.*)?  system_u:object_r:samba_spool_t:s0
/var/run/winbindd(/.*)? system_u:object_r:winbind_var_run_t:s0
/var/run/samba/nmbd(/.*)?       system_u:object_r:nmbd_var_run_t:s0
/var/lib/samba/scripts(/.*)?    system_u:object_r:samba_unconfined_script_exec_t:s0
/var/run/samba/winbindd(/.*)?   system_u:object_r:winbind_var_run_t:s0
/usr/lib/systemd/system/nmb.*   --      system_u:object_r:samba_unit_file_t:s0
/usr/lib/systemd/system/smb.*   --      system_u:object_r:samba_unit_file_t:s0
/usr/lib/systemd/system/winbind.*       --      system_u:object_r:samba_unit_file_t:s0
/var/lib/samba/winbindd_privileged(/.*)?        system_u:object_r:winbind_var_run_t:s0
/var/cache/samba/winbindd_privileged(/.*)?      system_u:object_r:winbind_var_run_t:s0
/usr/bin/net    --      system_u:object_r:samba_net_exec_t:s0
/usr/sbin/nmbd  --      system_u:object_r:nmbd_exec_t:s0
/usr/sbin/smbd  --      system_u:object_r:smbd_exec_t:s0
/usr/bin/smbmnt --      system_u:object_r:smbmount_exec_t:s0
/usr/bin/smbmount       --      system_u:object_r:smbmount_exec_t:s0
/usr/bin/ntlm_auth      --      system_u:object_r:winbind_helper_exec_t:s0
/usr/sbin/winbindd      --      system_u:object_r:winbind_exec_t:s0
/usr/bin/smbcontrol     --      system_u:object_r:smbcontrol_exec_t:s0
/etc/rc\.d/init\.d/nmb  --      system_u:object_r:samba_initrc_exec_t:s0
/etc/rc\.d/init\.d/smb  --      system_u:object_r:samba_initrc_exec_t:s0
/etc/samba/smbpasswd    --      system_u:object_r:samba_secrets_t:s0
/usr/bin/vmware-nmbd    --      system_u:object_r:vmware_host_exec_t:s0
/usr/bin/vmware-smbd    --      system_u:object_r:vmware_host_exec_t:s0
/etc/samba/passdb\.tdb  --      system_u:object_r:samba_secrets_t:s0
/etc/samba/MACHINE\.SID --      system_u:object_r:samba_secrets_t:s0
/etc/samba/secrets\.tdb --      system_u:object_r:samba_secrets_t:s0
/var/run/samba/nmbd\.pid        --      system_u:object_r:nmbd_var_run_t:s0
/var/run/samba/smbd\.pid        --      system_u:object_r:smbd_var_run_t:s0
/etc/rc\.d/init\.d/winbind      --      system_u:object_r:samba_initrc_exec_t:s0
/usr/bin/vmware-smbpasswd       --      system_u:object_r:vmware_host_exec_t:s0
/var/run/samba/brlock\.tdb      --      system_u:object_r:smbd_var_run_t:s0
/var/run/samba/locking\.tdb     --      system_u:object_r:smbd_var_run_t:s0
/var/run/samba/gencache\.tdb    --      system_u:object_r:smbd_var_run_t:s0
/var/run/samba/messages\.tdb    --      system_u:object_r:nmbd_var_run_t:s0
/var/run/samba/sessionid\.tdb   --      system_u:object_r:smbd_var_run_t:s0
/usr/bin/vmware-smbpasswd\.bin  --      system_u:object_r:vmware_host_exec_t:s0
/var/run/samba/namelist\.debug  --      system_u:object_r:nmbd_var_run_t:s0
/var/run/samba/share_info\.tdb  --      system_u:object_r:smbd_var_run_t:s0
/var/run/samba/unexpected\.tdb  --      system_u:object_r:nmbd_var_run_t:s0
/usr/share/munin/plugins/samba  --      system_u:object_r:services_munin_plugin_exec_t:s0
/var/run/samba/connections\.tdb --      system_u:object_r:smbd_var_run_t:s0
/usr/lib/nagios/plugins/check_disk_smb  --      system_u:object_r:nagios_checkdisk_plugin_exec_t:s0
/usr/share/system-config-samba/system-config-samba\.py  --      system_u:object_r:bin_t:s0
/usr/share/system-config-samba/system-config-samba-mechanism\.py        --      system_u:object_r:sambagui_exec_t:s0
[root@centos8 ~]#

なお、今回は扱わないが、ファイルサーバとして使う場合は、SELinuxの下記パラメータも関係してくる

[root@centos8 ~]# getsebool -a|grep samba
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_load_libgfapi --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
tmpreaper_use_samba --> off
use_samba_home_dirs --> off
virt_use_samba --> off
[root@centos8 ~]#

RHEL8/CentOS8の標準samba 4.12では新規Active Directoryサーバの構築は非サポート?


RHEL8/CentOS8/Oracle Linux 8で用意されているsambaパッケージを使ってActive Direcotryサーバを立てることができるか確認してみた。

公式資料:[Red Hat Enterprise Linux 8 にさまざまな種類のサーバーをデプロイするためのガイド]-[第3章 SAMBA をサーバーとして使用]

まずは、パッケージのインストール

# yum install samba
<略>
# rpm -qa|grep samba
samba-libs-4.12.3-12.el8.3.x86_64
samba-common-4.12.3-12.el8.3.noarch
samba-client-libs-4.12.3-12.el8.3.x86_64
samba-common-tools-4.12.3-12.el8.3.x86_64
samba-common-libs-4.12.3-12.el8.3.x86_64
samba-4.12.3-12.el8.3.x86_64
#

で、RHEL8/CentOS8での特徴の1つ、「samba-toolが無い」問題。

じゃぁ、どうするの?と前出のマニュアル見てみれば手動で /etc/samba/smb.conf を編集している。

初期状態でどんな設定になるのか

[root@samba48 ~]# ls -l /etc/samba/
合計 20
-rw-r--r--. 1 root root    20  8月 18 05:50 lmhosts
-rw-r--r--. 1 root root   706  8月 18 05:50 smb.conf
-rw-r--r--. 1 root root 11327  8月 18 05:50 smb.conf.example
[root@samba48 ~]# cat /etc/samba/smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.

[global]
        workgroup = SAMBA
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw

[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @printadmin root
        force group = @printadmin
        create mask = 0664
        directory mask = 0775
[root@samba48 ~]#

参考まで、samba-toolsで作った場合のsmb.confは下記の様になっている。

# Global parameters
[global]
        dns forwarder = 上DNSサーバIPアドレス
        netbios name = samba48
        realm = testad2.local
        server role = active directory domain controller
        workgroup = TESTAD2
        idmap_ldb:use rfc2307 = yes
        allow dns updates = nonsecure
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbindd, ntp_signd, kcc, dnsupdate dns
        ldap server require strong auth = no

[netlogon]
        path = /usr/local/samba/var/locks/sysvol/testad2.local/scripts
        read only = No

[sysvol]
        path = /usr/local/samba/var/locks/sysvol
        read only = No

で、[第3章 SAMBA をサーバーとして使用]を見ると、「スタンドアローンサーバとして単独WORKGROUPをたてる場合」と「既存Active Directory環境にメンバーサーバとして参加する場合」しか用意されておらず、「新規Active Directory環境を作る場合」というものが無い。

samba-toolコマンドを使用しない場合のActive Directory構築手順も見当たらないため、RHEL8/CentOS8が標準で用意しているsambaパッケージを使用しての構築はできないようだ。


CentOS8の場合「yum search samba」でパッケージ検索すると、「centos-releae-samba41?」といった追加レポジトリが出てくる。

[root@samba48 ~]# yum search samba
メタデータの期限切れの最終確認: 0:30:30 時間前の 2021年01月21日 09時31分03秒 に実施しました。
==================================== 名前 完全一致: samba ====================================
samba.x86_64 : Server and Client software to interoperate with Windows machines
================================== 名前 & 概要 一致: samba ===================================
centos-release-samba411.noarch : Samba 4.11 packages from the CentOS Storage SIG repository
centos-release-samba412.noarch : Samba 4.12 packages from the CentOS Storage SIG repository
centos-release-samba413.noarch : Samba 4.13 packages from the CentOS Storage SIG repository
ipa-client-samba.x86_64 : Tools to configure Samba on IPA client
pcp-pmda-samba.x86_64 : Performance Co-Pilot (PCP) metrics for Samba
python3-samba.i686 : Samba Python3 libraries
python3-samba.x86_64 : Samba Python3 libraries
python3-samba-test.x86_64 : Samba Python libraries
samba-client.x86_64 : Samba client programs
samba-client-libs.x86_64 : Samba client libraries
samba-client-libs.i686 : Samba client libraries
samba-common.noarch : Files used by both Samba servers and clients
samba-common-libs.x86_64 : Libraries used by both Samba servers and clients
samba-common-tools.x86_64 : Tools for Samba servers and clients
samba-krb5-printing.x86_64 : Samba CUPS backend for printing with Kerberos
samba-libs.x86_64 : Samba libraries
samba-libs.i686 : Samba libraries
samba-test.x86_64 : Testing tools for Samba servers and clients
samba-test-libs.x86_64 : Libraries need by the testing tools for Samba servers and clients
samba-winbind.x86_64 : Samba winbind
samba-winbind-clients.x86_64 : Samba winbind clients
samba-winbind-krb5-locator.x86_64 : Samba winbind krb5 locator
samba-winbind-modules.i686 : Samba winbind modules
samba-winbind-modules.x86_64 : Samba winbind modules
====================================== 名前 一致: samba ======================================
samba-pidl.noarch : Perl IDL compiler
====================================== 概要 一致: samba ======================================
ctdb.x86_64 : A Clustered Database based on Samba's Trivial Database (TDB)
[root@samba48 ~]#

centos-release-samba413をインストールしてみる

[root@samba48 ~]# yum install centos-release-samba413
メタデータの期限切れの最終確認: 1:32:19 時間前の 2021年01月21日 09時31分03秒 に実施しました。
依存関係が解決しました。
==============================================================================================
 パッケージ                            Arch           バージョン         リポジトリー   サイズ
==============================================================================================
インストール:
 centos-release-samba413               noarch         1.0-1.el8          extras         8.8 k
依存関係のインストール:
 centos-release-storage-common         noarch         2-2.el8            extras         9.4 k

トランザクションの概要
==============================================================================================
インストール  2 パッケージ

ダウンロードサイズの合計: 18 k
インストール済みのサイズ: 2.0 k
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/2): centos-release-samba413-1.0-1.el8.noarch.rpm           231 kB/s | 8.8 kB     00:00
(2/2): centos-release-storage-common-2-2.el8.noarch.rpm       252 kB/s | 9.4 kB     00:00
----------------------------------------------------------------------------------------------
合計                                                           31 kB/s |  18 kB     00:00
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                      1/1
  インストール     : centos-release-storage-common-2-2.el8.noarch                         1/2
  インストール     : centos-release-samba413-1.0-1.el8.noarch                             2/2
  scriptletの実行中: centos-release-samba413-1.0-1.el8.noarch                             2/2
  検証             : centos-release-samba413-1.0-1.el8.noarch                             1/2
  検証             : centos-release-storage-common-2-2.el8.noarch                         2/2

インストール済み:
  centos-release-samba413-1.0-1.el8.noarch    centos-release-storage-common-2-2.el8.noarch

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

そうすると、インストールされていたsmba 4.12がアップデートできるようになりました

[root@samba48 ~]# yum check-update
メタデータの期限切れの最終確認: 0:02:42 時間前の 2021年01月21日 11時03分56秒 に実施しました。

libwbclient.x86_64                            4.13.3-1.el8                     centos-samba413
samba.x86_64                                  4.13.3-1.el8                     centos-samba413
samba-client-libs.x86_64                      4.13.3-1.el8                     centos-samba413
samba-common.noarch                           4.13.3-1.el8                     centos-samba413
samba-common-libs.x86_64                      4.13.3-1.el8                     centos-samba413
samba-common-tools.x86_64                     4.13.3-1.el8                     centos-samba413
samba-libs.x86_64                             4.13.3-1.el8                     centos-samba413
[root@samba48 ~]#

yum updateすると、「/sbin/ldconfig: /lib64/libsmbldap.so.2 はシンボリックリンクではありません」って出てるけど、これは大丈夫なんだろうか….

[root@samba48 ~]# yum update -y
メタデータの期限切れの最終確認: 0:03:30 時間前の 2021年01月21日 11時03分56秒 に実施しました。
依存関係が解決しました。
==============================================================================================
 パッケージ                Arch    バージョン                          リポジトリー     サイズ
==============================================================================================
アップグレード:
 libwbclient               x86_64  4.13.3-1.el8                        centos-samba413   37 k
 samba                     x86_64  4.13.3-1.el8                        centos-samba413  757 k
 samba-client-libs         x86_64  4.13.3-1.el8                        centos-samba413  5.5 M
 samba-common              noarch  4.13.3-1.el8                        centos-samba413  135 k
 samba-common-libs         x86_64  4.13.3-1.el8                        centos-samba413  124 k
 samba-common-tools        x86_64  4.13.3-1.el8                        centos-samba413  416 k
 samba-libs                x86_64  4.13.3-1.el8                        centos-samba413  110 k
依存関係のインストール:
 checkpolicy               x86_64  2.9-1.el8                           baseos           348 k
 glusterfs                 x86_64  6.0-37.2.el8                        baseos           662 k
 glusterfs-api             x86_64  6.0-37.2.el8                        appstream         95 k
 glusterfs-client-xlators  x86_64  6.0-37.2.el8                        baseos           870 k
 glusterfs-libs            x86_64  6.0-37.2.el8                        baseos           413 k
 python3-audit             x86_64  3.0-0.17.20191104git1c2f876.el8     baseos            86 k
 python3-libsemanage       x86_64  2.9-3.el8                           baseos           127 k
 python3-policycoreutils   noarch  2.9-9.el8                           baseos           2.2 M
 python3-setools           x86_64  4.3.0-2.el8                         baseos           626 k
 samba-vfs-glusterfs       x86_64  4.13.3-1.el8                        centos-samba413   40 k

トランザクションの概要
==============================================================================================
インストール    10 パッケージ
アップグレード   7 パッケージ

ダウンロードサイズの合計: 12 M
パッケージのダウンロード:
(1/17): glusterfs-api-6.0-37.2.el8.x86_64.rpm                 1.2 MB/s |  95 kB     00:00
(2/17): checkpolicy-2.9-1.el8.x86_64.rpm                      1.4 MB/s | 348 kB     00:00
(3/17): glusterfs-6.0-37.2.el8.x86_64.rpm                     2.4 MB/s | 662 kB     00:00
(4/17): python3-audit-3.0-0.17.20191104git1c2f876.el8.x86_64. 3.0 MB/s |  86 kB     00:00
(5/17): python3-libsemanage-2.9-3.el8.x86_64.rpm              3.2 MB/s | 127 kB     00:00
(6/17): glusterfs-libs-6.0-37.2.el8.x86_64.rpm                3.4 MB/s | 413 kB     00:00
(7/17): glusterfs-client-xlators-6.0-37.2.el8.x86_64.rpm      2.5 MB/s | 870 kB     00:00
(8/17): python3-setools-4.3.0-2.el8.x86_64.rpm                4.4 MB/s | 626 kB     00:00
(9/17): samba-vfs-glusterfs-4.13.3-1.el8.x86_64.rpm           253 kB/s |  40 kB     00:00
(10/17): libwbclient-4.13.3-1.el8.x86_64.rpm                  379 kB/s |  37 kB     00:00
(11/17): samba-4.13.3-1.el8.x86_64.rpm                        2.4 MB/s | 757 kB     00:00
(12/17): python3-policycoreutils-2.9-9.el8.noarch.rpm         3.9 MB/s | 2.2 MB     00:00
(13/17): samba-common-4.13.3-1.el8.noarch.rpm                 2.6 MB/s | 135 kB     00:00
(14/17): samba-common-libs-4.13.3-1.el8.x86_64.rpm            1.4 MB/s | 124 kB     00:00
(15/17): samba-common-tools-4.13.3-1.el8.x86_64.rpm           3.2 MB/s | 416 kB     00:00
(16/17): samba-libs-4.13.3-1.el8.x86_64.rpm                   1.4 MB/s | 110 kB     00:00
(17/17): samba-client-libs-4.13.3-1.el8.x86_64.rpm            5.0 MB/s | 5.5 MB     00:01
----------------------------------------------------------------------------------------------
合計                                                          4.2 MB/s |  12 MB     00:02
警告: /var/cache/dnf/centos-samba413-5ae787790677bc21/packages/samba-vfs-glusterfs-4.13.3-1.el8.x86_64.rpm: ヘッダー V4 RSA/SHA1 Signature、鍵 ID e451e5b5: NOKEY
CentOS-8 - Samba 4.13                                         1.0 MB/s | 1.0 kB     00:00
GPG 鍵 0xE451E5B5 をインポート中:
 Userid     : "CentOS Storage SIG (http://wiki.centos.org/SpecialInterestGroup/Storage) <security@centos.org>"
 Fingerprint: 7412 9C0B 173B 071A 3775 951A D4A2 E50B E451 E5B5
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage
鍵のインポートに成功しました
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                      1/1
  scriptletの実行中: samba-common-4.13.3-1.el8.noarch                                     1/1
  scriptletの実行中: samba-common-4.13.3-1.el8.noarch                                    1/24
  アップグレード   : samba-common-4.13.3-1.el8.noarch                                    1/24
  scriptletの実行中: samba-common-4.13.3-1.el8.noarch                                    1/24
  アップグレード   : samba-common-libs-4.13.3-1.el8.x86_64                               2/24
  scriptletの実行中: samba-common-libs-4.13.3-1.el8.x86_64                               2/24
  アップグレード   : samba-client-libs-4.13.3-1.el8.x86_64                               3/24
  scriptletの実行中: samba-client-libs-4.13.3-1.el8.x86_64                               3/24
/sbin/ldconfig: /lib64/libsmbldap.so.2 はシンボリックリンクではありません


  アップグレード   : libwbclient-4.13.3-1.el8.x86_64                                     4/24
  アップグレード   : samba-libs-4.13.3-1.el8.x86_64                                      5/24
  scriptletの実行中: samba-libs-4.13.3-1.el8.x86_64                                      5/24
/sbin/ldconfig: /lib64/libsmbldap.so.2 はシンボリックリンクではありません


  インストール     : glusterfs-libs-6.0-37.2.el8.x86_64                                  6/24
  scriptletの実行中: glusterfs-libs-6.0-37.2.el8.x86_64                                  6/24
/sbin/ldconfig: /lib64/libsmbldap.so.2 はシンボリックリンクではありません


  scriptletの実行中: glusterfs-6.0-37.2.el8.x86_64                                       7/24
  インストール     : glusterfs-6.0-37.2.el8.x86_64                                       7/24
  scriptletの実行中: glusterfs-6.0-37.2.el8.x86_64                                       7/24
/sbin/ldconfig: /lib64/libsmbldap.so.2 はシンボリックリンクではありません


  インストール     : glusterfs-client-xlators-6.0-37.2.el8.x86_64                        8/24
  インストール     : glusterfs-api-6.0-37.2.el8.x86_64                                   9/24
  scriptletの実行中: glusterfs-api-6.0-37.2.el8.x86_64                                   9/24
/sbin/ldconfig: /lib64/libsmbldap.so.2 はシンボリックリンクではありません


  アップグレード   : samba-common-tools-4.13.3-1.el8.x86_64                             10/24
  インストール     : python3-setools-4.3.0-2.el8.x86_64                                 11/24
  インストール     : python3-libsemanage-2.9-3.el8.x86_64                               12/24
  インストール     : python3-audit-3.0-0.17.20191104git1c2f876.el8.x86_64               13/24
  インストール     : checkpolicy-2.9-1.el8.x86_64                                       14/24
  インストール     : python3-policycoreutils-2.9-9.el8.noarch                           15/24
  アップグレード   : samba-4.13.3-1.el8.x86_64                                          16/24
  scriptletの実行中: samba-4.13.3-1.el8.x86_64                                          16/24
  インストール     : samba-vfs-glusterfs-4.13.3-1.el8.x86_64                            17/24
  scriptletの実行中: samba-4.12.3-12.el8.3.x86_64                                       18/24
  整理             : samba-4.12.3-12.el8.3.x86_64                                       18/24
  scriptletの実行中: samba-4.12.3-12.el8.3.x86_64                                       18/24
  整理             : samba-common-tools-4.12.3-12.el8.3.x86_64                          19/24
  整理             : samba-libs-4.12.3-12.el8.3.x86_64                                  20/24
  整理             : samba-common-libs-4.12.3-12.el8.3.x86_64                           21/24
  整理             : samba-client-libs-4.12.3-12.el8.3.x86_64                           22/24
  scriptletの実行中: libwbclient-4.12.3-12.el8.3.x86_64                                 23/24
  整理             : libwbclient-4.12.3-12.el8.3.x86_64                                 23/24
  整理             : samba-common-4.12.3-12.el8.3.noarch                                24/24
  scriptletの実行中: libwbclient-4.13.3-1.el8.x86_64                                    24/24
  scriptletの実行中: samba-vfs-glusterfs-4.13.3-1.el8.x86_64                            24/24
  scriptletの実行中: samba-common-4.12.3-12.el8.3.noarch                                24/24
  検証             : glusterfs-api-6.0-37.2.el8.x86_64                                   1/24
  検証             : checkpolicy-2.9-1.el8.x86_64                                        2/24
  検証             : glusterfs-6.0-37.2.el8.x86_64                                       3/24
  検証             : glusterfs-client-xlators-6.0-37.2.el8.x86_64                        4/24
  検証             : glusterfs-libs-6.0-37.2.el8.x86_64                                  5/24
  検証             : python3-audit-3.0-0.17.20191104git1c2f876.el8.x86_64                6/24
  検証             : python3-libsemanage-2.9-3.el8.x86_64                                7/24
  検証             : python3-policycoreutils-2.9-9.el8.noarch                            8/24
  検証             : python3-setools-4.3.0-2.el8.x86_64                                  9/24
  検証             : samba-vfs-glusterfs-4.13.3-1.el8.x86_64                            10/24
  検証             : libwbclient-4.13.3-1.el8.x86_64                                    11/24
  検証             : libwbclient-4.12.3-12.el8.3.x86_64                                 12/24
  検証             : samba-4.13.3-1.el8.x86_64                                          13/24
  検証             : samba-4.12.3-12.el8.3.x86_64                                       14/24
  検証             : samba-client-libs-4.13.3-1.el8.x86_64                              15/24
  検証             : samba-client-libs-4.12.3-12.el8.3.x86_64                           16/24
  検証             : samba-common-4.13.3-1.el8.noarch                                   17/24
  検証             : samba-common-4.12.3-12.el8.3.noarch                                18/24
  検証             : samba-common-libs-4.13.3-1.el8.x86_64                              19/24
  検証             : samba-common-libs-4.12.3-12.el8.3.x86_64                           20/24
  検証             : samba-common-tools-4.13.3-1.el8.x86_64                             21/24
  検証             : samba-common-tools-4.12.3-12.el8.3.x86_64                          22/24
  検証             : samba-libs-4.13.3-1.el8.x86_64                                     23/24
  検証             : samba-libs-4.12.3-12.el8.3.x86_64                                  24/24

アップグレード済み:
  libwbclient-4.13.3-1.el8.x86_64               samba-4.13.3-1.el8.x86_64
  samba-client-libs-4.13.3-1.el8.x86_64         samba-common-4.13.3-1.el8.noarch
  samba-common-libs-4.13.3-1.el8.x86_64         samba-common-tools-4.13.3-1.el8.x86_64
  samba-libs-4.13.3-1.el8.x86_64

インストール済み:
  checkpolicy-2.9-1.el8.x86_64          glusterfs-6.0-37.2.el8.x86_64
  glusterfs-api-6.0-37.2.el8.x86_64     glusterfs-client-xlators-6.0-37.2.el8.x86_64
  glusterfs-libs-6.0-37.2.el8.x86_64    python3-audit-3.0-0.17.20191104git1c2f876.el8.x86_64
  python3-libsemanage-2.9-3.el8.x86_64  python3-policycoreutils-2.9-9.el8.noarch
  python3-setools-4.3.0-2.el8.x86_64    samba-vfs-glusterfs-4.13.3-1.el8.x86_64

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

まぁ、アップデート完了してもsamba-tool はいませんでしたけどね

[root@samba48 ~]# which samba-tool
/usr/bin/which: no samba-tool in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[root@samba48 ~]#

というわけで、おとなしくsambaをソースからコンパイルするしかなさそうです。

Backup ExecでNetAppのNDMPバックアップを行おうとしたときに0x20500106(542114054)というエラーになる


Backup ExecでNetAppのNDMPバックアップを行おうとしたときに0x20500106(542114054)というエラーになるという問題が発生した。

技術的詳細をみてみてもよく分からない。

該当の共有を確認すると日本語のディレクトリがある。

そして、NetApp上でボリュームの言語を確認するとja_JP.PCK_v2とUTF-8以外を使用している。

nas01c::> volume show -fields language
vserver   volume language
--------- ------ --------
<略>
svm1      testlang2
                 ja_JP.PCK_v2
nas01c::> 

では、日本語ではなく英数のディレクトリ名に変更

Backup Exec上で問題なく開くことができるようになった。

とりあえず、ボリュームの言語設定の問題であることは判明。

検索すると「How to enable Unicode or UTF-8 Language Support for the NDMP Option」というBackup Exec 11時代の古い記述を発見

ここに書かれている HKEY_LOCAL_MACHINE\SOFTWARE\Veritas\Backup Exec For Windows\Backup Exec\NDMP の UseUTF8の値は「0」であり、UTF-8じゃないボリュームという設定になっているように見える。

この値の変更は、NDMPアクセスをするごとに反映されるようでBackupExecサービスやサーバ再起動は不要だった。

が・・・今回のja_JP.PCK_v2ボリューム上の日本語ディレクトリ問題には対処できなかった。

では、この値変更はBackupExec 21.0で不要かというとそうではなくて、ja_JP.UTF-8ボリュームだと日本語ディレクトリが文字化けで表示される、という問題が発生している。

これが「UseUTF8」の値を「1」に設定することで文字化けが解消されることは確認できた。

さて、本題に戻って、ja_JP.PCK_v2ボリューム上に日本語ディレクトリがある場合にエラーとなる件の対処方法があるかです。

とりあえずボリューム名をクリックするとバックアップ選択はされ、バックアップも完了できました。(レジストリ UseUTF8は0で実施)

リストアを選択すると、きちんと日本語で表示されています。

共有内のファイルを削除してリストアしてみると、正常にリストアされました。

しかし、「実験」だけをリストアしようとするとエラーとなりました。

というわけで、ja_JP.PCK_v2上に日本語ディレクトリがあっても、ボリューム全体をバックアップするのであれば問題無く動作する。

リストア時も全体であればリストアが成功するが、日本語ディレクトリは個別に指定するリストアは失敗する、という動作となりました。

ちなみにja_JP.UTF-8ボリューム上の日本語ディレクトリは文字化けでした。(レジストリUseUTF8は0)

文字化けしている状態であっても、文字化けディレクトリだけを指定してリストアすると正常にリストアできていました。(レジストリUseUTF8は0)


逆にレジストリUseUTF8を1にしてバックアップしたものはリストアできるか検証

ja_JP.UTF-8ボリューム上の日本語は表示できているが、ja_JP.PCK_v2ボリューム上は文字化けています。

リストアジョブを実行してみると成功します。

ja_JP.UTF-8ボリュームではファイル名も問題無くリストアできています。

ja_JP.PCK2_v2の方は文字化けでリストアされています。

ややこしいことにディレクトリ内のファイルについては文字化けせずにリストアされています。

おそらく、指定した階層についてだけ影響があり、それ以下の階層についてはNetApp側で処理されるため元のファイル名のままリストアできたものと想定されます。

NetApp ONTAP9.xでNDMPバックアップする場合の設定項目


NetApp ONTAP 9.xでNDMPバックアップを取得する際に必要な設定項目についての覚え書き

公式のマニュアル:SVMを対象としたNDMPの設定FlexVolのSVMを対象としたNDMPモードの管理

以前は各物理ノードがNDMPを受け付けていたものが、現在はNetAppの管理Storage VM(クラスタ)がNDMPの命令を受け付けるようになっている。

(1) NDMPの有効化

まず、現状有効になっているかを「vserver services ndmp status」を実行して確認する。

ontap-select-cluster::> vserver services ndmp status
This table is currently empty.

ontap-select-cluster::>

有効にするには「vserver services ndmp on -vserver 管理SVM名」を実行する

ontap-select-cluster::> vserver services ndmp on -vserver ontap-select-cluster

ontap-select-cluster::> 

有効になったことを「vserver services ndmp show」を実行して確認する。

ontap-select-cluster::> vserver services ndmp show
VServer       Enabled   Authentication type
------------- --------- -------------------
ontap-select-cluster
              true      challenge
svm0          false     challenge
2 entries were displayed.

ontap-select-cluster::> 

(2) ユーザ作成

NDMPアクセス用のユーザを、NetAppのローカルユーザとして作成する。

下記の例では「backupadmin」というユーザを作成している。「role:backup」という権限で作成することが重要です。

なお、ここで指定するパスワードをそのままNDMPバックアップ時に指定するわけではありません。

ontap-select-cluster::> security login create -user-or-group-name backupadmin -application ssh -authmethod password -role backup

Please enter a password for user 'backupadmin':
Please enter it again:
ontap-select-cluster::> 

NDMPバックアップ時に使用するパスワードは、自動生成のパスワードになります。

「vserver services ndmp generate-password -vserver 管理SVM名 -user ユーザ名」でパスワードを確認します。なお、ユーザ作成時のパスワードを元に生成しているので、generate-passwordを実行するたびにパスワードが変わるということはありません。

ontap-select-cluster::>  vserver services ndmp generate-password -vserver ontap-select-cluster -user backupadmin

 Vserver: ontap-select-cluster
    User: backupadmin
Password: qG5CqQHYxw9fE57g
ontap-select-cluster::> 

(3) LIFの作成

NDMPバックアップは、ネットワークインタフェースのroleがinterclusterであるものを使用します。

現状のinterclusterを確認するには「network interface show -role intercluster」を実行します

ontap-select-cluster::> network interface show -role intercluster
There are no entries matching your query.

ontap-select-cluster::>

存在しない場合は、新規で作成するか、既存のLIFを流用するための設定を行います。

流用する場合は公式マニュアルの「LIFの設定」をみていろいろやります。(面倒くさいはず)

作成する際は、「-home-node」と「-home-port」で主として使用する物理ノードとネットワークポートを指定します。

ontap-select-cluster::> network interface create -vserver ontap-select-cluster -lif cluster_intercluster -role intercluster -service-policy default-intercluster -address 172.17.44.109 -netmask 255.255.0.0 -home-node ontap-select-node -home-port e0a

ontap-select-cluster::>

作成されたことを「network interface show -role intercluster」を実行して確認します。

ontap-select-cluster::> network interface show -role intercluster
            Logical    Status     Network            Current       Current Is
Vserver     Interface  Admin/Oper Address/Mask       Node          Port    Home
----------- ---------- ---------- ------------------ ------------- ------- ----
ontap-select-cluster
            cluster_intercluster
                         up/up    172.17.44.109/16   ontap-select-node
                                                                   e0a     true

ontap-select-cluster::> 

メモ

「vserver show -ins」で表示される「Allowed Protocols」「Disallowed Protocols」の扱い

物理ノードに対するNDMPが有効になっていないか?「system service ndmp show」で「Enabled:false」を確認

対象となるSVMと、必要となるロールの違い:SVMを対象としたNDMPモードでのユーザ認証

Storage Virtual Machine(SVM)を対象としたNDMPモードでは、NDMPユーザ認証がロールベース アクセス制御と統合されます。SVMのコンテキストでは、NDMPユーザのロールはvsadminまたはvsadmin-backupのどちらかである必要があります。クラスタのコンテキストでは、NDMPユーザのロールはadminまたはbackupのどちらかである必要があります。

SVMのfirewall policy設定でinterclusterのポリシーでNDMPが許可されているか「system services firewall policy show -policy intercluster」

NetApp NDMP設定の詳細確認「vserver services ndmp show -ins」の「Preferred Interface Role」に書かれているroleのインタフェースがNDMPに使用できる

メモ2

NDMPバックアップ中の進行状況確認を行う場合「vserver services ndmp status -fields data-state,data-operation,data-bytes-processed,mover-bytes-moved,mover-bytes-left-to-read,data-path」あたりを実行?

netapp9101::> vserver services ndmp status -fields data-state,data-operation,data-bytes-processed,mover-bytes-moved,mover-bytes-left-to-read,data-path
vserver    session-id data-state data-operation data-bytes-processed mover-bytes-moved mover-bytes-left-to-read data-path
---------- ---------- ---------- -------------- -------------------- ----------------- ------------------------ ---------
netapp9101 1000:26573 IDLE       NOACTION       0                    0                 0                        NA
netapp9101 1000:26718 ACTIVE     BACKUP         6694621184           0                 0                        /svm0/shares
netapp9101 1000:26726 IDLE       NOACTION       0                    0                 0                        NA
netapp9101 1000:26730 IDLE       NOACTION       0                    0                 0                        NA
netapp9101 1000:26736 IDLE       NOACTION       0                    0                 0                        NA
netapp9101 1000:26745 IDLE       NOACTION       0                    0                 0                        NA
6 entries were displayed.

netapp9101::>

mover-bytes-moved と mover-bytes-left-to-read はテープ直結時じゃないと値がでない?

firewallなどで止められているか確認する際に、お互いのポート番号確認するのであれば「vserver services ndmp status -fields data-state,data-operation,data-bytes-processed,data-path,client-port,client-addr,data-con-addr,data-con-port」

netapp9101::> vserver services ndmp status -fields data-state,data-operation,data-bytes-processed,data-path,client-port,client-addr,data-con-addr,data-con-port
vserver    session-id data-state data-operation data-con-addr data-con-port data-bytes-processed client-addr   client-port data-path
---------- ---------- ---------- -------------- ------------- ------------- -------------------- ------------- ----------- ---------
netapp9101 1000:26573 IDLE       NOACTION                     0             0                    172.17.44.172 55903       NA    
netapp9101 1000:26718 ACTIVE     BACKUP         172.17.44.172 56036         14100891648          172.17.44.172 55988       /svm0/shares
netapp9101 1000:26726 IDLE       NOACTION                     0             0                    172.17.44.172 56044       NA    
netapp9101 1000:26730 IDLE       NOACTION                     0             0                    172.17.44.172 56077       NA    
netapp9101 1000:26736 IDLE       NOACTION                     0             0                    172.17.44.172 56116       NA    
netapp9101 1000:26745 IDLE       NOACTION                     0             0                    172.17.44.172 56156       NA    
6 entries were displayed.

netapp9101::>

2段階のNFSマウントをする方法


直接アクセスできないネットワークにあるNFSサーバをNFSでマウントすることはできないか試行錯誤してみた。

普通にCentOS7やSolaris11からやってみたところ、NFSマウントした領域のNFS exportでの公開はnfsd側から「Cannot export /mnt, possibly unsupported filesystem or fsid= required」とか、「Invalid filesystem」とか言われて設定できない。

これはuser-spaceで動作するnfsdを使えば回避できるんじゃないかと探してみた結果、unfs3というものを発見。ソースコードは https://github.com/unfs3/unfs3

Linux,FreeBSD,Solaris,AIX,Irix,MacOSXで動く以外に、Windows上でも制限ありで動作するとのこと。

Windows上で動かした場合は、unfsdが使用するWindowsユーザを1つ割り当てる形になるので、NFS経由のアクセスは全てそのWindowsユーザがアクセスしている、という扱いになるようだ。

あと、このunfs3はNFS ver3のみ使え、NFS v4やNFS v2でのアクセスには対応していない。また、NFS v3でもREADDIRPLUS(属性付きディレクトリの読み取り)周りは実装していないとのこと。

READDIRPLUSはOracle/Solarisのドキュメントによればlsコマンドなどでディレクトリ内のファイル一覧を表示させる動作を高速化するためのものなので、まぁ、なくてもなんとかなる感じのもの。

属性付きディレクトリの読み取り
NFS バージョン 3 では、READDIRPLUS と呼ばれる操作があります。たとえば、ls や ls -l などの、大部分の READDIR が READDIRPLUS コールとして発行されます。バージョン 3 で ls -l コマンドを実行すると、ディレクトリ内の名前リストと共に、ファイルハンドルと属性が返されます。バージョン 2 では、名前が最初に返され、ファイルハンドルと属性を取得するには、続いてサーバーを呼び出す必要があります。
バージョン 3 の READDIRPLUS 操作の利点は、ファイルごとに GETATTR 要求を送信する必要がないため時間が短縮され、ls と ls -l の速度が同程度になることです。

要件は満たせそうなので、とりあえずテスト用CentOS7環境でunfs3を動作させてみる。

準備

環境をインストール

# yum install git
# yum groupinstall "開発ツール"

コンパイル

まず、ソースコードの入手

$ git clone https://github.com/unfs3/unfs3.git

READMEにあるとおりbootstrap&configureを実行

$ cd unfs3/unfs3
$ ./bootstrap
$ ./configure

そしてmake

$ make
for i in Config ; do (cd $i && make all) || exit; done
make[1]: ディレクトリ `/root/unfs3/Config' に入ります
gcc -g -O2 -Wall -W -I.. -I. -I..   -c -o lex.yy.o lex.yy.c
gcc -g -O2 -Wall -W -I.. -I. -I..   -c -o y.tab.o y.tab.c
ar crs lib.a lex.yy.o y.tab.o
make[1]: ディレクトリ `/root/unfs3/Config' から出ます
gcc -g -O2 -Wall -W  -D_GNU_SOURCE -I.   -c -o afsgettimes.o afsgettimes.c
gcc -g -O2 -Wall -W  -D_GNU_SOURCE -I.   -c -o afssupport.o afssupport.c
gcc -g -O2 -Wall -W  -D_GNU_SOURCE -I.   -c -o attr.o attr.c
attr.c: 関数 ‘get_free_bad_dir_entry’ 内:
attr.c:550:5: エラー: ‘for’ ループ初期化宣言は C99 モード内でのみ許可されてい ます
     for (int i = 0;i < BAD_DIR_CACHE_SIZE;i++) {
     ^
attr.c:550:5: 備考: オプション -std=c99 または -std=gnu99 をコードコンパイル時に使用してください
attr.c: 関数 ‘find_bad_dir_entry’ 内:
attr.c:573:5: エラー: ‘for’ ループ初期化宣言は C99 モード内でのみ許可されてい ます
     for (int i = 0;i < BAD_DIR_CACHE_SIZE;i++) {
     ^
make: *** [attr.o] エラー 1
$

エラーとなってしまいます。

これはコンパイル時のオプションに「-std=c99」を指定するようにして解決

$ export CPPFLAGS="-std=c99";./configure
$ make
<略>
$

インストールと設定

普通にmake installすると/usr/local以下にインストールされます。

# make install
/usr/bin/install -c -d /usr/local/sbin
/usr/bin/install -c -d /usr/local/share/man/man7
/usr/bin/install -c -d /usr/local/share/man/man8
/usr/bin/install -c unfsd /usr/local/sbin/unfsd
/usr/bin/install -c -m 644 ./Extras/tags.7 /usr/local/share/man/man7/tags.7
/usr/bin/install -c -m 644 ./unfsd.8       /usr/local/share/man/man8/unfsd.8
#

NFSで公開するディレクトリの設定は、普通のnfsdと同じく /etc/exports ファイルを使用。「-e」オプションで別のファイルを指定することも可能です。

注意点としては、Linuxだとホスト名指定に「*」とnetgroupが使用できず、ログに「unfsd[20479]: syntax error in ‘/etc/exports’, exporting nothing」といった出力が出てしまうという点です。

「*」については「0.0.0.0/0」で代替できます。

/etc/exports ファイルを編集した場合、変更にはexportfsコマンドは使用できません。

unfsdに対してHUPシグナルを送ることで反映されます。(kill -HUP unfsdのPID)

unfsdの起動は「/usr/local/sbin/unfsd」の実行、停止はunfsdへのTERMシグナル送信(kill -TERM unfsdのPID)です。