第8章 セキュリティー
8.1. コア暗号化コンポーネントの変更点
8.1.1. システム全体の暗号化ポリシーがデフォルトで適用
暗号ポリシーは、Red Hat Enterprise Linux 8 でコア暗号化サブシステムを構成するコンポーネントで、TLS、IPsec、DNSSEC、Kerbero の各プロトコルと、OpenSSH スイートに対応します。これにより、管理者が 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)
を参照してください。
8.1.2. 安全ではない暗号スイートおよびプロトコルを削除した、強力な暗号デフォルト
以下の一覧には、RHEL 8 のコア暗号化ライブラリーから削除された暗号スイートおよびプロトコルが含まれます。このアプリケーションはソースには存在しないか、またはビルド時にサポートを無効にしているため、アプリケーションは使用できません。
- DES (RHEL 7 以降)
- すべてのエクスポートグレードの暗号化スイート (RHEL 7 以降)
- 署名内の MD5 (RHEL 7 以降)
- SSLv2 (RHEL 7 以降)
- SSLv3 (RHEL 8 以降)
- 224 ビットより小さいすべての ECC 曲線 (RHEL 6 以降)
- すべてのバイナリーフィールドの ECC 曲線 (RHEL 6 以降)
8.1.3. すべてのポリシーレベルで無効になっている暗号スイートおよびプロトコル
以下の暗号スイートおよびプロトコルは、すべての暗号化ポリシーレベルで無効になっています。これは、各アプリケーションで明示的に有効にした場合に限り利用可能にできます。
- パラメーターが 1024 ビットより小さい DH
- 鍵のサイズが 1024 ビットより小さい RSA
- Camellia
- ARIA
- SEED
- IDEA
- 完全性のみの暗号スイート
- SHA-384 HMAC を使用した TLS CBC モード暗号化スイート
- AES-CCM8
- TLS 1.3 と互換性がないすべての ECC 曲線 (secp256k1 を含む)
- IKEv1 (RHEL 8 以降)
8.1.4. FIPS モードへのシステムの切り替え
システム全体の暗号化ポリシーには、連邦情報処理規格 (FIPS) 公開文書 140-2 の要件に準拠した暗号化モジュールのセルフチェックを有効にするポリシーレベルが含まれます。FIPS モードを有効または無効にする fips-mode-setup
ツールは、内部的に FIPS
のシステム全体の暗号化ポリシーレベルを使用します。
RHEL 8 の FIPS モードにシステムを切り替えるには、以下のコマンドを実行してシステムを再起動します。
# fips-mode-setup --enable
詳細は、man ページの fips-mode-setup(8)
を参照してください。
8.1.5. TLS 1.0 および TLS 1.1 が非推奨に
TLS 1.0 プロトコルおよび TLS 1.1 プロトコルは、システム全体の暗号化ポリシーレベル DEFAULT
で無効になります。たとえば、Firefox Web ブラウザーのビデオ会議アプリケーションで、非推奨のプロトコルを使用する必要がある場合は、システム全体の暗号化ポリシーを LEGACY
レベルに変更してください。
# update-crypto-policies --set LEGACY
詳細は、Red Hat カスタマーポータルのナレッジベース「Strong crypto defaults in RHEL 8 and deprecation of weak crypto algorithms」および man ページの update-crypto-policies(8)
を参照してください。
8.1.6. 暗号化ライブラリーにおける TLS 1.3 への対応
今回の更新で、主要なすべてのバックエンド暗号ライブラリーで、TLS (Transport Layer Security) 1.3 が有効になっています。これにより、オペレーティングシステムの通信層でのレイテンシーを短縮し、RSA-PSS、X25519 などの新しいアルゴリズムを使用して、アプリケーションのプライバシーとセキュリティーを強化します。
8.1.7. RHEL 8 で DSA が非推奨に
デジタル署名アルゴリズム (DSA) は、Red Hat Enterprise Linux 8 では非推奨であると考えられています。DSA キーに依存する認証メカニズムはデフォルト設定では機能しません。OpenSSH
クライアントは、LEGACY
のシステム全体の暗号化ポリシーレベルでも DSA ホストキーを許可しません。
8.1.8. NSS
で SSL2
Client Hello
が非推奨に
TLS
(Transport Layer Security) プロトコルバージョン 1.2 以前は、SSL
(Secure Sockets Layer) プロトコルバージョン 2 と後方互換性がある形式の Client Hello
メッセージを使用してネゴシエーションを開始できます。NSS
(Network Security Services) ライブラリーでのこの機能への対応は非推奨となっており、デフォルトで無効になっています。
この機能への対応が必要なアプリケーションを有効にするには、新しい API の SSL_ENABLE_V2_COMPATIBLE_HELLO
を使用する必要があります。この機能への対応は、Red Hat Enterprise Linux 8 の将来のリリースから完全に削除される可能性があります。
8.1.9. NSS がデフォルトで SQL を使用
Network Security Services (NSS) ライブラリーは、デフォルトで信頼データベースに SQL ファイル形式を使用するようになりました。以前のリリースでデフォルトのデータベース形式として使用されていた DBM ファイル形式は、マルチプロセスによる同時アクセスに対応せず、アップストリームでは非推奨となっていました。したがって、NSS 信頼データベースを使用するアプリケーションが鍵や証明書を保存し、取消し情報がデフォルトで SQL 形式のデータベースを作成します。レガシーの DBM 形式でデータベースを作成しようとする試みは失敗します。既存の DBM データベースを読み取り専用モードで開くと、自動的に SQL 形式に変換されます。Red Hat Enterprise Linux 6 以降、NSS では SQL ファイル形式に対応します。
8.2. SSH
8.2.1. 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 ビットに設定されました。
8.2.2. libssh
が SSH をコア暗号化コンポーネントとして実装
この変更により、Red Hat Enterprise Linux 8 のコア暗号化コンポーネントとして libssh
が導入されました。libssh
ライブラリーは、Secure SHell (SSH) プロトコルを実装しています。
libssh
は、システム全体の暗号化ポリシーに準拠していません。
8.2.3. RHEL 8 で libssh2
が利用できない
非推奨の libssh2
ライブラリーは、楕円曲線、Generic Security Service Application Program Interface (GSSAPI) などの機能がなく、RHEL 8 では削除され、libssh
が使用されます。
8.3. Rsyslog
8.3.1. デフォルトの rsyslog
設定ファイルの形式がレガシーではない
rsyslog
パッケージの設定ファイルが、デフォルトで非レガシー形式を使用するようになりました。レガシー形式も使用できますが、現在の設定ステートメントとレガシーの設定ステートメントを混在する場合は制約がいくつかあります。以前の RHEL リリースから引き継がれた設定は修正する必要があります。詳細は、man ページの rsyslog.conf(5)
を参照してください。
8.3.2. imjournal
オプションと、最小の journald
を使用してシステムログを設定
journald
がそのファイルをローテートしたときに重複レコードが作成されないようにするために、imjournal
オプションが追加されています。このオプションを使用するとパフォーマンスに影響を及ぼします。
ナレッジベースの記事「Configuring system logging without journald」に記載されるように、システムに rsyslog
を設定すると、パフォーマンスが向上します。
8.3.3. デフォルトのロギング設定がパフォーマンスに与える悪影響
デフォルトのログ環境設定は、メモリーを 4 GB 以上使用する可能性があり、rsyslog
で systemd-journald
を実行している場合は、速度制限値の調整が複雑になります。
詳細は、ナレッジベースの記事「Negative effects of the RHEL default logging setup on performance and their mitigations」を参照してください。
8.4. OpenSCAP
8.4.1. OpenSCAP API が統合
この更新により、統合された OpenSCAP 共有ライブラリー API を提供します。63 個のシンボルが削除され、14 個が追加され、4 個で署名が更新されました。OpenSCAP 1.3.0 で削除されたシンボルには以下が含まれます。
- バージョン 1.2.0 で非推奨とされたシンボル
- SEAP プロトコルシンボル
- 内部ヘルパー関数
- 未使用のライブラリーシンボル
- 未実装シンボル
8.4.2. oscap-podman
が、コンテナーのセキュリティースキャンおよびコンプライアンススキャンで oscap-docker
に置き換え
RHEL 8.2 では、コンテナーのセキュリティースキャンおよびコンプライアンススキャンを行うための新しいユーティリティーが導入されました。oscap-podman
ツールが、RHEL 7 におけるコンテナーおよびコンテナーイメージのスキャンを提供する oscap-docker
ユーティリティーと同等のものを提供します。
詳細は、「コンテナーおよびコンテナーイメージの脆弱性スキャン」セクションを参照してください。
8.5. Audit
8.5.1. Audit 3.0 で audispd
が auditd
に置き換え
今回の更新で、audispd
機能が auditd
に移行しました。したがって、plugins.d
設定オプションが auditd.conf
に追加されました。また、plugins.d
ディレクトリーが、/etc/audit
に移動しました。auditd
と、そのプラグインの現在のステータスは、service auditd state
コマンドを実行すれば確認できます。
8.6. SELinux
8.6.1. SELinux パッケージが Python 3 に移行
-
policycoreutils-python
は、policycoreutils-python-utils
パッケージおよびpython3-policycoreutils
パッケージに置き換えられました。 -
libselinux-python
パッケージの機能は、python3-libselinux
パッケージで提供されるようになりました。 -
setools-libs
パッケージの機能は、python3-setools
パッケージで提供されるようになりました。 -
libsemanage-python
パッケージの機能は、python3-libsemanage
パッケージで提供されるようになりました。
8.6.2. SELinux サブパッケージの変更点
-
libselinux-static
、libsemanage-static
、libsepol-static
、およびsetools-libs-tcl
が削除されました。 -
RHEL 8.0 および 8.1 では、
setools-gui
およびsetools-console-analyses
は利用できません。RHEL 8.2 は、このサブパッケージを含む RHEL 8 の最初のマイナーバージョンです。
8.6.3. SELinux ブール値の変更点
8.6.3.1. 新しい SELinux ブール値
今回の SELinux システムポリシーの更新により、以下のブール値が追加されました。
-
colord_use_nfs
-
deny_bluetooth
-
httpd_use_opencryptoki
-
logrotate_use_fusefs
-
mysql_connect_http
-
pdns_can_network_connect_db
-
ssh_use_tcpd
-
sslh_can_bind_any_port
-
sslh_can_connect_any_port
-
tor_can_onion_services
-
unconfined_dyntrans_all
-
use_virtualbox
-
virt_sandbox_share_apache_content
-
virt_use_pcscd
8.6.3.2. 削除された SELinux ブール値
RHEL 8 SELinux ポリシーは、以前のリリースで使用できた以下のブール値を提供しません。
-
container_can_connect_any
-
ganesha_use_fusefs
8.6.3.3. デフォルト値の変更
RHEL 8 では、以下の SELinux ブール値が、以前のリリースとは異なるデフォルト値に設定されます。
-
domain_can_map_files
はデフォルトでオフ
になりました。 -
httpd_graceful_shutdown
はデフォルトでオフ
になりました。 -
Mozilla_plugin_can_network_connect
はデフォルトでオン
になりました。 -
named_write_master_zones
はデフォルトでオン
になりました。
さらに、antivirus_use_jit
および ssh_chroot_rw_homedirs
のブール値の説明が変更になりました。
ブール値の一覧とその意味を取得し、有効かどうかを調べるには、selinux-policy-devel
パッケージをインストールして、以下のコマンドを実行します。
# semanage boolean -l
8.6.4. SELinux ポートタイプの変更点
RHEL 8 SELinux ポリシーは、以下の追加ポートタイプを提供します。
-
appswitch_emp_port_t
-
babel_port_t
-
bfd_control_port_t
-
conntrackd_port_t
-
firepower_port_t
-
nmea_port_t
-
nsca_port_t
-
openqa_port_t
-
openqa_websockets_port_t
-
priority_e_com_port_t
-
qpasa_agent_port_t
-
rkt_port_t
-
smntubootstrap_port_t
-
statsd_port_t
-
versa_tek_port_t
ポートタイプ dns_port_t
および ephemeral_port_t
の定義が変更され、gluster_port_t
ポートタイプが削除されました。
8.6.5. sesearch
の使用方法の変更点
-
sesearch
コマンドは、-C
オプションを使用しなくなり、条件式を含める必要があります。 -T-
、-type
オプションが以下のように変更になりました。-
-T
、--type_trans
- type_transition ルールを検索します。 -
--type_member
- type_member ルールを検索します。 -
--type_change
- type_change ルールを検索します。
-
8.7. 削除されたセキュリティー機能
8.7.1. shadow-utils
では、ユーザー名およびグループ名に数値だけを使用することができなくなる
useradd
コマンドおよび groupadd
コマンドでは、数値だけのユーザー名とグループ名を使用することができません。ユーザー ID およびグループ ID は数値となるため、数値だけのユーザー名およびグループ名を使用すると、ユーザー名とユーザー ID、またはグループ名とグループ ID を組み合わせて使用するツールで、混乱が生まれるためです。数値だけのユーザー名およびグループ名は、Red Hat Enterprise Linux 7 では非推奨となり、Red Hat Enterprise Linux 8 では完全に対応されなくなりました。
8.7.2. securetty
がデフォルトで無効になる
最新の Linux システムでは、tty
デバイスファイルの動的な特性により、PAM モジュール securetty
はデフォルトで無効になり、/etc/securetty
設定ファイルが RHEL に含まれなくなりました。/etc/securetty
には可能なデバイスが多数含まれているため、ほとんど場合は、実用的な効果はデフォルトで許可され、この変更の影響はあまり受けません。より大きな制限を使用する場合は、/etc/pam.d
ディレクトリーの適切なファイルに、pam_securetty.so
モジュールを有効にする行を追加して、新しい /etc/securetty
ファイルを作成する必要があります。
8.7.3. Clevis
HTTP ピンが削除される
Clevis
の HTTP ピンが RHEL 8 から削除され、サブコマンドの clevis encrypt http
が利用できなくなりました。
8.7.3.1. Coolkey
が削除される
スマートカードの Coolkey
ドライバーが RHEL 8 から削除されており、その機能が OpenSC
から提供されるようになりました。
8.7.3.2. crypto-utils
が削除される
crypto-utils
パッケージが RHEL 8 から削除されました。代わりに、openssl
パッケージ、gnutls-utils
パッケージ、および nss-tools
パッケージによるツールを使用できます。
8.7.3.3. Libreswan
から KLIPS が削除される
Red Hat Enterprise Linux 8 では、Kernel IP Security (KLIPS) IPsec スタックのサポートが Libreswan
から削除されました。
このページには機械翻訳が使用されている場合があります (詳細はこちら)。