florianutz.ubuntu1804_cis
Ubuntu 18.04 CIS STIG
Ubuntu 18.04のマシンをCISに準拠させる設定を行います。デフォルトでレベル1と2の問題が修正されます。
このロールはシステムに変更を加えます。これにより、システムが壊れる可能性があります。これは監査ツールではなく、監査後に使用する修正ツールです。
重要なインストール手順
ansible-galaxy
コマンドを使ってインストールしたい場合、以下のように実行する必要があります:
ansible-galaxy install -p roles -r requirements.yml
この内容をrequirements.yml
ファイルに追加します:
- src: https://github.com/florianutz/Ubuntu1804-CIS.git
これはCIS Ubuntu Benchmark v2.0.1 - 2020年3月1日に基づいています。
このリポジトリはMindPointGroupが作成した作業から派生しています。
要件
このプレイブックを実行する前に、これらの変更がシステムに影響を与えないか慎重にタスクを確認してください。
ロール変数
デフォルトのmain.yml
で定義されている変数が多数あります。最も重要な内容を以下に示します。
ubuntu1804cis_notauto: システムを壊す可能性が高いため、通常自動化したくないCISチェックを実行します(デフォルト:false)
ubuntu1804cis_section1: CIS - 一般設定(セクション1)(デフォルト:true)
ubuntu1804cis_section2: CIS - サービス設定(セクション2)(デフォルト:true)
ubuntu1804cis_section3: CIS - ネットワーク設定(セクション3)(デフォルト:true)
ubuntu1804cis_section4: CIS - ロギングおよび監査設定(セクション4)(デフォルト:true)
ubuntu1804cis_section5: CIS - アクセス、認証、および認可設定(セクション5)(デフォルト:true)
ubuntu1804cis_section6: CIS - システムメンテナンス設定(セクション6)(デフォルト:true)
SELinuxのすべての機能を無効にする
ubuntu1804cis_selinux_disable: false
サービス変数:
サーバーがこれらのサービスを実行し続けることが許可されるかどうかを制御します。
ubuntu1804cis_avahi_server: false
ubuntu1804cis_cups_server: false
ubuntu1804cis_dhcp_server: false
ubuntu1804cis_ldap_server: false
ubuntu1804cis_telnet_server: false
ubuntu1804cis_nfs_server: false
ubuntu1804cis_rpc_server: false
ubuntu1804cis_ntalk_server: false
ubuntu1804cis_rsyncd_server: false
ubuntu1804cis_tftp_server: false
ubuntu1804cis_rsh_server: false
ubuntu1804cis_nis_server: false
ubuntu1804cis_snmp_server: false
ubuntu1804cis_squid_server: false
ubuntu1804cis_smb_server: false
ubuntu1804cis_dovecot_server: false
ubuntu1804cis_httpd_server: false
ubuntu1804cis_vsftpd_server: false
ubuntu1804cis_named_server: false
ubuntu1804cis_bind: false
ubuntu1804cis_vsftpd: false
ubuntu1804cis_httpd: false
ubuntu1804cis_dovecot: false
ubuntu1804cis_samba: false
ubuntu1804cis_squid: false
ubuntu1804cis_net_snmp: false
サーバーをメールサーバーとして指定
ubuntu1804cis_is_mail_server: false
システムネットワークパラメータ(ホストのみまたはホストとルーター)
ubuntu1804cis_is_router: false
必須のIPv6
ubuntu1804cis_ipv6_required: true
AIDEの設定
ubuntu1804cis_config_aide: true
AIDEのcron設定
ubuntu1804cis_aide_cron:
cron_user: root
cron_file: /etc/crontab
aide_job: '/usr/sbin/aide --check'
aide_minute: 0
aide_hour: 5
aide_day: '*'
aide_month: '*'
aide_weekday: '*'
環境にX Windowsが必要な場合は'true'に設定
ubuntu1804cis_xwindows_required: no
クライアントアプリケーションの要件
ubuntu1804cis_openldap_clients_required: false
ubuntu1804cis_telnet_required: false
ubuntu1804cis_talk_required: false
ubuntu1804cis_rsh_required: false
ubuntu1804cis_ypbind_required: false
時間同期
ubuntu1804cis_time_synchronization: chrony
ubuntu1804cis_time_synchronization: ntp
ubuntu1804cis_time_synchronization_servers:
- uri: "0.pool.ntp.org"
config: "minpoll 8"
- uri: "1.pool.ntp.org"
config: "minpoll 8"
- uri: "2.pool.ntp.org"
config: "minpoll 8"
- uri: "3.pool.ntp.org"
config: "minpoll 8"
- name: "スコア | 1.1.5 | PATCH | /tmpパーティションにnoexecオプションを設定"
未実装です。/tmpにnoexecを設定するとaptが中断されます。/tmpにはパッケージインストール中の実行可能スクリプトが含まれています。
1.5.3 | PATCH | シングルユーザーモードに認証が必要であることを確認
デフォルトでは無効になっていますが、これはrootのためのランダムなパスワードを設定することにになります。有効にするには以下を設定します:
ubuntu1804cis_rule_1_5_3: true
ランダムパスワード以外を使用するには:
ubuntu1804cis_root_password: '新しいパスワード'
3.4.2 | PATCH | /etc/hosts.allowが設定されていることを確認
ubuntu1804cis_host_allow:
- "10.0.0.0/255.0.0.0"
- "172.16.0.0/255.240.0.0"
- "192.168.0.0/255.255.0.0"
ubuntu1804cis_firewall: firewalld
ubuntu1804cis_firewall: iptables
5.3.1 | PATCH | パスワード作成要件が設定されていることを確認
ubuntu1804cis_pwquality:
- key: 'minlen'
value: '14'
- key: 'dcredit'
value: '-1'
- key: 'ucredit'
value: '-1'
- key: 'ocredit'
value: '-1'
- key: 'lcredit'
value: '-1'
依存関係
Ansible は、バージョン2.4から2.7まで(2.8は未対応)
例プレイブック
- name: サーバーの強化
hosts: servers
become: yes
roles:
- Ubuntu1804-CIS
このリポジトリのタスクを実行するには、最初にリポジトリの一つ上の階層にこのファイルを作成します
(つまり、プレイブックの.ymlファイルとUbuntu1804-CIS
ディレクトリは隣接している必要があります)、
次にdefaults/main.yml
ファイルを確認し、実行したくないルール/セクションを無効にします。
このファイルをsite.yml
と命名したと仮定し、以下のコマンドを実行します:
ansible-playbook site.yml
タグ
変更内容を細かく制御するための多くのタグが用意されています。
タグを使用する例:
# サイトの監査とパッチを適用
ansible-playbook site.yml --tags="patch"
ライセンス
MIT
ansible-galaxy install florianutz.ubuntu1804_cis