第10章 ブート可能なイメージのセキュリティー強化とコンプライアンス
Image Mode for RHEL は、セキュリティーコンプライアンス機能を提供し、準拠した設定を必要とするワークロードをサポートします。ただし、システムを強化し、コンプライアンスステータスを検証するプロセスは、パッケージモードの場合とは異なります。
Image Mode for RHEL を使用する際の重要な部分は、ブート可能なコンテナーイメージを作成することです。デプロイされたシステムはイメージをミラーリングします。したがって、ビルドされたイメージには、セキュリティーポリシーに必要なすべてのパッケージと設定が含まれている必要があります。
ブート可能なイメージをコンテナーとして実行すると、一部の強化設定は有効になりません。セキュリティープロファイルに従って完全に設定されたシステムを取得するには、コンテナーとして実行するのではなく、ベアメタルまたは仮想マシンでイメージを起動する必要があります。コンテナーデプロイメントの主な違いは次のとおりです。
- コンテナー内で systemd が実行されていないため、セキュリティープロファイルに必要な systemd サービスはコンテナー上で実行されません。したがって、コンテナーは関連するポリシー要件に準拠できません。
-
その他のサービスは、正しく設定されていても、コンテナー内で実行できません。つまり、
oscapは、実行されていない場合でも、正しく設定されていると報告します。 - コンプライアンスプロファイルによって定義された設定は強制されません。他のパッケージやインストール時のプリスクリプトからの要求によって、コンプライアンス状態が変更される可能性があります。インストールされた製品のコンプライアンスを常に確認し、要件に合わせて Containerfile を変更します。
10.1. 強化されたブート可能なイメージのビルド リンクのコピーリンクがクリップボードにコピーされました!
ブート可能なコンテナーイメージのビルドに使用する Containerfile に oscap-im ツールを含めることで、強化されたブート可能なイメージをより簡単にビルドできます。
oscap-im は任意の SCAP コンテンツを使用できますが、scap-security-guide に同梱されている SCAP ソースデータストリームは、ブート可能なコンテナーと互換性があるように特別に調整およびテストされています。
前提条件
-
container-toolsメタパッケージがインストールされている。 - システムが準拠する必要があるベースライン内のプロファイルの ID を知っている必要があります。ID を見つけるには、設定コンプライアンスのプロファイルの表示 セクションを参照してください。
手順
Containerfileを作成します。FROM registry.redhat.io/rhel9/rhel-bootc:latest # Install OpenSCAP scanner and security content to the image RUN dnf install -y openscap-utils scap-security-guide && dnf clean all # Add sudo user 'admin' with password 'admin123'. # The user can be used with profiles that prevent # ssh root logins. RUN useradd -G wheel -p "\$6\$Ga6Zn IlytrWpuCzO\$q0LqT1USHpahzUafQM9jyHCY9BiE5/ahXLNWUMiVQnFGblu0WWGZ1e6icTaCGO4GNgZNtspp1Let/qpM7FMVB0" admin # Run scan and hardening RUN oscap-im --profile <profileID> /usr/share/xml/scap/ssg/content/ssg-rhel9-ds.xmlこの
Containerfileは次のタスクを実行します。-
oscap-imツールを提供するopenscap-utilsパッケージと、Security Content Automation Protocol (SCAP) コンテンツを含むデータストリームを提供するscap-security-guideパッケージをインストールします。 -
SSH ルートログインを阻止するプロファイルに
sudoer権限を持つユーザーを追加します。 - 選択されたプロファイルに準拠して、イメージのスキャンと修復を行います。
-
カレントディレクトリーにある
Containerfileを使用してイメージをビルドします。$ podman build -t quay.io/<namespace>/<image>:<tag> .
検証
すべてのイメージをリスト表示します。
$ podman images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/<namespace>/<image> <tag> b28cd00741b3 About a minute ago 2.1 GB
次のステップ
通常のブート可能イメージのデプロイメント方法のいずれかを使用して、強化されたブート可能イメージをデプロイできます。詳細は、RHEL bootc イメージのデプロイ を参照してください。
ただし、デプロイメント方法は、対象システムのコンプライアンス状態に影響を与える可能性があります。
-
パッケージモード RHEL と同じ構文と使用法で
oscapツールを使用して、Image Mode RHEL で実行中のシステムのコンプライアンスを検証できます。詳細は、設定コンプライアンススキャン を参照してください。