На самом деле, если вы используете современный дистрибутив Linux, такой как Fedora или CentOS, велика вероятность, что у вас уже есть "система SELinux".
Подумайте об этом, как об этой аналогии: представьте себе общество, система правления которого является "анархией". Любой может сделать что угодно. Отдельные племена могут устанавливать локализованные зоны контроля, базовые уровни порядка, но в целом на региональном или глобальном уровне цивилизация находится в анархии, и человек или люди, которые имеют наибольшее влияние или власть (физическая сила, технология) и т. д.) может в значительной степени делать то, что они хотят, без каких-либо последствий.
Это то, на что похожа система, когда SELinux не установлен или не установлен, но не работает.
Теперь представьте себе общество, система управления которого включает в себя "верховенство закона", которое представляет собой концепцию, означающую, что вместо того, чтобы люди в конечном итоге правили обществом, формальный свод правил, записанный в книге, правит обществом.
Это то, на что похожа система, когда SELinux установлен и работает.
Теперь, предоставлено, можно включить SELinux, установить его принудительное исполнение и очистить книгу законов, и либо иметь пустую книгу, либо написать «Вам разрешено делать абсолютно все, что вы хотите» - что приводит нас вернуться к анархии. Вроде. Но если книга закона внезапно меняется, так что она содержит некоторые фактические ограничения, например, убийство незаконно, воровство незаконно и т.д., То вдруг общество может начать иметь некоторую степень упорядоченности. И вообще люди с большой властью не смогут просто использовать это для того, чтобы делать все, что они хотят, потому что законы могут ограничивать то, что им разрешено делать.
В целях аналогии мы будем притворяться, что люди никогда не делают незаконных вещей, потому что в мире программного обеспечения программа не может обойти политику SELinux (то есть "нарушать закон") только потому, что она этого действительно хочет. В обычном человеческом обществе мы, конечно, можем нарушать закон, и тогда для этого есть последствия. В обществе SELinux, ты просто не нарушаешь закон, точка.
Как вы можете себе представить, размер административных накладных расходов в системе SELinux сильно зависит от:
- сколько политик вы включили;
- насколько ограничительны эти политики;
- насколько конкретны эти политики;
- независимо от того, настроены ли у вас политики, которые являются черными или белыми списками (черные списки блокируют вещи, которые, по вашему мнению, являются плохими, в то время как белые списки требуют, чтобы вы явно добавили поддержку вещей, которые вы хотите разрешить, поскольку по умолчанию все блокируется).
SELinux может ограничить практически любой аспект системы, которым можно управлять из ядра Linux: доступ к аппаратным устройствам, доступ к чтению или записи файлов, доступ к системным API, доступ к определенным типам сетей или определенным областям работы сетей и т.д. , SELinux эффективно реализует обязательный контроль доступа, о котором вы должны продолжить читать в Википедии.
Важный момент, который я хотел привить вам в этом ответе, заключается в том, что количество дополнительной работы и времени, затрачиваемого на работу с SELinux, полностью зависит от того, насколько вы ограничиваете политику. Например, представьте, что вы живете в обществе, где вам нужно получать одобрение от четырех человек каждый раз, когда вы хотите сесть на самолет: судья Верховного суда, президент, член палаты представителей и сенатор. Это будет крайне ограничительная политика, и вам придется пройти через множество разрешений, чтобы сесть на самолет. В мире SELinux это было бы сродни занесению в черный список всех файловых систем по умолчанию и требованию явного внесения в белый список доступа отдельных пользователей к отдельным файлам.
Помните, я говорил ранее, что Fedora и CentOS уже используют SELinux? Вы, вероятно, даже не заметите, что они это делают, если только вы не загружаете и не запускаете определенные программы, которые пытаются сделать то, что отключает фильтр SELinux. Red Hat тщательно настраивала свои фильтры SELinux с течением времени, чтобы позволить практически всем незаметным программным действиям проходить беспрепятственно, но у нее есть несколько политик, которые должны помочь предотвратить атаки, не слишком обременительно для системного администратора.
Короче говоря, SELinux в том виде, как он реализован «из коробки» в дистрибутивах на основе Red Hat, повышает безопасность без существенного влияния на удобство использования. Вы можете, конечно, сделать его еще более безопасным, но это также снизит удобство использования; или вы можете сделать его еще более удобным, но это также уменьшит безопасность.