RHEL8 と RHEL9 の違いまとめ

Linux

下記のRedhat公式ドキュメントを参考にRHEL8とRHEL9の主要な違いをまとめました。以下の「RHEL 9 の採用における考慮事項」の1章から26章までのすべてのコンテンツに目を通したうえで第1章から順に気になった点を本記事にまとめています。RHELの新規更改時の参考になれば幸いです。

RHEL 9 の採用における考慮事項 | Red Hat Product Documentation
RHEL 9 の採用における考慮事項 | Red Hat Documentation
RHEL5,6,7,8,9で変更された主要まとめ - Qiita
RHEL5,6,7,8で変更された主要まとめRHELのバージョン混在環境で、困惑するのでまとめてみました。まあ、今更RHEL5はないでしょうが一応、記載しておきます。また、調査しても分からない…
1.5. RHEL 8 と RHEL 9 の主な相違点 | Red Hat Product Documentation
1.5. RHEL 8 と RHEL 9 の主な相違点 | Red Hat Documentation

CPUのアーキテクチャに対応したサブスクリプションを購入する必要がある

CPUは、アーキテクチャがメーカーによって異なります。わかりやすく表現すると、例えば、Intelという会社が販売しているCPUと、ARMが販売しているCPUではCPUを動作させる構造が異なります。RHEL9では、使っているCPUを考慮したサブスクリプションを購入する必要があります。

第2章 アーキテクチャー | Red Hat Product Documentation
第2章 アーキテクチャー | Red Hat Documentation

RHEL9でdnf、yumコマンドでインストールできるrpmパッケージ(リポジトリー)について

RHEL9で利用可能なレポジトリの詳細は以下公式のPDFを参照します。このレポジトリを参照して、yum/dnfでインストールできるrpmパッケージを判断できます。

https://docs.redhat.com/ja-jp/documentation/red_hat_enterprise_linux/9/pdf/package_manifest/Red_Hat_Enterprise_Linux-9-Package_manifest-ja-JP.pdf

以下はyum/dnfコマンドでインストール可能なパッケージに関するマニュフェストです。

パッケージマニフェスト | Red Hat Product Documentation
パッケージマニフェスト | Red Hat Documentation

RHEL9では以下の2つのリポジトリに対応しています。

  • BaseOS
  • AppStream
第3章 リポジトリー | Red Hat Product Documentation
第3章 リポジトリー | Red Hat Documentation

BaseOS リポジトリーには、OSに関する基本的なrpmパッケージが含まれます。BaseOSについては以下のように説明があります。

BaseOS リポジトリーのコンテンツは、すべてのインストールのベースとなる、基本的な OS 機能のコアセットを提供します。このコンテンツは RPM 形式で提供されており、RHEL の以前のリリースと同様のサポート条件が適用されます。

第3章 リポジトリー | Red Hat Product Documentation
第3章 リポジトリー | Red Hat Documentation

AppStream リポジトリーは「ユーザー空間アプリケーション、ランタイム言語、およびデータベース」に関するrpmパッケージを提供するレポジトリです。

AppStream リポジトリーには、さまざまなワークロードとユースケースに対応するために、ユーザー空間アプリケーション、ランタイム言語、およびデータベースが同梱されます。

第3章 リポジトリー | Red Hat Product Documentation
第3章 リポジトリー | Red Hat Documentation

yum/dnfでインストールできるrpmパッケージのサポート期限

dnfコマンドでRHEL9にインストールが可能なrpmパッケージのライフサイクル(サポート期限)は以下でまとめられています。

Red Hat Enterprise Linux Application Streams Life Cycle - Red Hat Customer Portal
Access Red Hat’s knowledge, guidance, and support through your subscription.
Red Hat Enterprise Linux Life Cycle - Red Hat Customer Portal
Access Red Hat’s knowledge, guidance, and support through your subscription.

RHEL9.4からAzure、Google CloudでTDXがサポートされる

TDXのサポートがRHEL9.4から変更されました。詳細は以下Red Hat公式ページが参考になります。

RHEL 9 の採用における考慮事項 | Red Hat Product Documentation
RHEL 9 の採用における考慮事項 | Red Hat Documentation

以下の章では、パブリッククラウドプラットフォームに関する RHEL 8 と RHEL 9 の間の最も重要な変更点を説明します。

5.1. Azure の主な変更点

TDX のサポートが Azure 上の RHEL でテクノロジープレビューとして利用可能になりました

