全6933文字
PR

Red Hat Enterprise Linux(RHEL)は、世界中で採用されている商用環境向けのLinuxディストリビューションだ。RHELの導入と利用に当たっては、アップストリームやライフサイクルといったRHELに関する用語や概念の基本的な知識が欠かせない。RHELの起源や歴史などと共に必要な情報をまとめて紹介する。

 RHEL9(正確にはRHEL9.0)は、Fedora 34とLinuxカーネル5.14をベースに開発され、2022年5月18日にリリースされました。RHEL8からはメジャーリリースが3年おきに提供される方針となっています。Fedora 28とLinuxカーネル4.18をベースにしたRHEL8(RHEL8.0)が2019年5月7日にリリースされたので、予定通りの間隔でリリースされたことになります*1

 RHEL9.0における主な変更点は、「RHEL9.0リリースノート」という製品ドキュメントにまとめられています。RHELのメジャー/マイナーリリースには、それぞれのリリースに対応するリリースノートが提供されており、主な変更点をはじめとして、新機能やテクノロジープレビュー機能、修正内容、非推奨の機能や将来廃止予定の機能といった内容がまとめられています。このリリースノートの内容をベースに、RHEL9.0における主な変更点をカテゴリーごとに見ていきましょう。

▼セキュリティー関連

・古い暗号化プロトコルの無効化

 RHELシステム全体の暗号化ポリシーが更新され、RHEL9からは古く安全性が低い暗号化プロトコル(TLS 1.0/1.1、DTLS 1.0、RC4、Camellia、DSA、3DES、FFDHE-1024)の利用が無効化されました。この暗号化ポリシーは、「crypto-policies」(RHEL8から導入)で管理されており、様々なアプリケーションの暗号化設定に利用されます。

・SHA-1の使用が非推奨&デフォルトで無効化

 RHEL9では、電子署名などセキュリテイ関連のユースケースにおいて、脆弱性が見つかっているハッシュ関数SHA-1の使用が非推奨となりました。crypto-policiesによってデフォルトで無効化され、TLS、DTLS、SSH、IKEv2、DNSSEC、Kerberosプロトコルでの利用ができなくなっています。このため、RHEL8では利用可能だったSHA-1で署名されたRPMパッケージを、RHEL9システムにはインストールできないケースや、RHEL6システムのSHA-1に依存するOpenSSHサーバーにSSHログインできないケースなどが発生します。SHA-1を利用できるように暗号化ポリシーを変更することも可能ではありますが、基本的には後継となるSHA-2の利用を前提としてください。

・OpenSSL 3へのアップグレード

 RHEL8ではOpenSSL 1.1.1が提供されていましたが、RHEL9ではOpenSSL 3.0.1にアップグレードされました。OpenSSL 3からはアーキテクチャーが更新され、アプリケーションで利用するプロバイダを指定できるようになっています。プロバイダとは、OpenSSLで提供される暗号化アルゴリズムの実装のことを指し、FIPS(Federal Information Processing Standard、連邦情報処理標準)に適合したFIPSプロバイダなどがあります。OpenSSL 3.0では、OpenSSL 1.1.1とのAPI互換性を可能な範囲で維持していますが、ABI(Application Binary Interface)互換性はありません。このため、RHEL8上で実行していたアプリケーションのリビルドや、場合によってはソースコードレベルでの変更が必要になります。

 ただし、後方互換性を考慮して、RHEL9では「compat-openssl11」という名前で、RHEL8.6 にあるOpenSSL 1.1.1kベースのパッケージを提供しています。これをインストールすることで、OpenSSL 1.1.1kをRHEL9システムでも利用できるようになります。しかし、OpenSSLコミュニティでは、3.0リリース以降は1.1.1のアップデートを早期に中止することを発表しているため、アプリケーションのリビルドや書き換えを徐々に実施していくことを推奨します。

・rootアカウントのロックとSSHログイン無効化のオプション

 RHEL9からは、インストール時にシステム管理権限を持つrootアカウントのロックや、パスワードによるrootアカウントでのSSHログインを有効化(デフォルトでは無効)というオプションが追加されました。どちらも有効化するように設定できますが、RHELシステム上でrootアカウントを直接利用させたくない、ブルートフォース(総当たり)攻撃を利用したパスワードによるSSHアクセスを防ぎたい、といった要件がある場合、これらのオプションの利用を推奨します。

・SSHのデータ転送プロトコルのデフォルトがSCPからSFTPに変更

 OpenSSHに関して、RHEL8.6ではOpenSSH 8.0p1が提供されていますが、RHEL9ではこれがOpenSSH 8.7p1にアップグレードされました。これに伴い、SSHのデータ転送プロトコルのデフォルトがSCP(Secure copy protocol)からSFTP(Secure File Transfer Protocol)に変更されています。SCPは数十年前の古いプロトコルであり、簡単に解決できない複数のセキュリティーリスクと問題が報告されているため、このような変更が行われました。RHEL8では、scpコマンドによるリモートサーバーへのファイルコピーを実行すると、内部ではSCPプロトコルが利用されますが、RHEL9ではSFTPプロトコルが利用されるようになっています。RHEL9システムとSFTPプロトコルの利用を想定しないレガシーシステムとの間でのデータ転送を行う場合、scpコマンドの「-O」オプションを利用してSCPプロトコルを明示的に指定する必要があります。

*1 リリース番号について正確な記載が必要な場合を除き、原則として小数点以下を省いた「RHEL9」や「RHEL8」という表記を使っています。