[refpolicy] load_policy() with upstart on mint 9 fluxbox
Justin P. Mattock
justinmattock at gmail.com
Thu Oct 21 08:40:29 CDT 2010
On 10/21/2010 12:08 AM, Shaz wrote:
>
>
> On Thu, Oct 21, 2010 at 11:48 AM, Justin P. Mattock
> <justinmattock at gmail.com <mailto:justinmattock at gmail.com>> wrote:
> > On 10/20/2010 11:26 PM, Shaz wrote:
> >>
> >> On Thu, Oct 21, 2010 at 10:15 AM, Justin P. Mattock
> >> <justinmattock at gmail.com <mailto:justinmattock at gmail.com>> wrote:
> >>>
> >>> On 10/20/2010 07:44 PM, Serge E. Hallyn wrote:
> >>>>
> >>>> Quoting Justin P. Mattock (justinmattock at gmail.com
> <mailto:justinmattock at gmail.com>):
> >>>>>
> >>>>> o.k. finally connected the dots that I needed to create a initrd.img
> >>>>> in order for this to load(im a total newbie!!)
> >>>>>
> >>>>> Anyways the policy loads everything went in and am now in full
> >>>>> enforcement mode.. only real issue is with lxde
> >>>>> same bug here:
> >>>>> https://bugzilla.redhat.com/show_bug.cgi?id=552885
> >>>>>
> >>>>> seems lxde is in /usr/sbin reason probably for the wrong filelabel..
> >>>>
> >>>> Cool, so does following the steps outlined in that bug make it
> >>>> work for you?
> >>>>
> >>>
> >>> What I normally have is /boot/System.map-* and vmlinuz-* to load the
> >>> kernel.. Seems sysvinit knows how to take things there and
> load_policy()
> >>>
>
>
> >>> for upstart whatever it's doing(like what you said) needs to go through
> >>> initrd. Yesterday I though thats what I had done with:
> >>> fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image
> >>> kernel_headers
> >>>
> >>> but missed one last step:
> >>> mkinitramfs -k -o initrd.img-2.6.36-rc8-custom-00022-g2b666ca
> >>> then after doing this everything loaded as is..
> >>>
> >>> Note: guess this is whats being called to do all of this:
> >>> /usr/share/initramfs-tools/scripts/init-bottom/_load_selinux_policy
> >>>
> >>> As for the file labels in /var/run seems most of the files in there are
> >>> labeled with initrc_t (keep in mind I chose debian as the distro in
> >>> build.conf, so maybe this is why)..
> >>>
> >>> As for lxde, before using chcon I was getting a login context of
> >>> name:staff_r:netutils_t:s0 then after relabeling those files:
> >>>
> >>> (chcon to this context like the bug report had shown)
> >>> system_u:object_r:xdm_exec_t:s0 /usr/sbin/lxdm
> >>> system_u:object_r:xdm_exec_t:s0 /usr/sbin/lxdm-binary
> >>> system_u:object_r:xdm_var_run_t:s0 lxdm.pid
> >>>
> >>> I login with the proper context that I chose:
> >>> name:staff_r:staff_t:s0
> >>>
> >>> Right now I think everything is running o.k. on this operating system..
> >>> (nice,small, and functional..with a touch of SELinux on top...)
> >>
> >> Dear Justin,
> >>
> >> "initrd" helps to load selinux and label "init" so that transitions
> >> can take effect. Be it upstart or sysvinit!
> >>
> >> If this is not done then all your processes will be loaded with
> >> unconfined_t. Rest of the details you are considering should not
> >> matter and they might be confusing if you tried to load selinux with
> >> experimentation rather then proper bootstrap through initrd.
> >>
> >> Hope this helps.
> >>
> >
> > well my other machines do not use an initrd image file in /boot only
> > System.map and vmlinuz(I guess doing make, make install for the
> kernel is a
> > bit outdated these days)..
> >
> > Anyways sysvinit always loaded the policy just fine and had the processes
> > correct, as for upstart seems I needed to do the whole
> > make-kpkg,dpkg,mkinitramfs thing..(which is fine... but would rather
> keep it
> > more simpler).
>
> AFAIK without initrd your policy will not work properly as labeling is
> not handled and thus the whole security objective fails. If this is
> possible without an initrd then it would be init handling it by loading
> selinux and restarting itself.
pretty much what I use over here..(make bisecting easier since I dont
have to deal with the hundreds of vmlinuz tags, just one that gets
written over)
Now the question(I guess)is, is how/why is upstart not _realizing_ this
is a system without initrd lets go over here and get the system started?
(id imagine the code might have if then/else or something..)
Justin P. Mattock
More information about the refpolicy
mailing list