Re: help adding a type attribute to a domain

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



-----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@xxxxxxxxxxxxxxxxxxxxxxx
>>>>>>>> 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@xxxxxxxxxxxxxxxxxxxxxxx
>>>> https://admin.fedoraproject.org/mailman/listinfo/selinux
> 
- --
selinux mailing list
selinux@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/selinux

The lack of :s0 indicates they are running on a RHEL5 box
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/

iEYEARECAAYFAk16hc8ACgkQrlYvE4MpobM6GwCfa05qTI/S+Uh6BlKhTrIDvWcc
MHAAoLrRPmV71F7ByBe6ZtE7PVB6Myag
=AD0c
-----END PGP SIGNATURE-----
--
selinux mailing list
selinux@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/selinux


[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux