anthcourtney.cis-amazon-linux

anthcourtney.cis-amazon-linux

ビルドステータス

ブランチ ステータス
マスター Build Status
ビルド Build Status

開発

「マスター」ブランチは完全にテストされた変更のみに使用します。

今後のプルリクエストは「ビルド」ブランチに送信してください。

変更を行うためにはコミュニティのサポートが必要です。テストやレビューも重要ですので、参加したい方は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.23.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によって開発されました。

フィードバック、問題、プルリクエストは大歓迎です。

プロジェクトについて

Implement CIS Amazon Linux V2 Benchmark

インストール
ansible-galaxy install anthcourtney.cis-amazon-linux
ライセンス
mit
ダウンロード
13.8k
所有者