AppArmour ist normalerweise einfacher als SELinux. SELinux ist recht komplex und kann sogar in militärischen Anwendungen verwendet werden, während AppArmour einfacher ist. SELinux wird auf i-Node-Ebene ausgeführt (dh Einschränkungen werden auf die gleiche Weise angewendet wie ACL- oder UNIX-Berechtigungen), während AppArmour auf Pfadebene angewendet wird (dh Sie geben den Zugriff basierend auf dem Pfad an, sodass er möglicherweise nicht angewendet wird, wenn sich der Pfad ändert ). AppArmour kann auch Unterprozesse schützen (wie nur mod_php), aber ich bin skeptisch in Bezug auf die tatsächliche Verwendung. AppArmour scheint seinen Weg in den Mainline-Kernel zu finden (es ist in -mm IIRC).
Ich weiß nicht viel über SMACK, aber es sieht aus wie vereinfachtes SELinux aus der Beschreibung. Es gibt auch RSBAC, wenn Sie es ansehen möchten.
chroot hat einen begrenzten Anwendungsbereich, und ich glaube nicht, dass es in einer Desktop-Umgebung von großem Nutzen ist (es kann verwendet werden, um Daemons vom Zugriff auf das gesamte System zu trennen - wie DNS-Daemon).
Auf jeden Fall lohnt es sich, generisches Hardening wie PaX, -Fstack-Protector usw. anzuwenden. Chroot können Sie verwenden, wenn Ihre Distribution AppArmour / SELinux unterstützt. Ich denke, SELinux eignet sich besser für Hochsicherheitsbereiche (es hat eine viel bessere Kontrolle über das System) und AppArmour ist besser für einfaches Härten.
Im Allgemeinen würde ich nicht die Mühe machen, generische Desktops zu härten, außer nicht genutzte Dienste auszuschalten, regelmäßig zu aktualisieren usw., es sei denn, Sie arbeiten in einem hochsicheren Bereich. Wenn Sie trotzdem sichern möchten, würde ich das verwenden, was Ihre Distribution unterstützt. Viele von ihnen benötigen zur Effektivität die Anwendungsunterstützung (zum Beispiel das Kompilieren von Tools zur Unterstützung von Attributen und schriftlichen Regeln). Daher würde ich empfehlen, die von Ihrer Distribution unterstützten Funktionen zu verwenden.