-
Notifications
You must be signed in to change notification settings - Fork 21
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adds Ubuntu Jammy CIS benchmark hardening playbooks
Co-authored-by: "Dawud <[email protected]>"
- Loading branch information
Showing
6 changed files
with
153 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,3 +18,4 @@ the various features provided. | |
wazuh | ||
vault | ||
magnum-capi | ||
security |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,49 @@ | ||
================== | ||
Security Hardening | ||
================== | ||
|
||
CIS Benchmark Hardening | ||
----------------------- | ||
|
||
The roles from the `Ansible-Lockdown <https://github.com/ansible-lockdown>`_ | ||
project are used to harden hosts in accordance with the CIS benchmark criteria. | ||
It won't get your benchmark score to 100%, but should provide a significant | ||
improvement over an unhardened system. The following operating systems are | ||
supported: | ||
|
||
- Rocky 8, RHEL 8, CentOS Stream 8 | ||
- Ubuntu 22.04 | ||
|
||
|
||
Configuration | ||
-------------- | ||
|
||
Some overrides to the role defaults are provided in | ||
``$KAYOBE_CONFIG_PATH/inventory/group_vars/overcloud/cis``. These may not be | ||
suitable for all deployments and so some fine tuning may be required. For | ||
instance, you may want different rules on a network node compared to a | ||
controller. It is best to consult the upstream role documentation for details | ||
about what each variable does. The documentation can be found here: | ||
|
||
- `Rocky 8, RHEL 8, CentOS Stream 8 <https://github.com/ansible-lockdown/RHEL8-CIS/tree/1.3.0>`__ | ||
- `Ubuntu 22.04 <https://github.com/ansible-lockdown/UBUNTU22-CIS>`__ | ||
|
||
|
||
Running the playbooks | ||
--------------------- | ||
|
||
As there is potential for unintended side effects when applying the hardening | ||
playbooks, the playbooks are not currently enabled by default. It is recommended | ||
that they are first applied to a representative staging environment to determine | ||
whether or not workloads or API requests are affected by any configuration changes. | ||
|
||
The upstream roles do not currently support using | ||
`INJECT_FACTS_AS_VARS=False <https://docs.ansible.com/ansible/latest/reference_appendices/config.html#inject-facts-as-vars>` | ||
so you must enable this feature to be able to run the playbooks. This an be done on | ||
an adhoc basis using the environment variable. An example of how of to do that is | ||
shown below: | ||
|
||
.. code-block:: console | ||
ANSIBLE_INJECT_FACT_VARS=True kayobe playbook run $KAYOBE_CONFIG_PATH/ansible/cis.yml | ||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,6 @@ | ||
--- | ||
############################################################################## | ||
# RHEL 8 / Centos Stream 8 CIS Hardening Configuration | ||
|
||
# NOTE: kayobe configures NTP. Do not clobber configuration. | ||
rhel8cis_time_synchronization: skip | ||
|
@@ -22,3 +24,82 @@ rhel8cis_crypto_policy: FIPS | |
# from being displayed. | ||
rhel8cis_rule_1_8_1_1: false | ||
rhel8cis_rule_1_8_1_4: false | ||
|
||
############################################################################## | ||
# Ubuntu Jammy CIS Hardening Configuration | ||
|
||
# Ubuntu 22 CIS configuration | ||
# Disable changing routing rules | ||
ubtu22cis_is_router: true | ||
|
||
# Set Chrony as the time sync tool | ||
ubtu22cis_time_sync_tool: "chrony" | ||
|
||
# Disable CIS from configuring the firewall | ||
ubtu22cis_firewall_package: "none" | ||
|
||
# Stop CIS from installing Network Manager | ||
ubtu22cis_install_network_manager: false | ||
|
||
# Set syslog service to journald | ||
ubtu22cis_syslog_service: journald | ||
|
||
# Squashfs is compiled into the kernel | ||
ubtu22cis_rule_1_1_1_2: false | ||
|
||
# This updates the system. Let's do this explicitly. | ||
ubtu22cis_rule_1_9: false | ||
|
||
# Do not change Chrony Time servers | ||
ubtu22cis_rule_2_1_2_1: false | ||
|
||
# Disable CIS from touching sudoers | ||
ubtu22cis_rule_5_3_4: false | ||
|
||
# Add stack and kolla to allowed ssh users | ||
ubtu22cis_sshd: | ||
log_level: "INFO" | ||
max_auth_tries: 4 | ||
ciphers: "[email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr" | ||
macs: "[email protected],[email protected],hmac-sha2-512,hmac-sha2-256" | ||
kex_algorithms: "curve25519-sha256,[email protected],diffie-hellman-group14-sha256,diffie-hellman-group16-sha512,diffie-hellman-group18-sha512,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256,diffie-hellman-group-exchange-sha256" | ||
client_alive_interval: 300 | ||
client_alive_count_max: 3 | ||
login_grace_time: 60 | ||
max_sessions: 10 | ||
allow_users: "kolla stack ubuntu" | ||
allow_groups: "kolla stack ubuntu" | ||
# This variable, if specified, configures a list of USER name patterns, separated by spaces, to prevent SSH access | ||
# for users whose user name matches one of the patterns. This is done | ||
# by setting the value of `DenyUsers` option in `/etc/ssh/sshd_config` file. | ||
# If an USER@HOST format will be used, the specified user will be restricted only on that particular host. | ||
# The allow/deny directives process order: DenyUsers, AllowUsers, DenyGroups, AllowGroups. | ||
# For more info, see https://linux.die.net/man/5/sshd_config | ||
deny_users: "" | ||
# This variable, if specified, configures a list of GROUP name patterns, separated by spaces, to prevent SSH access | ||
# for users whose primary group or supplementary group list matches one of the patterns. This is done | ||
# by setting the value of `DenyGroups` option in `/etc/ssh/sshd_config` file. | ||
# The allow/deny directives process order: DenyUsers, AllowUsers, DenyGroups, AllowGroups. | ||
# For more info, see https://linux.die.net/man/5/sshd_config | ||
deny_groups: "" | ||
|
||
# Do not change /var/lib/docker permissions | ||
ubtu22cis_no_group_adjust: false | ||
ubtu22cis_no_owner_adjust: false | ||
|
||
# Enable collecting auditd logs | ||
update_audit_template: true | ||
|
||
# Configure log rotation to prevent audit logs from filling the disk | ||
ubtu22cis_auditd: | ||
action_mail_acct: root | ||
space_left_action: syslog | ||
admin_space_left_action: halt | ||
max_log_file_action: rotate | ||
|
||
# Disable grub bootloader password. Requires overriding | ||
# ubtu22cis_bootloader_password_hash | ||
ubtu22cis_rule_1_4_1: false | ||
ubtu22cis_rule_1_4_3: false | ||
|
||
############################################################################## |
5 changes: 5 additions & 0 deletions
5
releasenotes/notes/adds-cis-hardening-for-ubuntu-jammy-d9bf23a34c08f5be.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
--- | ||
features: | ||
- | | ||
Adds support for Ubuntu Jammy to the CIS benchmark hardening playbook: | ||
``cis.yml``. This playbook will need to be manually applied. |