Intel Trust Domain Extension (TDX) 機能がRHEL 9.4 ゲストオペレーティングシステムでテクノロジープレビューとして使用できるようになりました。ホストシステムが TDX をサポートしている場合は、トラストドメイン (TD) と呼ばれる、ハードウェアから分離された RHEL 9 仮想マシン (VM) をデプロイできます。その結果、Azure プラットフォーム上で SecureBoot が有効な CVM イメージを作成できるようになります。

5.2. GCP の主な変更点

TDX サポートが GCP 上の RHEL でテクノロジープレビューとして利用可能になりました

Intel Trust Domain Extension (TDX) 機能がRHEL 9.4 ゲストオペレーティングシステムでテクノロジープレビューとして使用できるようになりました。ホストシステムが TDX をサポートしている場合は、トラストドメイン (TD) と呼ばれる、ハードウェアから分離された RHEL 9 仮想マシン (VM) をデプロイできます。この機能拡張により、Google Cloud Platform 上の RHEL 9.4 で Intel Trust Domain Extension (TDX) 機能を使用できるようになりました。

TDXとは

Intel TDXを使用すると、TDと仮想マシンマネージャー(VMM)、ハイパーバイザー、その他の非TDソフトウェアを分離する堅牢な層を作ることができ、さまざまな脅威から包括的に保護することができます。

TDXには以下の機能が含まれます。

  • GPA(ゲスト物理アドレス)の共有ビット
  • アドレス変換の整合性のためのセキュアEPT(拡張ページテーブル)
  • ページ管理のための物理アドレスメタデータテーブル(PAMT)
  • メモリの暗号化と整合性のためのIntel Total Memory Encryption-Multi Key(Intel TME-MK)エンジン
  • リモート認証

引用元:https://jp.ubuntu.com/blog/start-your-ubuntu-confidential-vm-with-intel-tdx-on-google-cloud-jp

Intel公式ではTDXを以下のように説明しています。

インテル® TDX で保護された仮想マシン (VM) にデータとアプリケーションを分離することで、クラウドやデータセンターのいずれにおいても、使用中のデータへのアクセスを制御します。

Access Denied

より詳細は以下Intel公式サイトに記載があります。

Access Denied

コンテナについて

RHEL9でのコンテナにおける変更点をまとめました。

  • container-tools、rpmパッケージの利用が可能に
  • RHEL9では、コントロールグループの新しいバージョンであるcgroupsv2がデフォルトで有効に
  • Podmanがセキュアな短縮名に対応
  • RHEL7ホストからRHEL9コンテナーの実行が不可に
  • RHEL9からRHEL6のコンテナが実行不可に
  • RHEL9.5からPodman v5.0の一部使用が非推奨化
  • runcコンテナーランタイムは非推奨となり、デフォルトのコンテナーランタイムはcrun

RHELのどのバージョンのホストから、どのRHELのバージョンのコンテナが実行可能で、どのバージョンが実行不可かは以下のリンクから確認できます。

Red Hat Enterprise Linux Container Compatibility Matrix - Red Hat Customer Portal
Access Red Hat’s knowledge, guidance, and support through your subscription.

RHEL9のコンテナに関する考慮事項は以下Red Hat公式サイトを参考にしています。

RHEL 9 の採用における考慮事項 | Red Hat Product Documentation
RHEL 9 の採用における考慮事項 | Red Hat Documentation

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

コンパイラと開発ツールの変更点をまとめました。

APIについて

RHEL9からすべてのスレッド API がコア C ライブラリー libc.so.6 に統合された。

標準Cライブラリ(standard C library)、 /usr/lib64/libc.so.6に統合されます。

 /usr/lib64/libc.so.6

上記には以下も統合されました。

  • libdl ライブラリー
  • dns および file 用の Name Service Switch サービスプラグイン

yum/dnfでインストールできるOpen JDKのバージョンが変化

RHEL9ではデフォルトでOpenJDK 17がインストールされるようになります。これまではOpen JDK 11でした。

.NET7のサポートが終了

.NET7のEOL(2024 年 5 月サポート終了)に伴い、RHEL9では.NET7をサポートしていません。

.NET 7 の新機能 - .NET
.NET 7 で導入された新機能について説明します。
第4章 .NET 7.0 でのアプリケーションの公開 | Red Hat Product Documentation
第4章 .NET 7.0 でのアプリケーションの公開 | Red Hat Documentation

デスクトップ

GNOMEのバージョンが変更されました。

GNOME 環境は、GNOME 3.28 から GNOME 40 に更新され、多くの新機能が追加されました。

プログラムのバージョン等について

レポジトリが有効になっているRHEL9がyum/dnfコマンドでインストールすることのできるプログラム言語実行環境のバージョンや、yum/dnfでインストールできるデータベースのバージョンを引用しました。

