Blame SOURCES/scap-security-guide-0.1.59-rsyslog_encrypt_offload_fix_7741-PR_7755.patch

ff1465
From b8fd95776ce894006163b2bb5e34682e5844ca1e Mon Sep 17 00:00:00 2001
ff1465
From: Matthew Burket <mburket@redhat.com>
ff1465
Date: Thu, 21 Oct 2021 14:43:51 -0500
ff1465
Subject: [PATCH 1/5] Always esacpe parameter in ansible_set_config_file
ff1465
ff1465
---
ff1465
 .../ansible/shared.yml                          |  5 +++--
ff1465
 .../ansible/shared.yml                          |  5 +++--
ff1465
 .../ansible/shared.yml                          |  5 +++--
ff1465
 shared/macros-ansible.jinja                     | 17 ++++++++++-------
ff1465
 4 files changed, 19 insertions(+), 13 deletions(-)
ff1465
ff1465
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_encrypt_offload_actionsendstreamdriverauthmode/ansible/shared.yml b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_encrypt_offload_actionsendstreamdriverauthmode/ansible/shared.yml
ff1465
index 637f90003b2..ca5a405f877 100644
ff1465
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_encrypt_offload_actionsendstreamdriverauthmode/ansible/shared.yml
ff1465
+++ b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_encrypt_offload_actionsendstreamdriverauthmode/ansible/shared.yml
ff1465
@@ -5,5 +5,6 @@
ff1465
 # disruption = low
ff1465
 
ff1465
 {{{ ansible_set_config_file_dir(msg, "/etc/rsyslog.conf", "/etc/rsyslog.d", "/etc/rsyslog.conf", 
ff1465
-                                "$ActionSendStreamDriverAuthMode", separator=' ', separator_regex='\s', 
ff1465
-                                value="x509/name", create='yes') }}}
ff1465
+                                "$ActionSendStreamDriverAuthMode", separator=' ', separator_regex='\s',
ff1465
+                                value="x509/name", create='yes')
ff1465
+}}}
ff1465
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_encrypt_offload_actionsendstreamdrivermode/ansible/shared.yml b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_encrypt_offload_actionsendstreamdrivermode/ansible/shared.yml
ff1465
index 5d11103fc0f..1f001f47e07 100644
ff1465
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_encrypt_offload_actionsendstreamdrivermode/ansible/shared.yml
ff1465
+++ b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_encrypt_offload_actionsendstreamdrivermode/ansible/shared.yml
ff1465
@@ -4,6 +4,7 @@
ff1465
 # complexity = low
ff1465
 # disruption = low
ff1465
 
