ansible-lockdown.rhel8_stig
RHEL 8 DISA STIG
RHEL8ベースシステムをDISA STIGに準拠させる設定
このロールは、RHEL 8 DISA STIGに基づいています:バージョン1, リリース13、2024年1月24日発行。
サポートをお探しですか?
コミュニティ
質問や機能について相談したり、他のAnsible-Lockdownユーザーとチャットしたりするために、Discordサーバーをご利用ください。
RHEL/Rocky 8システムをDISA STIG準拠に設定します。
非破壊的なCAT I、CAT II、およびCAT IIIの問題は、デフォルトで修正されます。
破壊的な問題の修正は、rhel8stig_disruption_highをtrueに設定することで有効にできます。
更新
以前のリリースからの移行。
すべてのリリースと更新に関して、テストと制御の整合性を確認することをお勧めします。 このリリースには、STIGドキュメントに従った書き直しやID参照の変更が含まれています。
監査
これは、デフォルトのdefaults/main.ymlファイル内で変数rhel7cis_run_auditを使用してオンまたはオフにできます。デフォルトでは偽になっています。詳細についてはWikiを参照してください。デフォルトファイルは、Ansibleロールで有効にされた制御のみをチェックするためのgossチェックも含まれています。
これは、設定の準拠とライブ/実行設定を非常に軽量でチェックする方法です(可能な場合)。
監査の一形態として、gossと呼ばれる小型(12MB)のGoバイナリを使用し、チェックするための関連する設定が利用されています。インフラや他のツールは必要ありません。 この監査は、正しい設定がなされていることを確認するだけでなく、その構成で実行されているかどうかを確認し、偽陽性を排除することを目指しています。
ドキュメント
要件
- RHEL/Rocky/AlmaLinux/OL 8 - 他のバージョンはサポートされていません。
- 他のOSは、テスト目的で
skip_os_checkをtrueに変更することでチェック可能です。 - 監査を使用する場合、gossバイナリおよびコンテンツをシステムにダウンロードまたは追加するためのアクセスが必要です。コンテンツをシステムに持ってくる方法は複数あります。
依存関係
Ansibleを実行するホスト上には、次のパッケージがインストールされている必要があります:
- python2-passlib(またはpython3を使用している場合はpasslib)
- python-lxml
カスタムフィルタやモジュールを使用するタスクには、python(2)-passlibパッケージが必要です。これらはすべてAnsibleを実行するコントローラホストに必要です。
ロール変数
このロールは、エンドユーザーがタスク自体を編集する必要がないように設計されています。すべてのカスタマイズは、defaults/main.ymlファイルを通じて、またはプロジェクト、ジョブ、ワークフローなどの中で追加の変数を介して行うべきです。
タグ
制御の精度を高めるために多くのタグが利用可能です。各制御には、制御番号とその制御が対象とするシステムの部分に関連する独自のタグセットがあります。
以下は、このロール内の制御のタグセクションの例です。この例を使用して、sshタグが付けられたすべての制御をスキップするように実行を設定すると、このタスクがスキップされます。反対に、sshタグが付けられた制御のみを実行することもできます。
tags:
- RHEL-08-010050
- ssh
- dod_logon_banner
監査要約の例
これは、選択が有効になっているバグラントイメージに基づいています。例:GUIがなく、防火壁もなし。 注:設定と実行状態を確認するため、監査中により多くのテストが行われます。
ok: [rocky8_efi] =>
msg:
- '修正前の結果は:カウント: 804, 失敗: 416, 所要時間: 6.488秒。'
- '修正後の結果は:カウント: 804, 失敗: 28, 所要時間: 68.687秒。'
- 完全な内訳は/optにあります
PLAY RECAP ****************************************************************************************************************
rocky8_efi : ok=482 changed=269 unreachable=0 failed=0 skipped=207 rescued=0 ignored=0
ブランチ
- devel - これはデフォルトのブランチで、開発作業用のブランチです。コミュニティのプルリクエストはこのブランチに取り込まれます。
- main - これはリリースブランチです。
- reports - これはスコアリングレポートのための保護されたブランチで、コードがここに入ることはありません。
- gh_pages - GitHubページです。
- その他のすべてのブランチ - 個々のコミュニティメンバーブランチです。
コンテナ - テスト
- system_is_container
これは、デフォルトのdefaults/main.ymlでfalseに設定されています。
コンテナタイプまたはansible_connection == dockerとみなされる場合、trueで実行されるように変換します。
これがtrueである場合、適用されない制御をスキップすることがあります。その他、ベンダーが提供した変更されていないイメージに基づいて、vars/is_container.yml内の制御のサブセットを実行します。
変更されていないベンダーイメージ。
- container_vars_file: is_container.yml
このvarsファイルでは、制御はタグごとにグループ化されるので、後でコンテナにsshがあった場合、代替のvarsファイルを読み込むことで再度有効にできます。
コミュニティ貢献
私たちは、コミュニティがこのロールに貢献することを奨励します。以下のルールをお読みください。
- あなたの作業は、個々のブランチで行われます。マージしようとするすべてのコミットに署名とGPG署名を確認してください。
- すべてのコミュニティのプルリクエストはdevelブランチに取り込まれます。
- develへのプルリクエストは、あなたのコミットがGPG署名されていること、署名済みであること、機能テストが行われたことを確認します。
あなたの変更がマージされ、詳細なレビューが完了すると、認可されたメンバーがあなたの変更を主ブランチにマージし、新しいリリースを行います。
パイプラインテスト
利用するもの:
- ansible-core 2.12
- ansibleコレクション - 要件ファイルに基づいて最新のバージョンを取り込みます。
- develブランチを使用して監査を実行します。
- これは、develへのプルリクエスト時に自動で行われるテストです。
既知の問題
stigルールRHEL-08-040134を採用する場合
これにより、bug 1839899の影響を受けるcloud initに影響が出ます。
サポート
これは、コミュニティプロジェクトであり、そのように管理されます。
専用のサポートに興味がある場合は、支援または特注のセットアップを提供するために
クレジット
このリポジトリは、Sam Doranによって行われた作業から派生しています。
添付の追加
- makefile - これはテストおよび初期設定の目的のみです。
- 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 STIG
ansible-galaxy install ansible-lockdown.rhel8_stig