RHEL 9 の初期 Application Streams バージョン

RHEL 9 では、従来の dnf install コマンドを使用して RPM パッケージとしてインストールできる最初の Application Streams バージョンを提供することで、Application Streams エクスペリエンスを向上させています。

RHEL 9.0 では、以下の動的プログラミング言語が提供されます。

  • Node.js 16
  • Perl 5.32
  • PHP 8.0
  • Python 3.9
  • Ruby 3.0

RHEL 9.0 には、以下のバージョン制御システムが同梱されています。

  • Git 2.31
  • Subversion 1.14

以下の Web サーバーには、RHEL 9.0 が同梱されています。

  • Apache HTTP サーバー 2.4
  • nginx 1.20

以下のプロキシーキャッシュサーバーを使用できます。

  • Varnish Cache 6.6
  • Squid 5.2

RHEL 9.0 は、以下のデータベースサーバーを提供します。

  • MariaDB 10.5
  • MySQL 8.0
  • PostgreSQL 13
  • Redis 6.2
第9章 動的プログラミング言語、Web サーバー、およびデータベースサーバー | Red Hat Product Documentation
第9章 動的プログラミング言語、Web サーバー、およびデータベースサーバー | Red Hat Documentation

ファイルシステムとストレージについて

ファイルシステムに関して、以下の変更点があります。

  • XFS(ファイルシステム)が2038 年以降のタイムスタンプに対応する (bigtime)
  • exFAT ファイルシステムに対応
  • ext4 ファイルシステムが 2038 年以降のタイムスタンプに対応するようになった
  • nfs-utils パッケージがなくなり、代わりに新たにnfsv4-client-utils パッケージが追加された
  • NFSv2 をサポートしなくなった(RHEL7から)
  • Stratis ストレージマネージャーが利用可能に
RHEL 9 の採用における考慮事項 | Red Hat Product Documentation
RHEL 9 の採用における考慮事項 | Red Hat Documentation

ネットワークについて

RHEL8とRHEL9ではネットワークの設定が異なります。新たにkeyfile形式でネットワークの設定を行います。ルーティングの追加方法も変更されました。

ルーティングの追加方法がRHEL8から変更に

RHEL 9 ネットワーキング:ifcfg ファイルからキーファイルへ
デフォルトでは、NetworkManager はキーファイル形式を使用して新しい接続プロファイルを保存するようになりました。ただし、ifcfg 形式も引き続きサポートされます。

RHEL8まではifcfg形式でのネットワークの設定を行っていましたが、RHEL9からはKeyfile形式でネットワークの設定を行います。その関係でRHEL8とRHEL9ではルーティング設定の永続化の方法が異なります。

NetworkManager.confの中身がRHEL8から変更に

/etc/NetworkManager/NetworkManager.conf ファイルの中身がRHEL8から変更になりました。

以下の項目で、ifcfg-rhを指定することでRHEL8と同じifcfg形式の定義ファイルでネットワークの設定を定義することができます。

[main]
#plugins=keyfile,ifcfg-rh

RHEL9デフォルトでの/etc/NetworkManager/NetworkManager.conf ファイルの中身の全量は以下です。

# Configuration file for NetworkManager.
#
# See "man 5 NetworkManager.conf" for details.
#
# The directories /usr/lib/NetworkManager/conf.d/ and /run/NetworkManager/conf.d/
# can contain additional .conf snippets installed by packages. These files are
# read before NetworkManager.conf and have thus lowest priority.
# The directory /etc/NetworkManager/conf.d/ can contain additional .conf
# snippets. Those snippets are merged last and overwrite the settings from this main
# file.
#
# The files within one conf.d/ directory are read in asciibetical order.
#
# You can prevent loading a file /usr/lib/NetworkManager/conf.d/NAME.conf
# by having a file NAME.conf in either /run/NetworkManager/conf.d/ or /etc/NetworkManager/conf.d/.
# Likewise, snippets from /run can be prevented from loading by placing
# a file with the same name in /etc/NetworkManager/conf.d/.
#
# If two files define the same key, the one that is read afterwards will overwrite
# the previous one.

[main]
#plugins=keyfile,ifcfg-rh


