Я слышу много разговоров о apparmor, я хочу знать следующее:
- Что такое apparmor?
- Как работает apparmor?
Apparmor - это система обязательного контроля доступа (или MAC). Он использует улучшения ядра LSM, чтобы ограничить программы определенными ресурсами. AppArmor делает это с профилями, загруженными в ядро при запуске системы. Apparmor имеет два типа режимов профиля: принудительное применение и жалоба. Профили в принудительном режиме обеспечивают соблюдение правил этого профиля и сообщают о попытках нарушения в syslog
или auditd
. Профили в режиме жалоб не применяют никакие правила профиля, только регистрируют попытки нарушения.
В Ubuntu Apparmor устанавливается по умолчанию. Он ограничивает приложения профилями, чтобы определить, к каким файлам и разрешениям программа должна иметь доступ. Некоторые приложения будут иметь свои собственные свойства, и в apparmor-profiles
пакете можно найти другие приложения .
Вы можете установить apparmor-profiles
, запустив sudo apt-get install apparmor-profiles
.
Я нашел хороший пример Apparmor на форумах Ubuntu, который я переписал для этого поста.
Apparmor - это структура безопасности, которая предотвращает превращение приложений во зло. Например: если я запускаю Firefox и посещаю плохой сайт, который пытается установить вредоносное ПО, которое удалит мою
home
папку, Apparmor имеет ограничения на Firefox, хотя и не позволяет ему делать то, что я не хочу (например, доступ к моей музыке, документам и т. Д.). Таким образом, даже если ваше приложение взломано, никакого вреда не может быть.
apparmor-utils
Пакет содержит инструменты командной строки для настройки AppArmor. С его помощью вы можете изменить режим выполнения Apparmor, узнать статус профиля, создать новые профили и т. Д.
Это наиболее распространенные команды:
Примечание. Профили хранятся в/etc/apparmor.d/
sudo apparmor_status
. Вы получите список всех загруженных профилей *, все профили в принудительном режиме, все профили в режиме жалоб, какие процессы определены в принудительном / жалобе и т. Д. sudo aa-complain /path/to/bin
, где /path/to/bin
находится bin
папка программ . Например, запуск: sudo aa-complain /usr/bin/firefox
переведет Firefox в режим жалоб.sudo aa-enforce /path/to/bin
для обеспечения профиля программы. sudo aa-complain /etc/apparmor.d/*
и sudo aa-enforce.d/*
соответственно. Для загрузки профиля в ядро вы бы использовали apparmor_parser
. Вы можете перезагрузить профили, используя -r
параметр.
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
который эффективно печатает содержимое profile.name
в парсер Apparmor.-r
параметр, например, так:cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
sudo service apparmor reload
Чтобы отключить профиль, связать его с /etc/apparmor.d/disable/
помощью ln
так: sudo ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/
запустите: sudo apparmor_parser -R /etc/apparmor.d/profile.name
.
Примечание: не путайтеapparmor_parser -r
сapparmor_parser -R
ОНИ НЕ ОДНОВРЕМЕННАЯ!
/etc/apparmor.d/disable/
затем загрузите его с помощью -a
параметра.sudo rm /etc/apparmor.d/disable/profile.name
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
sudo service apparmor stop
и удалить модуль ядра, используяsudo update-rc.d -f apparmor defaults
sudo service apparmor start
и загрузите модули ядра с помощьюsudo update-rc.d apparmor defaults
Профили хранятся в /etc/apparmor.d/
и именуются по полному пути к исполняемому ими профилю, заменяя «/» на «.». Например, /etc/apparmor.d/bin.ping
профиль для ping
в /bin
.
В профилях используются два основных типа записей:
Записи пути определяют, к каким файлам может обращаться приложение.
Записи возможностей определяют, какие привилегии может использовать процесс.
Давайте посмотрим на профиль ping
, расположенный в etc/apparmor.d/bin.ping
, в качестве примера.
#include <tunables/global>
/bin/ping flags=(complain) {
#include <abstractions/base>
#include <abstractions/consoles>
#include <abstractions/nameservice>
capability net_raw,
capability setuid,
network inet raw,
/bin/ping mixr,
/etc/modules.conf r,
}
#include <tunables/global>
Включает файл global
в каталог tunables
, это позволяет помещать в общий файл операторы, относящиеся к нескольким приложениям.
/bin/ping flags=(complain)
устанавливает путь к профилируемой программе и устанавливает режим подачи жалоб.
capability net_raw
позволяет приложению доступ к CAP_NET_RAW Posix.1e
возможности.
/bin/ping mixr
позволяет приложению читать и выполнять доступ к файлу.
/etc/modules.conf r,
Это r
дает приложению права на чтение для/etc/modules.conf
Примечание. После создания / редактирования профиля необходимо перезагрузить профиль, чтобы изменения вступили в силу.
Вот список разрешений, которые вы можете использовать:
r
- читать w
- записывать ux
- Неограниченное выполнение Ux
- Неограниченное выполнение - очистка среды px
- Дискретный профиль выполнения Px
- Дискретный профиль выполнить - очистить окружающую среду ix
- унаследовать выполнение m
- разрешать PROT_EXEC
при mmap(2)
звонках l
- ссылка
У меня есть несколько более полезных ссылок на вас: Wiki.Ubuntu.com Ubuntuforums.org
Руководства по Apparmor для Ubuntu 12.04 и Ubuntu 12.10
Надеюсь, что это поможет вам.
источник
Вот цитата из Apparmor вики :
источник