diff --git a/linux_os/guide/system/network/network-firewalld/ruleset_modifications/configured_firewalld_default_deny/ansible/shared.yml b/linux_os/guide/system/network/network-firewalld/ruleset_modifications/configured_firewalld_default_deny/ansible/shared.yml new file mode 100644 index 000000000000..5e6ad7a3413f --- /dev/null +++ b/linux_os/guide/system/network/network-firewalld/ruleset_modifications/configured_firewalld_default_deny/ansible/shared.yml @@ -0,0 +1,12 @@ +# platform = multi_platform_all +# reboot = false +# strategy = configure +# complexity = low +# disruption = low + +- name: Ensure firewalld default zone is drop + lineinfile: + path: /etc/firewalld/firewalld.conf + regexp: '^DefaultZone=' + line: 'DefaultZone=drop' + create: yes diff --git a/linux_os/guide/system/network/network-firewalld/ruleset_modifications/configured_firewalld_default_deny/bash/shared.sh b/linux_os/guide/system/network/network-firewalld/ruleset_modifications/configured_firewalld_default_deny/bash/shared.sh new file mode 100644 index 000000000000..f72edba49329 --- /dev/null +++ b/linux_os/guide/system/network/network-firewalld/ruleset_modifications/configured_firewalld_default_deny/bash/shared.sh @@ -0,0 +1,7 @@ +# platform = multi_platform_all +# reboot = false +# strategy = configure +# complexity = low +# disruption = low + +{{{ bash_replace_or_append('/etc/firewalld/firewalld.conf', '^DefaultZone', 'drop', '%s=%s') }}} diff --git a/linux_os/guide/system/network/network-firewalld/ruleset_modifications/configured_firewalld_default_deny/oval/shared.xml b/linux_os/guide/system/network/network-firewalld/ruleset_modifications/configured_firewalld_default_deny/oval/shared.xml new file mode 100644 index 000000000000..24b0210c54a0 --- /dev/null +++ b/linux_os/guide/system/network/network-firewalld/ruleset_modifications/configured_firewalld_default_deny/oval/shared.xml @@ -0,0 +1,48 @@ + + + {{{ oval_metadata("Firewalld Must Employ a Deny-all, Allow-by-exception Policy") }}} + + + + + + + + + + + + + + + + /etc/firewalld/firewalld.conf + ^DefaultZone=drop$ + 1 + + + + ^DefaultZone=drop$ + + + + + + + + + + + + /etc/firewalld/zones + drop.xml + /zone[@target='DROP'] + + + + /usr/lib/firewalld/zones + drop.xml + /zone[@target='DROP'] + + + \ No newline at end of file diff --git a/linux_os/guide/system/network/network-firewalld/ruleset_modifications/configured_firewalld_default_deny/tests/correct.pass.sh b/linux_os/guide/system/network/network-firewalld/ruleset_modifications/configured_firewalld_default_deny/tests/correct.pass.sh new file mode 100644 index 000000000000..bcdeeadfb82f --- /dev/null +++ b/linux_os/guide/system/network/network-firewalld/ruleset_modifications/configured_firewalld_default_deny/tests/correct.pass.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# packages = firewalld +# platform = multi_platform_all + +mkdir -p /etc/firewalld/zones +touch /etc/firewalld/firewalld.conf +if grep -q "^DefaultZone=" /etc/firewalld/firewalld.conf; then + sed -i "s/^DefaultZone=.*/DefaultZone=drop/" /etc/firewalld/firewalld.conf +else + echo "DefaultZone=drop" >> /etc/firewalld/firewalld.conf +fi + +cat << EOF > /etc/firewalld/zones/drop.xml + + + Drop + Unsolicited incoming network packets are dropped. + +EOF + diff --git a/linux_os/guide/system/network/network-firewalld/ruleset_modifications/configured_firewalld_default_deny/tests/wrong_zone.fail.sh b/linux_os/guide/system/network/network-firewalld/ruleset_modifications/configured_firewalld_default_deny/tests/wrong_zone.fail.sh new file mode 100644 index 000000000000..112810d2f08a --- /dev/null +++ b/linux_os/guide/system/network/network-firewalld/ruleset_modifications/configured_firewalld_default_deny/tests/wrong_zone.fail.sh @@ -0,0 +1,11 @@ +#!/bin/bash +# packages = firewalld +# platform = multi_platform_all + +mkdir -p /etc/firewalld/zones +touch /etc/firewalld/firewalld.conf +if grep -q "^DefaultZone=" /etc/firewalld/firewalld.conf; then + sed -i 's/^DefaultZone=.*/DefaultZone=public/' /etc/firewalld/firewalld.conf +else + echo "DefaultZone=public" >> /etc/firewalld/firewalld.conf +fi \ No newline at end of file