Je dois configurer un serveur qui devrait être aussi sécurisé que possible. Quelle amélioration de sécurité utiliseriez-vous et pourquoi, SELinux, AppArmor ou grsecurity? Pouvez-vous me donner quelques conseils, astuces, avantages / inconvénients pour ces trois?
AUTANT QUE JE SACHE:
- SELinux: le plus puissant mais le plus complexe
- AppArmor: configuration / gestion plus simple que SELinux
- grsecurity: configuration simple grâce à la formation automatique, plus de fonctionnalités que le simple contrôle d'accès
Réponses:
J'ai fait beaucoup de recherches dans ce domaine. J'ai même exploité les ensembles de règles d'AppArmor pour MySQL . AppArmor est la forme la plus faible de séparation des processus. La propriété que j'exploite est que tous les processus ont des privilèges d'écriture sur certains des mêmes répertoires tels que
/tmp/
. Ce qui est bien avec AppArmor, c'est qu'il brise certains exploits sans se mettre à la place des utilisateurs / administrateurs. Cependant, AppArmor a des défauts fondamentaux qui ne seront pas corrigés de si tôt.SELinux est très sécurisé, c'est aussi très ennuyeux. Contrairement à AppAmoror, la plupart des applications légitimes ne fonctionneront pas tant que SELinux n'aura pas été reconfiguré. Le plus souvent, cela entraîne une mauvaise configuration de l'administrateur SELinux ou la désactivation de l'ensemble.
grsecurity est un très grand ensemble d'outils. Celui que j'aime le plus est le chroot amélioré de grsecuirty. C'est encore plus sécurisé que SELinux, même si cela prend un peu de compétence et de temps pour configurer une prison chroot alors que SELinux et AppAprmor "fonctionnent".
Il existe un 4ème système, une machine virtuelle. Des vulnérabilités ont été trouvées dans des environnements de machine virtuelle qui peuvent permettre à un attaquant de "éclater". Cependant, une machine virtuelle a une séparation encore plus grande qu'un chroot, car dans une machine virtuelle, vous partagez moins de ressources entre les processus. Les ressources disponibles pour une machine virtuelle sont virtuelles et peuvent avoir peu ou pas de chevauchement entre d'autres machines virtuelles. Cela concerne également le
<buzzword>
" cloud computing "</buzzword>
. Dans un environnement cloud, vous pouvez avoir une séparation très nette entre votre base de données et votre application Web, ce qui est important pour la sécurité. Il est également possible qu'un exploit soit propriétaire de l'intégralité du cloud et de toutes les machines virtuelles s'exécutant dessus.la source
<buzzword>
balise, vous pouvez simplement écrire "mes fesses", tout le monde saura ce que vous voulez dire;)Personnellement, j'utiliserais SELinux parce que je finirais par cibler une certaine saveur de RHEL qui a cette configuration prête à l'emploi pour la plupart. Il existe également un ensemble réactif de mainteneurs chez Red Hat et beaucoup de très bonne documentation sur la configuration de SELinux. Liens utiles ci-dessous.
la source