File: oval.template

package info (click to toggle)
scap-security-guide 0.1.76-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 110,644 kB
  • sloc: xml: 241,883; sh: 73,777; python: 32,527; makefile: 27
file content (64 lines) | stat: -rw-r--r-- 3,386 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
{{% if product == "ol8" or 'rhel' in product %}}
{{% set filepath_regex="^/etc/security/pwquality\.conf(\.d/[^/]+\.conf)?$" %}}
{{% else %}}
{{% set filepath_regex="^/etc/security/pwquality\.conf$" %}}
{{% endif %}}
<def-group>
  <definition class="compliance" id="{{{ _RULE_ID }}}" version="3">
    {{{ oval_metadata("The password " + VARIABLE + " should meet minimum requirements") }}}
    <criteria operator="AND" comment="conditions for {{{ VARIABLE }}} are satisfied">
      <extend_definition comment="pwquality.so exists in system-auth" definition_ref="accounts_password_pam_pwquality" />
      <criteria operator="OR">
        <criterion comment="pwquality.conf" test_ref="test_password_pam_pwquality_{{{ VARIABLE }}}" />
      </criteria>
      {{% if "ol" in product %}}
      <criterion comment="{{{ VARIABLE }}} is not overwritten in system-auth"
        test_ref="test_password_pam_pwquality_{{{ VARIABLE }}}_not_overwritten"/>
      {{% endif %}}
    </criteria>
  </definition>

  {{% if "ol" in product %}}
  <ind:textfilecontent54_test check="all" check_existence="none_exist"
    comment="check the configuration of /etc/pam.d/system-auth doens't override pwquality.conf"
    id="test_password_pam_pwquality_{{{ VARIABLE }}}_not_overwritten" version="1">
    <ind:object object_ref="obj_password_pam_pwquality_{{{ VARIABLE }}}_not_overwritten" />
  </ind:textfilecontent54_test>

  <ind:textfilecontent54_object id="obj_password_pam_pwquality_{{{ VARIABLE }}}_not_overwritten"
  version="1">
    <ind:filepath>/etc/pam.d/system-auth</ind:filepath>
    <ind:pattern
    operation="pattern match">^\s*password.*pam_pwquality\.so.*\b{{{ VARIABLE }}}\b</ind:pattern>
    <ind:instance datatype="int">1</ind:instance>
  </ind:textfilecontent54_object>
  {{% endif %}}

  <ind:textfilecontent54_test check="all" state_operator="AND"
    comment="check the configuration of /etc/security/pwquality.conf"
    id="test_password_pam_pwquality_{{{ VARIABLE }}}" version="3">
    <ind:object object_ref="obj_password_pam_pwquality_{{{ VARIABLE }}}" />
    <ind:state state_ref="state_password_pam_{{{ VARIABLE }}}" />
  {{%- if ZERO_COMPARISON_OPERATION %}}
    <ind:state state_ref="state_password_pam_{{{ VARIABLE }}}_zero_comparison" />
  {{%- endif %}}
  </ind:textfilecontent54_test>

  <ind:textfilecontent54_object id="obj_password_pam_pwquality_{{{ VARIABLE }}}" version="3">
    <ind:filepath operation="pattern match">{{{ filepath_regex }}}</ind:filepath>
    <ind:pattern operation="pattern match">^\s*{{{ VARIABLE }}}[\s]*=[\s]*(-?\d+)(?:[\s]|$)</ind:pattern>
    <ind:instance datatype="int" operation="greater than or equal">1</ind:instance>
  </ind:textfilecontent54_object>

  <ind:textfilecontent54_state id="state_password_pam_{{{ VARIABLE }}}" version="3">
    <ind:subexpression datatype="int" operation="{{{ OPERATION }}}" var_ref="var_password_pam_{{{ VARIABLE }}}" />
  </ind:textfilecontent54_state>

  {{%- if ZERO_COMPARISON_OPERATION %}}
  <ind:textfilecontent54_state id="state_password_pam_{{{ VARIABLE }}}_zero_comparison" version="1">
    <ind:subexpression datatype="int" operation="{{{ ZERO_COMPARISON_OPERATION }}}" >0</ind:subexpression>
  </ind:textfilecontent54_state>
  {{%- endif %}}

  <external_variable comment="External variable for pam_{{{ VARIABLE }}}" datatype="int" id="var_password_pam_{{{ VARIABLE }}}" version="3" />
</def-group>