MindPointGroup.ubuntu18_cis
UBUNTU18 CIS
Ubuntu18マシンをCIS準拠に設定する
CIS Ubuntu1804ベンチマーク v2.1.0に基づく
サポートを探していますか?
コミュニティ
質問をしたり、機能について話し合ったり、他のAnsible-Lockdownユーザーとチャットしたりするために、Discordサーバーに参加してください。
注意事項
このロールはシステムに変更を加えますが、意図しない結果をもたらす可能性があります。これは監査ツールではなく、監査後に使用する修正ツールです。
チェックモードはサポートされていません!ロールはチェックモードでエラーなく完了しますが、サポートされておらず、注意が必要です。準拠チェックにはUBUNTU18-CIS-Auditロールまたはコンプライアンススキャナーを使用してください。
このロールは、クリーンインストールのオペレーティングシステムに対して開発されました。既存のシステムに適用する場合は、必要なサイト固有の変更についてこのロールを確認してください。
リリースバージョンを使用するには、メインブランチと関係するリリースを指定してください。
CISのセキュリティレベルに合わせる
CISのレベル1またはレベル2の制御のみを実行することができます。 これはタグを使用して管理されます:
- level1_server
- level1_workstation
- level2_server
- level2_workstation
mainのデフォルトに見つかる制御もこれを反映させる必要があります。これは、監査コンポーネントを使用してテストを行う場合の制御です。
前のリリースからの移行
CISリリースには常に変更が含まれていますので、新しい参照や利用可能な変数を確認することを強くお勧めします。これはansible-lockdownの初期リリース以来、大きく変わりました。 これはpython3と互換性がありますが、デフォルトのインタプリタが見つかる場合に限ります。これには、システムを適切に構成する前提条件が含まれています。
詳細はChangelogで確認できます。
監査(新機能)
これはdefaults/main.ymlファイル内の変数run_auditでオンまたはオフにすることができます。デフォルトではfalseですので、詳細はWikiを参照してください。デフォルトファイルは、ansibleロールで有効にされた制御のみをチェックするためにgossチェックを設定します。
これは、可能な限り構成の準拠や実行中の設定をチェックするための非常に軽量で迅速なチェックです。
新しい監査形式が開発されました。それは、gossという小さな(12MB)Goバイナリと関連する設定を使用してチェックを行います。インフラや他のツールを必要としません。 この監査は、設定が正しい状態であることをチェックするだけでなく、実行中の状態でもそれが実行されているかどうかを確認し、false positiveを削減することを目的としています。
UBUNTU18-CIS-Auditを参照してください。
監査の例
これは、選択肢が有効になっているVagrantイメージに基づいています。例:GUIなしまたはファイアウォールなし。 注意:監査中は、構成と実行状態を確認するために、より多くのテストが実行されます。
ok: [default] => {
"msg": [
"修正前の結果は:['合計時間: 5.454秒', 'カウント: 338, 失敗: 47, スキップ: 5']。",
"修正後の結果は:['合計時間: 5.007秒', 'カウント: 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やTowerがインストールされ、設定され、稼働していること。これには、すべての基本のAnsible/Tower設定、必要なパッケージのインストール、インフラのセットアップが含まれます。
このロール内のタスクを通読して、各制御が何を行っているか理解してください。タスクの中には、破壊的であり、運用中のシステムに意図しない結果をもたらす可能性があります。また、defaults/main.ymlファイル内の変数にも慣れてください。
技術的依存関係:
- 監査を使用する場合、gossバイナリとコンテンツをシステムにダウンロードまたは追加するためのアクセス (コンテンツをシステムに取得する方法の他のオプションもあります)
- Python3
- Ansible 2.10.1以上
- python-def
- libselinux-python
ロールの変数
このロールは、エンドユーザーがタスク自体を編集する必要がないように設計されています。すべてのカスタマイズは、defaults/main.ymlファイルまたはプロジェクト、ジョブ、ワークフロー内のエクストラ変数を使用して行うべきです。
タグ
追加の制御精度のために多くのタグが利用可能です。各制御には、レベル、スコアの有無、関連するOS要素、パッチか監査か、ルール番号など、独自のタグセットがあります。
以下は、このロール内の制御のタグセクションの例です。この例では、実行をservicesタグの付いたすべての制御をスキップするように設定すると、このタスクはスキップされます。逆に、servicesタグの付いた制御のみを実行することもできます。
tags:
- level1-server
- level1-workstation
- scored
- avahi
- services
- patch
- rule_2.2.4
コミュニティの貢献
私たちは、コミュニティの皆さんがこのロールに貢献することを歓迎します。以下のルールをお読みください。
- あなたの作業は、個別のブランチで行われます。変更をマージする意図のあるすべてのコミットに対して、Signed-offおよびGPG署名を確認してください。
- すべてのコミュニティプルリクエストは、develブランチに取り込まれます。
- develへのプルリクエストでは、コミットがGPG署名されていること、Signed-offされていること、機能テストが行われていることを確認します。
- 変更がマージされ、詳細なレビューが完了した後、認可されたメンバーが変更をメインブランチにマージし、新しいリリースを作成します。
知られている問題
cloud0init - バグのため、/varにnoexecが追加されると動作が停止します。 ubtu18cis_rule_1_1_3_3
パイプラインテスト
利用するもの:
- ansible-core 2.16
- ansibleコレクション - 要件ファイルに基づいて最新バージョンを取得
- develブランチを使用した監査を実行
- これはdevelにプルリクエストがあるときに自動的に行われるテストです。
追加の機能
- pre-commitをテストし、ディレクトリ内から実行できます。
pre-commit run
Apply the Ubuntu 18 CIS
ansible-galaxy install MindPointGroup.ubuntu18_cis