Red Hat Training

A Red Hat training course is available for RHEL 8

第5章 RHEL 8.0.0 リリース

5.1. 新機能

ここでは、Red Hat Enterprise Linux 8 に追加された新機能および主要な機能拡張を説明します。

5.1.1. Web コンソール

注記

Web コンソールのサブスクリプションページは、新しい subscription-manager-cockpit パッケージで提供されるようになりました。

Web コンソールに firewall インターフェイスが追加

RHEL 8 Web コンソールの Networking ページに Firewall セクションが追加されました。このセクションでは、ファイアウォールの有効化または無効化、およびファイアウォールルールの追加、削除、変更を行います。

(BZ#1647110)

Web コンソールがデフォルトで利用可能

RHEL 8 Web コンソールのパッケージ (Cockpit とも呼ばれます) は、Red Hat Enterprise Linux のデフォルトリポジトリーに同梱されるようになったため、登録済みの RHEL 8 システムにすぐにインストールできます。

さらに、RHEL 8 の最小インストール以外のインストールでは、Web コンソールが自動的にインストールされ、コンソールに必要なファイアウォールポートが自動的に開くようになりました。ログイン前に、Web コンソールを有効にしたり、Web コンソールにアクセスしたりする方法を示すシステムメッセージも追加されました。

(JIRA:RHELPLAN-10355)

Web コンソール用の IdM 統合が改善

システムが Identity Management (IdM) ドメインに登録されていると、RHEL 8 Web コンソールはデフォルトで、ドメインで集中管理されている IdM リソースを使用するようになりました。これには、以下の利点があります。

  • IdM ドメインの管理者は、Web コンソールを使用して、ローカルマシンを管理できます。
  • コンソールの Web サーバーでは、IdM 認証局 (CA) が発行した証明書に自動的に切り替わり、ブラウザーにより許可されます。
  • IdM ドメインに Kerberos チケットがあると、Web コンソールにアクセスする際にログイン認証情報を指定する必要がなくなりました。
  • IdM ドメインで認識されている SSH ホストは、手動で SSH 接続を追加しなくても Web コンソールにアクセスできます。

IdM と Web コンソールの統合が適切に機能するようにするには、IdM マスターシステムの enable-admins-sudo オプションを付けて、ipa-advise ユーティリティーを実行する必要があります。

(JIRA:RHELPLAN-3010)

Web コンソールにモバイルブラウザーとの互換性が追加

今回の更新で、モバイルブラウザーのバリアントで、Web コンソールメニューおよびページを移動できるようになりました。これにより、モバイルデバイスから RHEL 8 Web コンソールを使用してシステムを管理できます。

(JIRA:RHELPLAN-10352)

Web コンソールのフロントページに、不足している更新およびサブスクリプションを表示

RHEL 8 Web コンソールが管理するシステムに、古いパッケージまたは失効したサブスクリプションがあると、システムの Web コンソールのフロントページに警告が表示されるようになりました。

(JIRA:RHELPLAN-10353)

Web コンソールが PBD 登録に対応

今回の更新で、RHEL 8 Web コンソールインターフェイスを使用して、管理システムのディスクに PBD (Policy-Based Decryption) ルールを適用できるようになりました。これは、Clevis 複号クライアントを使用して、LUKS で暗号化されたディスクパーティションの自動ロック解除など、Web コンソールのさまざまなセキュリティー管理機能を容易にします。

(JIRA:RHELPLAN-10354)

Web コンソールを使用して仮想マシンが管理可能に

RHEL 8 Web コンソールインターフェイスに、Virtual Machines ページを追加できるようになりました。これにより、libvirt ベースの仮想マシンを作成および管理できるようになりました。

(JIRA:RHELPLAN-2896)

5.1.2. インストーラーおよびイメージの作成

IBM Z で、SE および HMC を使用して DVD から RHEL をインストールする方法に完全対応

IBM Z ハードウェアで、Support Element (SE) および Hardware Management Console (HMC) を使用して DVD から Red Hat Enterprise Linux 8 をインストールすることに完全に対応するようになりました。この追加機能により、SE および HMC を使用した IBM Z のインストールプロセスが簡略化されます。

Binary DVD から起動すると、インストーラーにより、追加のカーネルパラメーターを入力するように求められます。DVD をインストールソースとして設定するには、inst.repo=hmc をカーネルパラメーターに追加します。インストーラーは、SE および HMC のファイルアクセスを有効にし、DVD から stage2 のイメージをフェッチし、ソフトウェア選択で DVD のパッケージへのアクセスを提供します。

この新機能により、外部ネットワークを設定する必要がなくなるため、インストールのオプションが増えます。

(BZ#1500792)

インストーラーが LUKS2 ディスク暗号化フォーマットに対応

Red Hat Enterprise Linux 8 インストーラーは、デフォルトで LUKS2 フォーマットを使用しますが、Anaconda の Custom Partitioning ウィンドウ、キックスタートの autopart コマンド、logvol コマンド、part コマンド、および RAID コマンドで新しいオプションを使用して、LUKS バージョンを選択できます。

LUKS2 は改良や機能を数多く提供します。たとえば、ディスク上のフォーマット機能を拡張し、メタデータを格納する柔軟な方法を提供します。

(BZ#1547908)

Anaconda で RHEL 8 のシステムの目的に対応

以前は、Anaconda から、Subscription Manager にシステムの目的の情報を提供していませんでした。Red Hat Enterprise Linux 8.0 では、Anaconda システムの目的 ウィンドウまたはキックスタートの syspurpose コマンドを使用して、システムの使用目的を設定できるようになりました。そのシステムの目的情報は、インストールが完了し、システムをサブスクライブする際に Subscription Manager が使用します。

(BZ#1612060)

Pykickstart で RHEL 8 のシステムの目的に対応

以前は、pykickstart ライブラリーにより、Subscription Manager にシステムの目的の情報が提供されていました。Red Hat Enterprise Linux 8.0 では、pykickstart が、新しい syspurpose コマンドを解析し、完全または一部が自動化されているインストール時に、システムの使用目的を記録します。その後、その情報は Anaconda に渡され、新しくインストールしたシステムに保存され、システムのサブスクライブ時に Subscription Manager で利用できるようになりました。

(BZ#1612061)

Anaconda で RHEL 8 の新しいカーネル起動パラメーターに対応

以前は、カーネル起動パラメーターからベースリポジトリーだけを指定できました。Red Hat Enterprise Linux 8 では、新しいカーネルパラメーター inst.addrepo=<name>,<url> により、インストール時に追加リポジトリーを指定できるようになりました。

このパラメーターでは、リポジトリーの名前と、リポジトリーを指定する URL の 2 つの値が必要になります。詳細は inst.addrepo を参照してください。

(BZ#1595415)

Anaconda で RHEL 8 の統合 ISO に対応

Red Hat Enterprise Linux 8.0 では、統合 ISO が、インストールソースリポジトリー BaseOS および AppStream を自動的に読み込みます。

この機能は、インストール時に読み込まれる最初のベースリポジトリーに対して有効です。たとえば、リポジトリーを設定せずにインストールを起動し、GUI にベースリポジトリーとなる統合 ISO がある場合、または、統合 ISO を指定する inst.repo= オプションを使用してインストールを起動する場合などです。これにより、AppStream リポジトリーは、Installation Source GUI ウィンドウの Additional Repositories セクションで有効になります。AppStream リポジトリーを削除したり、その設定を変更することはできませんが、インストールソース で無効にできます。別のベースリポジトリーを使用してインストールを起動し、そのあとで統合 ISO に変更した場合はこの機能が無効になります。これを行うと、ベースリポジトリーが置き換えられます。ただし、AppStream リポジトリーは置き換えられず、元のファイルを指定します。

(BZ#1610806)

Anaconda がキックスタートスクリプトにモジュールパッケージをインストール可能

Anaconda インストーラーは、モジュール、ストリーム、プロファイルなど、アプリケーションストリームに関連するすべての機能を処理するように拡張されました。キックスタートスクリプトは、モジュールとストリームの組み合わせを有効にし、モジュールプロファイルをインストールし、モジュールパッケージをインストールします。詳細は 高度な RHEL インストールの実行 を参照してください。

(JIRA:RHELPLAN-1943)

RHEL 8 インストールオプションで nosmt 起動オプションが利用可能に

nosmt 起動オプションは、新たにインストールした RHEL 8 システムに渡されるインストールオプションで利用できます。

(BZ#1677411)

RHEL 8 が、ローカルのハードドライブのリポジトリーからのインストールに対応

以前は、ハードドライブから RHEL をインストールする場合は、インストールソースに ISO イメージが必要でした。ただし、ファイルシステムによっては、RHEL 8 イメージが大きすぎる場合があります。たとえば、FAT32 ファイルシステムでは、4 GiB 以上のファイルを保存できません。

RHEL 8 では、ローカルのハードドライブのリポジトリーからインストールできます。ISO イメージの代わりにディレクトリーを指定するだけで行えます。たとえば、inst.repo=hd:<device>:<path to the repository> です。

(BZ#1502323)

Image Builder を使用したシステムイメージのカスタマイズが RHEL 8 で利用可能に

RHEL イメージのカスタマイズには、Image Builder ツールを使用できます。Image Builder は、lorax-composer パッケージの AppStream で利用できます。

Image Builder を使用すると、追加パッケージを含むカスタムのシステムイメージを作成できます。Image Builder 機能は、以下から使用できます。

  • Web コンソールのグラフィカルユーザーインターフェイス
  • composer-cli ツールのコマンドラインインターフェイス

Image Builder の出力の形式には、以下のようなものがあります。

  • ライブ ISO ディスクイメージ
  • 仮想マシンまたは OpenStack で直接使用する qcow2 ファイル
  • ファイルシステムのイメージファイル
  • Azure、VMWare、および AWS のクラウドイメージ

Image Builder の詳細は RHEL システムイメージのカスタマイズ を参照してください。

(JIRA:RHELPLAN-7291, BZ#1628645, BZ#1628646, BZ#1628647, BZ#1628648)

新しいキックスタートコマンドの追加: authselect および modules

このリリースでは、次のキックスタートコマンドが追加されました。

  • authselect: authselect コマンドを使用して、インストール中にシステム認証オプションを設定します。非推奨の auth または authconfig Kickstart コマンドの代わりに authselect を使用できます。詳細については、高度なインストールの実行 ガイドの authselect セクションを参照してください。
  • module: module コマンドを使用して、キックスタートスクリプト内でパッケージモジュールストリームを有効にします。詳細は、高度なインストールの実行 ガイドの module セクションを参照してください。

(BZ#1972210)

5.1.3. カーネル

RHEL 8.0 のカーネルバージョン

Red Hat Enterprise Linux 8.0 には、カーネルバージョン 4.18.0-80 が同梱されています。

(BZ#1797671)

ARM 52 ビット物理アドレス指定が可能に

今回の更新で、64 ビット ARM アーキテクチャー用の 52 ビット物理アドレッシング (PA) に対応するようになりました。これにより、以前の 48 ビットの PA よりも大きなアドレス空間が提供されます。

(BZ#1643522)

IOMMU コードで RHEL 8 の 5 レベルのページテーブルに対応

Linux カーネルの I/O メモリー管理ユニット (IOMMU) コードは、Red Hat Enterprise Linux 8 で 5 レベルのページテーブルに対応するようになりました。

(BZ#1485546)

5 レベルのページングに対応

Red Hat Enterprise Linux 8 で 5 レベルのページングに対応するために、新しい P4d_t ソフトウェアページのテーブルタイプが Linux カーネルに追加されました。

(BZ#1485532)

メモリー管理で 5 レベルのページテーブルに対応

Red Hat Enterprise Linux 7 での既存のメモリーバスには、48/46 ビットの仮想または物理のメモリーアドレス機能があり、Linux カーネルが、4 つのレベルのページテーブルを実装して、物理アドレスへの仮想アドレスを管理します。物理バスのアドレス線は、物理メモリーの容量の上限を 64 TB に制限します。

この制限は、57/52 ビットの仮想および物理のメモリーアドレスにより、128 PiB の仮想アドレス空間と、4 PB の物理メモリーまで容量が拡張されました。

拡張アドレス範囲を使用して、Red Hat Enterprise Linux 8 のメモリー管理では、5 レベルのページテーブルの実装への対応が追加され、拡張アドレス範囲を処理します。

(BZ#1485525)

RHEL 8 で、kernel-signing-ca.cerkernel-core に移動

Red Hat Enterprise Linux 7 では、すべてのバージョンで、公開鍵 kernel-signing-ca.cerkernel-doc パッケージに含まれていました。ただし、Red Hat Enterprise Linux 8 では、すべてのアーキテクチャーで、kernel-signing-ca.cerkernel-core パッケージに移動しました。

(BZ#1638465)

Spectre V2 の軽減策のデフォルトが IBRS から Retpolines へ変更

第 6 世代 Intel Core プロセッサーが搭載されたシステムに対する Spectre V2 脆弱性 (CVE-2017-5715) のデフォルトの軽減策と、その類似策 [1] が、Red Hat Enterprise Linux 8 の Indirect Branch Speculation (IBRS) から Retpolines に変更になりました。Red Hat は、Linux コミュニティーで使用されるデフォルトに合わせて、損失したパフォーマンスを復元する Intel 社の推奨事項により、この変更を実装しました。ただし、場合によっては、Retpolines を使用すると、Spectre V2 が完全に軽減されない場合があります。Intel 社の Retpoline ドキュメント [2] は、露出時のすべてのケースを説明します。本書は、攻撃のリスクが低いことも示しています。

完全な Spectre V2 軽減策が必要なユースケースでは、spectre_v2=ibrs フラグを追加して、カーネル起動ラインを介して IBRS を選択できます。

カーネルモジュールが Retpoline に対応するように構築されていない場合は、/sys/devices/system/cpu/vulnerabilities/spectre_v2 ファイルで脆弱性、および /var/log/messages ファイルで問題のあるモジュールを特定します。詳細は How to determine which modules are responsible for spectre_v2 returning "Vulnerable: Retpoline with unsafe module(s)"?]を参照してください。

[1]第 6 世代 Intel Core プロセッサーと、その類似の派生製品は、Intel 社の Retpolines ドキュメントで Skylake-generation と呼ばれているものです。

[2] Retpoline: A Branch Target Injection Mitigation - White Paper

(BZ#1651806)

Intel® Omni-Path Architecture (OPA) ホストソフトウェア

Red Hat Enterprise Linux 8 は、Intel Omni-Path Architecture (OPA) ホストソフトウェアに完全に対応しています。

Intel OPA は、クラスター環境のコンピュートと I/O ノード間の高性能データ転送 (高帯域幅、高メッセージレート、低レイテンシー) のために、初期化とセットアップを行う Host Fabric Interface (HFI) ハードウェアを提供します。

Intel Omni-Path Architecture のインストール方法は、https://www.intel.com/content/dam/support/us/en/documents/network-and-i-o/fabric-products/Intel_OP_Software_RHEL_8_RN_K51383.pdf を参照してください。

(BZ#1683712)

NUMA が RHEL 8 でより多くのノードに対応

今回の更新で、64 ビット ARM アーキテクチャーのシステム上の Red Hat Enterprise Linux 8 では、NUMA (Non-Uniform Memory Access) ノードの数が、4 NUMA ノードから 8 NUMA ノードまで増えました。

(BZ#1550498)

RHEL 8 で IOMMU パススルーがデフォルトで有効に

入出力メモリー管理ユニット (IOMMU) パススルーが、デフォルトで有効になります。これにより、ホストに対してダイレクトメモリーアクセス (DMA) の再マッピングが無効になるため、AMD システムのパフォーマンスが改善します。今回の更新で、DMA 再マッピングがデフォルトで無効になっている Intel システムとの互換性を持たせるようになりました。ハイパーバイザーを含むカーネルコマンドラインで iommu.passthrough=off パラメーターまたは iommu=nopt パラメーターを指定してそのような動作を無効 (にし、DMA 再マッピングを有効) にできます。

(BZ#1658391)

RHEL8 カーネルが、5 レベルのページテーブルに対応

Red Hat Enterprise Linux カーネルは、最大 5 レベルのページテーブルが搭載される将来の Intel プロセッサーに完全に対応するようになりました。これにより、プロセッサーは、最大 4PB の物理メモリーと 128PB の仮想アドレス領域に対応できるようになります。大容量のメモリーを使用するアプリケーションは、4 レベルのページテーブルに制約を課さずに、システムが提供するメモリーをできるだけ多く使用できるようになりました。

(BZ#1623590)

RHEL8 カーネルは、将来の Intel CPU 用に拡張 IBRS に対応

Red Hat Enterprise Linux カーネルは、Spectre V2 の脆弱性を軽減するために、強化された IBRS (Indirect Branch Speculation) 機能の使用に対応するようになりました。これを有効にすると、IBRS は Spectre V2 を軽減する点で、Retpolines (デフォルト) よりも優秀で、Intel Control-flow Enforcement テクノロジーに干渉しません。これにより、今後の Intel CPU では、Spectre V2 の軽減策を有効にすることによるパフォーマンス低下が少なくなります。

(BZ#1614144)

eBPF ベースのプログラムおよびマップの調査および操作に使用する bpftool が追加

eBPF (extended Berkeley Packet Filtering) に基づくプログラムおよびマップの検査と簡単な操作を行う bpftool ユーティリティーが Linux カーネルに追加されました。bpftool はカーネルソースツリーの一部で、bpftool パッケージにより提供されます。これは、カーネル パッケージのサブパッケージとして含まれています。

(BZ#1559607)

kernel-rt ソースが更新

kernel-rt ソースが更新され、最新の RHEL カーネルソースツリーを使用するようになりました。最新のカーネルソースツリーは、現在、アップストリーム v4.18 のリアルタイムパッチセットを使用しています。これにより、以前のバージョンにバグ修正および機能強化が数多く追加されました。

(BZ#1592977)

5.1.4. ソフトウェア管理

YUM パフォーマンスの改善、およびモジュール式コンテンツへの対応

Red Hat Enterprise Linux 8 へのソフトウェアのインストールは、DNF テクノロジーに基づいた、新しいバージョンの YUM ツール (YUM v4) で行われます。

YUM v4 には、RHEL 7 で使用されていた、以前のバージョンの YUM v3 に対して、以下の利点が追加されました。

  • パフォーマンスの向上
  • モジューラーコンテンツへの対応
  • ツーリングと統合するために適切に設計され、安定した API

新しい YUM v4 ツールと、以前のバージョンである RHEL 7 の YUM v3 ツールとの間における相違点の詳細は、Changes in DNF CLI compared to YUM を参照してください。

コマンドラインから使用したり、設定ファイルを編集または作成する場合、YUM v4YUM v3 と互換性があります。

ソフトウェアをインストールするには、RHEL 7 と同じ yum コマンドとオプションを使用できます。

選択した yum プラグインおよびユーティリティーは、新しい DNF バックエンドに移植されており、RHEL 7 と同じ名前でインストールできます。このパッケージは互換性を持ったシンボリックリンクを提供するため、バイナリー、設定ファイル、ディレクトリーは通常の場所で確認できます。

YUM v3 が提供するレガシーの Python API は利用できなくなりました。YUM v4 (DNF Python API) が提供する安定し、完全に対応する新しい API に、使用しているプラグインおよびスクリプトを移行することが推奨されます。DNF Python API は、DNF API Reference から入手できます。

Libdnf および Hawkey API (C および Python の両方) は安定していないため、Red Hat Enterprise Linux 8 のライフサイクル期間中に変更する可能性があります。

YUM パッケージの変更点および利用可能なツールの詳細は、RHEL 8 の導入における検討事項 を参照してください。

YUM v3 機能の一部の挙動が、YUM v4 と異なる可能性があります。この変更がワークフローに影響を及ぼす場合は、カスタマーポータルでサポートケースを作成および管理する に従って、Red Hat サポートケースを作成してください。

(BZ#1581198)

RHEL 8 における主な RPM 機能

Red Hat Enterprise Linux 8 には RPM 4.14 が同梱されています。このバージョンでは、RHEL 7 で利用できた RPM 4.11 に対する機能拡張が数多く追加されました。以下は、主な変更点です。

  • debuginfo パッケージの複数バージョンを同時にインストール可能
  • 弱い依存関係への対応
  • 豊富なブール型依存関係への対応。
  • 4 GB を超えるファイルのパッケージ化への対応。
  • ファイルトリガーへの対応

以下は、主な変更点です。

  • 厳密なスペックパーサー
  • 非冗長モードで出力を確認する簡易署名
  • マクロの追加および廃止

(BZ#1581990)

RPM が、インストールを開始する前にパッケージ全体のコンテンツを検証

Red Hat Enterprise Linux 7 では、RPM ユーティリティーにより、解凍時に各ファイルのペイロードの内容が検証されていました。以下の理由により、この方法は十分ではありません。

  • ペイロードが破損していても、スクリプトアクションを実行した後にしか通知されず、元に戻せません。
  • ペイロードが破損していると、以前のバージョンのファイルを一部置き換えた後でパッケージのアップグレードが中止するため、インストールが正常に機能しません。
  • 個々のファイルのハッシュは、圧縮されていないデータに対して実行するため、RPM は、デコンプレッサーの脆弱性に対して脆弱です。

Red Hat Enterprise Linux 8 では、インストール前に、利用可能な最善のハッシュを使用して、パッケージ全体が個別の手順で検証されます。

Red Hat Enterprise Linux 8 に構築したパッケージでは、圧縮したペイロードに新しい SHA-256 ハッシュが使用されています。署名付きパッケージでは、署名によりペイロードハッシュの保護が強化されるため、パッケージヘッダーでは、署名やその他のハッシュを壊さずにペイロードハッシュを変更することはできません。以前のパッケージでは、設定で無効にされていない限り、ヘッダーとペイロードの MD5 ハッシュを使用します。

さらに、%_pkgverify_level マクロを使用して、インストール前に署名検証を強制することを有効にしたり、ペイロード検証を完全に無効にしたりできます。さらに、%_pkgverify_flags マクロを使用して、どのハッシュおよび署名を許可するかを制限できます。たとえば、弱い MD5 ハッシュの使用を無効にすることもできますが、これにより、古いパッケージとの互換性がなくなります。

(JIRA:RHELPLAN-10596)

5.1.5. インフラストラクチャーサービス

RHEL 8 で推奨される Tuned プロファイルの主な変更点

今回の更新で、(tuned-adm recommend コマンドにより報告される) 推奨される Tuned プロファイルが、次のルールに基づいて選択されるようになりました。一致する最初の規則が有効になります。

  • (syspurpose show コマンドにより報告される) syspurpose ロールには atomic が含まれ、以下のようになります。

    • Tuned がベアメタルで実行している場合は、atomic-host プロファイルが選択されます。
    • Tuned が仮想マシンで実行している場合は、atomic-guest プロファイルが選択されます。
  • Tuned が仮想マシンで実行している場合は、virtual-guest プロファイルが選択されます。
  • syspurpose ロールに desktop または workstation が含まれ、シャーシタイプ (dmidecode が報告) が NotebookLaptop、または Portable の場合は、balanced プロファイルが選択されます。
  • 上記のどのルールにも一致しない場合は throughput-performance プロファイルが選択されます。

(BZ#1565598)

named が作業ディレクトリーに生成するファイルを書き込み可能に

以前は、named デーモンが、作業ディレクトリーにデータを保存していましたが、Red Hat Enterprise Linux では、このディレクトリーは読み取り専用でした。今回の更新で、選択したファイルのパスが、書き込みが許可されているサブディレクトリーに変更になりました。これにより、Unix および SELinux のパーミッションでは、デフォルトのディレクトリーへの書き込みが許可されています。ただし、ディレクトリーに配布されているファイルは引き続き named に対して読み取り専用になります。

(BZ#1588592)

Geolite Databases が Geolite2 Databases に置き換え

Red Hat Enterprise Linux 7 で提供していた Geolite Databases が、Red Hat Enterprise Linux 8 で Geolite2 Databases に置き換えられました。

Geolite Databases は GeoIP パッケージで提供されていました。アップストリームでは、従来のデータベースが同梱されていたこのパッケージに対応しなくなりました。

Geolite2 Databases は、複数のパッケージで提供されます。libmaxminddb パッケージには、ライブラリーと、アドレスの手動検索を可能にする mmdblookup コマンドラインツールが同梱されています。従来の GeoIP パッケージの geoipupdate バイナリーは geoipupdate パッケージで提供されているため、従来のデータベースと新しい Geolite2 データベースの両方をダウンロードできるようになりました。

(JIRA:RHELPLAN-6746)

journald が CUPS ログに対応

RHEL 8 では、RHEL 7 で使用されていた /var/log/cups ディレクトリーの特定ファイルに、CUPS ログが保存されなくなりました。RHEL 8 では、どのタイプの CUPS ログも、他のプログラムとともに systemd の journald デーモンが集中管理します。CUPS ログにアクセスするには、journalctl -u cups コマンドを使用してください。詳細は CUPS ログの使用 を参照してください。

(JIRA:RHELPLAN-12764)

RHEL 8 における主な BIND 機能

RHEL 8 には、バージョン 9.11 に BIND (Berkeley Internet Name Domain) が含まれています。このバージョンの DNS サーバーには、バージョン 9.10 と比較して、複数の新機能と機能変更が追加されています。

新機能:

  • セカンダリーサーバー Catalog Zones をプロビジョニングする新しい方法が追加されました。
  • Domain Name System Cookies は、named サービスおよび dig ユーティリティーにより送信されるようになりました。
  • Response Rate Limiting 機能は、DNS 増幅攻撃の軽減を支援できます。
  • RPZ の (response-policy zone) のパフォーマンスが改善しました。
  • map と呼ばれる新しいゾーンファイルが追加されています。このフォーマットに保存されるゾーンファイルは、メモリーに直接マッピングされます。これにより、ゾーンが読み込む速度が大幅に改善します。
  • DNS データの検索、および DNS Security Extensions (DNSSEC) 検証を実行する dig のようなセマンティクスを使用する、delv ツール (ドメインエンティティー検索および検証) が追加されています。
  • 新しい mdig コマンドが利用できるようになりました。このバージョンのコマンドは、dig コマンドの中で、1 つのクエリーを送って、応答を待ってから次のクエリーを送る前に、パイプラインで複数のクエリーを送って応答を待ちます。
  • 再帰リゾルバーのパフォーマンスを改善する新しい prefetch オプションが追加されました。
  • ビュー間でゾーンデータを共有できる、新しい in-view ゾーンオプションが追加されました。このオプションが追加されると、新しいビューは、メモリーに複数のコピーを保存せずに、同じゾーンを確実に保存できます。
  • ゾーンに最大の TTL を強制する新しい max-zone-ttl オプションが追加されました。高い TTL を含むゾーンを読み込むと、読み込みに失敗します。動的 DNS (DDNS) により高い TTL を設定することは可能ですが、TTL は切り捨てられます。
  • 新しいクォータは、再帰リゾルバーが、サービス拒否攻撃が発生している権威サーバーに送信するクエリーを制限するために追加されました。
  • nslookup ユーティリティーは、デフォルトで IPv6 アドレスと IPv4 アドレスの両方を検索するようになりました。
  • named サービスは、起動する前に、その他のネームサーバープロセスが実行しているかどうかを確認します。
  • 署名付きゾーンを読み込むと、named が、Resource Record Signature (RSIG) の開始時間が将来時にあるかどうかを確認し、存在する場合はすぐに RRSIG を再生成するようになりました。
  • ゾーン転送は、ネットワーク使用量を低減するメッセージ圧縮を改善するために、より小さいサイズのメッセージを使用するようになりました。

機能変更:

  • 静的チャンネルに対するバージョン 3 の XML スキーマでは、高速解析を行うために、HTTP インターフェイスにより、新しい統計および平坦化した XML ツリーが提供されます。古いバージョンの 2 XML スキーマに対応しなくなりました。
  • named サービスは、デフォルトで IPv6 および IPv4 のインターフェイスでリッスンするようになりました。
  • named サービスは GeoIP に対応しなくなりました。クエリー送信者の推定位置で定義される Access control lists (ACL) は利用できなくなりました。

(JIRA:RHELPLAN-1820)

5.1.6. シェルおよびコマンドラインツール

nobody ユーザーが nfsnobody に置き換え

Red Hat Enterprise Linux 7 では、以下のように設定されていました。

  • ID が 99 の nobody のユーザーおよびグループのペア。
  • ID が 65534 の nfsnobody ユーザーとグループのペア。この ID は、デフォルトのカーネルオーバーフロー ID です。

これはいずれも、Red Hat Enterprise Linux 8 では、nobody ユーザーおよびグループのペア (ID 65534) に統合されました。新規インストールでは、nfsnobody ペアが作成されなくなりました。

この変更により、nobody が所有し、NFS とは無関係のファイルに対する曖昧さが軽減されます。

(BZ#1591969)

RHEL 8 のバージョン管理システム

RHEL 8 は、次のバージョン管理システムを提供します。

  • Git 2.18 は、分散アーキテクチャーを持つ分散型リビジョン管理システムです。
  • Mercurial 4.8 は、大規模プロジェクトを効率的に処理するために設計された、軽量の分散バージョン管理システムです。
  • Subversion 1.10 は、集中型管理システムです。

RHEL 7 で利用できた Concurrent Versions System (CVS) および Revision Control System (RCS) は、RHEL 8 では配布されていません。

(BZ#1693775)

Subversion 1.10 への主な変更点

Subversion 1.10 には、RHEL 7 で配布されたバージョン 1.7 以降に追加された新機能と、次の互換性の変更が含まれています。

  • 言語バインディングに対応するのに使用される Subversion ライブラリーにおける非互換性のため、Subversion 1.10Python 3 バインディングは利用できません。したがって、SubversionPython バインディングを必要とするアプリケーションには対応していません。
  • Berkeley DB に基づくリポジトリーには対応しなくなりました。移行する前に、svnadmin dump コマンドを使用して、Subversion 1.7 で作成したリポジトリーをバックアップします。RHEL 8 をインストールした後、svnadmin load コマンドを使用してリポジトリーを復元します。
  • RHEL 7 の Subversion 1.7 クライアントがチェックアウトした既存のワーキングコピーは、Subversion 1.10 で使用する前に新しい形式にアップグレードする必要があります。RHEL 8 をインストールしたら、各ワーキングコピーで svn upgrade コマンドを実行します。
  • https:// を使用してリポジトリーにアクセスするスマートカード認証には対応しなくなりました。

(BZ#1571415)

dstat への主な変更点

RHEL 8 には、新しいバージョンの dstat ツールが同梱されています。このツールは、Performance Co-Pilot (PCP) ツールキットに含まれるようになりました。/usr/bin/dstat ファイルおよび dstat パッケージの名前は、pcp-system-tools パッケージで提供されるようになりました。

新しいバージョンの dstat では、RHEL 7 で利用可能な dstat に、以下の機能強化が追加されました。

  • python3 への対応
  • 履歴分析
  • リモートホスト分析
  • 設定ファイルの構文
  • 新パフォーマンスのメトリック

(BZ#1684947)

5.1.7. 動的プログラミング言語、Web サーバー、およびデータベースサーバー

Python 3 が RHEL 8 におけるデフォルトの Python 実装に

Red Hat Enterprise Linux 8 には、Python 3.6 が同梱されています。このパッケージは、デフォルトでインストールされていない可能性があります。Python 3.6 をインストールする場合は、yum install python3 コマンドを使用します。

Python 2.7 は、python2 パッケージで入手できます。ただし、Python 3 への移行をより円滑に進められるように、Python 2 のライフサイクルは短くなっています。

デフォルトの python パッケージまたはバージョンを指定しない /usr/bin/python 実行ファイルは、いずれも RHEL 8 では配布されません。python3 または python2 を直接使用することが推奨されます。もしくは、管理者が、alternatives コマンドを使用して、バージョン管理外の python コマンドを設定できます。

詳細は、Python の概要 を参照してください。

(BZ#1580387)

Python スクリプトは、RPM ビルド時にインタープリターディレクティブでメジャーバージョンを指定する必要があります

RHEL 8 では、実行可能な Python スクリプトは、少なくともメジャー Python バージョンを明示的に指定するインタープリターディレクティブ (hashbang) を使用することが期待されています。

BRP (buildroot policy) スクリプト /usr/lib/rpm/redhat/brp-mangle-shebangs は、RPM パッケージを構築する際に自動的に実行します。このスクリプトは、すべての実行可能ファイルのインタープリターディレクティブを修正しようとします。スクリプトが、Python のメジャーバージョンを指定していないあいまいな Python インタープリターディレクティブを検出すると、エラーが生成され、RPM ビルドが失敗します。このようなあいまいなインタープリターディレクティブの例には、次のようなものがあります。

  • #! /usr/bin/python
  • #! /usr/bin/env python

RPM ビルド時にこれらのビルドエラーを引き起こす Python スクリプトのインタープリターディレクティブを変更するには、platform-python-devel パッケージの pathfix.py スクリプトを使用します。

pathfix.py -pn -i %{__python3} PATH ...

複数の PATH を指定できます。PATH がディレクトリーの場合、pathfix.py は Python スクリプトを再帰的にスキャンして、^[a-zA-Z0-9_]+\.py$ パターンに一致するものを探します。これは、曖昧な hashbang があるものだけではありません。%prep セクション、または %install セクションに、pathfix.py を実行するコマンドを追加します。

詳細は、Python スクリプトでのインタープリターディレクティブの処理 を参照してください。

(BZ#1583620)

PHP への主な変更点

Red Hat Enterprise Linux 8 には PHP 7.2 が同梱されています。このバージョンには、RHEL 7 で利用できた PHP 5.4 に対する重要な変更が追加されています。

  • PHP はデフォルトで FastCGI Process Manager (FPM) を使用します (スレッド化された httpd で安全に使用できます)。
  • php_value 変数と php-flag 変数が httpd 設定ファイルで使用されなくなり、代わりにプール設定の /etc/php-fpm.d/*.conf で設定する必要があります。
  • PHP スクリプトのエラーと警告のログは、/var/log/httpd/error.log ではなく /var/log/php-fpm/www-error.log ファイルに記録されます。
  • PHP の max_execution_time 設定変数を変更する時は、変更した値に合わせて httpd ProxyTimeout 設定を増やす必要があります。
  • PHP スクリプトを実行するユーザーが、FPM プール設定 (apache ユーザーがデフォルトとなる /etc/php-fpm.d/www.conf ファイル) に設定されるようになりました。
  • 設定を変更した場合、または新しい拡張機能をインストールした場合は、php-fpm サービスを再起動する必要があります。
  • zip 拡張が、php-common から、別のパッケージ php-pecl-zip に移動しました。

以下の拡張機能が削除されました。

  • aspell
  • mysql (拡張機能の mysqli および pdo_mysql は、php-mysqlnd パッケージで引き続き利用できます)
  • memcache

(BZ#1580430, BZ#1691688)

Ruby への主な変更点

RHEL 8 では、RHEL 7 に同梱されていた Ruby 2.5 に新機能および機能強化を追加した Ruby 2.0.0 が提供されます。以下は、主な変更点です。

  • インクリメンタルガベージコレクターが追加されました。
  • Refinements 構文が追加されました。
  • シンボルは、ガベージコレクションが行われるようになりました。
  • 安全レベルの $SAFE=2 および $SAFE=3 が廃止されました。
  • Fixnum クラスと Bignum クラスが、Integer クラスに統合されました。
  • Hash クラスの最適化、インスタンス変数へのアクセスの向上、ならびに Mutex クラスの小型化および高速化により、パフォーマンスが向上しました。
  • 古い API が非推奨になりました。
  • RubyGemsRakeRDocPsychMinitesttest-unit などのバンドルされたライブライリーが更新されました。
  • Ruby とともに配布されていた mathnDLext/tkXMLRPC などのライブラリーは非推奨になり、同梱されなくなりました。
  • SemVer バージョン管理スキームが、Ruby バージョン管理に使用されるようになりました。

(BZ#1648843)

Perl への主な変更点

RHEL 8 で提供される Perl 5.26 では、RHEL 7 で提供されていたバージョンに以下のような変更が追加されました。

  • Unicode 9.0 に対応するようになりました。
  • 新しい SystemTap のプローブ op-entryloading-file、および loaded-file が提供されるようになりました。
  • パフォーマンスを向上させるために、スカラーの割り当て時に、コピーオンライトメカニズムが使用されます。
  • IPv4 ソケットおよび IPv6 ソケットを透過的に処理するために IO::Socket::IP モジュールが追加されました。
  • 構造化された方法で perl -V データにアクセスするために、Config::Perl::V モジュールが追加されました。
  • Comprehensive Perl Archive Network (CPAN) リポジトリーからモジュールを取得、抽出、ビルド、およびインストールする cpanm ユーティリティーを同梱する perl-App-cpanminus パッケージが追加されました。
  • セキュリティー上の理由により、@INC モジュールの検索パスから、現在のディレクトリー (.) が削除されました。
  • 上記の動作上の変更によりファイルの読み込みに失敗した時に、do ステートメントが非推奨の警告を返すようになりました。
  • do subroutine(LIST) 呼び出しに対応しなくなり、構文エラーが発生するようになりました。
  • ハッシュがデフォルトでランダム化されるようになりました。ハッシュから鍵と値が返される順序は、perl の実行ごとに変わります。ランダム化を無効にするには、PERL_PERTURB_KEYS 環境変数を 0 に設定します。
  • 正規表現のパターンで、エスケープされていないリテラルの { 文字が使用できなくなりました。
  • $_ 変数に対する語彙的なスコープへの対応が削除されました。
  • 配列またはハッシュに defined 演算子を使用すると、致命的なエラーが発生します。
  • UNIVERSAL モジュールから関数をインポートすると、致命的なエラーが発生します。
  • find2perl ツール、s2p ツール、a2pc2ph ツール、および pstruct ツールが削除されました。
  • ${^ENCODING} 機能が削除されました。encoding プラグマのデフォルトモードに対応しなくなりました。UTF-8 以外のエンコーディングでソースコードを記述する場合は、エンコーディングの Filter オプションを使用します。
  • アップストリームに合わせて、perl パッケージが変更になりました。perl パッケージはコアモジュール群をインストールし、/usr/bin/perl インタープリターは perl-interpreter パッケージで提供されます。以前のリリースでは、perl パッケージに最小限のインタープリターだけが同梱され、perl-core パッケージにインタープリターとコアモジュールの両方が同梱されていました。
  • Perl モジュールの IO::Socket::SSL は、./certs/my-ca.pem ファイルまたは ./ca ディレクトリーから認証局の証明書、./certs/server-key.pem ファイルからサーバーの秘密鍵、./certs/server-cert.pem ファイルからサーバーの証明書、./certs/client-key.pem ファイルからクライアントの秘密鍵、./certs/client-cert.pem ファイルからクライアント証明書を読み込まなくなりました。代わりにファイルのパスを明示的に指定します。

(BZ#1511131)

Node.js が RHEL に新登場

JavaScript プログラミング言語で高速でスケーラブルなネットワークアプリケーションを構築するソフトウェア開発プラットフォームである Node.js が RHEL で初めて提供されます。以前は、Software Collection からしか入手できませんでした。RHEL 8 では Node.js 10 が提供されます。

(BZ#1622118)

SWIG への主な変更点

RHEL 8 には、SWIG (Simplified Wrapper and Interface Generator) バージョン 3.0 が含まれています。RHEL 7 に同梱されていたバージョン 2.0 に新機能、機能拡張、およびバグ修正が数多く追加されました。特に注目すべきは、C++11 標準仕様への対応が実装されたことです。SWIG は、Go 1.6PHP 7Octave 4.2、および Python 3.5 に対応するようになりました。

(BZ#1660051)

Apache httpd への主な変更点

RHEL 8 には、Apache HTTP Server 2.4.37 が同梱されています。このバージョンには、RHEL 7 で利用できた httpd に対する次の変更が含まれています。

  • httpd モジュールに同梱される mod_http2 パッケージにより、HTTP/2 に対応するようになりました。
  • (Let's Encrypt などの証明書プロバイダーで使用するため) 自動証明書管理環境 (ACME) プロトコルを使用した、TLS 証明書の自動プロビジョニングおよび更新が、mod_md パッケージで対応するようになりました。
  • Apache HTTP Server が、PKCS#11 モジュールを利用して、ハードウェアのセキュリティートークンから、TLS 証明書および秘密鍵を直接読み込むようになりました。これにより、mod_ssl 設定で、PKCS#11 の URL を使用して、SSLCertificateKeyFile ディレクティブおよび SSLCertificateFile ディレクティブに、TLS 秘密鍵と、必要に応じて TLS 証明書をそれぞれ指定できるようになりました。
  • Apache HTTP Server にデフォルトで設定されているマルチプロセッシングモジュール (MPM) が、(prefork として知られる) マルチプロセスのフォークモデルから、高パフォーマンスのマルチスレッドモデル event へ変更しました。スレッドセーフではないサードパーティーのモジュールは、交換または削除する必要があります。設定した MPM を変更する場合は、/etc/httpd/conf.modules.d/00-mpm.conf ファイルを編集します。詳細は、man ページの httpd.conf(5) を参照してください。

httpd の変更とその使用方法の詳細は、Apache HTTP Web サーバーの設定 を参照してください。

(BZ#1632754, BZ#1527084, BZ#1581178)

nginx Web サーバーが RHEL に新登場

RHEL 8 では、HTTP などのプロトコルに対応する Web サーバーおよびプロキシーサーバー nginx 1.14 が導入され、同時実行性とパフォーマンスが高くなり、メモリー使用量が少なくなりました。nginx は、以前は、Software Collection からしか入手できませんでした。

nginx の Web サーバーは、PKCS#11 モジュールを利用してハードウェアセキュリティートークンから直接 TLS 秘密鍵を読み込むようになりました。これにより、nginx 設定で、PKCS#11 の URL を使用して TLS 秘密鍵を ssl_certificate_key ディレクティブに指定できるようになりました。

(BZ#1545526)

RHEL 8 のデータベースサーバー

RHEL 8 は、次のデータベースサーバーを提供します。

  • MySQL 8.0。マルチユーザー、マルチスレッドの SQL データベースサーバーです。MySQL サーバーデーモンである mysqld と、多数のクライアントプログラムで設定されます。
  • MariaDB 10.3。マルチユーザー、マルチスレッドの SQL データベースサーバーです。あらゆる実用的な目的に対応するために、MariaDB には、MySQL とバイナリー互換性があります。
  • PostgreSQL 10 および PostgreSQL 9.6。高度なオブジェクトリレーショナルデータベース管理システム (DBMS) です。
  • Redis 5。高度な鍵と値のストアです。鍵には、文字列、ハッシュ、リスト、セット、およびソートセットを含めることができるため、データ構造サーバーと呼ばれています。RHEL で、Redis が初めて提供されます。

NoSQL の MongoDB データベースサーバーは、Server Side Public License (SSPL) を使用するため、RHEL 8.0 には同梱されていません。

(BZ#1647908)

MySQL 8.0 への主な変更点

RHEL 8 に同梱される MySQL 8.0 には、たとえば次のような機能強化が含まれます。

  • MySQL に、データベースオブジェクトに関する情報を格納するトランザクショナルデータディクショナリーが組み込まれました。
  • MySQL がロールに対応するようになりました。ロールは特権の集まりです。
  • デフォルトの文字セットが、latin1 から utf8mb4 に変更しました。
  • 非再帰的および再帰的な Common Table Expression に対応するようになりました。
  • MySQL が、クエリーで関連する行の集合に対して、行ごとに計算を実行する window 関数に対応するようになりました。
  • locking read ステートメントにより、InnoDB で、NOWAIT オプションおよび SKIP LOCKED オプションに対応するようになりました。
  • GIS 関連の関数が改善しました。
  • JSON 関数が強化されました。
  • 新しい mariadb-connector-c パッケージは、MySQLMariaDB に共通のクライアントライブラリーを提供します。このライブラリーは、データベースサーバーの MySQL および MariaDB の全バージョンで使用できます。その結果、RHEL 8 に同梱される MySQL サーバーおよび MariaDB サーバーのいずれかに構築されるアプリケーションの 1 つに接続できます。

さらに、RHEL 8 に同梱されている MySQL 8.0 サーバーでは、デフォルトの認証プラグインに mysql_native_password を使用するように設定されています。RHEL 8 のクライアントツールおよびライブラリーは、アップストリームの MySQL 8.0 バージョンでデフォルトで使用されている caching_sha2_password メソッドと互換性がないためです。

デフォルトの認証プラグインを caching_sha2_password に変更するには、/etc/my.cnf.d/mysql-default-authentication-plugin.cnf ファイルを次のように変更します。

[mysqld]
default_authentication_plugin=caching_sha2_password

MySQL の使用 も参照してください。

(BZ#1649891, BZ#1519450, BZ#1631400)

MariaDB 10.3 への主な変更点

MariaDB 10.3 では、RHEL 7 に同梱されていたバージョン 5.5 に新機能が数多く追加されました。以下は、主な変更点です。

  • 共通テーブル式 (CTE)
  • システムのバージョンが管理されたテーブル
  • FOR ループ
  • 非表示の列
  • シーケンス
  • InnoDB のインスタント ADD COLUMN
  • ストレージエンジンに依存しないカラム圧縮
  • 並列レプリケーション
  • マルチソースのレプリケーション

さらに、新しい mariadb-connector-c パッケージは、MySQLMariaDB に共通のクライアントライブラリーを提供します。このライブラリーは、データベースサーバーの MySQL および MariaDB の全バージョンで使用できます。その結果、RHEL 8 に同梱される MySQL サーバーおよび MariaDB サーバーのいずれかに構築されるアプリケーションの 1 つに接続できます。

その他の主な変更点は次の通りです。

  • 同期マルチクラスターでもある MariaDB Galera Cluster が、MariaDB の標準に含まれるようになりました。
  • InnoDB は、XtraDB の代わりに、デフォルトのストレージエンジンとして使用されます。
  • mariadb-bench サブパッケージが削除されました。
  • プラグインの成熟度に対するデフォルトの許可レベルは、サーバーの成熟度よりレベルが 1 つ低くなるように変更になりました。その結果、以前は動作していた、成熟度レベルが低いプラグインが、読み込まれなくなりました。

MariaDB の使用 も参照してください。

(BZ#1637034, BZ#1519450, BZ#1688374)

PostgreSQL への主な変更点

RHEL 8.0 は、postgresql モジュールの 2 つのストリームで、PostgreSQL データベースサーバーのバージョンを 2 つ (PostgreSQL 10 (デフォルトストリーム) および PostgreSQL 9.6) 提供します。RHEL 7 には PostgreSQL バージョン 9.2 が含まれます。

PostgreSQL 9.6 への主な変更点。以下は例になります。

  • 一連の動作の並列実行 - scanjoin、および aggregate
  • 同期レプリケーションの機能強化
  • フレーズを検索できるように、フルテキスト検索が改善
  • postgres_fdw データ連携ドライバーが、リモートの joinsortUPDATE、および DELETE の操作に対応
  • (特に、マルチ CPU ソケットサーバーのスケーラビリティーに関する) 重要なパフォーマンスの向上

PostgreSQL 10 への主な機能拡張。以下は例になります。

  • publish キーワードおよび subscribe キーワードを使用した論理レプリケーション
  • SCRAM-SHA-256 メカニズムを基にした強力なパスワード認証
  • 宣言型テーブルのパーティション
  • 改善されたクエリーの並列処理
  • 重要な一般的なパフォーマンスの向上
  • 改善された監視および制御

PostgreSQL の使用 も参照してください。

(BZ#1660041)

Squid への主な変更点

RHEL 8.0 は、Web クライアント、対応する FTP、Gopher、および HTTP のデータオブジェクト用の高パフォーマンスのプロキシーキャッシュサーバーである Squid 4.4 で配布します。このリリースは、RHEL 7 で利用可能なバージョン 3.5 に新しい機能、機能強化、バグ修正を多数提供します。

以下は、主な変更点です。

  • ヘルパーのキューサイズが変更可能
  • ヘルパー同時実行チャンネルへの変更
  • ヘルパーバイナリーへの変更
  • Internet Content Adaptation Protocol (ICAP) の保護
  • 対称型マルチプロセッシング (SMP) への対応が改善
  • プロセス管理が改善
  • SSL への対応が削除
  • Edge Side Includes (ESI) カスタムパーサーが削除
  • 複数の設定変更

(BZ#1656871)

Varnish Cache が RHEL に新登場

高パフォーマンスの HTTP 逆ポリシーである Varnish Cache が、RHEL で初めて提供されました。以前は、Software Collection からしか入手できませんでした。Varnish Cache は、将来の同等の要求で応答時間およびネットワークの帯域幅を削減するのに使用されるメモリーに、ファイルまたはファイルの断片を保存します。RHEL 8.0 は、Varnish Cache 6.0 で配布されています。

(BZ#1633338)

5.1.8. デスクトップ

RHEL 8 の GNOME シェル (バージョン 3.28)

Red Hat Enterprise Linux (RHEL) 8 では、GNOME シェルのバージョン 3.28 が利用できます。以下は、主な機能強化です。

  • GNOME Boxes の新機能
  • 新しいオンスクリーンキーボード
  • デバイスへの対応が拡張 (最も大きな統合は Thunderbolt 3 インターフェイス)
  • GNOME ソフトウェア、dconf-editor、および GNOME ターミナルの改善

(BZ#1649404)

Wayland がデフォルトのディスプレイサーバーに

Red Hat Enterprise Linux 8 では、GNOME セッションおよび GNOME Display Manager (GDM) のデフォルトのディスプレイサーバーでは、以前の RHEL メジャーバージョンで使用されていた X.org に代わり、Wayland が使用されます。

X.org と比べると、Wayland では、複数の利点および改善点が提供されます。以下に例を示します。

  • より強力なセキュリティーモデル
  • 改善されたマルチモニター処理
  • 改善されたユーザーインターフェイス (UI) スケーリング
  • デスクトップでウィンドウ処理を直接制御

以下の機能は、現在利用できない、または期待通りに機能しない状態です。

  • Wayland では、マルチ GPU の設定が利用できません。
  • Wayland では、NVIDIA バイナリードライバーが有効ではありません。
  • xrandr ユーティリティーは、解像度、ローテーション、およびレイアウトの処理方法が異なるため、Wayland では有効ではありません。画面を操作するその他の X.org ユーティリティーも、Wayland では機能しません。
  • 画面の録画、リモートデスクトップ、およびアクセシビリティーは、Wayland では正常に機能しない場合があります。
  • クリップボードマネージャーは利用できません。
  • Wayland は、仮想マシンビューアーなどの X11 アプリケーションのキーボードグラブを無視します。
  • ゲスト仮想マシンの Wayland には安定性とパフォーマンスに問題があるため、仮想環境では X11 セッションを使用することが推奨されます。

X.org GNOME セッションを使用していた RHEL 7 システムから RHEL 8 にアップグレードすると、システムでは引き続き X.org が使用されます。また、次のグラフィックドライバーが使用されている場合は、自動的に X.org にフォールバックします。

  • NVIDIA バイナリードライバー
  • cirrus ドライバー
  • mga ドライバー
  • aspeed ドライバー

Wayland の使用は手動で無効にできます。

  • GDMWayland を無効にするには、/etc/gdm/custom.conf ファイルに WaylandEnable=false オプションを設定します。
  • GNOME セッションで Wayland を無効にするには、ログイン名を入力してから、ログイン画面の歯車メニューで legacy X11 オプションを選択します。

Wayland の詳細は Wayland を参照してください。

(BZ#1589678)

デフォルトでは有効でないリポジトリーにある RPM パッケージの検索

デスクトップ用の追加のリポジトリーは、デフォルトでは有効になりません。無効化は、対応する .repo ファイルの enabled=0 行で指定されています。PackageKit を使用して、そのようなリポジトリーからパッケージをインストールしようとすると、アプリケーションが利用できないことを知らせるエラーメッセージが PackageKit により示されます。パッケージを利用できるようにするには、各 .repo ファイルの enabled=0 の行を enabled=1 に変更します。

(JIRA:RHELPLAN-2878)

パッケージ管理用の GNOME Sofware

Red Hat Enterprise Linux 7 のグラフィック環境でパッケージを管理するツール群を提供していた gnome-packagekit パッケージが利用できなくなりました。Red Hat Enterprise Linux 8 では、アプリケーションと gnome-shell 拡張機能のインストールと更新を可能にする GNOME Software ユーティリティーにより同様の機能が提供されます。GNOME Software は、 gnome-software パッケージで配布されます。

(JIRA:RHELPLAN-3001)

Wayland の GNOME Shell で利用可能な分数スケール

Wayland の GNOME Shell セッションで、分数のスケーリング機能が利用できます。この機能は、GUI を分数でスケールでき、特定のディスプレイでスケールした GUI の出現を改善します。

この機能は現在試験的なものなので、デフォルトでは無効になっていることに注意してください。

分数スケールを有効にするには、次のコマンドを実行します。

# gsettings set org.gnome.mutter experimental-features "['scale-monitor-framebuffer']"

(BZ#1668883)

5.1.9. ハードウェアの有効化

fwupd を使用したファームウェア更新が利用可能

RHEL 8 は、fwupd デーモンを使用した UEFI Capsule、Device Firmware Upgrade (DFU) などのファームウェア更新に対応します。デーモンは、セッションソフトウェアがローカルマシンのデバイスファームウェアを自動的に更新できるようにします。

更新を表示して適用する場合は、以下を使用できます。

  • GUI ソフトウェアマネージャー (GNOME ソフトウェアなど)
  • fwupdmgr コマンドラインツール

メタデータファイルは Linux Vendor Firmware Service (LVFS) セキュアポータルから自動的にダウンロードされ、D-Bus 経由で fwupd に送信されます。適用が必要な更新がダウンロードされ、ユーザー通知と更新の詳細が表示されます。更新を実行する前に、ユーザーはファームウェアの更新操作に明示的に合意する必要があります。

LVFS へのアクセスは、デフォルトでは無効になっていることに注意してください。

LVFS へのアクセスを有効にするには、GNOME ソフトウェアで sources ダイアログのスライダーをクリックするか、fwupdmgr enable-remote lvfs コマンドを実行します。fwupdmgr を使用して更新リストを取得する場合は、LVFS を有効にするかどうかが尋ねられます。

LVFS にアクセスすると、ハードウェアベンダーからファームウェアの更新を直接入手できます。このような更新は、Red Hat QA による検証が行われていないことに注意してください。

(BZ#1504934)

Optane DC 永続メモリー技術用のメモリーモードに完全対応

Intel Optane DC Persistent Memory ストレージデバイスは、データセンタークラスの永続メモリー技術を提供し、トランザクションのスループットを大幅に向上させます。

メモリーモード技術を使用するために、システムに特別なドライバーや特定の認定を設定する必要ありません。メモリーモードは、オペレーティングシステムに対して透過的です。

(BZ#1718422)

5.1.10. ID 管理

Directory Server で新しいパスワード構文の確認

この機能拡張により、Directory Server に新しいパスワード構文確認機能が追加されました。管理者は、たとえば、辞書の確認を有効にし、文字のシーケンスや回文を使用して許可または拒否を行います。したがって、これを有効にすると、Directory Server のパスワードポリシー構文の確認により、より安全なパスワードが強制されます。

(BZ#1334254)

Directory Server が提供する内部操作ログへの対応が改善

サーバーとクライアントが開始した Directory Server の操作により、バックグラウンドで追加の操作が発生します。以前は、サーバーが、内部操作の Internal 接続キーワードのみを記録し、操作 ID は常に -1 に設定されていました。この機能拡張により、Directory Server は実際の接続および操作の ID のログを記録できるようになりました。この操作の原因となったサーバーまたはクライアントの操作に対する内部操作を追跡できるようになりました。

(BZ#1358706)

tomcatjss ライブラリーに、AIA 拡張のレスポンダーを使用した OCSP 確認に対応

この機能拡張により、tomcatjss ライブラリーは、証明書の Authority Information Access (AIA) 拡張のレスポンダーを使用した Online Certificate Status Protocol (OCSP) の確認に対応します。これにより、Red Hat Certificate System の管理者は、AIA 拡張の URL を使用して OCSP の確認を設定できるようになりました。

(BZ#1636564)

pki subsystem-cert-find コマンドおよび pki subsystem-cert-show コマンドが証明書のシリアル番号を表示

この機能強化により、証明書システムの pki subsystem-cert-find コマンドおよび pki subsystem-cert-show コマンドでは、出力の証明書のシリアル番号が表示されるようになりました。シリアル番号は重要な情報であり、他の複数のコマンドで必要になることがよくあります。これにより、証明書のシリアル番号を識別するのが簡単になりました。

(BZ#1566360)

証明書システムで pki user コマンドおよび pki group コマンドが非推奨に

今回の更新で、証明書システムの新しい pki <subsystem>-user コマンドおよび pki <subsystem>-group コマンドが、pki user コマンドおよび pki group コマンドに置き換わりました。以前のコマンドも引き続き使用できますが、コマンドが非推奨であるというメッセージと、代替となる新しいコマンドが表示されます。

(BZ#1394069)

証明書システムでシステム証明書のオフライン更新に対応

この機能強化により、管理者はオフライン更新機能を使用して、証明書システムで設定されているシステム証明書を更新できます。システム証明書の期限が切れると、Certificate System が起動できなくなります。この機能強化により、管理者が期限切れのシステム証明書を置き換える必要がなくなりました。

(BZ#1669257)

証明書システムで、外部 CA 署名用に SKI 拡張を使用して CSR を作成できるようになる

この機能強化により、証明書システムで、外部認証局 (CA) 署名用の SKI (Subject Key Identifier) 拡張子を持つ証明書署名要求 (CSR) の作成に対応します。特定の CA は、特定の値で、または CA 公開鍵から派生したこの拡張を必要とします。これにより、管理者は pkispawn ユーティリティーに渡される設定ファイルの pki_req_ski パラメーターを使用して、SKI 拡張子を持つ CSR を作成できるようになりました。

(BZ#1656856)

SSSD が、AD ドメインのフォールバックとして [nss] セクションの fallback_homedir 値を使用しなくなりました。

RHEL 7.7 以前では、Active Directory (AD) プロバイダーの SSSD fallback_homedir パラメーターにはデフォルト値がありませんでした。fallback_homedir が設定されていない場合は、/etc/sssd/sssd.conf ファイルの [nss] セクションにある同じパラメーターの値が SSSD によって使用されていました。セキュリティーを向上させるために、RHEL 7.7 の SSSD では、fallback_homedir のデフォルト値が導入されました。これにより、[nss] に設定された値に戻らなくなりました。AD ドメインの fallback_homedir パラメーターにデフォルトとは異なる値を使用する場合は、ドメインのセクションで手動で設定する必要があります。

BZ#(2069324)

SSSD で、複数のスマートカード認証デバイスの中から 1 つを選択可能

デフォルトでは、SSSD (System Security Services Daemon) が、スマートカード認証用デバイスを自動的に検出しようとします。複数のデバイスを接続している場合は、最初に見つかったデバイスを SSSD が選択します。したがって、特定のデバイスを選択することはできません。失敗する可能性もあります。

この更新では、sssd.conf 設定ファイルの [pam] セクションに、新しい p11_uri オプションを設定できるようになりました。このオプションを使用すると、スマートカード認証に使用するデバイスを定義できます。

たとえば、OpenSC PKCS#11 モジュールにより検出されたスロット ID 2 のリーダーを選択するには、以下を追加します。

p11_uri = library-description=OpenSC%20smartcard%20framework;slot-id=2

sssd.conf[pam] セクションに追加します。

詳細は、man sssd.conf ページを参照してください。

(BZ#1620123)

SSSD によりローカルユーザーがキャッシュに格納され、nss_sss モジュールにより処理される

RHEL 8 の System Security Services Daemon (SSSD) は、デフォルトで /etc/passwd ファイルおよび /etc/groups ファイルから、ユーザーとグループにサービスを提供します。sss の nsswitch モジュールは、/etc/nsswitch.conf のファイルに先行します。

SSSD を通して、ローカルユーザーにサービスを提供する利点は、nss_sss モジュールに memory-mapped cache があるため、NSS (Name Service Switch) への各要求でディスクにアクセスしてファイルを開くのと比較して、Name Service Switch (NSS) ルックアップが高速になることでした。これまで、ディスクへのアクセスの高速化は、Name サービスキャッシュデーモン (nscd) により行われていました。ただし、SSSD と nscd の両方が独自の独立したキャッシュを使用するため、nscd と SSSD を並行して使用するのは容易ではありません。そのため、SSSD が、リモートドメイン (LDAP、Active Directory など) のユーザーにもサービスを提供している環境で nscd を使用すると、予期しない動作が発生する可能性があります。

今回の更新で、RHEL 8 でローカルユーザーおよびグループの解決が速くなりました。root ユーザーは、SSSD に処理されることがないため、SSSD の潜在的なバグが root の解決に影響を及ぼすことはありません。また、SSSD が実行していない場合は、問題を回避するために、nss_sss モジュールが nss_files にフォールバックすることでこの状況が適切に処理されます。SSSD を設定する必要はありません。files ドメインは自動的に追加されます。

(JIRA:RHELPLAN-10439)

KCM が、KEYRING をデフォルトの認証情報キャッシュストレージとして置き換え

RHEL 8 でデフォルトの認証情報キャッシュストレージは、sssd-kcm デーモンにより強化されている Kerberos Credential Manager (KCM) です。KCM では、以前使用されていた KEYRING の制限 (名前空間がないためにコンテナー化された環境での使用や、クォータの表示および管理が困難など) が解消されています。

今回の更新で、RHEL 8 には、コンテナー環境により適した認証情報キャッシュが含まれ、将来のリリースでより多くの機能を構築するための基盤が提供されます。

(JIRA:RHELPLAN-10440)

Active Directory ユーザーが Identity Management を管理可能

今回の更新で、RHEL 8 は、Identity Management (IdM) グループのメンバーとして、Active Directory (AD) ユーザーのユーザー ID のオーバーライドを追加できるようになりました。ID オーバーライドは、特定の AD ユーザーまたはグループのプロパティーが特定の ID ビュー (この場合は Default Trust View) 内でどのように見えるかを記述するレコードです。この更新により、IdM LDAP サーバーは、IdM グループのアクセス制御ルールを AD ユーザーに適用できます。

AD ユーザーは、IdM UI のセルフサービス機能 (SSH キーのアップロード、個人のデータの変更など) を使用できるようになりました。AD 管理者は、アカウントおよびパスワードを 2 つ使用しなくても、IdM を完全に管理できるようになります。現在、AD ユーザーが、IdM で選択されている機能を利用できない場合があります。

(JIRA:RHELPLAN-10442)

sssctl が、IdM ドメインの HBAC ルールレポートを出力

今回の更新で、System Security Services Daemon (SSSD) の sssctl ユーティリティーは、Identity Management (IdM) ドメインのアクセス制御レポートを出力できるようになりました。この機能は、規制上の理由から、特定のクライアントマシンにアクセスできるユーザーとグループのリストを表示するニーズを満たします。IdM クライアントで sssctl access-report domain_name を実行すると、クライアントマシンに適用する IdM ドメインで解析されたホストベースのアクセス制御 (HBAC) ルールのサブセットを表示します。

IdM 以外のプロバイダーは、この機能に対応していません。

(JIRA:RHELPLAN-10443)

Identity Management パッケージがモジュールとして利用可能

RHEL 8 では、Identity Management (IdM) サーバーおよびクライアントのインストールに必要なパッケージがモジュールとして公開されています。client ストリームは、idm モジュールのデフォルトのストリームなので、このストリームを有効にしなくてもクライアントのインストールに必要なパッケージをダウンロードできます。

IdM サーバーのモジュールストリームは DL1 ストリームと呼ばれています。このストリームには、さまざまなタイプの IdM サーバーに対応するプロファイル (server、dns、adtrust、client、および default) が含まれています。DL1 ストリームの特定プロファイルに含まれるパッケージをダウンロードする場合は、以下を行います。

  1. ストリームを有効にします。
  2. ストリーム経由で配信される RPM に切り替えます。
  3. yum module install idm:DL1/profile_name コマンドを実行します。

特定のストリームを有効にし、そこからパッケージをダウンロードし、新しいモジュールストリームに切り替えるには、以下を行います。

  1. インストールされている関連コンテンツをすべて削除し、現在のモジュールストリームを無効にします。
  2. 新しいモジュールストリームを有効にします。

(JIRA:RHELPLAN-10438)

RHEL 8 のセッション記録ソリューションが追加

Red Hat Enterprise Linux 8 (RHEL 8) にセッション記録ソリューションが追加されました。新しい tlog パッケージと、それに関連付けられた Web コンソールセッションプレイヤーにより、ユーザー端末セッションを録画および再生できるようになりました。録画は、システムセキュリティーサービスデーモン (SSSD) サービスを介して、ユーザー別またはユーザーグループ別に設定できます。端末への入出力はすべてキャプチャーされ、テキストベースの形式でシステムジャーナルに保存されます。セキュリティー上の理由から、未加工のパスワードやその他の機密情報を傍受されないように、入力はデフォルトでは非アクティブになっています。

このソリューションを、セキュリティーが重要なシステムでユーザーセッションを監査するのに使用できます。セキュリティー違反が発生した場合に、記録したセッションをフォレンジック分析として評価できます。システム管理者は、セッション記録をローカルに設定し、tlog-play ユーティリティーを使用して、RHEL 8 Web コンソールインターフェイスまたはコマンドラインインターフェイスから、結果を表示できるようになりました。

(JIRA:RHELPLAN-1473)

authselect がユーザー認証の設定を簡略化

今回の更新で、authconfig ユーティリティーに代わる、RHEL 8 ホストでのユーザー認証の設定を簡素化する authselect ユーティリティーが導入されました。authselect には、システム管理者に対して PAM 設定の変更を簡単に行える、より安全な PAM スタック管理アプローチがあります。authselect を使用すると、パスワード、証明書、スマートカード、フィンガープリントなどの認証方法を設定できます。authselect では、リモートドメインに参加するのに必要なサービスを設定しないことに注意してください。このタスクは、realmdipa-client-install のような専門のツールにより実行されます。

(JIRA:RHELPLAN-10445)

SSSD がデフォルトで AD GPO を強制するようになりました。

SSSD オプション ad_gpo_access_control のデフォルト設定が Enforcing になりました。RHEL 8 では、SSSD は、デフォルトで Active Directory Group Policy Objects (GPO) に基づいてアクセス制御ルールを強制します。

Red Hat は、RHEL 7 から RHEL 8 にアップグレードする前に、Active Directory で GPO が正しく設定されていることを確認することを推奨します。GPO を強制しない場合は、/etc/sssd/sssd.conf ファイルの ad_gpo_access_control オプションの値を permissive に変更します。

(JIRA:RHELPLAN-51289)

5.1.11. コンパイラーおよび開発ツール

Boost がバージョン 1.66 へ更新

Boost C++ ライブラリーがアップストリームバージョン 1.66 に更新されました。Red Hat Enterprise Linux 7 に含まれる Boost のバージョンは 1.53 です。詳細は、アップストリームの changelog (Boost Version History) を参照してください。

今回の更新で、以前のバージョンとの互換性を損なう以下の変更が行われています。

  • splay コンテナーの bs_set_hook() 関数、splay_set_hook() 関数と、Intrusive ライブラリーの splaytree_algorithms() 関数の追加パラメーター bool splay = true が削除されました。
  • JSON ファイルのコメントまたは文字列の連結が、Property Tree ライブラリーのパーサーで対応されなくなりました。
  • Math ライブラリーのディストリビューションや特別な関数の一部を、ドキュメントに記載されているとおりに動作し、最大の有限値を返さずに overflow_error を送出するように修正されました。
  • Math ライブラリーの一部のヘッダーを、libs/math/include_private ディレクトリーに移動しました。
  • Regex ライブラリーの basic_regex<>::mark_count() 関数および basic_regex<>::subexpression(n) 関数の挙動が、ドキュメントに合わせて変更になりました。
  • Variant ライブラリーで可変テンプレートを使用すると、メタプログラミング機能が壊れる可能性があります。
  • API boost::python::numeric が削除されました。代わりに boost::python::numpy を使用できます。
  • 非オブジェクト型へのポインターに対する算術演算が、Atomic ライブラリーでは提供されなくなりました。

(BZ#1494495)

Unicode 11.0.0 への対応

Red Hat Enterprise Linux のコア C ライブラリーの glibc が、Unicode 標準バージョン 11.0.0 に対応するように更新されました。このため、文字セット間の書き直しおよび変換を含むワイド文字およびマルチバイト文字の API のすべてが、この規格に準拠した正確な情報を提供します。

(BZ#1512004)

boost が Python から独立

今回の更新で、 boost パッケージをインストールしても、Boost.Python ライブラリーが依存関係としてインストールされなくなりました。Boost.Python を使用するには、boost-python3 パッケージまたは boost-python3-devel パッケージを明示的にインストールする必要があります。

(BZ#1616244)

新しい compat-libgfortran-48 パッケージが利用可能に

Fortran ライブラリーを使用する Red Hat Enterprise Linux 6 および 7 のアプリケーションとの互換性のために、libgfortran.so.3 ライブラリーを提供する compat-libgfortran-48 互換性パッケージが新たに利用できるようになりました。

(BZ#1607227)

GCC で Retpoline に対応

今回の更新で、GCC への retpoline に対応するようになりました。retpoline は、CVE-2017-5715 で説明されているように、Spectre Variant 2 攻撃を軽減するためのオーバーヘッドを減らすために、カーネルで使用されるソフトウェア構造です。

(BZ#1535774)

toolchain コンポーネントにおける 64 ビットの ARM アーキテクチャーへの対応の強化

ツールチェーンコンポーネントの GCC および binutils は、64 ビットの ARM アーキテクチャーへの対応が拡張されました。以下に例を示します。

  • GCCbinutils で Scalable Vector Extension (SVE) に対応するようになりました。
  • ARM v8.2 で提供されていた FP16 データ型への対応が GCC に追加されました。FP16 データ型は特定のアルゴリズムのパフォーマンスを改善します。
  • binutils のツールで、ポインター認証を含む ARM v8.3 アーキテクチャーの定義に対応するようになりました。ポインター認証機能により、悪意のあるコードが、独自の関数ポインターを作成してプログラムまたはカーネルの通常の実行を妨害するのを防ぎます。その結果、コードのさまざまな場所に分岐する際に信頼できるアドレスだけが使用され、セキュリティーが向上します。

(BZ#1504980, BZ#1550501, BZ#1504995, BZ#1504993, BZ#1504994)

IBM POWER システム用 glibc の最適化

今回の更新で、IBM POWER 8 と IBM POWER 9 の両アーキテクチャー向けに最適化された新しいバージョンの glibc が提供されるようになりました。これにより、IBM POWER 8 システムおよび IBM POWER 9 システムが、実行時に最適化された適切な glibc バリアントに自動的に切り替わるようになりました。

(BZ#1376834)

GNU C ライブラリーがバージョン 2.28 に更新

Red Hat Enterprise Linux 8 には、バージョン 2.28 の GNU C ライブラリー (glibc) が同梱されます。以下は、主な改善点です。

  • セキュリティーの強化機能:

    • AT_SECURE フラグが付いた安全なバイナリーファイルは、LD_LIBRARY_PATH 環境変数を無視します。
    • シャットダウンのスピードを上げ、危険にさらされた環境でより多くのコードが実行されることを回避するため、スタックの確認の失敗に対してバックトレースが表示されなくなりました。
  • パフォーマンスの向上:

    • スレッドローカルキャッシュにより、malloc() 関数のパフォーマンスが向上しました。
    • ライブラリーパフォーマンスの特性を変更する GLIBC_TUNABLES 環境変数が追加されました。
    • スレッドセマフォの実装が改善され、スケーラブルな pthread_rwlock_xxx() 関数が新たに追加されました。
    • math ライブラリーのパフォーマンスが向上しました。
  • Unicode 11.0.0 への対応が追加されました。
  • 標準規格の ISO/IEC/IEEE 60559:2011、IEEE 754-2008、および ISO/IEC TS 18661-3:2015 で定義されている 128 ビット浮動小数点への対応が改善されました。
  • /etc/resolv.conf 設定ファイルに関連するドメインネームサービス (DNS) スタブリゾルバーが改善しました。

    • ファイルを変更すると、設定が自動的に再読み込みされるようになりました。
    • 任意の検索ドメインに対応するようになりました。
    • rotate オプションの適切なランダム選択が追加されました。
  • 開発用の機能が新たに追加されました。以下は例となります。

    • カーネルコールの preadv2 および pwritev2 で使用される Linux のラッパー関数
    • 新しい関数 (reallocarray()explicit_bzero() など)
    • posix_spawnattr_setflags() 関数の新しいフラグ (POSIX_SPAWN_SETSID など)

(BZ#1512010, BZ#1504125, BZ#506398)

RHEL で CMake が利用可能に

CMake ビルドシステムバージョン 3.11 は、Red Hat Enterprise Linux 8 の cmake パッケージで入手できます。

(BZ#1590139, BZ#1502802)

make バージョン 4.2.1

Red Hat Enterprise Linux 8 には、make ビルドツールバージョン 4.2.1 が同梱されています。以下は、主な変更点です。

  • レシピに失敗すると、makefile の名前とレシピの行番号が表示されます。
  • ターゲットの追跡を可能にするために、--trace オプションが追加されました。このオプションを使用すると、起動時に、非表示になっているものも含むすべてのレシピが、レシピが置かれているファイル名、行番号、そしてレシピを呼び出す前提条件とともに出力されます。
  • 明示的ルールと暗黙的ルールを混在させても、make が実行を終了することはなくなりました。代わりに警告が表示されます。この構文は非推奨になっており、将来、完全に削除される可能性があります。
  • テキストをファイルに書き込む $(file …​) 関数が追加されました。テキスト引数なしで呼び出しを行うと、ファイルを開くだけですぐに閉じます。
  • 新しいオプション --output-sync または -O を使用すると、複数のジョブからの出力をジョブごとにグループ化するため、並列ビルドのデバッグを容易にできます。
  • --debug オプションは、現在有効なデバッグ設定を無効にする n (none) フラグも受け入れるようになりました。
  • BSD makefiles との互換性を高めるために、$(shell …​) 関数の代わりに != シェル割り当て演算子が追加されました。演算子と関数の詳細と相違点は、GNU の make マニュアルを参照してください。

    これにより、variable!=value のように、感嘆符で終わり、その後に代入が続く名前の変数は、新しい構文として解釈されるようになりました。以前の動作に戻すには、variable! =value のように、感嘆符の後に空白を追加します。

  • POSIX 規格で定義されている代入演算子 ::= が追加されました。
  • .POSIX 変数を指定している場合、make は、バックスラッシュと改行を処理する POSIX 標準規格の要件に従います。このモードでは、バックスラッシュ前の後続スペースが保持され、各バックスラッシュとそれに続く改行文字と空白文字が、空白文字 1 つに変換されます。
  • MAKEFLAGS 変数および MFLAGS 変数の動作が、より正確に定義されました。
  • 新しい変数 GNUMAKEFLAGS は、MAKEFLAGS と同じ make フラグとして解析されます。これにより、GNU の make 固有のフラグを MAKEFLAGS 以外で保存でき、makefile の移植性が向上します。
  • ホストアーキテクチャーを含む新しい変数 MAKE_HOST が追加されました。
  • 新しい変数 MAKE_TERMOUTMAKE_TERMERR には、それぞれ make が標準出力とエラーを端末に書き込んでいるかどうかが示されます。
  • makefile の MAKEFLAGS 変数に -r オプションおよび -R オプションを設定すると正しく機能し、すべての組み込み規則と変数がそれぞれ適切に削除されるようになりました。
  • .RECIPEPREFIX 設定はレシピごとに記録されるようになりました。さらに、そのレシピでデプロイメントされた変数も、そのレシピの接頭辞設定を使用します。
  • .RECIPEPREFIX 設定と、ターゲット固有の変数はすべて、コメントとしてではなく、makefile にあるように -p オプションの出力に表示されます。

(BZ#1641015)

SystemTap バージョン 4.0

Red Hat Enterprise Linux 8 には、SystemTap 計測ツールのバージョン 4.0 が同梱されています。以下は、主な改善点です。

  • extended Berkeley Packet Filter (eBPF) バックエンド (特に文字列と関数) が改良されました。このバックエンドを使用するには、SystemTap を起動する際に --runtime=bpf オプションを追加します。
  • Prometheus モニタリングシステムで使用するエクスポートネットワークサービスが新たに追加されました。
  • システムコールプロービングの実装は、必要に応じてカーネルトレースポイントを使用するように改善されました。

(BZ#1641032)

binutils バージョン 2.30 の改良

Red Hat Enterprise Linux 8 には、バージョン 2.30 の binutils パッケージが同梱されています。以下は、主な改善点です。

  • 新しい IBM Z アーキテクチャー拡張への対応が改善されました。

リンカー:

  • リンカーは、デフォルトで、コードと、読み取り専用データを別々のセグメントに配置するようになりました。その結果、動的ローダーが、読み取り専用データを含むメモリーページの実行を無効にするため、作成される実行ファイルは大きくなり、実行の安全性が向上しました。
  • バイナリーファイルに関する動的ローダーへのヒントを提供する GNU Property ノートに対応するようになりました。
  • 以前は、リンカーが、Indirect Branch Tracking (IBT) テクノロジーに無効な実行コードを生成していました。そのため、生成された実行ファイルを開始できませんでした。このバグは修正されています。
  • 以前は、gold リンカーが、プロパティーノートを不適切にマージしていました。このため、生成されたコードで誤ったハードウェア機能が有効になり、コードが突然終了することがありました。このバグは修正されています。
  • 以前は、gold リンカーが、アーキテクチャーに合わせた調整を行うために、最後にパディングバイトを持つノートセクションを作成していました。動的ローダーではパディングが予想されていなかったため、読み込んでいるプログラムが突然終了していました。このバグは修正されています。

その他のツール:

  • readelf ツールおよび objdump ツールに、リンクをたどって別ファイルのデバッグ情報に移動し、それらの情報を表示するオプションが追加されました。
  • 新しい --inlines オプションは、objdump ツールの既存の --line-numbers オプションを拡張したもので、インライン関数のネスト情報を表示します。
  • nm ツールに、シンボルの名前の後にバージョン情報を表示する --with-version-strings オプションが新たに追加されました。
  • ARMv8-R アーキテクチャーと、Cortex-R52、Cortex-M23、および Cortex-M33 のプロセッサーへの対応がアセンブラーに追加されました。

(BZ#1641004, BZ#1637072, BZ#1501420, BZ#1504114, BZ#1614908, BZ#1614920)

Performance Co-Pilot バージョン 4.3.0

Red Hat Enterprise Linux 8 には、Performance Co-Pilot (PCP) バージョン 4.3.0 が同梱されています。以下は、主な改善点です。

  • pcp-dstat ツールに、履歴分析とコンマ区切り値 (CSV) 形式の出力が追加されました。
  • ログユーティリティーで、メトリックラベルとヘルプテキストレコードを使用できます。
  • pmdaperfevent ツールが、低レベルの同時マルチスレッド (SMT) で正しい CPU 番号を報告するようになりました。
  • pmdapostgresql ツールが Postgres シリーズ 10.x に対応するようになりました。
  • pmdaredis ツールが Redis シリーズ 5.x に対応するようになりました。
  • 動的プロセスフィルタリングと、各プロセスのシステムコール、ucall、および ustat により、pmdabcc ツールが強化されました。
  • pmdammv ツールが、メトリックラベルをエクスポートするようになり、フォーマットのバージョンが 3 に増えました。
  • pmdagfs2 ツールで、glock および glock ホルダーの計測に対応するようになりました。
  • SELinux ポリシーにいくつかの変更が加えられました。

(BZ#1641034)

メモリー保護キー

今回の更新で、スレッドごとにページ保護フラグの変更を可能にするハードウェア機能が有効になりました。pkey_alloc() 関数、pkey_free() 関数、および pkey_mprotect() 関数に、glibc システムコールラッパーが新たに追加されました。さらに、各スレッドの保護フラグへのアクセスを許可するために、pkey_set() 関数および pkey_get() 関数が追加されました。

(BZ#1304448)

GCC が IBM Z で z13 にデフォルト設定

今回の更新で、IBM Z アーキテクチャーの GCC はデフォルトで z13 プロセッサーのコードを構築し、このコードは z14 プロセッサー用に調整されました。これは、-march=z13 オプションおよび -mtune=z14 オプションの使用と同じです。ターゲットアーキテクチャーおよびチューニングのオプションを明示的に使用することで、このデフォルトを上書きできます。

(BZ#1571124)

elfutils がバージョン 0.174 へ更新

Red Hat Enterprise Linux 8 では、elfutils パッケージのバージョン 0.174 が利用できます。以下は、主な変更点です。

  • eu-readelf ツールでは、変数を示す際に、負の値を、符号がない大きな値として使用したり、符号がない大きな値を、負の値として使用していました。これは修正され、eu-readelf が、定数値型のサイズおよび定数値型のサイズと符号属性を調べて、正しく表示するようになりました。
  • CU がない .debug_line データを読み込む新しい関数 dwarf_next_lines()libdw ライブラリーに追加されました。この関数は、dwarf_getsrclines() 関数および dwarf_getsrcfiles() 関数の代わりに使用できます。
  • 以前は、セクションが 65280 を超えるファイルでは、libelf ライブラリーおよび libdw ライブラリー、ならびにそのライブラリーを使用するツールでエラーが発生する可能性がありました。このバグは修正されています。これにより、ELF ファイルヘッダーで拡張された shnum 値および shstrndx 値は正しく処理されます。

(BZ#1641007)

Valgrind がバージョン 3.14 へ更新

Red Hat Enterprise Linux 8 には、Valgrind 実行コード分析ツールバージョン 3.14 が同梱されています。以下は、主な変更点です。

  • --keep-debuginfo オプションが追加され、アンロードされたコードのデバッグ情報を保持できるようになりました。これにより、保存されるスタックトレースには、メモリーから削除されたコードのファイルおよび行の情報が含まれる可能性があります。
  • ソースファイル名と行番号に基づいた抑制が追加されました。
  • Helgrind ツールは、--delta-stacktrace オプションにより、完全な履歴のスタックトレースの計算を指定するようになりました。特に、--history-level=full とともにこのオプションを使用すると、Helgrind のパフォーマンスを最大 25% 向上させることができます。
  • Intel および AMD 64 ビットのアーキテクチャーで最適化されたコードで、Memcheck ツールの誤検出の割合が減少し、ARM 64 ビットアーキテクチャーが減少しました。定義確認処理を制御する --expensive-definedness-checks は使用できますが、パフォーマンスに影響を及ぼします。
  • Valgrind では、IBM Power Systems (リトルエンディアン) の命令で認識できるものが増えました。
  • Valgrind が、IBM Z アーキテクチャーの z13 プロセッサーで、整数および文字列の vector 命令の大部分を処理するようになりました。

新しいオプションと既知の制限の詳細は、man ページの valgrind(1) を参照してください。

(BZ#1641029, BZ#1501419)

GDB バージョン 8.2

Red Hat Enterprise Linux 8 には、GDB デバッガーのバージョン 8.2 が同梱されています。以下は、主な変更点です。

  • IPv6 プロトコルは、GDB および gdbserver によるリモートデバッグに対応しています。
  • デバッグ情報なしのデバッグが改善されました。
  • GDB ユーザーインターフェイスのシンボル補完が、ABI タグや名前空間などの、より構文的な設定を使用することで、より良い提案を提供するように改善されました。
  • コマンドが、バックグラウンドで実行できるようになりました。
  • Rust プログラミング言語で作成されたプログラムのデバッグが可能になりました。
  • _Alignof 演算子、alignof 演算子、C++ rvalue 参照、および C99 変数長自動配列へのパーサーの対応により、C 言語および C++ 言語のデバッグが改善されました。
  • GDB 拡張スクリプトが、Guile スクリプト言語を使用できるようになりました。
  • 拡張機能用の Python スクリプト言語インターフェイスが改善され、API 機能、フレームデコレーター、フィルター、およびアンワインダーが新たに追加されました。また、GDB 設定の .debug_gdb_scripts セクションにあるスクリプトも自動的に読み込まれます。
  • GDB は、Python バージョン 3 を使用して、プリンター、フレームデコレーター、フィルター、アンワイダーなどのスクリプトを実行するようになりました。
  • ARM アーキテクチャーおよび 64 ビットの ARM アーキテクチャーが改善され、Thumb 32 ビット命令およびシステムコール命令を含む、プロセスの実行記録および再生が追加されました。
  • GDB は、64 ビット ARM アーキテクチャーで Scalable Vector Extension (SVE) に対応するようになりました。
  • Intel PKU レジスターおよび Intel プロセッサートレースへの対応が追加されました。
  • 記録と再生の機能で、Intel ベースのシステムの rdrand および rdseed の命令を含むように拡張されました。
  • IBM Z アーキテクチャーの GDB の機能は、トレースポイントと高速トレースポイント、ベクトルレジスターと ABI、および Catch システムコールに対応するように拡張されました。また、GDB が、アーキテクチャーの新しい命令に対応するようになりました。
  • GDB は、64 ビット ARM アーキテクチャーで、SystemTap の静的ユーザー空間プローブ (SDT) を使用できるようになりました。

(BZ#1641022, BZ#1497096, BZ#1505346, BZ#1592332, BZ#1550502)

RHEL の glibc のローカライゼーションが複数のパッケージで配布

RHEL 8.0 では、1 つの glibc-common パッケージで glibc のロケールと翻訳が提供されなくなりました。代わりに、すべてのロケールと言語が glibc-langpack-CODE パッケージで利用できるようになりました。また、多くの場合はデフォルトですべてのロケールがインストールされず、インストーラーで選択した言語だけがインストールされます。その他に必要なロケールパッケージを個別にインストールする必要があります。または、以前と同じようにインストールされたすべての glibc ロケールを含むロケールアーカイブを取得する場合は、glibc-all-langpacks をインストールします。

詳細は、Using langpacks を参照してください。

(BZ#1512009)

GCC バージョン 8.2

Red Hat Enterprise Linux 8 では、GCC ツールチェーンは GCC 8.2 リリースシリーズに基づいています。以下は、主な変更点です。

  • エイリアス解析、ベクトル化機能の改善、同一コードの折りたたみ、プロシージャー間解析、ストアマージの最適化パスなど、一般的な最適化が多数追加されました。
  • Address Sanitizer が改善されました。Leak Sanitizer と Undefined Behavior Sanitizer が追加されました。
  • デバッグ情報が DWARF5 形式で生成できるようになりました。この機能は実験的なものです。
  • ソースコードのカバレッジ解析ツール GCOV が、さまざまな改良とともに拡張されました。
  • 特定の、より多くのプログラムエラーを静的に検出するために、新しい警告と改善された診断が追加されました。
  • GCC が、生成したコードをさらに強化するツールを提供するように拡張されました。セキュリティーに関する改善には、オーバーフロー確認用の組み込み機能、スタッククラッシュに対する追加の保護、制御フロー命令のターゲットアドレスの確認、バインドされた文字列操作関数の警告、範囲外の配列インデックスの検出に関する警告などがあります。

アーキテクチャーおよびプロセッサーへの対応の改善点は次のとおりです。

  • Intel AVX-512 アーキテクチャー、その多数のマイクロアーキテクチャー、および Intel Software Guard Extensions (SGX) にアーキテクチャー固有の新しいオプションが複数追加されました。
  • コード生成は、現在、64 ビットの ARM アーキテクチャー LSE 拡張、ARMv8.2-A 16 ビット浮動小数点拡張 (FPE)、およびアーキテクチャーのバージョン ARMv8.2-A、ARMv8.3-A、および ARMv8.4-A が対象となります。
  • IBM Z アーキテクチャーのプロセッサー z13 および z14 に対応するようになりました。

以下は、言語と標準規格に関連した主な変更点です。

  • C 言語でコンパイルする際に使用されるデフォルトの標準規格が、GNU 拡張機能が含まれる C17 に変更になりました。
  • C++ 言語でコードをコンパイルする際に使用されるデフォルトの標準規格が、GNU 拡張機能が含まれる C++14 に変更になりました。
  • C++ ランタイムライブラリーで、C++11 および C++14 の標準規格に対応するようになりました。
  • C++ コンパイラーが、C++14 標準規格を実装するようになりました。
  • C 言語規格 C11 への対応が改善されました。
  • 新しい __auto_type の GNU C 拡張機能が、C 言語の C++11 の auto キーワード機能のサブセットを提供します。
  • ISO/IEC TS 18661-3:2015 標準規格が指定する型名 _FloatN および _FloatNx が、C フロントエンドで認識されるようになりました。
  • 空のクラスを引数として渡すと、プラットフォーム ABI で要求される、Intel 64 アーキテクチャーおよび AMD64 アーキテクチャーで領域を使用しなくなります。
  • C++11 の alignof 演算子により返される値は、C の _Alignof 演算子と一致し、最小の配置を返すように修正されました。適切な配置を見つけるには、GNU 拡張機能 __alignof__ を使用します。
  • Fortran 言語コード用の libgfortran ライブラリーのメインバージョンが 5 に変更になりました。
  • Ada (GNAT)、GCC Go、および Objective C/C++ 言語に対応しなくなりました。Go コード開発には Go Toolset を使用してください。

(JIRA:RHELPLAN-7437, BZ#1512593, BZ#1512378)

Go 暗号ライブラリー FIPS モードが、システム設定を受け入れるようになる

以前は、Go の標準暗号化ライブラリーは、ライブラリーを使用しているアプリケーションのビルド時に明示的に無効になっていない限り、常に FIPS モードを使用していました。これにより、Go ベースのアプリケーションのユーザーが、FIPS モードを使用するかどうかを制御できませんでした。この変更により、システムが FIPS モードで設定されていない場合、ライブラリーはデフォルトで FIPS モードになりません。これにより、RHEL システムの Go ベースのアプリケーションのユーザーが、Go 暗号化ライブラリーの FIPS モードの使用をさらに制御できます。

(BZ#1633351)

strace がバージョン 4.24 に更新

Red Hat Enterprise Linux 8 には、strace ツールバージョン 4.24 が同梱されています。以下は、主な変更点です。

  • -e inject= オプションで、システムコールの改ざん機能が追加されました。これには、エラー、戻り値、遅延、およびシグナルの挿入が含まれます。
  • システムコール修飾の構文が改善されました。

    • 正規表現でシステムコールをフィルタリングするために、-e trace=/regex オプションが追加されました。
    • -e trace= オプションのシステムコール修飾の前に疑問符を付けると、その修飾がいずれのシステムコールに一致しなくても strace を続行できます。
    • -e trace オプションのシステムコール修飾に、パーソナリティーの指定が追加されました。
  • 終了理由の kvm vcpu のデコードが追加されました。これには、-e kvm=vcpu オプションを使用します。
  • -k オプションを使用している場合は、elfutilslibdw ライブラリーがスタックのアンワインドに使用されるようになりました。また、シンボルのデマングルは、libiberty ライブラリーを使用して実行します。
  • 以前は、-r オプションを指定すると、strace-t オプションを無視していました。この問題が修正され、干渉を受けなくなりました。
  • 追加モードで出力ファイルを開く -A オプションが追加されました。
  • xlat 出力フォーマットを設定する -X オプションが追加されました。
  • -yy オプションを使用したソケットアドレスのデコードが改善されました。また、-yy モードに、ブロックデバイスとキャラクターデバイスの番号出力が追加されました。
  • IBM Z アーキテクチャーの strace ツールを 1 つ使用して、64 ビットと 32 ビットの両方のバイナリーを追跡できるようになりました。これにより、個別の strace32 パッケージが RHEL 8 から削除されました。

また、以下の項目のデコードが追加、改善、または更新されました。

  • netlink プロトコル、メッセージ、および属性
  • arch_prctlbpfgetsockoptio_pgeteventkeyctlprctlpkey_allocpkey_freepkey_mprotectptracerseqsetsockoptsocketstatx、その他のシステムコール
  • ioctl システムコールの複数のコマンド
  • さまざな型の定数
  • システムコールの execveatinotify_add_watchinotify_initselectsymlinksymlinkat、および間接引数が付いた mmap システムコールのパス追跡
  • シグナルコードのリスト

(BZ#1641014)

RHEL 8 のコンパイラーツールセット

RHEL 8.0 は、以下のコンパイラーツールセットを Application Streams として提供します。

  • Clang および LLVM Toolset 7.0.1 は、LLVM コンパイラーインフラストラクチャーフレームワーク、C 言語および C++ 言語用の Clang コンパイラー、LLDB デバッガー、コード解析の関連ツールを提供します。Using Clang and LLVM Toolset を参照してください。
  • Rust Toolset 1.31 は、Rust プログラミング言語コンパイラー rustccargo ビルドツールおよび依存マネージャー、cargo-vendor プラグイン、および必要なライブラリーを提供します。Using Rust Toolset を参照してください。
  • Go Toolset 1.11.5 は、Go プログラミング言語ツールおよびライブラリーを提供します。Go は、golang としても知られています。Using Go Toolset を参照してください。

(BZ#1695698, BZ#1613515, BZ#1613516, BZ#1613518)

RHEL 8 における Java 実装および Java ツール

RHEL 8 AppStream リポジトリーには、以下が含まれます。

  • java-11-openjdk パッケージ。OpenJDK 11 Java Runtime Environment および OpenJDK 11 Java Software Development Kit を提供します。
  • java-1.8.0-openjdk パッケージ。OpenJDK 8 Java Runtime Environment および OpenJDK 8 Java Software Development Kit を提供します。
  • icedtea-web パッケージ (Java Web Start の実装を提供)。
  • Java ライブラリーおよびコマンドラインツールを提供する ant モジュール。Java アプリケーションのコンパイル、アセンブル、テスト、および実行を行います。ant がバージョン 1.10 に更新されました。
  • maven モジュールは、ソフトウェアプロジェクトの管理および解釈を行うツールを提供します。maven は、以前は、Software Collection から、またはサポート対象外の Optional チャンネルからしか入手できませんでした。
  • scala モジュール は、Java プラットフォーム用の汎用プログラミング言語を提供します。scala は、以前は、Software Collection からしか入手できませんでした。

また、java-1.8.0-ibm パッケージは、Supplementary リポジトリーを介して配布されます。Red Hat は、このリポジトリーのパッケージをサポートしていません。

(BZ#1699535)

std::string および std::list における C++ ABI の変更

RHEL 7 (GCC 4.8) と RHEL 8 (GCC 8) との間で変更した libstdc++ ライブラリーの std::string クラスおよび std::list クラスの Application Binary Interface (ABI) は、C++11 標準に従います。libstdc++ ライブラリーは、古い ABI および新しい ABI の両方に対応しますが、その他の C++ システムライブラリーには対応しません。そのため、このライブラリーに動的にリンクするアプリケーションを再構築する必要があります。これは、C++98 を含むすべての C++ 標準モードに影響します。RHEL 7 で Red Hat Developer Toolset コンパイラーを使用して構築したアプリケーションにも影響します。このコンパイラーは、古い ABI を維持して、システムライブラリーとの互換性を維持します。

(BZ#1704867)

5.1.12. ファイルシステムおよびストレージ

DIF/DIX (Data Integrity Field/Data Integrity Extension) への対応

DIF/DIX は、ハードウェアベンダーが認定している設定でサポートされ、RHEL では特定のホストバスアダプター (HBA) およびストレージアレイ設定に完全に対応しています。

DIF/DIX は、以下の設定ではサポートされません。

  • ブートデバイス上での使用はサポートされない。
  • 仮想化ゲストではサポートされない。
  • DIF/DIX が有効な場合に Automatic Storage Management ライブラリー (ASMLib) を使用することは、Red Hat はサポートしていない。

DIF/DIX は、ストレージデバイスで有効または無効になります。これは、そのアプリケーションまでのさまざまな層 (そのアプリケーションも含む) に関与します。ストレージデバイスで DIF をアクティベートする方法は、デバイスによって異なります。

DIF/DIX 機能の詳細は DIF/DIX (別名 PI) はどのような機能ですか ? Red Hat のサポート対象ですか ? を参照してください。

(BZ#1649493)

XFS が、共有コピーオンライトのデータエクステントに対応

XFS ファイルシステムは、共有コピーオンライトのデータエクステント機能に対応します。この機能により、2 つ以上のファイルで共通のデータブロックセットを共有できます。共通ブロックを共有しているファイルのいずかを変更すると、XFS が共通ブロックへのリンクを解除して、新しいファイルを作成します。これは、その他のファイルシステムに見られるコピーオンライト (COW) 機能と似ています。

共有コピーオンライトのデータエクステントには次の特徴があります。

高速
共有コピーを作成しても、ディスク I/O を使用しません。
容量を効果的に使用
共有ブロックは、ディスク容量を追加で使用しません。
透過的
共通ブロックを共有するファイルは、通常のファイルと同じように機能します。

ユーザー空間ユーティリティーは、次の目的で共有コピーオンライトのデータエクステントを使用できます。

  • cp --reflink コマンドなどを使用した効果的なファイルのクローン作成
  • ファイルごとのスナップショット

この機能は、Overlayfs、NFS などのカーネルサブシステムで、より効率的な操作に使用されます。

共有コピーオンライトのデータエクステントは、xfsprogs パッケージの 4.17.0-2.el8 以降のバージョンで、XFS ファイルシステムを作成する際にデフォルトで有効になります。

直接アクセス (DAX) デバイスは、現在、共有コピーオンライトのデータエクステントを使用する XFS に対応していません。この機能を使用せずに XFS ファイルシステムを作成する場合は、次のコマンドを使用します。

# mkfs.xfs -m reflink=0 block-device

Red Hat Enterprise Linux 7 は、読み取り専用モードでのみ、共有コピーオンライトのデータエクステントを使用する XFS ファイルシステムをマウントできます。

(BZ#1494028)

XFS ファイルシステムの最大サイズが 1024 TiB に

XFS ファイルシステムで対応可能な最大サイズが 500 TiB から 1024 TiB に増えました。

500 TiB を超えるファイルシステムでは、以下が必要です。

  • メタデータの CRC 機能と、フリーの inode btree 機能の両方が、ファイルシステムフォーマットで有効になっています。
  • 割り当てグループのサイズは、最低 512 GiB です。

RHEL 8 では、mkfs.xfs ユーティリティーが、デフォルトでこの要件を満たすファイルシステムを作成します。

この要件を満たしていない小規模なファイルシステムを、500 TiB を超えるサイズに拡張することには対応していません。

(BZ#1563617)

ext4 ファイルシステムが metadata checksum に対応

この更新により、ext4 メタデータは checksum により保護されます。これにより、ファイルシステムが破損メタデータを認識させます。 これにより破損を回避し、ファイルシステムの耐障害性を高めます。

(BZ#1695584)

VDO がすべてのアーキテクチャーに対応

Virtual Data Optimizer (VDO) が、RHEL 8 で対応しているすべてのアーキテクチャーで利用可能になりました。

対応しているアーキテクチャーのリストは、2章アーキテクチャー を参照してください。

(BZ#1534087)

BOOM ブートマネージャーが、ブートエントリーを作成するプロセスを簡素化

BOOM は、Linux システム用のブートマネージャーで、ブートエントリー設定の BootLoader 仕様に対応するブートローダーを使用します。柔軟なブート設定が可能になり、ブートエントリーの新規作成や変更が容易になります。たとえば、LVM を使用して作成したシステムのスナップショットイメージを起動するためのエントリーです。

BOOM は、既存のブートローダー設定を変更せず、追加エントリーを挿入するだけです。既存の設定は維持され、ディストリビューションの統合 (カーネルのインストールや更新のスクリプトなど) は、以前と同じように引き続き機能します。

BOOM には、ブートエントリーを作成するタスクを容易にする、単純化されたコマンドラインインターフェイス (CLI) および API があります。

(BZ#1649582)

LUKS2 が、ボリューム暗号化のデフォルトフォーマットに

RHEL 8 では、レガシーの LUKS (LUKS1) 形式に代わり、LUKS バージョン 2 (LUKS2) の形式が使用されます。dm-crypt サブシステムおよび cryptsetup ツールでは、暗号化ボリュームのデフォルト形式として LUKS2 が使用されるようになりました。LUKS2 は、部分的なメタデータ破損イベントが発生した場合に備えて、暗号化されたボリュームにメタデータの冗長性と自動回復を提供します。

内部の柔軟なレイアウトにより、LUKS2 は将来の機能も可能にします。これは、libcryptsetup に組み込まれた一般的なカーネルキーリングトークンによる自動ロック解除に対応し、カーネルキーリング保持サービスに保存されているパスフレーズを使用して LUKS2 ボリュームのロックを解除します。

以下は、その他の主な機能強化です。

  • ラップ鍵暗号方式を使用した保護鍵の設定
  • Policy-Based Decryption (Clevis) とのより簡単な統合
  • 最大 32 個の鍵スロット (LUKS1 は鍵スロットを 8 個のみ提供します)

詳細は、man ページの cryptsetup(8) および cryptsetup-reencrypt(8) を参照してください。

(BZ#1564540)

Broadcom Emulex および Marvell Qlogic のファイバーチャンネルアダプターで NVMe/FC に完全対応

NVMe に対応する Broadcom Emulex アダプターおよび Marvell Qlogic Fibre Channel 32Gbit アダプターとともに使用すると、イニシエーターモードで NVMe/FC (NVMe over Fibre Channel) トランスポートタイプに完全に対応するようになりました。

Red Hat Enterprise Linux に同梱されていた RDMA (Remote Direct Memory Access) プロトコルに加えて、NVMe over Fibre Channel が、NVMe (Nonvolatile Memory Express) プロトコルのファブリックトランスポートタイプとして追加されました。

NVMe/FC を有効にするには、以下を行います。

  • lpfc ドライバーで NVMe/FC を有効にするには、/etc/modprobe.d/lpfc.conf ファイルに以下のオプションを追加します。

    lpfc_enable_fc4_type=3
  • qla2xxx ドライバーで NVMe/FC を有効にするには、/etc/modprobe.d/qla2xxx.conf ファイルに以下のオプションを追加します。

    qla2xxx.ql2xnvmeenable=1

その他の制限:

  • NVMe/FC は、マルチパスに対応していません。
  • NVMe/FC は、NVMe クラスタリングに対応していません。
  • NVMe/FC は、kdump に対応していません。
  • SAN (Storage Area Network) の NVMe/FC からのシステム起動には対応していません。

(BZ#1649497)

新しい scan_lvs 設定

新しい lvm.conf 設定ファイルの設定 scan_lvs が追加され、デフォルトで 0 に設定されています。新しいデフォルト動作では、LVM が、論理ボリュームに存在する可能性のある物理ボリュームを検索しないようにします。つまり、より多くの物理ボリュームについて、アクティブな論理ボリュームをスキャンしません。デフォルト設定では、LVM が論理ボリュームに物理ボリュームを作成しないようにします。

論理ボリュームに物理ボリュームを重ねるのは、仮想マシンイメージを論理ボリュームに配置する方法で行うことができます。この場合、ホストが物理ボリュームにアクセスするのは安全ではありません。この安全ではないアクセスを回避することが、新しいデフォルト動作の主な理由です。また、アクティブな論理ボリュームが多数ある環境では、LVM が行うデバイススキャンの量が大幅に減ります。

この設定を 1 に設定すると、以前の動作を復元できます。

(BZ#1676598)

DM Multipath 設定ファイルの overrides セクションが追加

/etc/multipath.conf ファイルには、全デバイスの設定値を設定できる overrides セクションが追加されました。この属性は、デバイスを含むパスに対して、/etc/multipath.conf ファイルの multipaths セクションに指定した属性で上書きした場合を除き、DM Multipath によりすべてのデバイスに使用されます。この機能は、現在は対応していない設定ファイルの devices セクションの all_devs パラメーターに代わるものです。

(BZ#1643294)

NVDIMM デバイスからのインストールおよび起動に対応

以前は、どのモードでも、NVDIMM (Nonvolatile Dual Inline Memory Module) デバイスがインストーラーから無視されていました。

今回の更新で、NVDIMM デバイスに対応するカーネル実装により、システムパフォーマンスの機能が改善し、データベースまたは解析のワークロードなど、書き込みが集中するアプリケーションへのファイルシステムのアクセスが強化され、CPU オーバーヘッドが削減しました。

今回の更新で、以下に対応するようになりました。

  • キックスタートの nvdimm コマンドおよび GUI を使用したインストールに NVDIMM デバイスを使用。インストール時に、セクターモードの NVDIMM デバイスからインストールおよび起動して、セクターモードに NVDIMM デバイスに再設定できます。
  • NVDIMM デバイスを扱うコマンドで、AnacondaKickstart スクリプトを拡張。
  • システムコンポーネント grub2efibootmgr、および efivar が、NVDIMM デバイスを処理して起動する機能。

(BZ#1499442)

DM Multipath のマージナルパスの検出が改善

multipathd サービスでは、マージナルパスの検出が改善しました。これにより、マルチパスデバイスが、繰り返し失敗する可能性があるパスを回避して、パフォーマンスを向上します。マージナルパスは、永続的で断続的な I/O エラーがあるパスです。

マージナルパスの動作は、/etc/multipath.conf ファイルの以下のオプションで制御します。

  • marginal_path_double_failed_time
  • marginal_path_err_sample_time
  • marginal_path_err_rate_threshold
  • marginal_path_err_recheck_gap_time

以下の場合、DM Multipath はパスを無効にし、サンプル期間中に繰り返し I/O でテストします。

  • multipath.conf オプションが設定されている
  • 設定した期間内にパスが 2 回失敗する
  • その他のパスが利用できる

このテスト時に、パスのエラー率が、設定されたエラー率よりも大きいと、設定したギャップ時間中 DM Multipath がパスを無視し、それが復旧できるぐらいに適切に機能しているかどうかを再確認します。

詳細は、man ページの multipath.conf を参照してください。

(BZ#1643550)

ブロックデバイスにおけるマルチキュースケジューリング

Red Hat Enterprise Linux 8 では、ブロックデバイスがマルチキュースケジューリングを使用するようになりました。これにより、高速ソリッドステートドライブ (SSD) およびマルチコアシステムでの拡張が向上します。

RHEL 7 以前のバージョンで利用できた従来のスケジューラーが削除されました。RHEL 8 は、マルチキュースケジューラーのみに対応します。

(BZ#1647612)

5.1.13. 高可用性およびクラスター

新しい pcs コマンドで、利用可能なウォッチドッグデバイスのリストを表示し、ウォッチドッグデバイスをテスト

Pacemaker を使用して SBD を設定するために、動作するウォッチドッグデバイスが必要です。このリリースでは、ローカルノードで利用可能なウォッチドッグデバイスをリスト表示する pcs stonith sbd watchdog list コマンドと、ウォッチドッグデバイスをテストする pcs stonith sbd watchdog test コマンドに対応します。sbd コマンドラインツールの詳細は、man ページの sbd(8) を参照してください。

(BZ#1578891)

pcs コマンドで、オペレーションと、その間隔によるリソースのフィルタリングの不具合に対応

Pacemaker は、リソース名およびノードのほかに、リソース操作別にリソースの不具合を追跡するようになりました。したがって、pcs resource failcount show コマンドでは、不具合のフィルタリングに、リソース、ノード、操作、および間隔を選択できます。これにより、リソースおよびノード別、もしくはリソース、ノード、操作、および間隔別に細かく集計した不具合を表示するオプションを提供します。また、pcs resource cleanup コマンドを使用すれば、リソース、ノード、操作、および間隔で不具合をフィルタリングできます。

(BZ#1591308)

corosync ログでタイムスタンプが有効になっている

以前は、corosync ログにタイムスタンプが含まれていなかったため、他のノードやデーモンからのログに関連付けることは困難でした。このリリースでは、タイムスタンプが corosync ログに記録されます。

(BZ#1615420)

コマンド pcs cluster setuppcs cluster node addpcs cluster node remove の新しい形式

Red Hat Enterprise Linux 8 の pcs は、Corosync 3、knet、およびノード名に完全に対応します。ノード名は必須となり、ノード識別子となるノードアドレスを置き換えます。ノードアドレスは任意となりました。

  • pcs host auth コマンドで、ノードアドレスがデフォルトでノード名となります。
  • pcs cluster setup コマンドおよび pcs cluster node add コマンドでは、ノードアドレスが、pcs host auth コマンドで指定したノードアドレスにデフォルト設定されます。

この変更により、クラスターのセットアップ、クラスターへのノードの追加、およびクラスターからのノードの削除を行うコマンドの形式が変更になりました。新しいコマンド形式の詳細は、pcs cluster setup コマンド、pcs cluster node add コマンド、および pcs cluster node remove コマンドのヘルプ表示を参照してください。

(BZ#1158816)

新しい pcs コマンド

Red Hat Enterprise Linux 8 には、以下のコマンドが追加されました。

  • RHEL 8 に、新しいコマンド pcs cluster node add-guest | remove-guest が追加されました。これは、RHEL 7 の pcs cluster remote-node add | remove コマンドに代わるものです。
  • RHEL 8 に、新しいコマンド pcs quorum unblock が追加されました。これは、RHEL 7 の pcs cluster quorum unblock コマンドに代わるものです。
  • pcs resource cleanup コマンドの機能を複製するため、pcs resource failcount reset コマンドが削除されました。
  • RHEL 8 に、RHEL 7 の pcs resource [show] コマンドに代わる新しいコマンドが追加されました。

    • RHEL 8 の pcs resource [status] コマンドは、RHEL 7 の pcs resource [show] コマンドに代わるものです。
    • RHEL 8 の pcs resource config コマンドは、RHEL 7 の pcs resource [show] --full コマンドに代わるものです。
    • RHEL 8 の pcs resource config resource id コマンドは、RHEL 7 の pcs resource show resource id コマンドに代わるものです。
  • RHEL 8 には、RHEL 7 の pcs stonith [show] コマンドに代わる新しいコマンドが追加されました。

    • RHEL 8 の pcs stonith [status] コマンドは、RHEL 7 の pcs stonith [show] コマンドに代わるものです。
    • RHEL 8 の pcs stonith config コマンドは、RHEL 7 の pcs stonith [show] --full コマンドに代わるものです。
    • RHEL 8 の pcs stonith config resource id コマンドは、RHEL 7 の pcs stonith show resource id コマンドに代わるものです。

(BZ#1654280)

RHEL 8 の Pacemaker 2.0.0

pacemaker パッケージがアップストリームバージョンの Pacemaker 2.0.0 にアップグレードし、以前のバージョンに対するバグ修正および機能拡張が数多く追加されました。

  • Pacemaker の詳細ログが、(/var/log に直接置かれるのではなく、/var/log/cluster にある corosync ログを組み合わせて) デフォルトで /var/log/pacemaker/pacemaker.log になりました。
  • ログの読み取りをより直観的にするために、Pacemaker デーモンプロセスの名前が変更になりました。たとえば、pengine の名前は pacemaker-schedulerd に変更になりました。
  • 非推奨のクラスタープロパティー default-resource-stickiness および is-managed-default に対応しなくなりました。代わりに、resource-stickiness プロパティーおよび is-managed プロパティーをリソースのデフォルトに設定する必要があります。非推奨の構文を持つ既存の設定 (新たに作成されたものではありません) は自動的に更新され、対応している構文を使用するようになります。
  • 変更の詳細なリストは Pacemaker 2.0 upgrade in Red Hat Enterprise Linux 8 を参照してください。

Red Hat Enterprise Linux 7 以前を使用して既存のクラスターをアップグレードするユーザーは、すべてのクラスターノードで RHEL をアップグレードする前と後に、任意のクラスターノードで pcs cluster cib-upgrade を実行することが推奨されます。

(BZ#1543494)

マスターリソースから、昇格可能なクローンリソースに名前が変更

Red Hat Enterprise Linux (RHEL) 8 は Pacemaker 2.0 に対応しています。ここでは、マスター/スレーブのリソースが、別の種類のリソースではなくなり、promotable メタ属性が true に設定されている標準のクローンリソースになりました。今回の更新に対応するために、以下の変更が行われました。

  • pcs コマンドでマスターリソースを作成することができなくなりました。代わりに、昇格可能な クローンリソースを作成できます。関連キーワードおよびコマンドが、master から promotable に変わりました。
  • 既存のすべてのマスターリソースが昇格可能なクローンリソースとして表示されます。
  • RHEL7 クラスターでは昇格可能なクローンに対応しないため、Web UI で RHEL7 クラスターを管理する場合は、マスターリソースが引き続きマスターと呼ばれます。

(BZ#1542288)

クラスターのノードを認証する新しいコマンド

Red Hat Enterprise Linux (RHEL) 8 では、クラスターでノードの認証に使用されるコマンドに以下の変更が加えられています。

  • 認証用の新しいコマンドは pcs host auth です。このコマンドにより、ホスト名、アドレス、および pcsd ポートを指定できます。
  • pcs cluster auth コマンドは、ローカルクラスターのノードのみを認証し、ノードリストは許可しません、
  • 各ノードにアドレスを指定できるようになりました。これにより、pcs/pcsd は指定したアドレスを使用して各ノードと通信します。このアドレスは、corosync が内部で使用しているアドレスとは異なる場合があります。
  • pcs pcsd clear-auth コマンドは、pcs pcsd deauth コマンドおよび pcs host deauth コマンドに置き換えられました。この新しいコマンドを使用すると、ユーザーは全ホストの認証解除だけでなく、1 台のホストでも認証解除できます。
  • 以前は、ノード認証が双方向で行われており、pcs cluster auth コマンドを実行すると、指定したすべてのノードが互いに認証されていました。ただし、pcs host auth コマンドを使用すると、指定したノードに対してローカルホストだけが認証されます。これにより、このコマンドを実行する際に、どのノードをどのノードに認証させるかをより適切に制御できます。クラスターを設定する場合や、ノードを追加する際に、pcs がクラスターのトークンを自動的に同期するため、クラスター内のすべてのノードが以前と同じように自動的に認証され、クラスターノードが互いに通信できます。

これらの変更は後方互換性がないことに注意してください。RHEL 7 システムで認証されたノードは、再認証する必要があります。

(BZ#1549535)

pcs コマンドで、フェンシング履歴の表示、クリーンアップ、および同期に対応

Pacemaker の fence デーモンは、実行したすべての fence アクションの履歴 (保留、成功、および失敗) を追跡します。このリリースでは、pcs コマンドを使用して、ユーザーは次の方法でフェンシング履歴にアクセスできます。

  • pcs status コマンドは、失敗した保留中のフェンシングアクションを表示します。
  • pcs status --full コマンドは、フェンシング履歴全体を表示します。
  • pcs stonith history コマンドは、フェンシング履歴を表示してクリーンアップするオプションを提供します。
  • フェンシング履歴は自動的に同期されますが、pcs stonith history コマンドで update オプションに対応するようになり、必要に応じてフェンシング履歴を手動で同期できるようになりました。

(BZ#1620190, BZ#1615891)

5.1.14. ネットワーク

nftables で、iptables が、デフォルトのネットワークパケットフィルタリングのフレークワークとして置き換え

nftables フレームワークは、パケットの分類機能を提供し、iptables ツール、ip6tables ツール、arptables ツール、および ebtables ツールの後継となります。利便性、機能、パフォーマンスにおいて、以前のパケットフィルタリングツールに多くの改良が追加されました。以下に例を示します。

  • 線形処理の代わりにルックアップテーブルを使用
  • IPv4 プロトコルおよび IPv6 プロトコルに対する 1 つのフレームワーク
  • 完全ルールセットのフェッチ、更新、および保存を行わず、すべてアトミックに適用されるルール
  • ルールセットにおけるデバッグおよびトレースへの対応 (nftrace) およびトレースイベントの監視 (nft ツール)
  • より統一されたコンパクトな構文、プロトコル固有の拡張なし
  • サードパーティーのアプリケーション用 Netlink API

iptables と同様、nftables は、チェーンを保存するテーブルを使用します。このチェーンには、アクションを実行する個々のルールが含まれます。nft ツールは、以前のパケットフィルタリングフレームワークのツールをすべて置き換えます。libnftables ライブラリーは、libmnl ライブラリーの Netlink API nftables で、低レベルの対話のために使用できます。

iptables ツール、ip6tables ツール、ebtables ツール、および arptables ツールは、nftables ベースの同じ名前のドロップインツールに置き換えられました。外部の挙動は従来のものと同じですが、内部的には必要に応じて互換インターフェイスを通して、従来の netfilter カーネルモジュールを使用した nftables を使用します。

nftables ルールセットに対するモジュールの効果は、nft list ruleset コマンドを使用して確認できます。これらのツールは、テーブル、チェーン、およびルールを nftables ルールセットに追加するため、nft flush ruleset コマンドなどの nftables ルールセット操作は、先に別の従来のコマンドを使用してインストールしたルールセットに影響を及ぼす可能性があることに注意してください。

どの種類のツールが存在するかをすばやく特定するために、バージョン情報にバックエンド名が追加されるようになりました。RHEL 8 では、nftables ベースの iptables ツールで、次のバージョン文字列が出力されます。

$ iptables --version
iptables v1.8.0 (nf_tables)

一方、従来の iptables ツールが存在する場合は、次のバージョン情報が出力されます。

$ iptables --version
iptables v1.8.0 (legacy)

(BZ#1644030)

RHEL 8 における TCP の新機能

Red Hat Enterprise Linux 8 には、TCP ネットワーキングスタックバージョン 4.18 が同梱され、より高いパフォーマンスおよび安定性と、より優れたスケーラビリティーが提供されます。特に、入力接続率が高い、ビジー状態の TCP サーバーのパフォーマンスが向上します。

また、2 つの新しい TCP 輻輳制御アルゴリズム (BBR および NV) が利用でき、ほとんどのシナリオで、キュービックよりも待ち時間が少なく、スループットも良くなります。

(BZ#1562998)

firewalld がデフォルトで nftables を使用

今回の更新で、nftables フィルタリングサブシステムが、firewalld デーモンのデフォルトのファイアウォールバックエンドになります。バックエンドを変更するには、/etc/firewalld/firewalld.conf ファイルの FirewallBackend オプションを使用します。

この変更により、nftables を使用した時の動作に以下のような差異が生じます。

  1. iptables ルールの実行は、常に firewalld ルールの前に行われます。

    • iptablesDROP は、firewalld からパケットを隠すことを意味します。
    • iptablesACCEPT は、パケットが引き続き firewalld ルールに準拠することを意味します。
  2. 他の firewalld 機能は nftables を使用しますが、firewalld ダイレクトルールは、iptables を介して実装されます。
  3. ダイレクトルールの実行は、確立された接続に行われる firewalld の一般的な承認の前に行われます。

(BZ#1509026)

RHEL 8 の wpa_supplicant への主な変更点

Red Hat Enterprise Linux (RHEL) 8 の wpa_supplicant パッケージは、CONFIG_DEBUG_SYSLOG が有効になった状態で構築されています。これにより、/var/log/wpa_supplicant.log ファイルの内容を確認する代わりに、journalctl ユーティリティーを使用して wpa_supplicant ログを読み取ることができます。

(BZ#1582538)

NetworkManager で SR-IOV 仮想関数への対応

Red Hat Enterprise Linux 8.0 では、NetworkManager で、SR-IOV (Single Root I/O virtualization) に対応するインターフェイスに対する仮想関数の数を設定できます。また、NetworkManager では、MAC アドレス、VLAN、spoof checking 設定、許可されるビットレートなど、仮想関数の属性の一部を設定できます。SR-IOV に関連するプロパティーはすべて、sriov 接続の設定で利用できます。詳細は、man ページの nm-settings(5) を参照してください。

(BZ#1555013)

IPVLAN 仮想ネットワークドライバーに対応

Red Hat Enterprise Linux 8.0 のカーネルには、IPVLAN 仮想ネットワークドライバーへの対応が含まれます。今回の更新で、IPVLAN の仮想ネットワークインターフェイスカード (NIC) により、ローカルネットワークに 1 つの MAC アドレスを公開する複数のコンテナーへのネットワーク接続が可能になります。これにより、ピアネットワーク機器で対応している MAC アドレス数の制限を改善するために、1 つのホストで多数のコンテナーを使用できるようになります。

(BZ#1261167)

NetworkManager で、接続に対するワイルドカードインターフェイスの名前一致に対応

以前は、インターフェイス名の完全一致のみを使用して、特定のインターフェイスへの接続を制限していました。今回の更新で、接続には、ワイルドカードに対応する新しい match.interface-name プロパティーが含まれるようになりました。この更新により、ワイルドカードパターンを使用した柔軟な方法で、接続用インターフェイスを選択できるようになります。

(BZ#1555012)

Networking Stack 4.18 の改良

Red Hat Enterprise Linux 8.0 には、アップストリームバージョン 4.18 にアップグレードされたネットワークスタックが含まれています。以下は、主な変更点です。

  • UDP_GSO などの新しいオフロード機能、および一部のデバイスドライバーに GRO_HW が追加されました。
  • ユーザーデータグラムプロトコル (UDP) のスケーラビリティーが大幅に向上しました。
  • 汎用ビジーポーリングコードを改善しました。
  • IPv6 プロトコルのスケーラビリティーが改善しました。
  • ルーティングコードのスケーラビリティーが改善しました。
  • 新しいデフォルト送信キュースケジューリングアルゴリズム fq_codel が追加されました。転送遅延が改善されます。
  • 一部の送信キュースケジューリングアルゴリズムのスケーラビリティーが向上しました。たとえば、pfifo_fast がロックされなくなりました。
  • IP 再構築ユニットのスケーラビリティーの強化 - ガベージコレクションのカーネルスレッドおよび IP フラグメントは、タイムアウト時にのみ有効期限が切れます。したがって、DoS 下の CPU 使用率は大幅に低く、永続可能なフラグメントの最大破棄率は IP 再設定ユニットに設定されたメモリー量により制限されます。

(BZ#1562987)

iptablesnftables に変換する新しいツール

今回の更新で、既存の iptables ルールまたは ip6tables ルールを、nftables で同等のルールに変換する iptables-translate ツールおよび ip6tables-translate ツールが追加されました。拡張機能によっては変換機能がない場合もあります。対応する機能がない拡張機能が存在する場合は、ツールにより、その前に # 記号が付いた未変換ルールが出力されます。以下に例を示します。

| % iptables-translate -A INPUT -j CHECKSUM --checksum-fill
| nft # -A INPUT -j CHECKSUM --checksum-fill

また、ユーザーは、iptables-restore-translate ツールおよび ip6tables-restore-translate ツールを使用して、ルールのダンプを変換できます。その前に、iptables-save コマンドまたは ip6tables-save コマンドを使用して、現在のルールのダンプを出力できます。以下に例を示します。

| % sudo iptables-save >/tmp/iptables.dump
| % iptables-restore-translate -f /tmp/iptables.dump
| # Translated by iptables-restore-translate v1.8.0 on Wed Oct 17 17:00:13 2018
| add table ip nat
| ...

(BZ#1564596)

NetworkManager により VPN に追加された新機能

Red Hat Enterprise Linux 8.0 の NetworkManager は、VPN に以下の新機能を提供します。

  • インターネット鍵交換バージョン 2 (IKEv2) プロトコルへの対応
  • rightidleftcertnarrowingrekeyfragmentation などの Libreswan オプションが追加されました。対応しているオプションの詳細は、man ページの nm-settings-libreswan を参照してください。
  • デフォルトの暗号を更新しました。つまり、暗号化方式を指定しないと、NetworkManager-libreswan プラグインにより、Libreswan アプリケーションがシステムのデフォルト暗号を選択します。ただし、ユーザーが IKEv1 アグレッシブモード設定を選択した場合は異なります。この場合は、ike = aes256-sha1;modp1536 値および eps = aes256-sha1 値が Libreswan に渡されます。

(BZ#1557035)

新しいデータチャンクタイプ I-DATA が SCTP に追加

今回の更新で、新しいデータチャンクタイプ (I-DATA)、およびストリームスケジューラーが SCTP (Stream Control Transmission Protocol) に追加されました。以前は、ユーザーが送信する順序で SCTP がユーザーメッセージを送信していました。このため、SCTP ユーザーメッセージが大きくなると、送信が完了するまで、ストリーム内の他のすべてのメッセージがブロックされていました。I-DATA チャンクを使用している場合は、Transmission Sequence Number (TSN) フィールドがオーバーロードされません。そのため、SCTP ではさまざまな方法でストリームをスケジュールできるようになり、I-DATA ではユーザーメッセージのインターリーブ (RFC 8260) が可能になりました。両方のピアが I-DATA チャンクタイプに対応する必要があることに注意してください。

(BZ#1273139)

NetworkManager が、ethtool オフロード機能の設定に対応

この機能強化により、NetworkManager は、ethtool オフロード機能の設定に対応するため、init スクリプトまたは NetworkManager ディスパッチャースクリプトを使用しなくなりました。その結果、以下のいずれかの方法を使用して、接続プロファイルの一部としてオフロード機能を設定できるようになりました。

  • nmcli ユーティリティーを使用
  • /etc/NetworkManager/system-connections/ ディレクトリーの鍵ファイルを編集
  • /etc/sysconfig/network-scripts/ifcfg-* ファイルを編集

この機能は、現在、グラフィカルインターフェイスと nmtui ユーティリティーでは対応していないことに注意してください。

(BZ#1335409)

RHEL 8 における TCP BBR への対応

Red Hat Enterprise Linux (RHEL) 8 では、新しい TCP 輻輳制御アルゴリズムである BBR (Bottleneck Bandwidth and Round-trip time) に対応するようになりました。BBR は、ボトルネックリンクおよびラウンドトリップ時間 (RTT) の帯域幅を決定します。ほとんどの輻輳アルゴリズムは、パケットロス (デフォルトの Linux TCP 輻輳制御アルゴリズムである CUBIC を含む) に基づいており、高スループットのリンクの問題をかかえています。BBR は、損失イベントに直接反応せず、利用可能な帯域幅をそれと一致させて、TCP ペーシングレートを調整します。TCP BBR を使用する場合は、関係するすべてのインターフェイスの fq キュー設定に切り替える必要があります。

ユーザーが明示的に fq を使用し、fq_codel は使用しないことに注意してください。

詳細は、man ページの tc-fq を参照してください。

(BZ#1515987)

RHEL 8 における lksctp-tools (バージョン 1.0.18)

lksctp-tools パッケージ (バージョン 3.28) は Red Hat Enterprise Linux (RHEL) 8 で利用できます。以下は、主な機能強化およびバグ修正です。

  • Travis CI および Coverity Scan との統合
  • sctp_peeloff_flags 関数への対応
  • 利用可能なカーネル機能の表示
  • Coverity Scan の問題に対する修正

(BZ#1568622)

RHEL 8 のデフォルトでの SCTP モジュールのブラックリスト登録

セキュリティーを強化するために、一連のカーネルモジュールが kernel-modules-extra パッケージに移動しました。デフォルトではインストールされません。これにより、root 以外のユーザーは、デフォルトでブラックリストに指定されているため、これらのコンポーネントを読み込むことができません。これらのカーネルモジュールを使用するには、システム管理者が kernel-modules-extra をインストールし、モジュールのブラックリストを明示的に削除する必要があります。これにより、root 以外のユーザーは、自動的にソフトウェアコンポーネントを読み込むことができます。

(BZ#1642795)

driverctl 0.101 への主な変更点

Red Hat Enterprise Linux 8.0 には、driverctl 0.101 が同梱されています。このバージョンは以下のバグ修正が含まれます。

  • shellcheck の警告が修正されました。
  • bash-completion は、driverctl-bash-completion.sh の代わりに driverctl としてインストールされます。
  • 非 PCI バスの load_override 関数が修正されました。
  • driverctl サービスは、systemd ターゲットの basic.target に到達する前に、すべてのオーバーライドを読み込みます。

(BZ#1648411)

firewalld へのリッチルール優先度の追加

リッチルールに priority オプションが追加されました。これにより、ルール実行時に好ましい優先順位を定義し、リッチルールに対するより高度な制御が可能になります。

(BZ#1648497)

RHEL 8 で NVMe over RDMA に対応

Red Hat Enterprise Linux (RHEL) 8 の RDMA (Remote Direct Memory Access) の NVMe (Nonvolatile Memory Express) では、イニシエーターモードでのみ Infiniband、RoCEv2、および iWARP に対応します。

マルチパスは、フェイルオーバーモードでのみ対応していることに注意してください。

その他の制限:

  • Kdump は、NVMe/RDMA では対応しません。
  • RDMA での NVMe デバイスからの起動には対応していません。

(BZ#1680177)

nf_tables バックエンドが、dmesg を使用したデバッグに対応していない

Red Hat Enterprise Linux 8.0 では、dmesg ユーティリティーの出力を使用したファイアウォールのデバッグに対応しないファイアウォールに、nf_tables バックエンドを使用します。ファイアウォールルールをデバッグするには、xtables-monitor -t コマンドまたは nft monitor trace コマンドを使用して、ルール評価イベントをデコードします。

(BZ#1645744)

Red Hat Enterprise Linux が VRF に対応

RHEL 8.0 のカーネルは、仮想ルーティングおよび転送 (VRF) に対応します。管理者は、VRF デバイスを、ip ユーティリティーを使用して設定したルールと組み合わせて、Linux ネットワークスタックに VRF ドメインを作成できます。これらのドメインはレイヤー 3 のトラフィックを分離するため、管理者は異なるルーティングテーブルを作成し、ホストにあるさまざまな VRF ドメインで同じ IP アドレスを再利用できます。

(BZ#1440031)

RHEL 8 の iproute バージョン 4.18

iproute パッケージには、Red Hat Enterprise Linux (RHEL) 8 のバージョン 4.18 が同梱されています。最も注目すべき変更は、ethX:Y とマークされたインターフェイスエイリアス (eth0:1 など) に対応しなくなったことです。この問題を回避するには、ip link show に移動する前に、エイリアスの接尾辞 (コロンと、その後に続く番号) を削除する必要があります。

(BZ#1589317)

5.1.15. セキュリティー

RHEL 8.0 リリースの SWID タグ

ISO/IEC 19770-2:2015 メカニズムを使用して RHEL 8.0 インストールの識別を可能にするために、/usr/lib/swidtag/redhat.com/com.redhat.RHEL-8-<architecture>.swidtag ファイルおよび /usr/lib/swidtag/redhat.com/com.redhat.RHEL-8.0-<architecture>.swidtag ファイルに、ソフト識別 (SWID) タグがインストールされます。このタグの親ディレクトリーも、/etc/swid/swidtags.d/redhat.com シンボリックリンクからたどることができます。

SWID タグファイルの XML 署名は、xmlsec1 verify コマンドを使用して確認できます。以下に例を示します。

xmlsec1 verify --trusted-pem /etc/pki/swid/CA/redhat.com/redhatcodesignca.cert /usr/share/redhat.com/com.redhat.RHEL-8-x86_64.swidtag

コード署名認証局の証明書は、カスタマーポータルの 製品署名キー ページからも入手できます。

(BZ#1636338)

システム全体の暗号化ポリシーがデフォルトで適用

暗号ポリシーは、Red Hat Enterprise Linux 8 でコア暗号化サブシステムを設定するコンポーネントで、TLS、IPsec、DNSSEC、Kerberos、および SSH の各プロトコルに対応します。これにより、管理者が update-crypto-policies コマンドで選択できる小規模セットのポリシーを提供します。

デフォルト のシステム全体の暗号化ポリシーは、現在の脅威モデルに安全な設定を提供します。TLS プロトコル 1.2 と 1.3、IKEv2 プロトコル、および SSH2 プロトコルが使用できます。RSA 鍵と Diffie-Hellman パラメーターの長さが 2047 ビット以上であれば許可されます。

詳細は、Red Hat ブログの記事 Consistent security by crypto policies in Red Hat Enterprise Linux 8 と、man ページの update-crypto-policies(8) を参照してください。

(BZ#1591620)

OpenSSH がバージョン 7.8p1 にリベース

openssh パッケージが、アップストリームバージョン 7.8p1 にアップグレードされました。以下は、主な変更点です。

  • SSH version 1 プロトコルに対応しなくなりました。
  • hmac-ripemd160 メッセージ認証コードに対応しなくなりました。
  • RC4 (arcfour) 暗号に対応しなくなりました。
  • Blowfish 暗号に対応しなくなりました。
  • CAST 暗号に対応しなくなりました。
  • UseDNS オプションのデフォルト値が no に変更になりました。
  • DSA 公開鍵アルゴリズムがデフォルトで無効になりました。
  • Diffie-Hellman パラメーターの最小モジュールサイズが 2048 ビットに変更になりました。
  • ExposeAuthInfo 設定オプションのセマンティクスが変更になりました。
  • UsePrivilegeSeparation=sandbox オプションが必須になったため、無効にできなくなりました。
  • 許可される最小の RSA キーサイズが 1024 ビットに設定されました。

(BZ#1622511)

OpenSSH サーバーの鍵の自動生成を sshd-keygen@.service が処理

サーバーホストの鍵の RSA、ECDSA、および ED25519 がない場合は、OpenSSH が自動的に作成します。RHEL 8 でホストの鍵の作成を設定するには、インスタンス化したサービス sshd-keygen@.service を使用します。

たとえば、RSA 鍵タイプの自動作成を無効にするには、次のコマンドを実行します。

# systemctl mask sshd-keygen@rsa.service

詳細は /etc/sysconfig/sshd ファイルを参照してください。

(BZ#1228088)

SSH 認証で ECDSA 鍵に対応

このリリースの OpenSSH スイートでは、PKCS #11 スマートカードに保存されている ECDSA 鍵に対応するようになりました。これにより、SSH 認証に RSA 鍵と ECDSA 鍵の両方を使用できるようになりました。

(BZ#1645038)

libssh が SSH をコア暗号化コンポーネントとして実装

この変更により、Red Hat Enterprise Linux 8 のコア暗号化コンポーネントとして libssh が追加されました。libssh ライブラリーに Secure Shell (SSH) プロトコルが実装されました。

libssh のクライアント側は、システム全体の暗号化ポリシーを介して OpenSSH の設定に従いますが、サーバー側の設定はシステム全体の暗号化ポリシーでは変更できないことに注意してください。

(BZ#1485241)

暗号化ライブラリーにおける TLS 1.3 への対応

今回の更新で、主要なすべてのバックエンド暗号ライブラリーで、TLS (Transport Layer Security) 1.3 が有効になっています。これにより、オペレーティングシステムの通信層でのレイテンシーを短縮し、RSA-PSS、X25519 などの新しいアルゴリズムを使用して、アプリケーションのプライバシーとセキュリティーを強化します。

(BZ#1516728)

NSS がデフォルトで SQL を使用

Network Security Services (NSS) ライブラリーは、デフォルトで信頼データベースに SQL ファイル形式を使用するようになりました。以前のリリースでデフォルトのデータベース形式として使用されていた DBM ファイル形式は、マルチプロセスによる同時アクセスに対応せず、アップストリームでは非推奨となっていました。したがって、NSS 信頼データベースを使用するアプリケーションが鍵や証明書を保存し、取消し情報がデフォルトで SQL 形式のデータベースを作成します。レガシーの DBM 形式でデータベースを作成しようとする試みは失敗します。既存の DBM データベースを読み取り専用モードで開くと、自動的に SQL 形式に変換されます。Red Hat Enterprise Linux 6 以降、NSS では SQL ファイル形式に対応します。

(BZ#1489094)

スマートカードおよび HSM の PKCS #11 がシステム全体で統一

今回の更新で、PKCS #11 の暗号化トークンインターフェイスを使用するスマートカードおよび HSM (Hardware Security Modules) の使用方法が統一されました。つまり、ユーザーおよび管理者は、システムで関連するすべてのツールに同じ構文を使用できるようになりました。以下は、主な機能強化です。

  • 管理者およびアプリケーション作成者用に、RHEL サーバーで、トークンの簡略化された使用可能性を保証する PKCS #11 Uniform Resource Identifier (URI) スキームに対応する。
  • システム全体で、スマートカードと HSM の登録に pkcs11.conf を使用する。
  • NSS、GnuTLS、および OpenSSL (openssl-pkcs11 エンジンを使用) のアプリケーションで利用できる、HSM およびスマートカードに対する対応が統一される。
  • Apache HTTP サーバー (httpd) が、HSM にシームレスに対応する。

詳細は、man ページの pkcs11.conf(5) を参照してください。

(BZ#1516741)

Firefox が、システム全体に登録された PKCS #11 ドライバーと連携

Firefox Web ブラウザーは p11-kit-proxy モジュールを自動的に読み込み、pkcs11.conf ファイルを介して p11-kit でシステム全体に登録されるすべてのスマートカードを自動的に検出します。TLS クライアント認証を使用した場合、その他に必要な設定はありません。また、サーバーがスマートカードを要求する際に、スマートカードの鍵が自動的に使用されます。

(BZ#1595638)

OpenSC で RSA-PSS に対応

今回の更新で、OpenSC スマートカードドライバーに、RSA-PSS 暗号化署名スキームへの対応が追加されました。新しいスキームでは、クライアントソフトウェアでの TLS 1.3 への対応に必要となる安全な暗号化アルゴリズムが有効になります。

(BZ#1595626)

RHEL 8 の Libreswan への主な変更点

libreswan パッケージがアップストリームバージョン 3.27 にアップグレードし、以前のバージョンに対するバグ修正および機能拡張が数多く追加されました。以下は、主な変更点です。

  • authby=rsa-sha2 を介した RSA-PSS (RFC 7427) への対応、authby=ecdsa-sha2 を介した ECDSA (RFC 7427) への対応、dh31 キーワードを使用した CURVE25519 への対応、chacha20_poly1305 暗号化キーワードを介した IKE および ESP の CHACHA20-POLY1305 が、IKEv2 プロトコルに追加されました。
  • アップストリームは、KLIPS を完全に非推奨としているため、Libreswan で、代替の KLIPS カーネルモジュールに対応しなくなりました。
  • (RFC 8247 によると) Diffie-Hellman グループ DH22、DH23、および DH24 に対応しなくなりました。

authby=rsasig は、常に RSA v1.5 メソッドを使用するように変更されており、authby=rsa-sha2 オプションは RSASSA-PSS メソッドを使用することに注意してください。RFC 8247 によると、authby=rsa-sha1 オプションは有効ではありません。これは、Libreswan が、デジタル署名のある SHA-1 に対応しなくなるためです。

(BZ#1566574)

システム全体の暗号化ポリシーが、Libreswan のデフォルトの IKE バージョンを IKEv2 に変更

Libreswan IPsec 実装のデフォルト IKE バージョンは、IKEv1 (RFC 2409) から IKEv2 (RFC 7296) に変更になりました。IPsec で使用するデフォルトの IKE および ESP/AH のアルゴリズムが、システム全体の暗号化ポリシーである RFC 8221 および RFC 8247 に準拠するように更新されました。256 ビットの暗号鍵サイズは、128 ビットの鍵サイズよりも推奨されるようになりました。

デフォルトの IKE および ESP/AH の暗号には、暗号用の AES-GCM、CHACHA20POLY1305、および AES-CBC が含まれます。整合性の確認には、AEAD および SHA-2 を提供します。Diffie-Hellman グループに、DH19、DH20、DH21、DH14、DH15、DH16、および DH18 が含まれるようになりました。

AES_CTR、3DES、SHA1、DH2、DH5、DH22、DH23、および DH24 の各アルゴリズムは、デフォルトの IKE ポリシーおよび ESP/AH ポリシーから削除されました。DH22、DH23、および DH24 を除いたアルゴリズムは、IPsec 設定ファイルの ike= オプションまたは phase2alg=/esp=/ah= オプションで有効にできます。

IKEv1 プロトコルを必要とする IPsec VPN 接続を設定するには、接続設定ファイルに ikev2=no オプションを追加します。詳細は、man ページの ipsec.conf(5) を参照してください。

(BZ#1645606)

Libreswan における IKE バージョン関連の変更

この機能強化により、Libreswan は、異なるインターネット鍵交換 (IKE) 設定を処理します。

  • デフォルトのインターネット鍵交換 (IKE) のバージョンが 1 から 2 に変更になりました。
  • 接続で IKEv1 プロトコルまたは IKEv2 プロトコルが使用できるようになりましたが、両方を使用することはできません。
  • ikev2 オプションの解釈が変更しました。

    • insist の値は IKEv2 専用として解釈されます。
    • no および never の値は IKEv1 専用として解釈されます。
    • proposeyes、および permit の値は有効ではなくなり、この値から生成された IKE のバージョンが明確ではないため、エラーが発生します。

(BZ#1648776)

RHEL 8 の OpenSCAP における新機能

OpenSCAP スイートがアップストリームバージョン 1.3.0 にアップグレードし、以前のバージョンに対する機能拡張が数多く追加されました。以下は、主な変更点です。

  • API と ABI が統合され、更新、非推奨、未使用のシンボルが削除されています。
  • プローブは、独立したプロセスとしてではなく、oscap プロセス内のスレッドとして実行します。
  • コマンドラインインターフェイスが更新しました。
  • Python 2 バインディングが、Python 3 バインディングに置き換えられました。

(BZ#1614273)

SCAP セキュリティーガイド がシステム全体の暗号化ポリシーに対応

scap-security-guide パッケージが更新され、コア暗号化サブシステムの設定に、事前定義のシステム全体の暗号化ポリシーを使用するようになりました。システム全体の暗号化ポリシーと競合する、または上書きしたセキュリティーコンテンツが削除されました。

この変更は、scap-security-guide のセキュリティーコンテンツにのみ適用され、OpenSCAP スキャナーやその他の SCAP コンポーネントを更新する必要がないことに注意してください。

(BZ#1618505)

OpenSCAP コマンドラインインターフェイスが改善

oscap モジュールおよびサブモジュールで、詳細モードが利用できるようになりました。ツールの出力で形式が改善しました。

コマンドラインインターフェイスの使いやすさを向上させるために、非推奨のオプションが削除されました。

次のオプションは使用できなくなりました。

  • oscap xccdf generate report--show は完全に削除されました。
  • oscap oval eval--probe-root は削除されました。代わりに、環境変数 OSCAP_PROBE_ROOT を設定できます。
  • oscap xccdf eval--sce-results は、--check-engine-results に置き換えられました。
  • validate-xml サブモジュールが、CPE モジュール、OVAL モジュール、および XCCDF モジュールから削除されました。validate サブモジュールを使用して、XML スキーマおよび XSD スキーマトロンに対して SCAP コンテンツを検証できます。
  • oscap oval list-probes コマンドが削除されました。代わりに、oscap --version を使用して、利用可能なプローブのリストを表示できます。

OpenSCAP では、--profile '(all)' を使用して、プロファイルに関係なく、特定の XCCDF ベンチマーク上のルールをすべて評価できます。

(BZ#1618484)

SCAP セキュリティーガイド PCI-DSS プロファイルがバージョン 3.2.1 に準拠

scap-security-guide パッケージが、Red Hat Enterprise Linux 8 の PCI-DSS (Payment Card Industry Data Security Standard) プロファイルを提供し、最新の PCI-DSS バージョン (3.2.1) に合わせて更新されました。

(BZ#1618528)

SCAP セキュリティーガイドが OSPP 4.2 に対応

scap-security-guide パッケージが、Red Hat Enterprise Linux 8 用の OSPP (Protection Profile for General purpose Operating Systems) プロファイルバージョン 4.2 のドラフトを提供します。このプロファイルは、汎用オペレーティングシステムの保護プロファイル (プロテクションプロファイルバージョン 4.2) の NIAP 設定付録に記載されている必須の設定管理を反映しています。SCAP セキュリティーガイドは、OSPP に定義されている要件をユーザーが満たせるように、自動化された確認とスクリプトを提供します。

(BZ#1618518)

RHEL 8 の rsyslog への主な変更点

rsyslog パッケージがアップストリームバージョン 8.37.0 にアップグレードし、以前のバージョンに対するバグ修正および機能拡張が数多く追加されました。以下は、主な変更点です。

  • rsyslog の内部メッセージの処理が強化されました。レートを制限できるようになり、デッドロックの可能性が修正されました。
  • 一般的に強化されたレート制限。実際の スパムの送信元 がログに記録されました。
  • 特大サイズのメッセージ処理が改善されました。ユーザーは、コアと特定モジュールの両方で、別々の操作でメッセージを処理する方法を設定できるようになりました。
  • 個別のファイルを作成する代わりに、mmnormalize ルールベースが config ファイルに組み込まれるようになりました。
  • JSON の変数を含むすべての config 変数は、大文字と小文字を区別しません。
  • PostgreSQL への出力にさまざまな改善が追加されました。
  • 追加の設定ファイルの条件付き読み込み、ステートメントの実行、config へのテキストの挿入など、config 処理を制御するシェル変数を使用できるようになりました。この機能を過度に使用すると、rsyslog での問題のデバッグが非常に困難になる可能性があることに注意してください。
  • config で、4 桁のファイル作成モードを指定できるようになりました。
  • RELP (Reliable Event Logging Protocol) の入力は、指定したアドレスにのみバインドできるようになりました。
  • メール出力の enable.body オプションのデフォルト値が、ドキュメントに合わせて変更になりました。
  • ユーザーは、MongoDB 出力で無視する必要がある挿入エラーコードを指定できるようになりました。
  • Parallel TCP (pTCP) 入力には、より良い負荷分散に、設定可能なバックログがあります。
  • journald がそのファイルをローテートすると発生する場合がある重複レコードを回避するには、imjournal オプションが追加されています。このオプションを使用するとパフォーマンスに影響を及ぼします。

ナレッジベースの記事 Configuring system logging without journald に記載されるように、システムに rsyslog を設定すると、パフォーマンスが向上します。

(BZ#1613880)

新しい rsyslog モジュール: omkafka

kafka 集中型データストレージシナリオを有効にするには、新しい omkafka モジュールを使用して、kafka インフラストラクチャーにログを転送できるようになりました。

(BZ#1542497)

rsyslog imfile でシンボリックリンクへの対応

今回の更新で、rsyslog imfile モジュールのパフォーマンスが向上し、設定オプションが増えました。これにより、より複雑なファイルにこのモジュールを使用してユースケースを監視できるようになりました。たとえば、設定されたパスのいずれの場所にでも、グロブパターンを使用したファイルのモニターを使用し、データのスループットが増えたときに、シンボリックリンクのターゲットをローテートできるようになりました。

(BZ#1614179)

デフォルトの rsyslog 設定ファイルの形式がレガシーではない

rsyslog パッケージの設定ファイルが、デフォルトで非レガシー形式を使用するようになりました。レガシー形式も使用できますが、現在の設定ステートメントとレガシーの設定ステートメントを混在する場合は制約がいくつかあります。以前の RHEL リリースから引き継がれた設定は修正する必要があります。詳細は、man ページの rsyslog.conf(5) を参照してください。

(BZ#1619645)

Audit 3.0 で audispdauditd に置き換え

今回の更新で、audispd 機能が auditd に移行しました。したがって、plugins.d 設定オプションが auditd.conf に追加されました。また、plugins.d ディレクトリーが、/etc/audit に移動しました。auditd と、そのプラグインの現在のステータスは、service auditd state コマンドを実行すれば確認できます。

(BZ#1616428)

tangd_port_t で Tang のデフォルトポートの変更が可能に

今回の更新で、SELinux Enforcing モードで制限のある tangd サービスの実行を可能にする SELinux タイプ tangd_port_t が追加されました。この変更により、Tang サーバーを設定してユーザー定義のポートをリッスンするのを簡素化し、SELinux が提供するセキュリティーレベルを Enforcing モードで維持します。

詳細は ポリシーベースの複号を使用して暗号化ボリュームの自動アンロックの設定 を参照してください。

(BZ#1664345)

新しい SELinux ブール値

今回の SELinux システムポリシーの更新により、以下のブール値が追加されました。

  • colord_use_nfs
  • mysql_connect_http
  • pdns_can_network_connect_db
  • ssh_use_tcpd
  • sslh_can_bind_any_port
  • sslh_can_connect_any_port
  • virt_use_pcscd

ブール値のリストとその意味を取得し、有効かどうかを調べるには、selinux-policy-devel パッケージをインストールして、以下のコマンドを実行します。

# semanage boolean -l

(JIRA:RHELPLAN-10347)

SELinux で systemdNo New Privileges に対応

今回の更新で、新旧のコンテキスト間で nnp_nosuid_transition が許可されている場合に、No New Privileges (NNP) または nosuid で SELinux ドメインの移行を可能にする nnp_nosuid_transition ポリシー機能が追加されました。selinux-policy パッケージに、NNP セキュリティー機能を使用する systemd サービスのポリシーが含まれるようになりました。

次のルールでは、サービスにこの機能を許可しています。

   allow source_domain  target_type:process2 { nnp_transition nosuid_transition };

以下に例を示します。

   allow init_t fprintd_t:process2 { nnp_transition nosuid_transition };

ディストリビューションポリシーには、m4 マクロインターフェイスも含まれています。これは、init_nnp_daemon_domain() 関数を使用するサービスの SELinux セキュリティーポリシーで使用できます。

(BZ#1594111)

mmap システムコールに対する新しいマップパーミッションの確認への対応

SELinux の map パーミッションは、ファイル、ディレクトリー、ソケットなどへのメモリーマップアクセスを制御するために追加されました。これにより、SELinux ポリシーによって、メモリーが、さまざまなファイルシステムオブジェクトに直接アクセスできないようになり、そのようなすべてのアクセスが再検証されるようになります。

(BZ#1592244)

SELinux で process クラスの getrlimit アクセス権に対応

今回の更新で、新しい SELinux アクセス制御確認 (process:getrlimit) が追加されました。これは、prlimit() 関数に追加されました。これにより、SELinux ポリシーの開発者は、process:setrlimit パーミッションを使用して、あるプロセスが別のプロセスのリソース制限を読み込み、変更するかどうかを制御できます。プロセスが prlimit() を介して、自身のリソース制限を操作することは、SELinux が制限しないことに注意してください。詳細は、man ページの prlimit(2) および getrlimit(2) を参照してください。

(BZ#1549772)

selinux-policy が VxFS ラベルに対応

今回の更新で、VxFS (Veritas File System) セキュリティー拡張属性 (xattrs) に対応するようになりました。これにより、汎用の vxfs_t タイプではなく、ファイルシステムのオブジェクトで適切な SELinux ラベルを保存できます。これにより、SELinux に完全に対応する VxFS を使用するシステムの安全性が向上します。

(BZ#1483904)

コンパイル時のセキュリティー強化フラグの適用で一貫性が増す

コンパイル時のセキュリティーの強化フラグは、RHEL 8 ディストリビューションの RPM パッケージでより一貫して適用され、redhat-rpm-config パッケージによりセキュリティーの強化フラグが自動的に提供されるようになりました。適用されたコンパイル時フラグは、Common Criteria (CC) 要件を満たすのに役立ちます。以下のセキュリティー強化フラグが適用されます。

  • バッファーオーバーフローエラーの検出 - D_FORTIFY_SOURCE=2
  • C++ アレイ、ベクトル、および文字列の確認を強化している標準ライブラリー - D_GLIBCXX_ASSERTIONS
  • Stack Smashing Protector (SSP) の場合 - fstack-protector-strong
  • 例外の強化の場合 - fexceptions
  • Control-Flow Integrity (CFI) の場合 - fcf-protection=full (AMD および Intel 64 ビットのアーキテクチャーのみ)
  • Address Space Layout Randomization (ASLR) の場合 - fPIE (実行ファイル用) または fPIC (ライブラリー用)
  • スタッククラッシュの脆弱性に対する保護 - fstack-clash-protection (ARM を除く)
  • システムの起動時にすべてのシンボルを解決するフラグにリンク (-Wl-z,now)

詳細は、man ページの gcc(1) を参照してください。

(JIRA:RHELPLAN-2306)

5.1.16. 仮想化

RHEL 8 の qemu-kvm 2.12

Red Hat Enterprise Linux 8 には qemu-kvm 2.12 が同梱されています。このバージョンでは複数のバグが修正され、Red Hat Enterprise Linux 7 で利用可能なバージョン 1.5.3 に機能拡張が数多く追加されました。

具体的には、以下の機能が追加されました。

  • Q35 ゲストマシンのタイプ
  • UEFI ゲストブート
  • ゲストの NUMA チューニングとピニング
  • vCPU のホットプラグとホットアンプラグ
  • ゲストの I/O スレッド

qemu-kvm 2.12 で利用可能な機能の一部は、Red Hat Enterprise Linux 8 では対応していません。詳細は、Red Hat カスタマーポータルの Feature support and limitations in RHEL 8 virtualization を参照してください。

(BZ#1559240)

仮想化システムで Q35 マシンタイプへの対応

Red hat Enterprise Linux 8 では、より新しい PCI Express ベースのマシンタイプである Q35 に対応するようになりました。これにより、仮想デバイスの機能とパフォーマンスにさまざまな改善が行われ、最新の広範囲なデバイスで仮想システムへの互換性が保証されます。また、Red Hat Enterprise Linux 8 で作成された仮想マシンは、デフォルトで Q35 を使用するように設定されています。

また、以前のデフォルトの PC マシンタイプは非推奨となったため、Q35 に対応しない以前のオペレーティングシステムを仮想化する場合にのみ使用してください。

(BZ#1599777)

コピー後の仮想マシンの移行

RHEL 8 では、KVM 仮想マシン (VM) のコピー後の移行を実行できます。コピー後の移行を使用すると、移行元ホストで移行中の VM の vCPU が一時停止され、最小限のメモリーページのみが転送され、移行先ホストで仮想マシンの vCPU がアクティブ化され、仮想マシンが移行先で実行されている間に残りのメモリーページが転送されます。

これにより、移行された仮想マシンのダウンタイムが大幅に短縮され、移行元の仮想マシンのメモリーページがどれほど急速に変化するかに関係なく、移行が確実に完了します。そのため、標準のプレコピー移行では移行できない、頻繁に使用される仮想マシンの移行に最適です。

(JIRA:RHELPLAN-159143)

virtio-gpu が KVM 仮想化でサポートされるようになりました

KVM 仮想マシン (VM) 用に virtio-gpu ディスプレイデバイスが導入されました。virtio-gpu は、仮想マシンのグラフィックパフォーマンスを向上させ、将来実装される仮想 GPU デバイスのさまざまな機能強化も可能にします。

(JIRA:RHELPLAN-159143)

KVM は RHEL 8 で UMIP に対応

ユーザー空間のアプリケーションが、システム全体の設定にアクセスしないようにする UMIP (User-Mode Instruction Prevention) 機能に、KVM 仮想化システムが対応するようになりました。これにより、権限昇格攻撃の潜在的なベクトルが減少するため、KVM ハイパーバイザーとそのゲストマシンがより安全になります。

(BZ#1494651)

KVM ゲストクラッシュレポートの情報が追加される

ゲストが予期せず終了したり、応答しなくなった場合に、KVM ハイパーバイザーが生成するクラッシュ情報が拡張されました。これにより、KVM 仮想化のデプロイメントにおける問題の診断と修正が容易になります。

(BZ#1508139)

NVIDIA vGPU と VNC コンソールの互換性を持たせる

NVIDIA 仮想 GPU (vGPU) 機能を使用するときに、VNC コンソールを使用して、ゲストの視覚的な出力を表示できるようになりました。

(BZ#1497911)

仮想化システムで Ceph に対応

今回の更新で、Red Hat で対応する全 CPU アーキテクチャーの KVM 仮想システムで、Ceph ストレージに対応するようになりました。

(BZ#1578855)

IBM Z の KVM 仮想マシン用の対話型ブートローダー

IBM Z ホストで KVM 仮想マシンを起動するとき、QEMU ブートローダーファームウェアが、ゲスト OS の対話型コンソールインタフェースを表示するようになりました。これにより、ホスト環境にアクセスせずにゲスト OS の起動問題をトラブルシューティングすることができるようになりました。

(BZ#1508137)

仮想マシンで IBM z14 ZR1 に対応

KVM ハイパーバイザーが、IBM z14 ZR1 サーバーの CPU モデルに対応するようになりました。これにより、IBM Z システムで実行する KVM 仮想マシンでこの CPU の機能を使用できるようになります。

(BZ#1592337)

KVM が IBM Z で Telnet 3270 に対応

IBM Z システムのホストとして RHEL 8 を使用する場合は、Telnet 3270 クライアントを使用して、ホストの仮想マシンに接続できるようになりました。

(BZ#1570029)

QEMU サンドボックス化が追加

Red Hat Enterprise Linux 8 では、QEMU エミューレーターでサンドボックス機能が追加されました。これにより、QEMU が実行するシステムコールに制限が設定でき、仮想マシンの安全性が高まりました。この機能はデフォルトで有効になっており、設定されています。

(JIRA:RHELPLAN-10628)

PV TLB Flush Hyper-V 啓発

RHEL 8 は、PV TLB Flush Hyper-V Enlightenment 機能を追加します。これにより、KVM ハイパーバイザー上のオーバーコミット環境で実行する Windows 仮想マシン (VM) のパフォーマンスが向上します。

(JIRA:RHELPLAN-159143)

IBM POWER における KVM 仮想マシンの新しいマシンタイプ

IBM POWER 8 および IBM POWER 9 のシステムで実行している KVM ハイパーバイザーに対して、複数の新しい rhel-pseries マシンタイプが有効になりました。これにより、IBM POWER システムの RHEL 8 にホストされている仮想マシンが、このマシンタイプの CPU 機能を正しく使用できます。また、これにより、IBM POWER の仮想マシンを、最新バージョンの KVM ハイパーバイザーに移行できます。

(BZ#1585651, BZ#1595501)

Intel Xeon SnowRidge で GFNI および CLDEMOT の命令セットが有効化

Intel Xeon SnowRidge システムの RHEL 8 ホストで稼働している仮想マシンで、GFNI および CLDEMOT 命令セットを使用できるようになりました。これにより、特定のシナリオでこのような仮想マシンのパフォーマンスが大幅に向上する可能性があります。

(BZ#1494705)

OVMF に対して IPv6 を有効にする

IPv6 プロトコルが、OVMF (Open Virtual Machine Firmware) で有効にできるようになりました。これにより、OVMF を使用する仮想マシンが、IPv6 が提供するさまざまなネットワーク起動の改善を活かすことができるようになります。

(BZ#1536627)

NVMe デバイス用の VFIO ベースのブロックドライバーが追加

QEMU エミュレーターには、NVMe (Non-volatile Memory Express) デバイス用の、VFIO (Virtual Function I/O) ベースのドライバーが追加されました。ドライバーは、仮想マシン (VM) に接続されている NVMe デバイスと直接通信し、カーネルシステムレイヤーと、その NVMe ドライバーを使用しないようにします。これにより、仮想マシン内の NVMe デバイスのパフォーマンスが向上します。

(BZ#1519004)

Hyper-V Generic UIO ドライバーのマルチチャネルへの対応

RHEL 8 は、Hyper-V Generic Userspace I/O (UIO) ドライバーのマルチチャネル機能に対応するようになりました。これにより、Hyper-V ハイパーバイザーで実行している RHEL 8 仮想マシンは、この仮想マシンのネットワーク機能を強化するデータプレーン開発キット (DPDK) の Netvsc Poll Mode ドライバー (PMD) を使用できます。

ただし、Netvsc インターフェイスのステータスは、現在、実行中で使用可能な場合でも、ダウンしていると表示されます。

(BZ#1650149)

Huge page の対応が改善

RHEL 8 を仮想ホストとして使用する場合は、仮想マシンのメモリーに対応するページのサイズを、CPU が対応する任意のサイズに変更できます。これにより、仮想マシンのパフォーマンスが大きく改善します。

仮想マシンのメモリーページのサイズを設定するには、仮想マシンの XML 設定を編集して、<hugepages> 要素を <memoryBacking> セクションに追加します。

(JIRA:RHELPLAN-14607)

POWER 9 ホスト上の仮想マシンは THP を使用できます

IBM POWER 9 アーキテクチャーで実行している RHEL 8 ホストでは、仮想マシン (VM) は透過的なヒュージページ (THP) 機能の恩恵を受けます。THP を使用すると、ホストカーネルが巨大なメモリーページをプロセスに動的に割り当てることができるため、大量のメモリーを備えた仮想マシンのパフォーマンスが向上します。

(JIRA:RHELPLAN-159143)

5.1.17. サポート性

sosreport が eBPF ベースのプログラムおよびマップを報告

sosreport ツールが拡張され、Red Hat Enterprise Linux 8 に読み込まれた eBPF (extended Berkeley Packet Filtering) プログラムおよびマップをすべて報告できるようになりました。

(BZ#1559836)