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