ansible-lockdown.rhel8_cis
RHEL 8 CIS
RHEL/Rocky/AlmaLinux 8 マシンを CIS 準拠に設定する
[CIS RedHat Enterprise Linux 8 Benchmark v3.0.0 - 2023年11月10日] に基づいています。
サポートを探していますか?
コミュニティ
質問があれば Discord サーバー に参加して、機能について話し合ったり、他の Ansible-Lockdown ユーザーとおしゃべりしたりしましょう。
注意事項
このロールは システムに変更を加えます。意図しない結果が生じる可能性があります。これは監査ツールではなく、監査後に使用する修正ツールです。
テストが最も重要です。
チェックモードはサポートされていません!役割はチェックモードでエラーなしに完了しますが、サポート対象ではなく、注意して使用する必要があります。RHEL8-CIS-Audit ロールまたは準拠スキャナーを使用して準拠チェックを行うべきです。
このロールはオペレーティングシステムのクリーンインストールに対して開発されました。既存のシステムに導入する場合は、必要なサイト固有の変更についてこのロールを確認してください。
リリースバージョンを使用するには、メインブランチと作業したい CIS ベンチマークの関連リリース/タグを指定してください。
メジャーリリースをまたぐ場合、例えば v2.0.0 から v3.0.0 の場合、ベンチマークとコントロールに大きな変更があるため、新しいスタンダードとして始めることをお勧めします。
コンテナは vars/is_container.yml に参照されます。これは例であり、必要に応じて更新してください。
テストの重要性を再度申し上げます。
CIS におけるセキュリティレベルの設定
CIS のレベル1またはレベル2の制御のみを実行することができます。これはタグを使用して管理されます:
- level1_server
- level1_workstation
- level2_server
- level2_workstation
デフォルトのメインにある制御もこのタグを反映する必要があります。これは、監査コンポーネントを使用する際に行われるテストを示します。
前のリリースからの移行
CIS のリリースには常に変更が含まれており、新しいリファレンスや利用可能な変数を確認することを強くお勧めします。これは ansible-lockdown の初期リリース以来、かなり変わりました。これは python3 と互換性がありますが、デフォルトのインタプリタとして見つかった場合に限ります。これには、システムを適切に構成するための前提条件があります。
詳細は Changelog を参照してください。
監査 (新機能)
これは defaults/main.yml ファイル内の rhel8cis_run_audit という変数でオンまたはオフにできます。デフォルトでは false です。詳細については Wiki を参照してください。デフォルトファイルは ansible ロールで有効にされた制御をチェックするための goss チェックも行います。
これは、設定の準拠やライブ/実行中の設定をチェックするための非常に迅速で軽量な方法です。
小さな (12MB) Go バイナリである goss を使用した新しい監査形式が開発されました。これは、インフラや他のツールなしで関連する設定をチェックします。この監査は、設定が正しいかどうかを確認するだけでなく、その設定で実行されているかどうかをキャッチし、誤検知 を排除しようとします。
こちら も参照してください。
監査の例サマリー
これは、選択が有効になっている Vagrant イメージに基づいています。例:GUI フリーまたはファイアウォールなし。注:監査中は設定と実行状態を確認するために、さらに多くのテストが実行されます。
ok: [default] => {
"msg": [
"前の修正結果は: ['合計所要時間: 5.454s', '件数: 338, 失敗: 47, スキップ: 5'].",
"修正後の結果は: ['合計所要時間: 5.007s', '件数: 338, 失敗: 46, スキップ: 5'].",
"完全な内訳は /var/tmp にあります。",
""
]
}
PLAY RECAP *******************************************************************************************************************************************
default : ok=270 changed=23 unreachable=0 failed=0 skipped=140 rescued=0 ignored=0
ドキュメント
要件
一般的な要件:
Ansible に関する基本的な知識。以下は Ansible ドキュメントへのリンクで、Ansible に不慣れな方に役立ちます。
機能する Ansible および/または Tower のインストール、設定、実行が必要です。これには、必要なパッケージのインストールやインフラのセットアップを含む、すべての基本的な Ansible/Tower 設定が含まれます。
各コントロールが何をしているか理解するために、各タスクを確認してください。一部のタスクは破壊的であり、実稼働システムに意図しない影響を与える可能性があります。また、defaults/main.yml ファイル内の変数にも十分に精通してください。
技術的依存関係:
RHEL/AlmaLinux/Rocky/Oracle 8 - 他のバージョンはサポートされていません。
- AlmaLinux/Rocky は 8.8 でテストしています(暗号化を有効にすると (セクション 1.10 & 1.11) アップデートまたはインストールが失敗します : 2021年7月1日)。
- 監査を使用する場合、システムに goss バイナリとコンテンツをダウンロードまたは追加するアクセスが必要です(システムへのコンテンツ取得方法には他のオプションもあります)。
- Python3.8
- Ansible 2.11+
- python-def (RHEL 8 には含まれるはず)
- libselinux-python
ロール変数
このロールは、エンドユーザーがタスク自体を編集する必要がないように設計されています。すべてのカスタマイズは、defaults/main.yml ファイルまたはプロジェクト、ジョブ、ワークフロー内での追加変数によって行われる必要があります。
タグ
追加の制御精度のために、多くのタグが利用可能です。各制御には、レベル、スコア付けの有無、OS 要素、パッチか監査か、ルール番号を示す独自のタグセットがあります。
以下は、このロール内の制御からのタグセクションの例です。この例を使用して、サービスというタグのすべての制御をスキップするように実行を設定すると、このタスクがスキップされます。逆に、サービスタグが付いている制御のみを実行することも可能です。
tags:
- level1-server
- level1-workstation
- scored
- avahi
- services
- patch
- rule_2.2.4
コミュニティ貢献
コミュニティの皆さんがこのロールに貢献することを奨励しています。以下のルールをお読みください。
- あなたの作業は、個別のブランチで行います。マージしたいすべてのコミットに Signed-off および GPG 署名を行ってください。
- すべてのコミュニティのプルリクエストは devel ブランチに統合されます。
- devel へのプルリクエストでは、あなたのコミットが GPG 署名されており、Signed-off されており、機能テストが行われていることを確認します。
- 変更がマージされ、詳細なレビューが完了したら、承認されたメンバーがあなたの変更をメインブランチに統合し、新しいリリースを行います。
既知の問題
cloud0init - バグのため、/var に noexec が追加されると動作しなくなります。 rhel8cis_rule_1_1_3_3
Almalinux BaseOS、EPEL、そして多くのクラウドプロバイダーのリポジトリでは、rule_1.2.3 に対して repo_gpgcheck が許可されていません。これによりプレイブック中に問題が発生します。回避策が見つからない限り。
パイプラインテスト
使用されるもの:
- ansible-core 2.12
- ansible collections - 要件ファイルに基づいて最新バージョンを取得
- devel ブランチを使用して監査を実行
- これは、devel へのプルリクエスト時に発生する自動テストです。
ローカルテスト
Molecule を使用してこのロールで作業し、異なるシナリオでテストできます。
例
molecule test -s default
molecule converge -s wsl -- --check
molecule verify -s localhost
ローカルテストは以下を使用します:
- ansible 2.13.3
- molecule 4.0.1
- molecule-docker 2.0.0
- molecule-podman 2.0.2
- molecule-vagrant 1.0.0
- molecule-azure 0.5.0
追加のエクストラ
- pre-commit をテストして、ディレクトリ内で実行できます。
pre-commit run
感謝の言葉
素晴らしいコミュニティとそのすべてのメンバーに心から感謝します。 元の著者やメンテナーにも大きな感謝とクレジットがあります。 Josh Springer, Daniel Shepherd, Bas Meijeri, James Cassell, Mike Renfro, DFed, George Nalen, Mark Bolwell
Apply the DISA RHEL 8 CIS
ansible-galaxy install ansible-lockdown.rhel8_cis