Различия
Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
wiki:руководство_по_ubuntu_server:безопасность:apparmor [2012/06/22 20:04] [Использование AppArmor] |
wiki:руководство_по_ubuntu_server:безопасность:apparmor [2012/06/22 21:07] (текущий) [Ссылки] |
||
---|---|---|---|
Строка 65: | Строка 65: | ||
====Профили==== | ====Профили==== | ||
- | Профили AppArmor - это простые текстовые файлы, которые расположены в /etc/apparmor.d/. Файлы названы соответственно полному пути исполнения их профиля и замещенной чертой "/" на ".". Например /etc/apparmor.d/bin.ping - это профиль AppArmor для команды /bin/ping. | + | Профили **AppArmor** - это простые текстовые файлы, которые расположены в /etc/apparmor.d/. Файлы профиля называются соответственно полному пути до исполняемого файла, которым они управляют, с заменой символа "/" на ".". Например /etc/apparmor.d/bin.ping - это профиль AppArmor для команды /bin/ping. |
- | Существует два главных правила используемых в профиле: | + | Существует два основных типа правил, используемых в профиле: |
- | 1. Путь записи: описывает какие файлы приложения имеют доступ к файловой системе. | + | 1. **Записи путей** (Path entries): которые описывают к каким файлам приложение имеет доступ в файловой системе. |
+ | 2. **Записи разрешений** (Capability entries): определяют какие права ограничиваемый процесс имеет право использовать. | ||
- | 2. Возможность записи: описывает права на ограничение процессов и разрешение на их использование. | + | В качестве примера посмотрим /etc/apparmor.d/bin.ping: |
- | + | <code> | |
- | Для примера посмотрим на /etc/apparmor.d/bin.ping: | + | #include <tunables/global> |
- | + | ||
- | <code>#include <tunables/global> | + | |
/bin/ping flags=(complain) { | /bin/ping flags=(complain) { | ||
#include <abstractions/base> | #include <abstractions/base> | ||
Строка 87: | Строка 86: | ||
/bin/ping mixr, | /bin/ping mixr, | ||
/etc/modules.conf r, | /etc/modules.conf r, | ||
- | }</code> | + | } |
+ | </code> | ||
- | 1. #include <tunables/global>: включает утверждения из других файлов. Это позволяет утверждениям, относящимся к нескольким приложениям находится в одном общем файле. | + | -- **#include <tunables/global>**: включает операторы из других файлов. Это позволяет операторам, относящимся к нескольким приложениям находится в одном общем файле. |
- | + | -- **/bin/ping flags=(complain)**: путь к программе, управляемой профилем, также устанавливающий режим обучения. | |
- | 2. /bin/ping flags=(complain): путь к профилю программы, также устанавливающий режим сравнения. | + | -- **capability net_raw,**: разрешает приложению доступ к возможностям CAP_NET_RAW Posix.1e. |
- | + | -- **/bin/ping mixr,**: разрешает приложению доступ на чтение и выполнение файла. | |
- | 3. capability net_raw,: разрешает приложению доступ к возможностям CAP_NET_RAW Posix.1e. | + | |
- | + | ||
- | 4. /bin/ping mixr,: разрешает приложению доступ на чтение и выполнение файла. | + | |
<note>После редактирования файла профиля, он должен быть перезагружен. Для детальной информации обратитесь к разделу [[wiki:руководство_по_ubuntu_server:безопасность:apparmor#использование_apparmor|Использование AppArmor]]</note> | <note>После редактирования файла профиля, он должен быть перезагружен. Для детальной информации обратитесь к разделу [[wiki:руководство_по_ubuntu_server:безопасность:apparmor#использование_apparmor|Использование AppArmor]]</note> | ||
Строка 101: | Строка 98: | ||
===Создание профиля=== | ===Создание профиля=== | ||
- | Design a test plan: Try to think about how the application should be exercised. The test plan should be divided into small test cases. Each test case should have a small description and list the steps to follow. | + | 1. **Разработка плана тестирования**: Попробуйте подумать о том как приложение будет выполняться. План тестирования стоит разделить на маленькие тестовые блоки. Каждый тестовый блок должен иметь краткое описание и перечень шагов выполнения. |
+ | Некоторые стандартные тестовые блоки: | ||
+ | -- Запуск программы. | ||
+ | -- Остановка программы. | ||
+ | -- Перезагрузка программы. | ||
+ | -- Тестирование всех команд, поддерживаемых сценарием инициализации. | ||
- | Some standard test cases are: | + | 2. **Создание нового профиля**: Используйте **aa-genprof** для создания нового профиля. Команда в терминале: |
+ | <code>sudo aa-genprof executable</code> | ||
+ | Например: | ||
+ | <code>sudo aa-genprof slapd</code> | ||
- | Starting the program. | + | 3. Чтобы получить ваш новый профиль в составе пакета **apparmor-profiles**, зарегистрируйте проблему в Launchpad для пакета [[https://bugs.launchpad.net/ubuntu/+source/apparmor/+filebug|AppArmor]]: |
- | + | -- Включите ваш план тестирования и тестовые блоки. | |
- | Stopping the program. | + | -- Присоедините ваш новый профиль к зарегистрированной проблеме. |
- | + | ||
- | Reloading the program. | + | |
- | + | ||
- | Testing all the commands supported by the init script. | + | |
- | + | ||
- | Generate the new profile: Use aa-genprof to generate a new profile. From a terminal: | + | |
- | + | ||
- | sudo aa-genprof executable | + | |
- | + | ||
- | For example: | + | |
- | + | ||
- | sudo aa-genprof slapd | + | |
- | + | ||
- | To get your new profile included in the apparmor-profiles package, file a bug in Launchpad against the AppArmor package: | + | |
- | + | ||
- | Include your test plan and test cases. | + | |
- | + | ||
- | Attach your new profile to the bug. | + | |
===Обновление профилей=== | ===Обновление профилей=== | ||
- | When the program is misbehaving, audit messages are sent to the log files. The program aa-logprof can be used to scan log files for AppArmor audit messages, review them and update the profiles. From a terminal: | + | Когда программа ведет себя неправильно, проанализируйте сообщения отправленные в файлы журналов. Программа **aa-logprof** может быть использована для сканирования файлов журнала **AppArmor** для проверки сообщений, их рассмотрения (анализа) и обновления профилей. Команда в терминале: |
- | + | <code>sudo aa-logprof</code> | |
- | sudo aa-logprof | + | |
====Ссылки==== | ====Ссылки==== | ||
- | See the AppArmor Administration Guide for advanced configuration options. | + | -- Смотрите [[http://www.novell.com/documentation/apparmor/apparmor201_sp10_admin/index.html?page=/documentation/apparmor/apparmor201_sp10_admin/data/book_apparmor_admin.html|AppArmor Administration Guide]] для дополнительных опций настройки. |
- | + | -- Для уточнения использования AppArmor с другими выпусками Ubuntu смотрите страницу [[https://help.ubuntu.com/community/AppArmor|AppArmor Community Wiki]]. | |
- | For details using AppArmor with other Ubuntu releases see the AppArmor Community Wiki page. | + | -- Страница [[http://en.opensuse.org/SDB:AppArmor_geeks|OpenSUSE AppArmor]] - еще одно знакомство с AppArmor. |
- | + | -- Хорошее место для вопросов поддержки AppArmor и вовлечения в сообщество Ubuntu Server - IRC канал **#ubuntu-server** на [[http://freenode.net/|freenode]]. | |
- | The OpenSUSE AppArmor page is another introduction to AppArmor. | + | |
- | + | ||
- | A great place to ask for AppArmor assistance, and get involved with the Ubuntu Server community, is the #ubuntu-server IRC channel on freenode. | + | |
---- | ---- |