All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Palmiotto <mpalmiotto@tresys.com>
To: John Chludzinski <john.chludzinski@vivaldi.net>
Cc: clip@oss1.tresys.com, Selinux <selinux@tycho.nsa.gov>
Subject: Re: Trying to update sysadm module in CLIP
Date: Mon, 23 Mar 2015 14:12:08 -0400	[thread overview]
Message-ID: <20150323141208.1915043c@palms-work> (raw)
In-Reply-To: <dfd9a48922233f268fac642673f44056@vivaldi.net>

Linking the CLIP mailing list back in.
Responses in-line below.

On Mon, 23 Mar 2015 18:36:44 +0100
John Chludzinski <john.chludzinski@vivaldi.net> wrote:

> 1st, I don't see an MCS build option in 
> packages/clip-selinux-policy/Makefile. How would I build this?
> 
> 2nd, when last I tried to load/install a non-MLS module (e.g., 
> sysadm.pp) into CLIP, it refused saying "trying to load non-MLS
> module into MLS base".

Take a look at the "TYPE" build flag. It is referenced in
packages/clip-selinux-policy/Makefile, but I'm not entirely sure that
you need to do anything with this.

The installCmds macro is used to build both mls and mcs policies. If
you look at packages/clip-selinux-policy/clip-selinux-policy.spec, the
mcs policy goes by the name clip-selinux-policy-clip, as referenced by
Tom Hurd earlier in the chain.

I would recommend keeping sysadm = base in your modules.conf and
installing the mcs policy clip-selinux-policy-clip-6.2.0-1.noarch.rpm.

--Mike


