Bug 617573

Summary: SELinux is preventing /usr/sbin/getsebool "read" access on booleans.
Product: [Fedora] Fedora Reporter: Adam Goode <adam>
Component: cobblerAssignee: Scott J Henson <shenson>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: 13CC: awood, dgoodwin, dwalsh, jeckersb, jlaska, jpazdziora, mgrepl, Per.t.Sjoholm, renich, shenson, vanmeeuwen+fedora
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard: setroubleshoot_trace_hash:1e344471508429db447d0bc7f5327115e60d0b0c9327e5a319f1caef22102a28
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 706857 (view as bug list) Environment:
Last Closed: 2011-06-29 09:06:14 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Bug Depends On:    
Bug Blocks: 706857    

Description Adam Goode 2010-07-23 09:12:29 EDT
Happened while running "cobbler check" which attempts to probe selinux in some ways to suggest setting booleans.


Summary:

SELinux is preventing /usr/sbin/getsebool "read" access on booleans.

Detailed Description:

SELinux denied access requested by getsebool. It is not expected that this
access is required by getsebool and this access may signal an intrusion attempt.
It is also possible that the specific version or configuration of the
application is causing it to require additional access.

Allowing Access:

You can generate a local policy module to allow this access - see FAQ
(http://docs.fedoraproject.org/selinux-faq-fc5/#id2961385) Please file a bug
report.

Additional Information:

Source Context                unconfined_u:system_r:cobblerd_t:s0
Target Context                system_u:object_r:security_t:s0
Target Objects                booleans [ dir ]
Source                        getsebool
Source Path                   /usr/sbin/getsebool
Port                          <Unknown>
Host                          (removed)
Source RPM Packages           libselinux-utils-2.0.90-5.fc13
Target RPM Packages           
Policy RPM                    selinux-policy-3.7.19-37.fc13
Selinux Enabled               True
Policy Type                   targeted
Enforcing Mode                Enforcing
Plugin Name                   catchall
Host Name                     (removed)
Platform                      Linux (removed)
                              2.6.33.6-147.fc13.x86_64 #1 SMP Tue Jul 6 22:32:17
                              UTC 2010 x86_64 x86_64
Alert Count                   1
First Seen                    Fri 23 Jul 2010 09:11:08 AM EDT
Last Seen                     Fri 23 Jul 2010 09:11:08 AM EDT
Local ID                      d5bd6fd8-fd6a-4fa3-86cf-6a4bd3ef1678
Line Numbers                  

Raw Audit Messages            

node=(removed) type=AVC msg=audit(1279890668.345:29611): avc:  denied  { read } for  pid=12827 comm="getsebool" name="booleans" dev=selinuxfs ino=19 scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=system_u:object_r:security_t:s0 tclass=dir

node=(removed) type=SYSCALL msg=audit(1279890668.345:29611): arch=c000003e syscall=2 success=no exit=-13 a0=7fffaa753650 a1=90800 a2=367b407f00 a3=fffffff6 items=0 ppid=5950 pid=12827 auid=500 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=12 comm="getsebool" exe="/usr/sbin/getsebool" subj=unconfined_u:system_r:cobblerd_t:s0 key=(null)



Hash String generated from  catchall,getsebool,cobblerd_t,security_t,dir,read
audit2allow suggests:

#============= cobblerd_t ==============
allow cobblerd_t security_t:dir read;
Comment 1 Daniel Walsh 2010-07-23 09:48:03 EDT
cobbler should not be hard coding SELinux checks into itself.  Others might write different policy decisions and cobbler can run fine with different labelling.

We need to fix the labeling in the selinux policy package but do not check with the tool.

If you want to check the state of booleans, (Not a great idea) you can use the selinux python bindings.

   import selinux
   def check_selinux(self,status):
       """
       Suggests various SELinux rules changes to run Cobbler happily with
       SELinux in enforcing mode.  FIXME: this method could use some
       refactoring in the future.
       """
       enabled = (selinux.is_selinux_enabeled() == 0)
       if enabled:
          if selinux.security_get_boolean_active("httpd_can_network_connect") != 1:
             status.append(_("Must enable a selinux boolean to enable vital web services components, run: setsebool -P httpd_can_network_connect true"))
          if selinux.security_get_boolean_active("rsync_disable_trans") != 1:
             status.append(_("Must enable the cobbler import and replicate commands, run: setsebool -P rsync_disable_trans=1"))

As an example of why this is bad.  rsync_disable_trans does not exist in F13 or RHEL6.
Comment 2 Daniel Walsh 2010-07-23 09:48:30 EDT
*** Bug 617574 has been marked as a duplicate of this bug. ***
Comment 3 Daniel Walsh 2010-11-18 16:38:28 EST
This bug is present in F14, can we get some progress on it.
Comment 4 Fedora Admin XMLRPC Client 2011-01-03 09:34:19 EST
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.
Comment 5 Šimon Lukašík 2011-05-23 05:02:22 EDT
*** Bug 668536 has been marked as a duplicate of this bug. ***
Comment 6 Jan Pazdziora 2011-05-25 04:26:32 EDT
With permissive, on RHEL 6.1, many more denials are revealed:

type=AVC msg=audit(1306311352.911:513790): avc:  denied  { read } for  pid=25462 comm="getsebool" name="booleans" dev=selinuxfs ino=21 scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=system_u:object_r:security_t:s0 tclass=dir
type=AVC msg=audit(1306311352.999:513791): avc:  denied  { create } for  pid=25464 comm="semanage" scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=unconfined_u:system_r:cobblerd_t:s0 tclass=netlink_audit_socket
type=AVC msg=audit(1306311355.164:513792): avc:  denied  { read search } for  pid=25464 comm="semanage" name="active" dev=dm-0 ino=1050988 scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=unconfined_u:object_r:semanage_store_t:s0 tclass=dir
type=AVC msg=audit(1306311355.164:513793): avc:  denied  { read } for  pid=25464 comm="semanage" name="semanage.read.LOCK" dev=dm-0 ino=787482 scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=system_u:object_r:semanage_read_lock_t:s0 tclass=file
type=AVC msg=audit(1306311355.165:513794): avc:  denied  { write } for  pid=25464 comm="semanage" name="modules" dev=dm-0 ino=1050995 scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=unconfined_u:object_r:semanage_store_t:s0 tclass=dir
type=AVC msg=audit(1306311355.165:513795): avc:  denied  { read } for  pid=25464 comm="semanage" name="policy.kern" dev=dm-0 ino=1051241 scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=unconfined_u:object_r:semanage_store_t:s0 tclass=file
type=AVC msg=audit(1306311355.165:513795): avc:  denied  { open } for  pid=25464 comm="semanage" name="policy.kern" dev=dm-0 ino=1051241 scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=unconfined_u:object_r:semanage_store_t:s0 tclass=file
type=AVC msg=audit(1306311355.165:513796): avc:  denied  { getattr } for  pid=25464 comm="semanage" path="/etc/selinux/targeted/modules/active/policy.kern" dev=dm-0 ino=1051241 scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=unconfined_u:object_r:semanage_store_t:s0 tclass=file
type=AVC msg=audit(1306311355.720:513797): avc:  denied  { search } for  pid=25464 comm="semanage" name="contexts" dev=dm-0 ino=787460 scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=system_u:object_r:default_context_t:s0 tclass=dir
type=AVC msg=audit(1306311355.720:513797): avc:  denied  { search } for  pid=25464 comm="semanage" name="files" dev=dm-0 ino=787466 scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=system_u:object_r:file_context_t:s0 tclass=dir
type=AVC msg=audit(1306311355.721:513798): avc:  denied  { open } for  pid=25464 comm="semanage" name="semanage.read.LOCK" dev=dm-0 ino=787482 scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=system_u:object_r:semanage_read_lock_t:s0 tclass=file
type=AVC msg=audit(1306311355.721:513799): avc:  denied  { lock } for  pid=25464 comm="semanage" path="/etc/selinux/targeted/modules/semanage.read.LOCK" dev=dm-0 ino=787482 scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=system_u:object_r:semanage_read_lock_t:s0 tclass=file
type=AVC msg=audit(1306311359.167:513800): avc:  denied  { read } for  pid=25496 comm="cat" name="ip_tables_names" dev=proc ino=4026532188 scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=system_u:object_r:proc_net_t:s0 tclass=file
type=AVC msg=audit(1306311359.167:513800): avc:  denied  { open } for  pid=25496 comm="cat" name="ip_tables_names" dev=proc ino=4026532188 scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=system_u:object_r:proc_net_t:s0 tclass=file
type=AVC msg=audit(1306311359.168:513801): avc:  denied  { getattr } for  pid=25496 comm="cat" path="/proc/25496/net/ip_tables_names" dev=proc ino=4026532188 scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=system_u:object_r:proc_net_t:s0 tclass=file
type=AVC msg=audit(1306311359.170:513802): avc:  denied  { search } for  pid=25487 comm="iptables" name="lock" dev=dm-0 ino=1704685 scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=system_u:object_r:var_lock_t:s0 tclass=dir
type=AVC msg=audit(1306311359.173:513803): avc:  denied  { create } for  pid=25497 comm="iptables" scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=unconfined_u:system_r:cobblerd_t:s0 tclass=rawip_socket
type=AVC msg=audit(1306311359.173:513803): avc:  denied  { net_raw } for  pid=25497 comm="iptables" capability=13  scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=unconfined_u:system_r:cobblerd_t:s0 tclass=capability
type=AVC msg=audit(1306311359.174:513804): avc:  denied  { getopt } for  pid=25497 comm="iptables" lport=255 scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=unconfined_u:system_r:cobblerd_t:s0 tclass=rawip_socket
type=AVC msg=audit(1306311359.174:513804): avc:  denied  { net_admin } for  pid=25497 comm="iptables" capability=12  scontext=unconfined_u:system_r:cobblerd_t:s0 tcontext=unconfined_u:system_r:cobblerd_t:s0 tclass=capability

I guess we need some better way to do the cobbler check now that the daemon runs confined.
Comment 7 Bug Zapper 2011-06-01 09:09:07 EDT
This message is a reminder that Fedora 13 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 13.  It is Fedora's policy to close all
bug reports from releases that are no longer maintained.  At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '13'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 13's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that 
we may not be able to fix it before Fedora 13 is end of life.  If you 
would still like to see this bug fixed and are able to reproduce it 
against a later version of Fedora please change the 'version' of this 
bug to the applicable version.  If you are unable to change the version, 
please add a comment here and someone will do it for you.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events.  Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

The process we are following is described here: 
http://fedoraproject.org/wiki/BugZappers/HouseKeeping
Comment 8 Bug Zapper 2011-06-29 09:06:14 EDT
Fedora 13 changed to end-of-life (EOL) status on 2011-06-25. Fedora 13 is 
no longer maintained, which means that it will not receive any further 
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of 
Fedora please feel free to reopen this bug against that version.

Thank you for reporting this bug and we are sorry it could not be fixed.