Часто задаваемые вопросы
y Enhanced Linux) — это модуль безопасности ядра Linux, который используется для повышения безопасности в дистрибутивах Linux за счет ограничения доступа к файлам и процессам. Еще один аналогичный модуль безопасности ядра Linux, используемый для этой цели, — AppArmor. Эти два модуля вызывают большой интерес из-за их пересекающихся ролей в управлении доступом для операционных систем Linux. В этой статье рассматриваются различия между SELinux и AppArmor, что позволяет пользователям определить, какой из этих модулей лучше всего соответствует их потребностям, путем сравнения функций и простоты использования.
Читайте также: 5 лучших дистрибутивов Linux-Libre для повышения безопасности
Что такое SELinux?
Защита серверов с помощью SELinux устраняет зависимость от доступа в стиле DAC на основе реальных пользователей и ролей системы. Вместо этого он вводит трехстрочную контекстную систему для каждого процесса или пользователя системы. Три строки, а именно: имя пользователя, роль и домен, обеспечивают большую гибкость и контроль над доступом к системе.
Что такое SELinux?
только в определенном домене посредством настройки политики в SELinux. Единственным исключением является случай, когда процесс запускается в явно определенном контексте с помощью команды
runcon
. Однако если для такого процесса уже в конфигурации существуют конфликтующие политики, SELinux может запретить такой переход в другой контекст. Это гарантирует, что SELinux по умолчанию работает по принципу отказа. Любой процесс или пользователь должен иметь явную конфигурацию доступа к файлу или системному ресурсу, прежде чем получить к нему доступ.
Операции и команды SELinux
В качестве расширения общих служебных команд терминала SELinux предоставляет переключатель -Z
, который позволяет отображать контекст безопасности файлов и процессов. Такие команды, как ps
и ls
, используют этот переключатель для быстрой отладки или выявления ошибок в конфигурации. Ниже показан снимок экрана команды ls
.
Первая часть каждой выходной строки — это домен, вторая — тип объекта, а третья — имя пользователя в конфигурации SELinux. Таким образом, SELinux может обеспечить полный контроль над доступом к каждому файлу и процессу. Следующие команды используются для управления контекстом файлов и каталогов.
Команда |
Использование |
chcon -t |
Изменить контекст целевого файла |
chcon -R <Целевой каталог> |
Изменить контекст целевой каталог (это изменение рекурсивно) |
restorecon -v <Целевой файл> |
Восстановить контекст файла по умолчанию |
restorecon -v -R <Целевой каталог> |
Восстановить контекст каталога по умолчанию (это изменение является рекурсивным) |
semanage fcontext -a -t |
Установить контекст каталога по умолчанию, равный тому, который оценивает REGEX |
стол>
Операции и команды SELinuxнить контекст всех файлов в каталоге «/srv/web» на «httpd_sys_content_t», можно использовать следующую команду:
sudo semanage fcontext -a -t httpd_sys_content_t “/srv/web(/.*)”
Поскольку контекст, показанный на снимке экрана, уже рекурсивно определен для каталога «/srv/web», SELinux отображает сообщение, информирующее пользователя об этом. Если он не определен, успешная операция semanage
не отображает никаких результатов.
Системные администраторы и пользователи могут включать, отключать или разрешать SELinux с помощью команды setenforce
. Аналогичным образом, чтобы проверить текущий статус принудительного применения, пользователи могут использовать команду getenforce
, как показано на снимке экрана ниже.
Читайте также: Как безопасно передавать файлы в Linux с помощью SCP
Что такое AppArmor?
Разработка AppArmor поддерживается Canonical, материнской компанией, которая разрабатывает дистрибутив Linux Ubuntu. AppArmor стремится быть проще и проще в использовании, чем SELinux, и его профили создаются в каталоге «/etc/apparmor.d/». Профиль AppArmor для процесса «/usr/bin/man» показан на снимке экрана ниже.
Операции и команды AppArmor
Чтобы увидеть статус Apparmor, используется команда aa-status
. Пример вывода команды показан ниже.
Профили AppArmor можно просмотреть по содержимому каталога «/etc/apparmor.d/», как показано ниже.
Если пользователь из приведенного выше списка профилей хочет отключить профиль usr.bin.man, он может использовать следующую команду:
sudo aa-complain /usr/bin/man
Обратите внимание, что отключенный профиль находится в подкаталоге отключенного основного каталога профилей AppArmor. Чтобы повторно включить отключенный профиль, используется следующая команда:
sudo aa-enforce /usr/bin/man
Простота использования SELinux и AppArmor
AppArmor работает с путями к файлам в файловой системе, а не со строками для каждого файла, как это делает SELinux. Одним из преимуществ AppArmor является то, что операции чтения, записи, блокировки и другие файловые операции настроить проще, чем в SELinux. С другой стороны, хотя SELinux предоставляет больше возможностей для контроля доступа к файлам, эти функции реализованы в системе на гораздо более низком уровне.
Поэтому пользователям необходимо научиться использовать mknod, сетевые сокеты и другие системные операции для работы с SELinux. Для всех, кто не является системным администратором, гораздо проще научитесь использовать AppArmor .
AppArmor также предоставляет режим обучения, который используется для регистрации нарушений контроля доступа. Этот режим не ограничивает и не предотвращает доступ в случае нарушения, а собирает данные с течением времени, чтобы обеспечить возможность создания отдельного профиля AppArmor на основе поведения программ для каждого зафиксированного нарушения доступа. В SELinux подобного режима нет.
Читайте также: Как защитить домашний сервер Linux
Часто задаваемыеЧто такое AppArmor?
="sc_fs_faq sc_card ">
В каких дистрибутивах Linux предустановлены SELinux и AppArmor?
Все дистрибутивы Linux под эгидой RedHat поставляются с предустановленным или предлагают установку SELinux, включая RHEL, CentOS и Fedora. AppArmor предустановлен в Debian, Ubuntu, их производных дистрибутивах, SUSE Enterprise Server и дистрибутивах OpenSUSE.
Какой модуль безопасности лучше всего подойдет новому пользователю Linux?
Большинство основных дистрибутивов Linux поставляются с любым из модулей безопасности, установленным по умолчанию. Поэтому маловероятно, что
Операции и команды AppArmor
т модуля безопасности из коробки. Сравнение функций и простоты использования SELinux и AppArmor показывает, что для опытных пользователей или системных администраторов, которым нужен более точный контроль над своей операционной системой, лучше всего подходит SELinux, но для всех остальных лучшим выбором является AppArmor.
Являются ли SELinux и AppArmor альтернативой брандмауэрам, антивирусам и другому программному обеспечению для обеспечения безопасности пользователей или данных?
SELinux и AppArmor не являются альтернативой антивирусам или хорошо настроенным межсетевым экранам с точки зрения безопасности системы и целостности данных. Поэтому рекомендуется дополните вашу систему установить антивирусную программу для лучшей защиты данных.
Авторы изображений: Wiki-страница AppArmor и Вики-страница SELinux . Все скриншоты сделаны Зееманом Мемоном.
Простота использования SELinux и AppArmor
В каких дистрибутивах Linux предустановлены SELinux и AppArmor?
Какой модуль безопасности лучше всего подойдет новому пользователю Linux?
Являются ли SELinux и AppArmor альтернативой брандмауэрам, антивирусам и другому программному обеспечению для обеспечения безопасности пользователей или данных?