[olug] SELINUX, you irritate me

Kevin sharpestmarble at gmail.com
Wed Jul 17 13:22:36 CDT 2019


No, what you do is to use iptables to block 22, then redirect tcp/12345(or
so) to port 22. Then, 6 months later, you find you can't SSH to your
server, figure out that you need to SSH to tcp/12345 instead of tcp/22 and
wonder what moron set it up that way.

On Tue, Jul 16, 2019 at 3:04 PM Lou Duchez <lou at paprikash.com> wrote:

> Yeah.  The trick is tuning it before activating it, rather than
> immediately activating it and then all aitch-eee-ell-ell breaks loose.
>
> One thing SELinux does to earn my immediate ire is, first thing I do
> when I configure a new Linux server is switch SSH to a nondefault port.
> SELinux thwarts that every time, and that goes a long way to making me
> irrationally angry at SELinux.  There's a perfectly simple response to
> that -- throw SELinux into "permissive" mode and then do the audit2allow
> steps as outlined below (which will fix the SSH port thing) -- but
> SELinux does not really endear itself to me by making it harder to
> implement sensible security choices.
>
> But that just means it's up to me to meet SELinux halfway.  Well, 99% of
> the way.
>
>
> > It's a pain, but I'd rather have it than not.
> >
> > On Tue, Jul 16, 2019 at 2:44 PM Lou Duchez <lou at paprikash.com> wrote:
> >
> >> So when SELinux came out ages ago, I quickly developed a strong distaste
> >> for it.  It felt like it was more likely to do harm than good, like a
> >> security guard in your building who insists on quarantining your
> >> groceries to make sure you're not a drug smuggler.  I found I had to
> >> shut SELinux off to get things to work.
> >>
> >> Years later, I am finally conceding that SELINUX is here to stay, and
> >> it's time to learn to love it (or at least tolerate it).  Here's how I
> >> finally got on SELinux's side:
> >>
> >> 1)    Throw SELinux into "permissive" mode by editing
> >> /etc/sysconfig/selinux and rebooting.  (If SELinux had been "disabled",
> >> upon reboot, SELinux is going to have to relabel all the files on your
> >> system.  This is actually pretty quick, unless you've got directories
> >> and directories and directories of files.  I had to do this on a couple
> >> servers that had years of daily snapshots on them, and after a couple
> >> days the relabeling wasn't done.  I eventually deleted most of the old
> >> backups -- kept one backup per month, and only since Jan 2018 -- and the
> >> relabel took under 10 minutes.  Math-wise, I suspect the relabeling does
> >> not scale linearly with the number of files, but perhaps with the square
> >> of the number of files.)
> >>
> >> 2)    After the reboot, you can run "audit2why -b" and "audit2allow -b"
> >> to get information on opertaions that SELinux has noted have violated
> >> policy since booting.  (There are options other than "-b", but I'm just
> >> talking about how to make SELinux reasonable.  And to me, it's pretty
> >> reasonable to look at how it's been doing since the last boot.)
> >>
> >> 3)    You can run "audit2allow -b -M newrules" to create a file,
> >> "newrules.pp", that contains SELinux rules necessary to allow all the
> >> operations that were violating policy.  You can load it by running
> >> "semodule -i newrules.pp".  You can also look at "newrules.te" to see a
> >> more visually understandable list of new rules.  Now I won't claim to
> >> fully understand what the rules are, but I can generally see processes I
> >> recognize and take it on faith that they're trying to do something
> >> reasonable.  Like recently I found this entry in newrules.te:
> >>
> >>       allow dhcpd_t unlabeled_t:file { append getattr link map open read
> >> unlink write };
> >>
> >> I could do some digging to try to figure out exactly what file it's
> >> trying to get at.  However, I also know that I've got some custom code
> >> that creates and overwrites files in /var/lib/dhcpd, so it seems likely
> >> that SELinux finds my custom code questionable.  Okay SELinux, you win,
> >> I'll let you have that rule.
> >>
> >> 4)    After applying new rules, reboot.  Maybe do another "audit2allow
> >> -b" to see if anything is still coming up.
> >>
> >> 5)    Every few days, see if SELinux is still coming up with messages
> >> and warnings.  Hopefully you'll reach a  point where SELinux goes for
> >> days without having any complaints.
> >>
> >> 6)    Once you're satisfied that SELinux seems to be pretty happy with
> >> things, THEN is when you switch SELinux to "enforcing", over in
> >> /etc/sysconfig/selinux.
> >>
> >> All that work to get SELinux properly tuned for your system.  But I ...
> >> guess it makes things better?  People either love SELinux or hate it
> >> with a passion, there seems to be no middle ground, and I think I see
> why.
> >> _______________________________________________
> >> OLUG mailing list
> >> OLUG at olug.org
> >> https://www.olug.org/mailman/listinfo/olug
> >>
> > _______________________________________________
> > OLUG mailing list
> > OLUG at olug.org
> > https://www.olug.org/mailman/listinfo/olug
> _______________________________________________
> OLUG mailing list
> OLUG at olug.org
> https://www.olug.org/mailman/listinfo/olug
>


More information about the OLUG mailing list