> 
> 
> ---John
> 
> 
> On 2015-03-23 17:01, Brandon Whalen wrote:
> > On Mon, Mar 23, 2015 at 11:16 AM, John Chludzinski
> > <john.chludzinski@vivaldi.net> wrote:
> >> I took the liberty of examining the contents of
> >> clip-selinux-policy-6.2.0-1.noarch.rpm:
> >> 
> >> $ rpm -qpl clip-selinux-policy-6.2.0-1.noarch.rpm
> >> 
> >> $ rpm2cpio clip-selinux-policy-6.2.0-1.noarch.rpm | cpio -idmv
> >> 
> >> and found the RPM contains nothing but *.if files for the modules
> >> + gzipped
> >> man pages + a Makefile.
> >> 
> >> It contains NO *.pp files nor does it include any *.te and *.fc to 
> >> build
> >> *.pp files from.
> >> 
> >> So installing clip-selinux-policy-6.2.0-1.noarch.rpm is for what?
> > 
> > It's basically an RPM that installs header files and man pages. The
> > .if file declares interfaces to other modules, so its very much like
> > header information for SELinux policy. The one with the .pp files
> > should be named clip-selinux-policy-6.2.0-1-mls.noarch.rpm. If you
> > were building mcs it would
> > clip-selinux-policy-6.2.0-1-mcs.noarch.rpm.
> > 
> >> 
> >> ---John
> >> 
> >> On 2015-03-20 23:07, Spencer Shimko wrote:
> >>> 
> >>> On Fri, Mar 20, 2015 at 5:43 PM, John Chludzinski
> >>> <john.chludzinski@vivaldi.net> wrote:
> >>>> 
> >>>> 1) I noticed
> >>>> packages/clip-selinux-policy/clip-selinux-policy/policy/modules.conf
> >>>> defines
> >>>> the the modules that are built into a base.pp:
> >>>> 
> >>>> packages/clip-selinux-policy/clip-selinux-policy/ > make base 
> >>>> TYPE="mls"
> >>>> MLS_SENS=1
> >>>> 
> >>>> which includes sysadm. Is this something of any interest?
> >>> 
> >>> 
> >>> As long as modules.conf declares something as base, it will be in
> >>> base.  This is interesting because you have made made me think
> >>> about a
> >>> circumstance that will break something in my tree pending merge
> >>> into our QSI tree (my #next branch in sshimko on github).
> >>> Neither here nor
> >>> there, yes, it will be in base if it is defined as base in
> >>> modules.conf.
> >>>> 
> >>>> 
> >>>> 2) Reading the output from:
> >>>> 
> >>>> packages/clip-selinux-policy/ > make rpm
> >>>> 
> >>>> I noticed it contains: "Compiling clip base module", which
> >>>> compiles all
> >>>> the
> >>>> *.te files.
> >>> 
> >>> 
> >>> Only the .te files corresponding to those set to "base" in
> >>> modules.conf.  Those listed as "module" will be built at a later
> >>> step and will not be present in base.pp.
> >>>> 
> >>>> 
> >>>> which, of course, includes sysadm.
> >>>> 
> >>>> The files created are: clip-selinux-policy-6.2.0-1.noarch.rpm,
> >>>> clip-selinux-policy-6.2.0-1.src.rpm, 
> >>>> clip-selinux-policy-6.2.0.tar.gz.
> >>>> 
> >>>> Should install clip-selinux-policy-6.2.0-1.noarch.rpm?
> >>> 
> >>> 
> >>> Yes the tarball is a side-effect of how things are built.  The
> >>> RPM is the one you want.  But there should be several files
> >>> ending in .rpm. Is that not the case?
> >>>> 
> >>>> 
> >>>> 3) If I'm making small modifications to one of the canonical
> >>>> CLIP modules
> >>>> (system, role, etc.) is there something less that replacing the 
> >>>> policy
> >>>> tree?
> >>>> That's why I build the sysadm.pp.
> >>> 
> >>> 
> >>> Honestly the easiest way is to just roll the updated RPMs and
> >>> install them on your system/.  Thus, you will get an updated
> >>> sysadm policy as well.
> >>> 
> >>> Are you just trying to build a policy for a single,
> >>> previously-deployed system?  If so, there are other ways.  But if
> >>> you're trying to do reproducible builds for inclusion in a bigger
> >>> environment using RPMs for updating policies is reommended.
> >>> 
> >>> 
> >>>> 
> >>>> 4) If I'm creating policies unique to this project, should I
> >>>> create a
> >>>> directory under policy/modules/<project> and run: make conf? Use
> >>>> LOCAL_ROOT
> >>>> to point to a policy source tree hanging off the project root?
> >>>> Just trying
> >>>> to come up with some process/strategy that's flexible and 
> >>>> defensible. Of
> >>>> course LOCAL_ROOT is defined in the Makefile in
> >>>> packages/clip-selinux-policy/clip-selinux-policy and I'd be
> >>>> building *.pp
> >>>> files? Maybe this is OK for new policy code?
> >>>> 
> >>> 
> >>> Gotcha.  So yes you're taking the right approach by introducing a
> >>> new policy/modules/<project> directory and adding a metadata.xml
> >>> file in there to describe that project.  Then run make conf to
> >>> have that project added to the correct configuration files.
> >>> 
> >>> Aside from make conf, I wouldn't use any other make commands in
> >>> the policy directory as it will lead to problems.  LOCAL_ROOT is
> >>> a decent option if you're trying to build out of tree policies
> >>> for, say, a single system.  Actually I think I implemented that
> >>> feature years ago....
> >>> 
> >>> Basically, I would add your project folder, run make conf, then
> >>> start modifying all of the policy components you need to modify.
> >>> For testing and deployment I would suggest replacing the entire
> >>> set of RPMs by rebuilding the RPMs with make rpm, and
> >>> reinstalling them (with
> >>> --force if you didn't bump the release number).
> >>> 
> >>> I have some changes in my github tree #next branch that haven't
> >>> been merged into our main tree yet.  Specifically, we can now
> >>> roll RPMs for
> >>> individual policy packages via a SEPRATE_PKGS variable in the
> >>> Makefile.  This might be useful for you because you can rebuild
> >>> the RPMs and, by specifying sysadm as a SEPARATE_PKG, you will
> >>> get that package as a separate, isolated RPM.  But these changes
> >>> are in QA now and haven't been merged into our main repo so take
> >>> those with a grain of salt.
> >>> 
> >>> Thanks,
> >>> --Spencer
> >>>> 
> >>>> 
> >>>> ---John
> >>>> 
> >>>> 
> >>>> 
> >>>> Been inspecting the "other" make (in
> >>>> packages/clip-selinux-policy v.
> >>>> packages/clip-selinux-policy/clip-selinux-policy).
> >>>> 
> >>>> On 2015-03-20 00:33, Spencer Shimko wrote:
> >>>>> 
> >>>>> 
> >>>>> Trimmed SELinux mailing list form CCs.
> >>>>> 
> >>>>> Did you try the the suggestions in my on-list response a little 
> >>>>> while
> >>>>> ago?
> >>>>> 
> >>>>> On Thu, Mar 19, 2015 at 6:38 PM, John Chludzinski
> >>>>> <john.chludzinski@vivaldi.net> wrote:
> >>>>>> 
> >>>>>> 
> >>>>>> I ran (when under the role sysadm_r and type sysadm_t):
> >>>>>> 
> >>>>>> $ id -Z
> >>>>>> 
> >>>>>> and got: Xsysadm_u:sysadm_r:sysadm_t:s0
> >>>>>> 
> >>>>>> So now I'm assuming the CLIP image is at "s0" sensitivity
> >>>>>> level.
> >>>>>> 
> >>>>>> Then I noticed that the build.conf file states: "The
> >>>>>> sensitivities will
> >>>>>> be
> >>>>>> s0 to s(MLS_SENS-1)".
> >>>>>> 
> >>>>>> So I built using:
> >>>>>> 
> >>>>>> $ make modules APPS_MODS="sysadm" TYPE="mls" MLS_SENS=1
> >>>>>> 
> >>>>>> to get an "s0" sensitivity level.
> >>>>>> 
> >>>>>> Tried to install and now I get: "duplicate declaration in
> >>>>>> module: type/attribute sysadm_userhelper_t".
> >>>>>> (A "Whac-A-Mole" game!)
> >>>>>> 
> >>>>>> ---John
> >>>>>> 
> >>>>>> 
> >>>>>> On 2015-03-19 21:31, John Chludzinski wrote:
> >>>>>>> 
> >>>>>>> 
> >>>>>>> 
> >>>>>>> First thing ... I'm a newbie to SELinux.
> >>>>>>> 
> >>>>>>> I'm trying to update the sysadm module in a CLIP image. I 
> >>>>>>> downloaded
> >>>>>>> the SELinux policy code from: 
> >>>>>>> https://github.com/QuarkSecurity/CLIP.
> >>>>>>> I modified the sysadm policy code and built (in
> >>>>>>> ~/clip/packages/clip-selinux-policy/clip-selinux-policy)
> >>>>>>> using:
> >>>>>>> 
> >>>>>>> $ make modules APPS_MODS="sysadm"
> >>>>>>> 
> >>>>>>> Then I tried to install in the CLIP image using:
> >>>>>>> 
> >>>>>>> $ semodule -i /mnt/hdd/SELinix/sysadm.pp
> >>>>>>> 
> >>>>>>> and got: "tried to link in a non-MLS module with an MLS
> >>>>>>> base". (I assume this means the CLIP image I'm working with
> >>>>>>> is MLS?) Next I built using:
> >>>>>>> 
> >>>>>>> $ make modules APPS_MODS="sysadm" TYPE="mls"
> >>>>>>> 
> >>>>>>> Tried to load/install the module and got: "sensitivy s10 not 
> >>>>>>> declared
> >>>>>>> by
> >>>>>>> base."
> >>>>>>> 
> >>>>>>> Next I tried:
> >>>>>>> 
> >>>>>>> $ make modules APPS_MODS="auditadm sysadm" TYPE="mls"
> >>>>>>> MLS_SENS=15
> >>>>>>> 
> >>>>>>> and !still! got "sensitivy s10 not declared by base".
> >>>>>>> 
> >>>>>>> Any suggestions/thoughts?
> >>>>>>> 
> >>>>>>> ---John
> >>>>>>> _______________________________________________
> >>>>>>> Selinux mailing list
> >>>>>>> Selinux@tycho.nsa.gov
> >>>>>>> To unsubscribe, send email to Selinux-leave@tycho.nsa.gov.
> >>>>>>> To get help, send an email containing "help" to
> >>>>>>> Selinux-request@tycho.nsa.gov.
> >>>>>> 
> >>>>>> 
> >>>>>> 
> >>>>>> 
> >>>>>> _______________________________________________
> >>>>>> Selinux mailing list
> >>>>>> Selinux@tycho.nsa.gov
> >>>>>> To unsubscribe, send email to Selinux-leave@tycho.nsa.gov.
> >>>>>> To get help, send an email containing "help" to
> >>>>>> Selinux-request@tycho.nsa.gov.
> >>>> 
> >>>> 
> >>>> 
> >> 
> >> _______________________________________________
> >> Selinux mailing list
> >> Selinux@tycho.nsa.gov
> >> To unsubscribe, send email to Selinux-leave@tycho.nsa.gov.
> >> To get help, send an email containing "help" to
> >> Selinux-request@tycho.nsa.gov.
> 
> _______________________________________________
> Selinux mailing list
> Selinux@tycho.nsa.gov
> To unsubscribe, send email to Selinux-leave@tycho.nsa.gov.
> To get help, send an email containing "help" to
> Selinux-request@tycho.nsa.gov.

  reply	other threads:[~2015-03-23 18:18 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-03-19 20:31 Trying to update sysadm module in CLIP John Chludzinski
2015-03-19 21:54 ` Spencer Shimko
2015-03-19 22:38 ` John Chludzinski
2015-03-20  0:23   ` Brandon Whalen
2015-03-20 21:56     ` John Chludzinski
     [not found]   ` <CAGNxgPiBThm0SpAo-+1D2UsaFyVNY2AKpj56RFvt+8SrfxL-Jw@mail.gmail.com>
2015-03-20 22:14     ` John Chludzinski
2015-03-21 13:57       ` Brandon Whalen
2015-03-21 17:36         ` Thomas Hurd
     [not found]     ` <55d4ced56b5ade45f9635caa3bd622b9@vivaldi.net>
     [not found]       ` <CAGNxgPh1Tq+ipErajh4F7VSW57cMTiNC7ZWJOa+jpWYsyw_HOA@mail.gmail.com>
2015-03-23 15:16         ` John Chludzinski
2015-03-23 16:01           ` Brandon Whalen
2015-03-23 17:36             ` John Chludzinski
2015-03-23 18:12               ` Mike Palmiotto [this message]
2015-03-23 18:22               ` Brandon Whalen
2015-03-23 19:01                 ` John Chludzinski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150323141208.1915043c@palms-work \
    --to=mpalmiotto@tresys.com \
    --cc=clip@oss1.tresys.com \
    --cc=john.chludzinski@vivaldi.net \
    --cc=selinux@tycho.nsa.gov \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.