RE: Accurately setting Security Context of a user when ssh-ing in

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

 



On Wed, 2008-02-13 at 15:23 -0500, Stephen Smalley wrote:
> On Wed, 2008-02-13 at 15:02 -0500, Hasan Rezaul-CHR010 wrote:
> > Hi Stephen,
> > 
> > As part of my software_upgrade procedure, after populating the new
> > policies and selinuxfs on the  /inactive side, I did  "touch
> > /inactive/.autorelabel"
> > 
> > Then reboot my Linux Card. So now when the Card was booting up from the
> > new side...
> > 
> > kernel detected new policies, 
> > loaded new policies, 
> > kernel also detected the .autorelabel file
> 
> kernel doesn't do that - it is handled by /etc/rc.sysinit (at least in
> Fedora).
> 
> > So it invoked automatic "Re-Label" of the filesystem
> > Kernel then FORCED another Automatic REBOOT
> > And then the Card booted up all the way.
> > 
> > Now when I do  "ps -eZ | grep sshd",  I get  
> >  
> > root@hapWibbSc2:/root> ps -eZ | grep sshd
> > system_u:system_r:init_t:s0      3971 ?        00:00:00 sshd
> 
> Ok, normally, /sbin/init runs in init_t, then it transitions to initrc_t
> upon executing the /etc/rc.d/ and /etc/init.d scripts, and then initrc_t
> transitions to sshd_t upon executing /usr/sbin/sshd.
> 
> So now your problem is that you aren't transitioning to initrc_t.
> What's the label on /etc/rc.d and /etc/init.d, i.e. ls
> -Z /etc/rc.d /etc/init.d?
> 
> If init directly invokes sshd in your setup, then you need a type
> transition rule added for it since that isn't the usual case.
> 
> > So this way, we've made sure that the filesystem was labeled correctly,
> > before the init processes were started!
> > You mentioned that ideally, this is the sequence we want, correct ???
> 
> Yes.  You could also label the /inactive tree _before_ booting from it
> if the file types haven't changed from the old policy, ala:
> # setfiles -r /inactive /inactive/etc/selinux/$SELINUXTYPE/contexts/file_contexts /inactive
>  
> The -r option tells setfiles to use an alternate root path, for labeling a separate
> tree like this.

Just to follow up for the list - Hasan tried the above approach of using
setfiles -r to label the /inactive tree before rebooting, and that
solved his problem.

Also, just to note for others:  the above presumes that the new
file_contexts configuration doesn't include any new file types not
defined by the running policy.  To support a change where new file types
are introduced, you'd have to first load the new policy before running
setfiles, ala:
#	chroot /inactive load_policy
#	setfiles -r /inactive /inactive/etc/selinux/$SELINUXTYPE/contexts/file_contexts /inactive

And that will only work if the policies are reasonably compatible with one another.
For a major change in policy (e.g. targeted -> strict, non-mls -> mls), you'd likely
need to go for the full reboot + relabel sequence instead.

> 
> > *BUT*, how even after re-labeling the filesystem, and starting sshd, the
> > context became =  system_u:system_r:init_t  ??
> 
> Apparently it isn't transitioning out of init_t into initrc_t before
> reaching sshd.
> 
> > Now when I ssh in as "Admin", or "Reza"  I still get the wrong context !
> > :-(
> > 
> > 
> > Things actually seem to work properly when the sshd process is running
> > in context =   root:system_r:sshd_t:s0
> > 
> > In my normal setup, I DON'T create an  /.autorelabel file, and I do the
> > re-labeling manually via a script using restorecon. The problem with
> > that approach is that, init processes like 'sshd' already get started in
> > the wrong context  BEFORE my script gets a chance to run.
> > 
> > But if I restart sshd from the console, my ssh headaches get resolved.
> > So how can I restart ssh in the correct context  (system_r:sshd_t)  via
> > a script? You mentioned something about the "runcon" command...  Can I
> > use 'runcon' in my script to restart sshd and force sshd to run it in
> > the correct context ??
> > 
> > You're right that other init processes may be running in the wrong
> > context/domain as well, but they're not bothering me as much. But I need
> > to at least get around this ssh problem...  Any suggestions ?... Thanks,
> 
> You can use runcon (if permitted by policy), but I think we can fix this
> w/o doing that.
> 
-- 
Stephen Smalley
National Security Agency


--
This message was distributed to subscribers of the selinux mailing list.
If you no longer wish to subscribe, send mail to majordomo@xxxxxxxxxxxxx with
the words "unsubscribe selinux" without quotes as the message.

[Index of Archives]     [Selinux Refpolicy]     [Linux SGX]     [Fedora Users]     [Fedora Desktop]     [Yosemite Photos]     [Yosemite Camping]     [Yosemite Campsites]     [KDE Users]     [Gnome Users]

  Powered by Linux