[logging]
# When debugging NetworkManager, enabling debug logging is of great help.
#
# Logfiles contain no passwords and little sensitive information. But please
# check before posting the file online. You can also personally hand over the
# logfile to a NM developer to treat it confidential. Meet us on #nm on Libera.Chat.
#
# You can also change the log-level at runtime via
#   $ nmcli general logging level TRACE domains ALL
# However, usually it's cleaner to enable debug logging
# in the configuration and restart NetworkManager so that
# debug logging is enabled from the start.
#
# You will find the logfiles in syslog, for example via
#   $ journalctl -u NetworkManager
#
# Please post full logfiles for bug reports without pre-filtering or truncation.
# Also, for debugging the entire `journalctl` output can be interesting. Don't
# limit unnecessarily with `journalctl -u`. Exceptions are if you are worried
# about private data. Check before posting logfiles!
#
# Note that debug logging of NetworkManager can be quite verbose. Some messages
# might be rate-limited by the logging daemon (see RateLimitIntervalSec, RateLimitBurst
# in man journald.conf). Please disable rate-limiting before collecting debug logs!
#
#level=TRACE
#domains=ALL

セキュリティについて

RHEL8とRHEL9のセキュリティに関する仕様の違いは主に以下です。

  • SHA-1が無効になりました
  • SELinuxの無効化の方法が従来(RHEL8まで)と異なる
  • OpenSCAP が SHA-1 および MD5 に対応しなくなる
  • OpenSCAP は、XCCDF ファイルの代わりにデータストリームファイルを使用する
  • TLS1.2未満のTLSがサポートされない
  • 一部の暗号化が非対応に
  • SCPはデフォルトで使用されず、SFTPがデフォルトで使用される

すべてのRHEL9の暗号化ポリシーで以下が無効化される。

RHEL 9 で提供される LEGACY、DEFAULT、および FUTURE の暗号化ポリシーでは、以下のアルゴリズムが無効になっています。
  • バージョン 1.2 より古い TLS (RHEL 9 以降、以前では RHEL 8 の 1.0 未満)
  • バージョン 1.2 より古い DTLS (RHEL 9 以降、RHEL 8 では 1.0 未満)
  • パラメーターが 2048 ビット未満の DH (RHEL 9 以降、RHEL 8 では 1024 ビット未満)
  • 鍵サイズ (2048 ビット未満) の RSA (RHEL 9 以降、RHEL 8 では 1024 ビット未満)
  • DSA (RHEL 9 以降、RHEL 8 では 1024 ビット未満)
  • 3DES (RHEL 9 以降)
  • RC4 (RHEL 9 以降)
  • FFDHE-1024 (RHEL 9 以降)
  • DHE-DSS (RHEL 9 以降)
  • Camellia (RHEL 9 以降)
  • ARIA
  • SEED
  • IDEA
  • 完全性のみの暗号スイート
  • SHA-384 HMAC を使用した TLS CBC モード暗号化スイート
  • AES-CCM8
  • TLS 1.3 と互換性がないすべての ECC 曲線 (secp256k1 を含む)
  • IKEv1 (RHEL 8 以降)
  • BIND 設定の NSEC3DSA (RHEL 9.2 以降)

SCPではなくSFTPがデフォルトで使用される

SSH SCPではなく、SSH SFTPがデフォルトで使用されます。どちらもポート番号が22です。WinSCP等を使用する際にSCPを使用しないようにしましょう。

RHEL9.4ではSCPにバグがある

RHEL9.4ではSCPで同じ場所にファイルをコピー貼り付けを行うと元のファイルが削除されるバグがあります。

特定の構文を使用すると、scp は自身にコピーされたファイルを空にする

scp ユーティリティーが Secure copy protocol (SCP) からよりセキュアな SSH ファイル転送プロトコル (SFTP) に変更されました。したがって、ある場所からファイルを同じ場所にコピーすると、ファイルの内容が消去されます。この問題は以下の構文に影響します。

scp localhost:/myfile localhost:/myfile

この問題を回避するには、この構文を使用して、ソースの場所と同じ宛先にファイルをコピーしないでください。

この問題は、以下の構文に対して修正されました。

scp /myfile localhost:/myfile
scp localhost:~/myfile ~/myfile
Bugzilla:2056884
9.4 リリースノート | Red Hat Product Documentation
9.4 リリースノート | Red Hat Documentation

RHEL9ではRHEL8とはSELinuxの無効化手順が異なる

RHEL8では/etc/selinux/configにSELINUX=disabledを記載しOSを再起動することでSELinuxを永続的に無効化できました。RHEL9では、以下のコマンドの実行によってSELinuxを永続的に無効化することが推奨されます。

# grubby --update-kernel ALL --args selinux=0
2.5. SELinux の無効化 | Red Hat Product Documentation
2.5. SELinux の無効化 | Red Hat Documentation
タイトルとURLをコピーしました