ansible-lockdown.rhel9_cis
RHEL 9 CIS
RHEL 9 マシンを CIS に準拠させる設定
[CIS RedHat Enterprise Linux 9 Benchmark v1.0.0 - 2022年11月30日] に基づく](https://www.cisecurity.org/cis-benchmarks/)
サポートを探していますか?
コミュニティ
質問をしたり、機能について話し合ったり、他のAnsible-Lockdownユーザーとチャットするために、Discordサーバーに参加してください。
貢献
問題やプルリクエストは歓迎します。すべてのコミットにサインおよびGPG署名を付けてください。 貢献ガイドを参照してください。
注意事項
この役割はシステムに変更を加えます。これにより、予期しない結果が生じる可能性があります。これは監査ツールではなく、監査が行われた後に使用される改善ツールです。
チェックモードはサポートされていません!役割はチェックモードでエラーなく完了しますが、サポートされておらず、注意して使用する必要があります。RHEL8-CIS-Audit役割や、コンプライアンススキャナーは、チェックモードではなくコンプライアンス確認に使用してください。
この役割はオペレーティングシステムのクリーンインストールに対して開発されました。既存のシステムに適用する場合、必要なサイト固有の変更があるか確認してください。
リリースバージョンを使用するには、作業したいCISベンチマークに関連するmain
ブランチとリリースを指定してください。
CISにおけるセキュリティレベルの一致
CISのレベル1またはレベル2のコントロールのみを実行することも可能です。 これはタグを使用して管理されます:
- level1-server
- level1-workstation
- level2-server
- level2-workstation
defaults
メインにあるコントロールもこれを反映する必要があります。このコントロールは、監査コンポーネントを使用している場合に行われるテストです。
前回のリリースからの移行
CISのリリースには常に変更が含まれているため、新しいリファレンスと利用可能な変数を確認することを強くお勧めします。これは、ansible-lockdownの初回リリース以来大きく変更されています。 これは、デフォルトのインタープリターである場合にpython3と互換性があります。これには、システムを適切に構成するための前提条件が含まれます。
詳細は変更履歴を参照してください。
監査 (新)
これは、defaults/main.yml
ファイル内でsetup_audit
とrun_audit
の変数を使用してオンまたはオフにできます。デフォルトでは値はfalse
です。詳細はウィキを参照してください。デフォルトファイルは、Ansible役割で有効になっているコントロールのみにチェックを実行するgossチェックを含みます。
これは、可能な限りコンフィグの準拠とライブ/実行設定を確認するより迅速で軽量なチェックです。
新たな監査方法は、gossという小さな(12MB)Goバイナリを使用し、インフラや他のツールなしでチェックするための関連設定を持つことによって開発されました。 この監査は、設定が正しいかどうかを確認するだけでなく、その設定で実行されているかも確認し、偽陽性の削除も目指しています。
RHEL9-CIS-Auditを参照してください。
ドキュメント
- Read The Docs
- Getting Started
- Customizing Roles
- Per-Host Configuration
- Getting the Most Out of the Role
要件
RHEL 9 Almalinux 9 Rocky 9 OracleLinux 9
- 監査を使用する場合、gossのバイナリとコンテンツをシステムにダウンロードまたは追加するアクセスが必要です(他の方法も利用できます)。
CentOSストリーム - これは通常機能しますが、サポートされておらず、以下の変数設定が必要です
os_check: false
一般的な要件:
Ansibleの基本知識。Ansibleに不慣れな場合は、以下にいくつかのドキュメントリンクを示します。
機能するAnsibleまたはTowerがインストールされ、設定され、実行されていること。これには、すべての基本Ansible/Tower設定、必要なパッケージのインストール、インフラの設定が含まれます。
この役割のタスクを読み、各コントロールが何をしているか理解してください。一部のタスクは破壊的であり、ライブプロダクションシステムで予期しない結果をもたらす可能性があります。また、defaults/main.ymlファイル内の変数にも慣れてください。
技術的依存関係:
- Python3
- Ansible 2.10+
- python-def(RHEL 9に含まれるはずです)
- libselinux-python
- pipパッケージ
- jmespath
- collections/requirements.ymlに見られるコレクション
pre-commitはホストにインストールされている場合、プルリクエストのテスト用に使用できます。
役割の変数
この役割は、エンドユーザーがタスク自体を編集する必要がないように設計されています。カスタマイズは、defaults/main.ymlファイルに見られる必要な変数をオーバーライドすることで行うべきです。例えば、inventory、group_vars、extra_varsを使用します。
タグ
追加のコントロール精度のために多数のタグが利用可能です。各コントロールには、そのレベル、スコアの有無、関連するOS要素、パッチまたは監査であるか、ルール番号を示す独自のタグセットがあります。
以下は、この役割内のコントロールからのタグセクションの例です。この例を使用して、実行時にservices
タグ付きのすべてのコントロールをスキップするように設定すると、このタスクはスキップされます。逆に、services
タグ付きのコントロールのみを実行することもできます。
tags:
- level1-server
- level1-workstation
- scored
- avahi
- services
- patch
- rule_2.2.4
コミュニティ貢献
コミュニティの皆さんにはこの役割に貢献していただくことを奨励します。以下のルールをお読みください。
- あなたの作業は、あなた自身のブランチで行われます。マージする意図のあるすべてのコミットにサインを付け、GPG署名を付けてください。
- すべてのコミュニティプルリクエストは、develブランチにプルされます。
- develへのプルリクエストは、あなたのコミットにGPG署名があること、サインオフがあり、機能テストが行われたことを確認してから承認されます。
- 変更がマージされ、より詳細なレビューが完了すると、認可されたメンバーが変更をmainブランチにマージし、新たなリリースを作成します。
知られている問題
CIS 1.2.4 - repo_gpgcheckはRedHatホストでは実行されません。デフォルトのリポジトリにこの機能がないためです。これにより、EPELにも影響を与えます(varでカバーされていない)。 - RockyとAlmaには影響しません。 使用される変数を未設定にします。 rhel9cis_rhel_default_repo: true # この能力を持つリポジトリを使用している場合はfalseに設定してください。
パイプラインテスト
使用されるもの:
- ansible-core 2.12
- ansible collections - 要件ファイルに基づいて最新バージョンをプルします
- develブランチを使用して監査を実行します
- プルリクエストでのpre-commitセットアップを実行し、すべてが期待どおりに配置されていることを確認します。
- これはdevelへのプルリクエストで自動的に発生するテストです。
ローカルテスト
Ansible
- ansible-base 2.10.17 - python 3.8
- ansible-core 2.13.4 - python 3.10
- ansible-core 2.15.1 - python 3.11
追加のエクストラ
- makefile - これは主にテストと初期設定目的で存在します。
- pre-commitはテストでき、ディレクトリ内で実行できます。
pre-commit run
クレジットと感謝
元々のコンセプトはSam Doranによるものです。
素晴らしいコミュニティとそのメンバー全員に心から感謝します。
元の著者およびメンテナの方々にも大変感謝しております。
Mark Bolwell, George Nalen, Steve Williams, Fred Witty
Apply the RHEL 9 CIS
ansible-galaxy install ansible-lockdown.rhel9_cis