----- Original Message ----- > From: "Shawn Wells" <[email protected]> > To: [email protected] > Sent: Friday, May 30, 2014 5:55:52 PM > Subject: Re: [PATCH] [RHEL/6] [RHEL/7] [shared] When checking for static IP > address configuration in network scripts > allow BOOTPROTO to match also "none" (since that's what > system-config-network / nm-connection-editor do when > creating static IP connection) > > > On 5/30/14, 9:51 AM, Jan Lieskovsky wrote: > > > > As noted in: > [1] https://github.com/cobbler/cobbler/issues/361 [2] > > https://access.redhat.com/site/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s1-networkscripts-interfaces.html > BOOTPROTO variable in /etc/sysconfig/network-scripts can have just one of > (none|bootp|dhcp) values. > > Initscripts knowns also only these three: > [3] https://git.fedorahosted.org/cgit/initscripts.git/tree/sysconfig.txt > meaning when 'bootp' or 'dhcp' options are used, the DHCP client is run on > the device. Any other > option is dealt with / considered to mean static configuration. > > When system-config-network / system-config-network-tui / nm-connection-editor > creates new connection > with static IP configuration, it uses BOOTPROTO=none in the particular > /etc/sysconfig/network-scripts/ifcfg-conn-name > script (can be verified by creating sample connection). > > Based on bug: > [4] https://bugzilla.redhat.com/show_bug.cgi?id=528068 and resulting patch: > [5] > > http://cgit.freedesktop.org/NetworkManager/NetworkManager/commit/?id=c31b3e455414a5a7bf57d9fed1442367e9e4c917 > NetworkManager (starting from NetworkManager-0.7.996-5.git20091021.fc12) > treats BOOTPROTO=static as an > alias for BOOTPROTO=none (doesn't complain when 'static' is used as BOOTPROTO > specification). > > But since RHEL-6 Deployment guide [2] and initscripts code [3] know / suggest > use of 'none', enhance > the sysconfig_networking_bootproto_ifcfg OVAL check to allow test success > also in case 'none' is used > as BOOTPROTO specification (since that actually is what is used, when new > static IP using connection > is created e.g. via system-config-network or nm-connection-editor). > > Besides that (support also for 'none' in BOOTPROTO specification), the patch > starts to recommend to use > 'none' on appropriate places (RHEL/6, RHEL/7 XCCDF rules description, stig > reference) & moves originally > RHEL-6 specific sysconfig_networking_bootproto_ifcfg OVAL check to be shared > one. > > The change has been tested on both of RHEL/6 & RHEL/7, rpm(s) build > correctly, the change seems to be > working as expected (on both products). > > Please review. > > Thank you && Regards, Jan. > -- > Jan iankko Lieskovsky / Red Hat Security Technologies Team > > 0001-RHEL-6-When-checking-for-static-IP-address-configura.patch > From 31ea21e1fa0cdf75f26dafc50c409cbcedb4ef16 Mon Sep 17 00:00:00 2001 > From: Jan Lieskovsky <[email protected]> Date: Fri, 30 May 2014 15:31:30 > +0200 > Subject: [PATCH] [RHEL/6] When checking for static IP address configuration, > check also for BOOTPROTO=none in network-scripts (since that's what > system-config-network or nm-connection-editor creates when > requesting static IP configuration for connection) [RHEL/7] Update > sysconfig_networking_bootproto_ifcfg rule to recommend BOOTPROTO=none > instead > of BOOTPROTO=static [shared] Move RHEL-6 > sysconfig_networking_bootproto_ifcfg specific check to be shared one > > Signed-off-by: Jan Lieskovsky <[email protected]> --- > .../sysconfig_networking_bootproto_ifcfg.xml | 35 > +--------------------- > RHEL/6/input/services/dhcp.xml | 4 +-- > .../sysconfig_networking_bootproto_ifcfg.xml | 1 + > RHEL/7/input/services/dhcp.xml | 4 +-- > .../oval/sysconfig_networking_bootproto_ifcfg.xml | 35 > ++++++++++++++++++++++ > .../disa-stig-rhel5-v1r0.6-xccdf-manual.xml | 2 +- > 6 files changed, 42 insertions(+), 39 deletions(-) > mode change 100644 => 120000 > RHEL/6/input/checks/sysconfig_networking_bootproto_ifcfg.xml > create mode 120000 > RHEL/7/input/checks/sysconfig_networking_bootproto_ifcfg.xml > create mode 100644 shared/oval/sysconfig_networking_bootproto_ifcfg.xml > > diff --git a/RHEL/6/input/checks/sysconfig_networking_bootproto_ifcfg.xml > b/RHEL/6/input/checks/sysconfig_networking_bootproto_ifcfg.xml > deleted file mode 100644 > index 6d2237e..0000000 > --- a/RHEL/6/input/checks/sysconfig_networking_bootproto_ifcfg.xml > +++ /dev/null > @@ -1,34 +0,0 @@ > -<def-group> > - <definition class="compliance" id="sysconfig_networking_bootproto_ifcfg" > - version="1"> > - <metadata> > - <title>Disable DHCP Client</title> > - <affected family="unix"> > - <platform>Red Hat Enterprise Linux 6</platform> > - </affected> > - <description>DHCP configuration should be static for all > - interfaces.</description> > - <reference source="MED" ref_id="20130813" ref_url="test_attestation" > /> > - </metadata> > - <criteria comment="Test for BOOTPROTO=static across all interfaces"> > - <criterion test_ref="test_sysconfig_networking_bootproto_ifcfg" /> > - </criteria> > - </definition> > - <ind:textfilecontent54_test check="all" check_existence="all_exist" > - comment="Tests the value of the ^[\s]*BOOTPROTO[\s]*=[\s]*([^#]*) > expression in the /etc/sysconfig/network-scripts/ifcfg-.* file" > - id="test_sysconfig_networking_bootproto_ifcfg" version="1"> > - <ind:object object_ref="obj_sysconfig_networking_bootproto_ifcfg" /> > - <ind:state state_ref="state_sysconfig_networking_bootproto_ifcfg" /> > - </ind:textfilecontent54_test> > - <ind:textfilecontent54_state > id="state_sysconfig_networking_bootproto_ifcfg" > - version="1"> > - <ind:subexpression operation="equals">static</ind:subexpression> > - </ind:textfilecontent54_state> > - <ind:textfilecontent54_object > id="obj_sysconfig_networking_bootproto_ifcfg" > - version="1"> > - <ind:path>/etc/sysconfig/network-scripts</ind:path> > - <ind:filename operation="pattern match">ifcfg-.*</ind:filename> > - <ind:pattern operation="pattern > match">^[\s]*BOOTPROTO[\s]*=[\s"]*([^#"\s]*)</ind:pattern> > - <ind:instance datatype="int">1</ind:instance> > - </ind:textfilecontent54_object> > -</def-group> > diff --git a/RHEL/6/input/checks/sysconfig_networking_bootproto_ifcfg.xml > b/RHEL/6/input/checks/sysconfig_networking_bootproto_ifcfg.xml > new file mode 120000 > index 0000000..a118ae3 > --- /dev/null > +++ b/RHEL/6/input/checks/sysconfig_networking_bootproto_ifcfg.xml > @@ -0,0 +1 @@ > +../../../../shared/oval/sysconfig_networking_bootproto_ifcfg.xml > \ No newline at end of file > diff --git a/RHEL/6/input/services/dhcp.xml b/RHEL/6/input/services/dhcp.xml > index 38d9770..4f64ed0 100644 > --- a/RHEL/6/input/services/dhcp.xml > +++ b/RHEL/6/input/services/dhcp.xml > @@ -192,7 +192,7 @@ For each interface on the system (e.g. eth0), edit > following changes: > <ul> > <li> Correct the BOOTPROTO line to read: > -<pre>BOOTPROTO=static</pre> > +<pre>BOOTPROTO=none</pre> > </li> > <li> Add or correct the following lines, substituting the appropriate > values based on your site's addressing scheme: > @@ -206,7 +206,7 @@ GATEWAY=192.168.1.1</pre> > To verify that DHCP is not being used, examine the following file for each > interface: > <pre># /etc/sysconfig/network-scripts/ifcfg-<i>interface</i></pre> > Look for the following: > -<pre>BOOTPROTO=static</pre> > +<pre>BOOTPROTO=none</pre> > and the following, substituting the appropriate values based on your site's > addressing scheme: > <pre>NETMASK=255.255.255.0 > IPADDR=192.168.1.2 > diff --git a/RHEL/7/input/checks/sysconfig_networking_bootproto_ifcfg.xml > b/RHEL/7/input/checks/sysconfig_networking_bootproto_ifcfg.xml > new file mode 120000 > index 0000000..a118ae3 > --- /dev/null > +++ b/RHEL/7/input/checks/sysconfig_networking_bootproto_ifcfg.xml > @@ -0,0 +1 @@ > +../../../../shared/oval/sysconfig_networking_bootproto_ifcfg.xml > \ No newline at end of file > diff --git a/RHEL/7/input/services/dhcp.xml b/RHEL/7/input/services/dhcp.xml > index 4c2bab7..997e550 100644 > --- a/RHEL/7/input/services/dhcp.xml > +++ b/RHEL/7/input/services/dhcp.xml > @@ -192,7 +192,7 @@ For each interface on the system (e.g. eth0), edit > following changes: > <ul> > <li> Correct the BOOTPROTO line to read: > -<pre>BOOTPROTO=static</pre> > +<pre>BOOTPROTO=none</pre> > </li> > <li> Add or correct the following lines, substituting the appropriate > values based on your site's addressing scheme: > @@ -206,7 +206,7 @@ GATEWAY=192.168.1.1</pre> > To verify that DHCP is not being used, examine the following file for each > interface: > <pre># /etc/sysconfig/network-scripts/ifcfg-<i>interface</i></pre> > Look for the following: > -<pre>BOOTPROTO=static</pre> > +<pre>BOOTPROTO=none</pre> > and the following, substituting the appropriate values based on your site's > addressing scheme: > <pre>NETMASK=255.255.255.0 > IPADDR=192.168.1.2 > diff --git a/shared/oval/sysconfig_networking_bootproto_ifcfg.xml > b/shared/oval/sysconfig_networking_bootproto_ifcfg.xml > new file mode 100644 > index 0000000..a597307 > --- /dev/null > +++ b/shared/oval/sysconfig_networking_bootproto_ifcfg.xml > @@ -0,0 +1,35 @@ > +<def-group> > + <definition class="compliance" id="sysconfig_networking_bootproto_ifcfg" > + version="2"> > + <metadata> > + <title>Disable DHCP Client</title> > + <affected family="unix"> > + <platform>Red Hat Enterprise Linux 6</platform> > + <platform>Red Hat Enterprise Linux 7</platform> > + </affected> > + <description>DHCP configuration should be static for all > + interfaces.</description> > + <reference source="JL" ref_id="20140530" ref_url="test_attestation" /> > + </metadata> > + <criteria comment="Test for BOOTPROTO=(static|none) across all > interfaces"> > + <criterion test_ref="test_sysconfig_networking_bootproto_ifcfg" /> > + </criteria> > + </definition> > + <ind:textfilecontent54_test check="all" check_existence="all_exist" > + comment="Tests the value of the ^[\s]*BOOTPROTO[\s]*=[\s]*([^#]*) > expression in the /etc/sysconfig/network-scripts/ifcfg-.* file" > + id="test_sysconfig_networking_bootproto_ifcfg" version="1"> > + <ind:object object_ref="obj_sysconfig_networking_bootproto_ifcfg" /> > + <ind:state state_ref="state_sysconfig_networking_bootproto_ifcfg" /> > + </ind:textfilecontent54_test> > + <ind:textfilecontent54_state > id="state_sysconfig_networking_bootproto_ifcfg" > + version="2"> > + <ind:subexpression operation="pattern > match">^(static|none)$</ind:subexpression> > + </ind:textfilecontent54_state> > + <ind:textfilecontent54_object > id="obj_sysconfig_networking_bootproto_ifcfg" > + version="1"> > + <ind:path>/etc/sysconfig/network-scripts</ind:path> > + <ind:filename operation="pattern match">ifcfg-.*</ind:filename> > + <ind:pattern operation="pattern > match">^[\s]*BOOTPROTO[\s]*=[\s"]*([^#"\s]*)</ind:pattern> > + <ind:instance datatype="int">1</ind:instance> > + </ind:textfilecontent54_object> > +</def-group> > diff --git a/shared/references/disa-stig-rhel5-v1r0.6-xccdf-manual.xml > b/shared/references/disa-stig-rhel5-v1r0.6-xccdf-manual.xml > index 4a0b8a4..8de9c0c 100644 > --- a/shared/references/disa-stig-rhel5-v1r0.6-xccdf-manual.xml > +++ b/shared/references/disa-stig-rhel5-v1r0.6-xccdf-manual.xml > @@ -17571,7 +17571,7 @@ xsi:schemaLocation=" > http://checklists.nist.gov/xccdf/1.1 http://nvd.nist.gov/sch > <dc:identifier>2154</dc:identifier> > </reference> > <ident system= "http://iase.disa.mil/cci" >CCI-000366</ident> > - <fixtext fixref="F-24173r1_fix">Edit the > "/etc/sysconfig/network-scripts/ifcfg-*" file(s) and change the "bootproto" > setting to "static".</fixtext> > + <fixtext fixref="F-24173r1_fix">Edit the > "/etc/sysconfig/network-scripts/ifcfg-*" file(s) and change the "bootproto" > setting to "none".</fixtext> > <fix id="F-24173r1_fix" /> > <check system="C-36811r1_chk"> > <check-content-ref name="M" > href="VMS_XCCDF_Benchmark_RHEL_5_STIG.xml" /> > -- > 1.8.3.1 > > Absolutely the right call for OVAL to reflect static|none regex, while XCCDF > updated for only none. Ack to those pieces. > > The disa-stig-rhel5-v1r0.6-xccdf-manual.xml file should remain unchanged > (it's a referencable copy of the actual RHEL5 STIG, not something SSG > generates/manipulates directly).
Interesting, good to know. Thanks for the review. Excluded disa-stig-rhel5-v1r0.6-xccdf-manual.xml file from the list of changes & pushed to master. Thank you && Regards, Jan. -- Jan iankko Lieskovsky / Red Hat Security Technologies Team > > _______________________________________________ > scap-security-guide mailing list > [email protected] > https://lists.fedorahosted.org/mailman/listinfo/scap-security-guide > _______________________________________________ scap-security-guide mailing list [email protected] https://lists.fedorahosted.org/mailman/listinfo/scap-security-guide
