Re: rsync: add mac_admin capability

Bill shirley <[email protected]>
Newsgroups gmane.linux.redhat.fedora.selinux
Message-ID <[email protected]>
Thanks for your informative reply. I learned a little bit more about selinux.

I played around with 'runcon' but then got lots of AVCs just like you
noted.  At this point, it's not worth pursuing.

Bill

On 4/15/2019 4:38 PM, James Ralston wrote:
> On Mon, Apr 15, 2019 at 5:53 AM Bill shirley <[email protected]> wrote:
>
>> I'm running rsync (over ssh) to backup files from servers with a
>> later release Fedora (24, 27, and 28) to my server which is Fedora
>> 22.
> I know I'm not telling you anything you don't already know, but:
> security updates have ceased for Fedora 27 and earlier.  Fedora 22
> hasn't received security updates since summer 2017.
>
>> Since this is strictly for backups, I would like to allow rsync to
>> set these unknown contexts.  The AVC:
>>
>> type=AVC msg=audit(1555319931.042:30687): avc:  denied  { mac_admin } for  pid=7061 comm="rsync" capability=33  scontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tcontext=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 tclass=capability2 permissive=0
>>
>> Running:
>>
>> grep rsync /var/log/audit/audit.log | audit2allow -m my_rsync > my_rsync.te
>>
>> generates:
>> module my_rsync 1.0;
>> require {
>>          type unconfined_t;
>>          class capability2 mac_admin;
>> }
>> #============= unconfined_t ==============
>> allow unconfined_t self:capability2 mac_admin;
>>
>> This should work however I don't want to grant this to any program
>> except rsync.  I've looked the rsync booleans and tried "setsebool
>> -P rsync_client 1" but it doesn't fix it.  Searched the interwebs
>> too.
> The problem you're running into is that you are executing an rsync
> server as a regular user (via an ssh login), instead of starting an
> rsync server via, say, systemd.
>
> By default, pam_selinux.so (which sshd calls) transitions all logins
> (via any mechanism, not just sshd) to unconfined_t:
>
> $ semanage login -l
>
> Login Name           SELinux User         MLS/MCS Range        Service
>
> __default__          unconfined_u         s0-s0:c0.c1023       *
> root                 unconfined_u         s0-s0:c0.c1023       *
> system_u             system_u             s0-s0:c0.c1023       *
>
> By design, a process running in unconfined_t has very few state
> transitions that permit it to transition out of unconfined_t.
>
>> I don't want to grant this to any program except rsync
> That's not how SELinux works.  A particular program can trigger a
> domain transition, but you don't grant capabilities to a program.  You
> grant them to domains.
>
> Probably the simplest thing you could do here would be something like
> this:
>
> $ semanage login -a -s staff_u backup_account
>
> With this mapping place, logging in to the server as the
> backup_account user will result in the login session having the
> staff_u:staff_r:staff_t context, instead of the
> unconfined_u:unconfined_r:unconfined_t context.  That way, you can use
> staff_t in your custom SELinux policy module (above), instead of
> unconfined_t.
>
> But beware: domains that are not unconfined_t are locked down much
> more heavily than unconfined_t is.  You might find that while putting
> the account that is receiving the rsync-over-ssh into staff_t (or
> user_t) solves the immediate problem, it requires you to create all
> sorts of additional rules to permit the rsync server, running in
> staff_t or user_t, to do things that it could do without issue when it
> was running in the unconfined_t domain.
> _______________________________________________
> selinux mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
> Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives: https://lists.fedoraproject.org/archives/list/[email protected]
_______________________________________________
selinux mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/[email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.