anthcourtney.cis-amazon-linux
anthcourtney.cis-amazon-linux
ビルドステータス
ブランチ | ステータス |
---|---|
マスター | |
ビルド |
開発
「マスター」ブランチは完全にテストされた変更のみに使用します。
今後のプルリクエストは「ビルド」ブランチに送信してください。
変更を行うためにはコミュニティのサポートが必要です。テストやレビューも重要ですので、参加したい方はAnthまたはChandanに連絡してください。
主な作業内容は以下の通りです。
- CISベンチマーク v2.2.0
- Ansible 2.5以上
- Amazon Linux 2 LTS
イントロダクション
このAnsibleロールは、CIS Amazon Linuxベンチマークのv2.0.0を適用します。https://benchmarks.cisecurity.org/tools2/linux/CIS_Amazon_Linux_Benchmark_v2.0.0.pdf
このロールは、Amazon Linux 2016.03に対して開発およびテストされており、Amazon Linux 2016.09でも同様の成功を収めています。
このロールを使用する理由は?
業界で受け入れられているセキュリティ基準、例えばPCI DSS、APRA、ISO 27001のコンプライアンスを取得しようとするなら、評価対象のすべてのシステムに対し、文書化されたハードニング基準を適用したことを示す必要があります。
Amazon Linuxを運用している場合、このロールはコンプライアンスの解決策の一部を提供しようとしています。
注意点
このロールをサーバーに適用しようと考えている場合、CISベンチマーク(または類似のベンチマーク)に対する基本的な理解と、システムに与えうる影響についての認識が必要です。
基準やデフォルト値に慣れる時間を取ってから、適用を行ってください。また、適用時には除外すべき項目を考慮してください。
直ちに除外を検討すべき項目の例は以下の通りです:
3.4.2
と3.4.3
は、デフォルトではホストへのアクセス(sshを含む)をローカルホストのみに制限します。
Amazon LinuxとSE Linux
デフォルトでは、Amazon LinuxのSElinuxはgrubによって無効になっています。
有効にするには、以下を編集します;
/boot/grub/menu.lst
selinux=0 を selinux=1 に変更
touch /etc/selinux/config
次に、ansibleのSElinuxモジュールがホストで機能するよう、以下のパッケージをインストールしてください。
yum install libselinux-python
変更を適用するには再起動が必要です。
例のプレイブック
このロールを使用した例のプレイブックは以下のようになります:
---
- hosts: localhost
connection: local
gather_facts: true
become: yes
roles:
- anthcourtney.cis-amazon-linux
より高度な例として、デフォルト値を変更し、フィクショナル環境に不必要とみなされる一部の項目を除外するものは以下の通りです:
---
- 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:
- anthcourtney.cis-amazon-linux
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.3
- 2.4
- 2.5
- 2.6
- 2.7
このロールは他のバージョンのAnsibleではテストされていません。
テスト
このロールの開発者によるテストプロセスは以下の通りです:
- ロールの文法をチェックします。
make syntax
を参照。 ansible-review
をロールに対して実行し、適切と判断される警告を修正します。make review
を参照。- このロールをDockerコンテナに対して適用し、Ansible v2.1.3とAnsible v2.2の両方でテストします。
make test
を参照。
以下のテストはフラグされていますが、まだ実装されていません:
- Vagrantの
mvbcoding/awslinux
イメージに対するロールの適用テストを、Ansibleプロビジョナーを使用して実行します。
Lint
make lint
を実行し、Ansibleの標準に従っていることを確認してください。
ライセンス
MIT.
著者情報
このロールはAnth Courtneyによって開発されました。
フィードバック、問題、プルリクエストは大歓迎です。
ansible-galaxy install anthcourtney.cis-amazon-linux