HarryHarcourt.Ansible-RHEL7-CIS-Benchmarks
HarryHarcourt.Ansible-RHEL7-CIS-Benchmarks
すべてのクレジットは、ここに見つかる元のフレームワークを提供したanthcourtneyにあります: https://github.com/anthcourtney/ansible-role-cis-amazon-linux
この実装はRed Hat Enterprise Linux 7.X(7.1 - 7.7をテスト)およびCentOS 7.4(7.4 - 7.7をテスト)に変換されました(注:CentOS 7.4未満のバージョンはSSHに問題がある場合があります)。
この実装は多くの場所で冪等性を持つように作成されています。
この実装は、いくつかのサービスの有効化および設定を可能にします。
CIS RHEL Linuxベンチマークのリンク: https://benchmarks.cisecurity.org/tools2/linux/CIS_Red_Hat_Enterprise_Linux_7_Benchmark_v2.1.1.pdf
このロールは、標準AWS AMIを使用してRed Hat Linux 7.1、7.2、7.3、7.4、7.5、7.6、および7.7に対して開発およびテストされました。また、CentOS 7.4に対しても同様に開発およびテストされました。
なぜこのロールを使用するのか?
PCI DSS、APRA、ISO 27001などの業界標準に準拠しようとしている場合、評価対象のすべてのシステムに対して文書化されたハードニング基準を適用したことを示す必要があります。
Red Hat Linuxを使用している場合、このロールはコンプライアンスの解決策の一部を提供しようとしています。
注意が必要です。
このロールをサーバーに適用することを検討している場合は、CISベンチマーク(または他の類似のベンチマーク)に基本的な理解があり、それがシステムに与える影響を理解している必要があります。
使用する前に、標準や設定可能なデフォルト値に慣れるための時間を使ってください。また、システムに適用する前に除外する項目を考慮してください。
除外を直ちに考慮すべき項目の例は以下の通りです:
3.4.2
および3.4.3
は、デフォルトではホストへのアクセス(sshを含む)をlocalhostのみに制限します。
例のPlaybook
このロールを使用した例のプレイブックは以下の通りです:
---
- hosts: localhost
connection: local
gather_facts: true
become: yes
roles:
- Ansible-RHEL7-CIS-Benchmarks
デフォルト値の変更や、フィクション環境にとって不要と考えられる項目の除外を含む、より高度な例は以下の通りです:
---
- hosts: localhost
connection: local
gather_facts: true
become: yes
vars:
cis_level_1_exclusions:
- 5.4.4
- 3.4.2
- 3.4.3
- 6.2.13
cis_pass_max_days: 45
cis_umask_default: 002
roles:
- Ansible-RHEL7-CIS-Benchmarks
become: yes
を使用する必要があるのは、99%のタスクが実行するために特権アクセスを必要とするためです。
ロール変数
好みに応じて上書き可能な変数はdefaults/main.yml
を参照してください。
オプション
タグ(およびその組み合わせ)を使用して、CIS標準の特定のレベル、セクション、または個々の推奨事項を実行できます。たとえば:
- レベル1タスクのみを実行
ansible-playbook playbook.yml -t level-1
- セクション3タスクのみを実行
ansible-playbook playbook.yml -t section-3
- タスク1.3.1および2.2.10のみを実行
ansible-playbook playbook.yml -t 1.3.1,2.2.10
- スコアのあるタスクのみを実行
ansible-playbook playbook.yml -t scored
制限事項
現在、このベンチマークのレベル1項目のみが実装されています。レベル2項目は、時間が許す限り追加される予定です。
次のチェックは実装されていません:
- 3.6.2. ファイアウォールのルールセットは環境固有です。
- 3.6.3. ファイアウォールのルールセットは環境固有です。
- 3.6.4. ファイアウォールのルールセットは環境固有です。
- 3.6.5. ファイアウォールのルールセットは環境固有です。
- 4.2.1.2. 何をログし、メッセージの宛先を決定することは環境固有です。
- 4.2.2.2. 何をログし、メッセージの宛先を決定することは環境固有です。
- syslog-ngの設定ファイルをインラインで編集することは不正確と見なされ、これとその他の要件に対処するための供給された構成ファイルで解決するのが最適です。
- logrotateの設定はサイト固有です。
- pam設定ファイルの複数行編集は不正確で危険と見なされ、これとその他の要件に対処するための供給された構成ファイルで解決するのが最適です。
互換性
このロールは以下のバージョンのansibleと互換性があります:
- 2.0.2
- 2.1.3
- 2.2.0
- 2.3.0
- 2.7.0
- 2.8.x
- 2.9.x
このロールは他のバージョンのansibleに対してテストされていません。
テスト
このロールの開発者によって適用されたテストプロセスは以下の通りです:
- ロールの構文がチェックされます。
make syntax
を参照してください。 ansible-review
がロールに対して実行され、適切と見なされる警告が修正されます。make review
を参照してください。- このロールは、ansible v2.1.3およびansible v2.2を使用してdockerコンテナに適用されます。
make test
を参照してください。
次のテストはフラグが立っていますが、まだ実装されていません:
- Vagrantの
mvbcoding/awslinux
イメージに対してこのロールの適用をテストします。
ライセンス
注意: このAnsibleロールに使用すべきライセンスについて混乱があったため、Anthony Courtneyからの情報にはライセンスファイルがありませんでした。ただし、meta/main.ymlにはMITが参照され、README(以下)にはBSDが参照されていました。Anthonyからのフィードバックがなかったため(元のソースに対して問題を報告し、LinkedInを通じて連絡を試みた)、私はこのロールにMITライセンスを採用することに決めました。
MIT。
著者情報
このロールは最初にAnth Courtneyによって開発されました。
このロールはさらにBen Wrightによって開発されました。
すべてのフィードバック、問題、PRは歓迎され、感謝されます。
Idempotent CIS Benchmarks for RHEL/CentOS Linux V2
ansible-galaxy install HarryHarcourt.Ansible-RHEL7-CIS-Benchmarks