Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
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. | + | |
| ---- | ---- | ||