-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 03/11/2011 12:48 PM, Dominick Grift wrote:
On 03/11/2011 06:37 PM, Dominick Grift wrote:
On 03/11/2011 06:33 PM, Dominick Grift wrote:
On 03/11/2011 06:30 PM, Maria Iano wrote:
On Mar 11, 2011, at 11:52 AM, Daniel J Walsh wrote:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
On 03/11/2011 11:48 AM, Dominick Grift wrote:
On 03/11/2011 05:42 PM, Daniel J Walsh wrote: > On 03/11/2011 10:57 AM, Maria Iano wrote: >> I'm getting a denial that audit2why says is due to constraints. >> Sesearch does show that the action has an allow rule.
>> Here are the audit messages:
>> host=eng-vocngcn03.eng.gci type=AVC >> msg=audit(1299844473.770:740848): >> avc: denied { sigkill } for pid=22927 comm="kill" >> scontext=system_u:system_r:rgmanager_t:s0 >> tcontext=system_u:system_r:unconfined_t:s0-s0:c0.c1023 >> tclass=process
>> host=eng-vocngcn03.eng.gci type=SYSCALL >> msg=audit(1299844473.770:740848): arch=c000003e syscall=62 >> success=yes >> exit=0 a0=19ba a1=9 a2=9 a3=0 items=0 ppid=20173 pid=22927 >> auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 >> fsgid=0 tty=(none) ses=4294967295 comm="kill" exe="/bin/kill" >> subj=system_u:system_r:rgmanager_t:s0 key=(null)
> You have rgmanager sending a kill signal to a process running as > unconfined_t
There is no proof that its rgmanager doing that imho. Since rgmanager_t is an unconfined_domain it could be any generic application started by a process running in the rgmanager_t domain (eventually started by rgmanager)
> I would bet this process is running with the wrong domain. I don't > think you want rgmanager_t sending kill signals to user processes.
> What process was it trying to kill? >> Here is the result of running sesearch on that same server:
>> [root@eng-vocngcn03]# sesearch --allow -s rgmanager_t -t >> unconfined_t - >> c process -p sigkill >> Found 1 av rules: >> allow rgmanager_t unconfined_t : process { sigchld sigkill };
>> Here is what audit2why says:
>> [root@eng-vocngcn03]# echo 'host=eng-vocngcn03.eng.gci type=AVC >> msg=audit(1299844473.770:740848): avc: denied { sigkill } for >> pid=22927 comm="kill" scontext=system_u:system_r:rgmanager_t:s0 >> tcontext=system_u:system_r:unconfined_t:s0-s0:c0.c1023 >> tclass=process' >> | audit2why >> host=eng-vocngcn03.eng.gci type=AVC >> msg=audit(1299844473.770:740848): >> avc: denied { sigkill } for pid=22927 comm="kill" >> scontext=system_u:system_r:rgmanager_t:s0 >> tcontext=system_u:system_r:unconfined_t:s0-s0:c0.c1023 >> tclass=process >> Was caused by: >> Constraint violation. >> Check policy/constraints. >> Typically, you just need to add a type attribute to >> the domain to satisfy the constraint.
>> This is a RHEL 5.5 server and it doesn't have the policy source >> and I >> don't see an rpm available with that. I can't find a constraints >> file, >> and I assume that's because it doesn't have the source. I'm >> trying to >> work out how to add the necessary type attribute to the domain. I >> do >> have a custom policy on the system. It's very long so I'll >> include the >> relevant pieces:
>> require { >> type rgmanager_t; >> type unconfined_t; >> class process { sigkill signal }; >> ..<snip>... >> }
>> allow rgmanager_t unconfined_t:process sigkill; >> ..<snip>...
>> Is there something I can add to my policy to resolve the >> constraints >> issue?
>> Thanks, >> Maria >> -- >> selinux mailing list >> selinux@lists.fedoraproject.org >> https://admin.fedoraproject.org/mailman/listinfo/selinux
Right although unconifned_t:s0-s0:c0.c1023 is almost assured a logged in user. It could have been a shell secript started via a remove ssh call
If an init script had started an unconfined_exec_t executable it would probably run as s0.
To solve the constraint you would need to add
`mcs_killall(rgmanager_t)
Where do I add that line? I tried adding it to my te file but got an error.
[root@eng-vocdeviodb01 ~]# /usr/bin/checkmodule -M -m -o /root/ ngiodb.mod /root/ngiodb.te /usr/bin/checkmodule: loading policy configuration from /root/ngiodb.te (unknown source)::ERROR 'syntax error' at token 'mcs_killall' on line 111: allow rgmanager_t unconfined_t:process sigkill; mcs_killall(rgmanager_t); /usr/bin/checkmodule: error(s) encountered while parsing configuration
mcs_killall(rgmanager_t) (without the `)
But try my solution first because this solution does not deal with the other sigchld issue.
actually now that i come to think of it this mcs_killall() may be your best solution after all.
I could not confirm that rgmanager_t:s0 needs to sigchld unconfined_t:s0-s0:c0.c1023 process. that was just a guess...
Still i would also try my solution in case it does need to send a child died signal to unconfined_t:s0-s0:c0.1023
Looks like dwalsh was right (mcs_killall(rgmanager_t) is the best solution.
rgmanager_t probably wanted to send sigchld to self (rgmanager_t) probably was the script it was running.
use mcs_killall(rgmanager_t) and ignore my solution of running rgmanager on s0 - mcs_systemhigh, it is too permissive.
-- selinux mailing list selinux@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/selinux
- -- selinux mailing list selinux@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/selinux
The lack of :s0 indicates they are running on a RHEL5 box