ff1465
-{{{ ansible_set_config_file(file="/etc/rsyslog.d/encrypt.conf",
ff1465
-             parameter="$ActionSendStreamDriverMode", value="1", create=true, separator=" ", separator_regex=" ")
ff1465
+{{{ ansible_set_config_file_dir(msg, "/etc/rsyslog.conf", "/etc/rsyslog.d", "/etc/rsyslog.conf",
ff1465
+                                  parameter="$ActionSendStreamDriverMode", value="1", create=true, separator=" ",
ff1465
+                                  separator_regex=" ")
ff1465
 }}}
ff1465
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_encrypt_offload_defaultnetstreamdriver/ansible/shared.yml b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_encrypt_offload_defaultnetstreamdriver/ansible/shared.yml
ff1465
index 035ab152876..4016a08721e 100644
ff1465
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_encrypt_offload_defaultnetstreamdriver/ansible/shared.yml
ff1465
+++ b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_encrypt_offload_defaultnetstreamdriver/ansible/shared.yml
ff1465
@@ -4,6 +4,7 @@
ff1465
 # complexity = low
ff1465
 # disruption = low
ff1465
 
ff1465
-{{{ ansible_set_config_file(file="/etc/rsyslog.d/encrypt.conf",
ff1465
-                    parameter="$DefaultNetstreamDriver", value="gtls", create=true, separator=" ", separator_regex=" ")
ff1465
+{{{ ansible_set_config_file_dir(msg, "/etc/rsyslog.conf", "/etc/rsyslog.d", "/etc/rsyslog.conf",
ff1465
+                    parameter="$DefaultNetstreamDriver", value="gtls", create=true, separator=" "
ff1465
+                    , separator_regex=" ")
ff1465
 }}}
ff1465
diff --git a/shared/macros-ansible.jinja b/shared/macros-ansible.jinja
ff1465
index 563350743fe..0f8dba56dab 100644
ff1465
--- a/shared/macros-ansible.jinja
ff1465
+++ b/shared/macros-ansible.jinja
ff1465
@@ -25,14 +25,17 @@ value: "Setting={{ varname1 }}"
ff1465
 
ff1465
   Note that all string-like parameters are single quoted in the YAML.
ff1465
 #}}
ff1465
-{{%- macro ansible_lineinfile(msg='', path='', regex='', new_line='', create='no', state='present', with_items='', register='', when='', validate='', insert_after='', insert_before='', check_mode=False) -%}}
ff1465
+{{%- macro ansible_lineinfile(msg='', path='', regex='', new_line='', create='no', state='present', with_items='', register='', when='', validate='', insert_after='', insert_before='', check_mode=False, escape_regex=False) -%}}
ff1465
 - name: "{{{ msg or rule_title }}}"
ff1465
   lineinfile:
ff1465
     path: '{{{ path }}}'
ff1465
     create: {{{ create }}}
ff1465
-    {{%- if regex %}}
ff1465
+    {{%- if regex and not escape_regex %}}
ff1465
     regexp: '{{{ regex }}}'
ff1465
     {{%- endif %}}
ff1465
+    {{%- if regex and escape_regex %}}
ff1465
+    regexp: '{{ {{{ regex }}} | regex_escape }}'
ff1465
+    {{%- endif %}}
ff1465
     {{%- if state == 'present' %}}
ff1465
     line: '{{{ new_line }}}'
ff1465
     state: present
ff1465
@@ -121,7 +124,7 @@ value: "Setting={{ varname1 }}"
ff1465
   ini configuration files are best served with the ini Ansible module
ff1465
   instead of lineinfile-based solutions.
ff1465
 #}}
ff1465
-{{%- macro ansible_set_config_file(msg, file, parameter, separator=' ', separator_regex='\s+', value='', prefix_regex='^\s*', create='no', validate='', insert_after='', insert_before='') %}}
ff1465
+{{%- macro ansible_set_config_file(msg, file, parameter, separator=' ', separator_regex='\s+', value='', prefix_regex='^\s*', create='no', validate='', insert_after='', insert_before='', escape_regex=False) %}}
ff1465
 {{{ ansible_only_lineinfile(msg, file, prefix_regex + parameter + separator_regex, parameter + separator + value, create=create, block=True, validate=validate, insert_after=insert_after, insert_before=insert_before) }}}
ff1465
 {{%- endmacro %}}
ff1465
 
ff1465
@@ -143,12 +146,12 @@ value: "Setting={{ varname1 }}"
ff1465
 {{%- set new_line = parameter + separator + value -%}}
ff1465
 - name: '{{{ msg or rule_title }}}'
ff1465
   block:
ff1465
-    {{{ ansible_lineinfile("Check for duplicate values", config_file, regex=line_regex, create='no', state='absent', register='dupes', check_mode=True)|indent }}}
ff1465
-    {{{ ansible_lineinfile("Deduplicate values from " + config_file, config_file, regex=line_regex, create='no', state='absent', when='dupes.found is defined and dupes.found > 1')|indent }}}
ff1465
+    {{{ ansible_lineinfile("Check for duplicate values", config_file, regex=line_regex, create='no', state='absent', register='dupes', check_mode=True, escape_regex=True)|indent }}}
ff1465
+    {{{ ansible_lineinfile("Deduplicate values from " + config_file, config_file, regex=line_regex, create='no', state='absent', when='dupes.found is defined and dupes.found > 1', escape_regex=True)|indent }}}
ff1465
     {{{ ansible_stat("Check if " + config_dir + " exists", path=config_dir, register=dir_exists)|indent }}}
ff1465
     {{{ ansible_find("Check if the parameter " + parameter + " is present in " + config_dir, paths=config_dir, contains=line_regex, register=dir_parameter, when=find_when)|indent }}}
ff1465
-    {{{ ansible_lineinfile("Remove parameter from files in " + config_dir, path="{{ item.path }}", regex=line_regex, state="absent", with_items=lineinfile_items, when=lineinfile_when)|indent }}}
ff1465
-    {{{ ansible_lineinfile("Insert correct line to " + set_file, set_file, regex=line_regex, new_line=new_line, create=create, state='present', validate=validate, insert_after=insert_after, insert_before=insert_before)|indent }}}
ff1465
+    {{{ ansible_lineinfile("Remove parameter from files in " + config_dir, path="{{ item.path }}", regex=line_regex, state="absent", with_items=lineinfile_items, when=lineinfile_when, escape_regex=True)|indent }}}
ff1465
+    {{{ ansible_lineinfile("Insert correct line to " + set_file, set_file, regex=line_regex, new_line=new_line, create=create, state='present', validate=validate, insert_after=insert_after, insert_before=insert_before, escape_regex=True)|indent }}}
ff1465
 {{%- endmacro %}}
ff1465
 
ff1465
 {{#
ff1465
ff1465
From 5635bf94c9274511e3d63feb8d4082c4ec9144f3 Mon Sep 17 00:00:00 2001
ff1465
From: Matthew Burket <mburket@redhat.com>
ff1465
Date: Tue, 26 Oct 2021 13:01:27 -0500
ff1465
Subject: [PATCH 2/5] Fix a couple items from reviewers on ansible_lineinfile
ff1465
 escaping
ff1465
ff1465
---
ff1465
 .../ansible/shared.yml                                        | 4 ++--
ff1465
 shared/macros-ansible.jinja                                   | 3 +--
ff1465
 2 files changed, 3 insertions(+), 4 deletions(-)
ff1465
ff1465
diff --git a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_encrypt_offload_defaultnetstreamdriver/ansible/shared.yml b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_encrypt_offload_defaultnetstreamdriver/ansible/shared.yml
ff1465
index 4016a08721e..3cc18d4476e 100644
ff1465
--- a/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_encrypt_offload_defaultnetstreamdriver/ansible/shared.yml
ff1465
+++ b/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_encrypt_offload_defaultnetstreamdriver/ansible/shared.yml
ff1465
@@ -5,6 +5,6 @@
ff1465
 # disruption = low
ff1465
 
ff1465
 {{{ ansible_set_config_file_dir(msg, "/etc/rsyslog.conf", "/etc/rsyslog.d", "/etc/rsyslog.conf",
ff1465
-                    parameter="$DefaultNetstreamDriver", value="gtls", create=true, separator=" "
ff1465
-                    , separator_regex=" ")
ff1465
+                                parameter="$DefaultNetstreamDriver", value="gtls", create=true,
ff1465
+                                separator=" ", separator_regex=" ")
ff1465
 }}}
ff1465
diff --git a/shared/macros-ansible.jinja b/shared/macros-ansible.jinja
ff1465
index 0f8dba56dab..752d220bbfc 100644
ff1465
--- a/shared/macros-ansible.jinja
ff1465
+++ b/shared/macros-ansible.jinja
ff1465
@@ -32,8 +32,7 @@ value: "Setting={{ varname1 }}"
ff1465
     create: {{{ create }}}
ff1465
     {{%- if regex and not escape_regex %}}
ff1465
     regexp: '{{{ regex }}}'
ff1465
-    {{%- endif %}}
ff1465
-    {{%- if regex and escape_regex %}}
ff1465
+    {{%- elif regex and escape_regex %}}
ff1465
     regexp: '{{ {{{ regex }}} | regex_escape }}'
ff1465
     {{%- endif %}}
ff1465
     {{%- if state == 'present' %}}
ff1465
ff1465
From f6541126a4d19bfef8752028467659ab9d9f74ed Mon Sep 17 00:00:00 2001
ff1465
From: Matthew Burket <mburket@redhat.com>
ff1465
Date: Tue, 2 Nov 2021 08:32:18 -0500
ff1465
Subject: [PATCH 3/5] Fix escaping in ansible_lineinfile macro
ff1465
ff1465
---
ff1465
 shared/macros-ansible.jinja | 2 +-
ff1465
 1 file changed, 1 insertion(+), 1 deletion(-)
ff1465
ff1465
diff --git a/shared/macros-ansible.jinja b/shared/macros-ansible.jinja
ff1465
index 752d220bbfc..1e0ba6260bb 100644
ff1465
--- a/shared/macros-ansible.jinja
ff1465
+++ b/shared/macros-ansible.jinja
ff1465
@@ -33,7 +33,7 @@ value: "Setting={{ varname1 }}"
ff1465
     {{%- if regex and not escape_regex %}}
ff1465
     regexp: '{{{ regex }}}'
ff1465
     {{%- elif regex and escape_regex %}}
ff1465
-    regexp: '{{ {{{ regex }}} | regex_escape }}'
ff1465
+    regexp: {{{ regex }}} | regex_escape
ff1465
     {{%- endif %}}
ff1465
     {{%- if state == 'present' %}}
ff1465
     line: '{{{ new_line }}}'
ff1465
ff1465
From ef6d300a707dc272eaa9442ece135009287bfdf5 Mon Sep 17 00:00:00 2001
ff1465
From: Matthew Burket <mburket@redhat.com>
ff1465
Date: Wed, 3 Nov 2021 11:15:11 -0500
ff1465
Subject: [PATCH 4/5] Move regex_escape to ansible_set_config_file_dir
ff1465
ff1465
---
ff1465
 shared/macros-ansible.jinja | 16 +++++++---------
ff1465
 1 file changed, 7 insertions(+), 9 deletions(-)
ff1465
ff1465
diff --git a/shared/macros-ansible.jinja b/shared/macros-ansible.jinja
ff1465
index 1e0ba6260bb..8e7ce1a1206 100644
ff1465
--- a/shared/macros-ansible.jinja
ff1465
+++ b/shared/macros-ansible.jinja
ff1465
@@ -25,15 +25,13 @@ value: "Setting={{ varname1 }}"
ff1465
 
ff1465
   Note that all string-like parameters are single quoted in the YAML.
ff1465
 #}}
ff1465
-{{%- macro ansible_lineinfile(msg='', path='', regex='', new_line='', create='no', state='present', with_items='', register='', when='', validate='', insert_after='', insert_before='', check_mode=False, escape_regex=False) -%}}
ff1465
+{{%- macro ansible_lineinfile(msg='', path='', regex='', new_line='', create='no', state='present', with_items='', register='', when='', validate='', insert_after='', insert_before='', check_mode=False) -%}}
ff1465
 - name: "{{{ msg or rule_title }}}"
ff1465
   lineinfile:
ff1465
     path: '{{{ path }}}'
ff1465
     create: {{{ create }}}
ff1465
-    {{%- if regex and not escape_regex %}}
ff1465
+    {{%- if regex %}}
ff1465
     regexp: '{{{ regex }}}'
ff1465
-    {{%- elif regex and escape_regex %}}
ff1465
-    regexp: {{{ regex }}} | regex_escape
ff1465
     {{%- endif %}}
ff1465
     {{%- if state == 'present' %}}
ff1465
     line: '{{{ new_line }}}'
ff1465
@@ -138,19 +136,19 @@ value: "Setting={{ varname1 }}"
ff1465
 {{%- set var_dir = config_dir | replace("/", "_") | replace("-", "_") | replace(".", "_") -%}}
ff1465
 {{%- set dir_exists = var_dir + "_exists" -%}}
ff1465
 {{%- set dir_parameter = var_dir + "_has_parameter" -%}}
ff1465
-{{%- set line_regex = prefix_regex + parameter + separator_regex -%}}
ff1465
+{{%- set line_regex = prefix_regex + "{{\"" + parameter + "\"| regex_escape }}" + separator_regex -%}}
ff1465
 {{%- set find_when = dir_exists + ".stat.isdir is defined and " + dir_exists + ".stat.isdir" -%}}
ff1465
 {{%- set lineinfile_items = "{{ " + dir_parameter + ".files }}" -%}}
ff1465
 {{%- set lineinfile_when = dir_parameter + ".matched" -%}}
ff1465
 {{%- set new_line = parameter + separator + value -%}}
ff1465
 - name: '{{{ msg or rule_title }}}'
ff1465
   block:
ff1465
-    {{{ ansible_lineinfile("Check for duplicate values", config_file, regex=line_regex, create='no', state='absent', register='dupes', check_mode=True, escape_regex=True)|indent }}}
ff1465
-    {{{ ansible_lineinfile("Deduplicate values from " + config_file, config_file, regex=line_regex, create='no', state='absent', when='dupes.found is defined and dupes.found > 1', escape_regex=True)|indent }}}
ff1465
+    {{{ ansible_lineinfile("Check for duplicate values", config_file, regex=line_regex, create='no', state='absent', register='dupes', check_mode=True)|indent }}}
ff1465
+    {{{ ansible_lineinfile("Deduplicate values from " + config_file, config_file, regex=line_regex, create='no', state='absent', when='dupes.found is defined and dupes.found > 1')|indent }}}
ff1465
     {{{ ansible_stat("Check if " + config_dir + " exists", path=config_dir, register=dir_exists)|indent }}}
ff1465
     {{{ ansible_find("Check if the parameter " + parameter + " is present in " + config_dir, paths=config_dir, contains=line_regex, register=dir_parameter, when=find_when)|indent }}}
ff1465
-    {{{ ansible_lineinfile("Remove parameter from files in " + config_dir, path="{{ item.path }}", regex=line_regex, state="absent", with_items=lineinfile_items, when=lineinfile_when, escape_regex=True)|indent }}}
ff1465
-    {{{ ansible_lineinfile("Insert correct line to " + set_file, set_file, regex=line_regex, new_line=new_line, create=create, state='present', validate=validate, insert_after=insert_after, insert_before=insert_before, escape_regex=True)|indent }}}
ff1465
+    {{{ ansible_lineinfile("Remove parameter from files in " + config_dir, path="{{ item.path }}", regex=line_regex, state="absent", with_items=lineinfile_items, when=lineinfile_when)|indent }}}
ff1465
+    {{{ ansible_lineinfile("Insert correct line to " + set_file, set_file, regex=line_regex, new_line=new_line, create=create, state='present', validate=validate, insert_after=insert_after, insert_before=insert_before)|indent }}}
ff1465
 {{%- endmacro %}}
ff1465
 
ff1465
 {{#
ff1465
ff1465
From c29550ef26fc283ce5e72038fddf70aa716f4d1c Mon Sep 17 00:00:00 2001
ff1465
From: Matthew Burket <mburket@redhat.com>
ff1465
Date: Thu, 4 Nov 2021 08:53:42 -0500
ff1465
Subject: [PATCH 5/5] Fix ansible-lint lint issues
ff1465
ff1465
---
ff1465
 shared/macros-ansible.jinja | 2 +-
ff1465
 1 file changed, 1 insertion(+), 1 deletion(-)
ff1465
ff1465
diff --git a/shared/macros-ansible.jinja b/shared/macros-ansible.jinja
ff1465
index 8e7ce1a1206..76f05e76b88 100644
ff1465
--- a/shared/macros-ansible.jinja
ff1465
+++ b/shared/macros-ansible.jinja
ff1465
@@ -136,7 +136,7 @@ value: "Setting={{ varname1 }}"
ff1465
 {{%- set var_dir = config_dir | replace("/", "_") | replace("-", "_") | replace(".", "_") -%}}
ff1465
 {{%- set dir_exists = var_dir + "_exists" -%}}
ff1465
 {{%- set dir_parameter = var_dir + "_has_parameter" -%}}
ff1465
-{{%- set line_regex = prefix_regex + "{{\"" + parameter + "\"| regex_escape }}" + separator_regex -%}}
ff1465
+{{%- set line_regex = prefix_regex + "{{ \"" + parameter + "\"| regex_escape }}" + separator_regex -%}}
ff1465
 {{%- set find_when = dir_exists + ".stat.isdir is defined and " + dir_exists + ".stat.isdir" -%}}
ff1465
 {{%- set lineinfile_items = "{{ " + dir_parameter + ".files }}" -%}}
ff1465
 {{%- set lineinfile_when = dir_parameter + ".matched" -%}}