RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1592970 - Ansible remediation setting SELinux policy fails
Summary: Ansible remediation setting SELinux policy fails
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: scap-security-guide
Version: 7.5
Hardware: All
OS: All
high
medium
Target Milestone: rc
: ---
Assignee: Watson Yuuma Sato
QA Contact: Marek Haicman
Mirek Jahoda
URL:
Whiteboard:
Depends On:
Blocks: 1601929
TreeView+ depends on / blocked
 
Reported: 2018-06-19 17:58 UTC by Shawn K. O'Shea
Modified: 2021-12-10 16:24 UTC (History)
7 users (show)

Fixed In Version: scap-security-guide-0.1.40-5.el7
Doc Type: Bug Fix
Doc Text:
Previously, the playbook for setting SELinux policy did not include the "state" parameter to the Ansible SELinux module. As a consequence, remediation playbooks generated by the oscap command failed to set the SELinux policy accordingly to the "var_selinux_policy_name" variable. With this update, the remediation playbook has been changed to use the "lineinfile" module, and it can now correctly set the SELinux policy as defined in "var_selinux_policy_name".
Clone Of:
: 1601929 (view as bug list)
Environment:
Last Closed: 2018-10-30 11:46:49 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2018:3308 0 None None None 2018-10-30 11:47:33 UTC

Description Shawn K. O'Shea 2018-06-19 17:58:49 UTC
Description of problem:
Remediation playbooks generated by oscap fail to set the SELinux policy held in the variable 'var_selinux_policy_name'. This is because in the RHEL version of the package, the ansible 'selinux' module is used, and if setting policy with this module, you *must* set state as well (i.e. enforcing, permissive or disabled) [1]. The generated ansible for setting policy does not include the 'state' parameter to the ansible selinux module, which causes ansible to error out.

Version-Release number of selected component (if applicable):
scap-security-guide-0.1.36-9.el7_5.noarch

How reproducible:
Always

Steps to Reproduce:
1. Generate Ansible for remediation, for example:
oscap xccdf generate fix --fix-type ansible --profile xccdf_org.ssgproject.content_profile_stig-rhel7-disa --output stig-rhel7-role.yml /usr/share/xml/scap/ssg/content/ssg-rhel7-ds.xml
2. Apply the offending control: ansible-playbook -b -c local -i localhost, --tags selinux_policytype stig-rhel7-role.yml


Actual results:
Ansible playbook fails with:
fatal: [localhost]: FAILED! => {"changed": false, "msg": "missing required arguments: state"}

Expected results:
Successfully set SELinux state

Additional info:
This was fixed upstream. Upstream it was changed to NOT use the ansible 'selinux' module for both the 'var_selinux_state' and 'var_selinux_policy_name'. 
 Upstream changed instead use the 'lineinfile' module and to modify the values in /etc/sysconfig/selinux. Upstream commit db2622612eea33095ee42a448a4e7c6cc4f30ac6 [2] in pull request 2451 [3] makes these changes. These fixes were released as part of SCAP Security Guide 0.1.37 [4].

[1] Ansible docs for selinux module - https://docs.ansible.com/ansible/2.4/selinux_module.html
[2] Upstream commit db26226 - https://github.com/OpenSCAP/scap-security-guide/commit/db2622612eea33095ee42a448a4e7c6cc4f30ac6
[3] Upstream PR2451 - https://github.com/OpenSCAP/scap-security-guide/pull/2451
[4] SCAP Security Guide v0.1.37 release notes - https://github.com/OpenSCAP/scap-security-guide/releases/tag/v0.1.37

Comment 2 Josip Vilicic 2018-06-24 23:37:46 UTC
Hello Engineering Team,

1) As of now, OpenSCAP remediation by generating Ansible Playbooks does not work correctly if it has this bug.

   The Red Hat customer in the case attached to this bug (who actually filed the bug) is asking if the fix for this bug, since it has already been fixed upstream, can be backported.

   Would a z-stream release be possible?


2) This is the same customer from:

   a) "Ansible remediation of default umask in login.defs sets incorrect value"
      https://bugzilla.redhat.com/show_bug.cgi?id=1592957

   b) "Ansible remediation of various dconf settings contains typo"
      https://bugzilla.redhat.com/show_bug.cgi?id=1592887

Take care,

Jo Vilicic
irc: jo -- jvilicic
TSE  --  IdM  --  919-754-4951

Comment 3 Matěj Týč 2018-06-27 13:16:14 UTC
Changing state as there indeed is a fix upstream:
https://github.com/OpenSCAP/scap-security-guide/pull/2451

Comment 8 Marek Haicman 2018-09-16 19:10:21 UTC
Verified version scap-security-guide-0.1.40-5.el7 contains required fix.

OLD (scap-security-guide-0.1.36-9.el7_5):
grep -C3 '{{ var_selinux_state }}' /usr/share/xml/scap/ssg/content/ssg-rhel7-ds.xml

- name: "Ensure SELinux State is Enforcing"
  selinux:
    state: "{{ var_selinux_state }}"
  tags:
    - selinux_state
    - high_severity
--

- name: "Ensure SELinux State is Enforcing"
  selinux:
    state: "{{ var_selinux_state }}"
  tags:
    - selinux_state
    - high_severity


NEW (scap-security-guide-0.1.40-5.el7):
grep -C3 '{{ var_selinux_state }}' /usr/share/xml/scap/ssg/content/ssg-rhel7-ds.xml
  lineinfile:
    path: /etc/sysconfig/selinux
    regexp: '^SELINUX='
    line: "SELINUX={{ var_selinux_state }}"
    create: yes
  tags:
    - selinux_state
--
  lineinfile:
    path: /etc/sysconfig/selinux
    regexp: '^SELINUX='
    line: "SELINUX={{ var_selinux_state }}"
    create: yes
  tags:
    - selinux_state

Comment 10 errata-xmlrpc 2018-10-30 11:46:49 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2018:3308


Note You need to log in before you can comment on or make changes to this bug.