alivx.cis_ubuntu_20_04_ansible
<div align="center">
<img src="https://raw.githubusercontent.com/alivx/CIS-Ubuntu-20.04-Ansible/master/files/header.png">
</div>
Ansible CIS Ubuntu 20.04 LTS セキュリティ強化 V1.1.0 最新 [](https://travis-ci.com/alivx/CIS-Ubuntu-20.04-Ansible)
=========
CIS に基づいて強化された Ubuntu: ミッションクリティカルなシステムのサイバー攻撃とマルウェア防止
CIS ベンチマークは、次の内容によりシステムを強化します:
1. セキュリティの無いプログラムを削除。
2. 使用していないファイルシステムを無効化。
3. 不要なポートやサービスを無効化。
4. 特権操作を監査。
5. 管理権限を制限。
CIS ベンチマークの推奨は、公共およびプライベートクラウドの仮想マシンに適用されています。また、オンプレミスの展開を安全に保つためにも使用されます。一部の業界では、公に知られた標準に対してシステムを強化することが監査人が求める基準です。CIS ベンチマークは、銀行、通信、医療など、PCI-DSS や HIPPA のコンプライアンスが必要な業界で推奨されるシステム強化の選択肢です。
業界で受け入れられているセキュリティ標準、例えば PCI DSS、APRA、ISO 27001 などに対するコンプライアンスを取得しようとしている場合は、評価の範囲内のすべてのシステムに対して文書化された強化基準を適用したことを示す必要があります。
Ubuntu CIS ベンチマークは、サーバー環境とワークステーション環境に向けた **「レベル 1」** および **「レベル 2」** という異なるプロファイルに分類されています。
**レベル 1 プロファイル**は、システムのパフォーマンスに大きな影響を与えずに、実用的で慎重な方法でシステムを保護することを目的としています。
* 不要なファイルシステムを無効化
* ユーザーのファイルおよびディレクトリへの権限を制限
* 不要なサービスを無効化
* ネットワークファイアウォールを設定
**レベル 2 プロファイル**は、セキュリティが非常に重要な場合に使用され、システムのパフォーマンスに悪影響を与える可能性があります。
* 別のパーティションを作成
* 特権操作の監査
Ubuntu CIS 強化ツールは、プロファイル(レベル 1 または レベル 2)と作業環境(サーバーまたはワークステーション)に対して希望する強化レベルを選択できます。
例:
```Bash
ansible-playbook -i inventory cis-ubuntu-20.yaml --tags="level_1_server"
すべてのタグを一覧表示するには、以下のコマンドを実行します:
ansible-playbook -i host run.yaml --list-tags
私は次の文に基づいてすべての役割を作成しました。
CIS Ubuntu Linux 20.04 LTS ベンチマーク
v1.1.0 - 2020年7月21日
例のディレクトリを確認
要件
このプレイブックを実行する前に、これらの変更がシステムを壊さないかよく確認してください。
以下の URL から無料の CIS ベンチマーク本をダウンロードできます。 無料ベンチマーク
このロールで作業を始めるには、Ansible をインストールするだけです。 Ansible のインストール
ロール変数
このプレイブックを実行する前に、すべてのデフォルト構成を確認する必要があります。デフォルト/main.yml に多くのロール変数が定義されています。
- サーバーにこのロールを適用することを考えている場合は、CIS ベンチマークに対する基本的な知識と、システムに与える影響を理解していることが重要です。
- 設定可能なデフォルト値を読み、変更してください。
すぐに除外を考慮すべき設定の例:
5.1.8 cronが認可ユーザーに制限されていることを確認 および 5.2.17 SSHアクセスが制限されていることを確認。デフォルト値では、これによりホストへのアクセスが効果的に制限されます(sshを介して含む)。
例えば:
- CIS-Ubuntu-20.04-Ansible/defaults/main.yml
# セクション 5
# 5.1.8 cronが認可ユーザーに制限されていることを確認
allowed_hosts: "ALL: 0.0.0.0/0.0.0.0, 192.168.2.0/255.255.255.0"
# 5.2.17 SSHアクセスが制限されていることを確認
allowed_users: ali saleh baker root #ユーザーリストを指定してください、スペースで区切る
ファイルテンプレートを変更する必要がある場合は、files/templates/*
にあります。
依存関係
- Ansible バージョン > 2.9
例のプレイブック
以下はプレイブックの例です。
---
- hosts: host1
become: yes
remote_user: root
gather_facts: no
roles:
- { role: "CIS-Ubuntu-20.04-Ansible" }
すべてを実行
すべてのタグを実行したい場合は、以下のコマンドを使用します:
ansible-playbook -i [inventoryfile] [playbook].yaml
特定のセクションを実行
ansible-playbook -i host run.yaml -t section2
複数のセクションを実行
ansible-playbook -i host run.yaml -t section2 -t 6.1.1
注意: 個々のタスクを実行する際は、タスク間の依存関係に注意してください。例えば、4.1.1.2 auditdサービスが有効であることを確認を4.1.1.1 auditdがインストールされていることを確認の前に実行すると、実行時にエラーが発生します。
チルダが記載された項目はまだ実装されていません、現在作業中です。一度サービスを選択することを確認してください。私の場合は ntp を使用していますが、[
systemd-timesyncd
,ntp
,chrony
]など他のサービスを使用することもできます。設定はdefaults/main.yaml
で行います。テスト 2020年11月1日 AWS EC2 ubuntu 20.04 LTSでテスト [合格] 2020年11月1日 ローカルの Ubuntu 20.04 LTS サーバーでテスト [合格]
実行する前に、
defaults/main.yaml
内のlist_of_os_users
とallowed_users
の下にユーザーリストを更新してください。defaults/main.yaml
のallowed_hosts
に正しいサブネットを設定してください。
ロールの一覧:
1 初期設定
- 1.1 ファイルシステム設定
- 1.1.1 未使用のファイルシステムを無効化
- 1.1.2 /tmpが設定されていることを確認 (自動化)
- 1.1.3 /tmpパーティションにnodevオプションが設定されていることを確認 (自動化)
- 1.1.4 /tmpパーティションにnosuidオプションが設定されていることを確認 (自動化)
- 1.1.5 /tmpパーティションにnoexecオプションが設定されていることを確認 (自動化)
- 1.1.22 すべての世界書き込み可能なディレクトリにスティッキービットが設定されていることを確認 (自動化)
- 1.1.23 Automountingを無効化 (自動化)
- 1.1.24 USBストレージを無効化 (自動化)
2 サービス
- 2.1 inetd サービス
- 2.1.1 xinetd がインストールされていないことを確認 (自動化)
- 2.2 特殊目的サービス
- 2.2.1 時間同期
- 2.2.1.1 時間同期が使用されていることを確認 (自動化)
3 ネットワーク設定
- 3.1 未使用のネットワークプロトコルとデバイスを無効化
- 3.2 ネットワークパラメータ(ホスト専用)
- 3.2.1 パケット転送が無効になっていることを確認 (自動化)
4 ロギングと監査
- 4.1 システム会計 (auditd)を設定
- 4.1.1 監査が有効になっていることを確認
- 4.2 ロギングを設定
- 4.2.1 rsyslogを設定
5 アクセス、認証、認可
- 5.1 時間ベースのジョブスケジューラを設定
- 5.1.1 cronデーモンが有効で実行されていることを確認 (自動化)
トラブルシューティング
- 同じマシンでプレイブックを実行したい場合は、タスクを実行するために次を追加してください:
- hosts: 127.0.0.1
connection: local
- 実行時に問題が発生した場合、別のパス(例えば
/srv/
)でプレイブックを実行してみてください。 stderr: chage: user 'ubuntu' does not exist in /etc/passwd
のようなエラーの場合、CIS-Ubuntu-20.04-Ansible/defaults/main.yml
の設定を更新してください。
ライセンス
GNU 一般公衆ライセンス
著者情報
この役割は、Ali Saleh Baker によってもともと開発されました。
このリポジトリに貢献する際は、最初に変更したい内容を GitHub のイシュー、メール、または他の手段で相談してください。 ```
ansible-galaxy install alivx.cis_ubuntu_20_04_ansible