Arch Linux is my first Linux distro and over time, I've come to realized that an inherent weakness of the distro is the lack of a complete Mandatory Access Control implementation that is both somewhat easy to use and doesn't require constant maintenance. Given that SELinux is more powerful than AppArmor in theory but is also more difficult to use and that there is no good reference policy for Arch, it seems that AppArmor is the only practical MAC (of the two, I'm aware there are others but I figured it's best to stick with one of these because they are the most popular and used on enterprise systems--SELinux by Fedora and AppArmor by openSUSE).
Therefore, I'm trying to decide whether to stick with Arch and use AppArmor or switch to Fedora and use its SELinux. Regardless of the distro I use, I plan to also use the grsecurity kernel because a kernel exploit can bypass any MAC implementation, based on what I've read.
Perhaps it's best to ask a few questions to guide the discussion:
Is AppArmor adequate for someone who wants a reasonably hardened distro for desktop use? I've been told that it's ridiculously easy to bypass by some yet some others claim that you can get 95% of what a reasonable policy in SELinux can get but with 10% the work to put in it. I'm talking about real-life scenarios and practical uses, not what you can get in theory (in which case I think everyone would agree that SELinux offers better protection if you have unlimited time and resources to configure policies for your particular system).
Is Fedora with SELinux out-of-the-box secure? People say SELinux is difficult or cumbersome to use/maintain, but is this the case for the average desktop user?
Is MAC on desktop systems even essential in the first place?
I don't mind the initial time to get policies working and everything setup to avoid breakage and whatnot, but I don't want to encounter random breakages nor do I want to invest significant time to fix things. I don't mind quickly tweaking policies on occasion though. I don't even know if this is necessary if I can just use existing policies for the applications on my system.
[link] [comments]