SELinux против AppArmor против безопасности
Я должен настроить сервер, который должен быть максимально безопасным. Какое улучшение безопасности вы бы использовали и почему, SELinux, AppArmor или grsecurity? Можете ли вы дать мне несколько советов, советов, плюсов / минусов для этих трех?
НАСКОЛЬКО МНЕ ИЗВЕСТНО:
- SELinux: самый мощный, но самый сложный
- AppArmor: более простая настройка / управление, чем SELinux
- grsecurity: простая настройка благодаря автоматическому обучению, больше возможностей, чем просто контроль доступа
2 ответа
Я провел много исследований в этой области. Я даже использовал наборы правил AppArmor для MySQL. AppArmor - самая слабая форма разделения процессов. Свойство, которое я использую, заключается в том, что все процессы имеют права на запись в одни и те же каталоги, такие как /tmp/
, Что хорошо в AppArmor, так это то, что он ломает некоторые эксплойты, не попадая в пути пользователя / администратора. Однако у AppArmor есть некоторые фундаментальные недостатки, которые не будут исправлены в ближайшее время.
SELinux очень безопасен, это также очень раздражает. В отличие от AppAmoror, большинство легитимных приложений не будут работать, пока SELinux не будет перенастроен. Чаще всего это приводит к неправильной настройке администратора SELinux или отключению всего этого вместе.
grsecurity - это очень большой пакет инструментов. Тот, который мне нравится больше всего, - расширенный chroot. Это еще более безопасно, чем SELinux, хотя для установки chroot-тюрьмы требуется некоторое умение и некоторое время, когда SELinux и AppAprmor "просто работают".
Есть 4-я система, Виртуальная машина. В виртуальных средах были обнаружены уязвимости, которые могут позволить злоумышленнику "вырваться". Однако виртуальная машина имеет большее разделение, чем chroot, поскольку в виртуальной машине вы разделяете меньше ресурсов между процессами. Ресурсы, доступные для виртуальной машины, являются виртуальными и могут практически не перекрываться между другими виртуальными машинами. Это также относится к <buzzword>
"облачные вычисления" </buzzword>
, В облачной среде между базой данных и веб-приложением может быть очень четкое разделение, что важно для безопасности. Также возможно, что 1 эксплойт может владеть всем облаком и всеми виртуальными машинами, работающими на нем.
Лично я бы использовал SELinux, потому что я бы в конечном итоге нацелился на некоторый вкус RHEL, который по большей части настроен из коробки. В Red Hat также есть отзывчивый сопровождающий и множество очень хорошей документации по настройке SELinux. Полезные ссылки ниже.