AppArmor Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
wiki:руководство_по_ubuntu_server:безопасность:apparmor [2012/06/22 16:22]
wiki:руководство_по_ubuntu_server:безопасность:apparmor [2012/06/22 21:07] (текущий)
[Ссылки]
Строка 21: Строка 21:
 ====Использование AppArmor==== ====Использование AppArmor====
  
-Пакет apparmor-utils содержит утилиты командной строки,​ которые можно использовать для изменения режима выполнения AppArmor, поиска статуса профиля,​ создания новых профилей и т.д.+Пакет apparmor-utils содержит утилиты командной строки,​ которые можно использовать для изменения режима выполнения AppArmor, поиска статуса профиля,​ создания новых профилей и т.п.
  
-1. apparmor_status используется для просмотра текущего статуса профиля AppArmor.+ 1. **apparmor_status** используется для просмотра текущего статуса профиля AppArmor.
 <​code>​sudo apparmor_status</​code>​ <​code>​sudo apparmor_status</​code>​
- + 2. **aa-complain** переводит профиль в режим ​обучения ​(complain).
-2. aa-complain переводит профиль в режим ​сравнения.+
 <​code>​sudo aa-complain /​path/​to/​bin</​code>​ <​code>​sudo aa-complain /​path/​to/​bin</​code>​
- + 3. **aa-enforce** переводит профиль в режим ограничений (enforce).
-3. aa-enforce переводит профиль в принудительный режим работы.+
 <​code>​sudo aa-enforce /​path/​to/​bin</​code>​ <​code>​sudo aa-enforce /​path/​to/​bin</​code>​
- + 4. Профили AppArmor расположены в каталоге /​etc/​apparmor.d. ​Его можно использовать для ​управления режимом всех профилей. 
-4. Профили AppArmor ​по умолчанию ​расположены в директории ​/​etc/​apparmor.d. ​Эту директорию ​можно использовать для ​настройки режимов всех профилей. +Введите следующую команду для перевода всех профилей в режим ​обучения:
- +
-Введите следующую команду для перевода всех профилей в режим ​сравнения:+
 <​code>​sudo aa-complain /​etc/​apparmor.d/​*</​code>​ <​code>​sudo aa-complain /​etc/​apparmor.d/​*</​code>​
- +Перевод всех профилей в режим ограничений:
-Перевод всех профилей в принудительный режим работы:+
 <​code>​sudo aa-enforce /​etc/​apparmor.d/​*</​code>​ <​code>​sudo aa-enforce /​etc/​apparmor.d/​*</​code>​
- + 5. Команда ​**apparmor_parser** используется для загрузки профиля в ядро. Она также может использоваться для повторной ​загрузки загруженного профиля при использовании опции '​-r'​. Для загрузки введите:​
-5. Команда apparmor_parser используется для загрузки профиля в ядро. Она также может использоватся для перезагрузки ​недавно ​загруженного профиля при использовании опции '​-r'​. Для загрузки введите:​+
 <​code>​cat /​etc/​apparmor.d/​profile.name | sudo apparmor_parser -a</​code>​ <​code>​cat /​etc/​apparmor.d/​profile.name | sudo apparmor_parser -a</​code>​
- 
 Для перезагрузки:​ Для перезагрузки:​
 <​code>​cat /​etc/​apparmor.d/​profile.name | sudo apparmor_parser -r</​code>​ <​code>​cat /​etc/​apparmor.d/​profile.name | sudo apparmor_parser -r</​code>​
- + 6. /​etc/​init.d/​apparmor служит для перезагрузки всех профилей:​
-6. /​etc/​init.d/​apparmor служит для перезагрузки всех профилей:​+
 <​code>​sudo /​etc/​init.d/​apparmor reload</​code>​ <​code>​sudo /​etc/​init.d/​apparmor reload</​code>​
- + 7. Директория /​etc/​apparmor.d/​disable может использоваться совместно с опцией ​**apparmor_parser ​-R**  ​для отключения профиля. 
-7. Директория /​etc/​apparmor.d/​disable может использоваться совместно с опцией ​'​-r' ​apparmor_parser для отключения профиля. +<​code>​ 
-<​code>​sudo ln -s /​etc/​apparmor.d/​profile.name /​etc/​apparmor.d/​disable/​ +sudo ln -s /​etc/​apparmor.d/​profile.name /​etc/​apparmor.d/​disable/​ 
-sudo apparmor_parser -R /​etc/​apparmor.d/​profile.name</​code>​ +sudo apparmor_parser -R /​etc/​apparmor.d/​profile.name 
 +</​code>​
 Для активации отключенного профиля удалите символическую ссылку на профиль в /​etc/​apparmor.d/​disable/​. Затем загрузите профиль используя опцию '​-a'​. Для активации отключенного профиля удалите символическую ссылку на профиль в /​etc/​apparmor.d/​disable/​. Затем загрузите профиль используя опцию '​-a'​.
-<​code>​sudo rm /​etc/​apparmor.d/​disable/​profile.name +<​code>​ 
-cat /​etc/​apparmor.d/​profile.name | sudo apparmor_parser -a</​code>​+sudo rm /​etc/​apparmor.d/​disable/​profile.name 
 +cat /​etc/​apparmor.d/​profile.name | sudo apparmor_parser -a 
 +</​code>​ 
 + 8. AppArmor можно отключить,​ а модуль ядра выгрузить следующей командой:​ 
 +<​code>​ 
 +sudo /​etc/​init.d/​apparmor stop 
 +sudo update-rc.d -f apparmor remove 
 +</​code>​ 
 + 9. Для повторной активации AppArmor введите:​ 
 +<​code>​ 
 +sudo /​etc/​init.d/​apparmor start 
 +sudo update-rc.d apparmor defaults 
 +</​code>​
  
-8. AppArmor можно отключить,​ а модуль ядра выгрузить следующей командой:​ +<​note>​Замените ​**profile.name** на имя вашего профиля,​ которым вы хотите ​управлять. Также необходимо заменить /​path/​to/​bin/​ на реальный путь выполненяемого ​файла. Например,​ для команды ping используйте /​bin/​ping</​note>​
-<​code>​sudo /​etc/​init.d/​apparmor stop +
-sudo update-rc.d -f apparmor remove</​code>​ +
- +
-9. Для активации AppArmor введите:​ +
-<​code>​sudo /​etc/​init.d/​apparmor start +
-sudo update-rc.d apparmor defaults</​code>​ +
- +
-<​note>​Замените profile.name на имя вашего профиля,​ который вы хотите ​настроить. Также необходимо заменить /​path/​to/​bin/​ на реальный путь выполнения файла. Например,​ для команды ping используйте /​bin/​ping</​note>​+
  
 ====Профили==== ====Профили====
  
-Профили 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>​
- +
-<note>#​include <​tunables/​global>​+
 /bin/ping flags=(complain) { /bin/ping flags=(complain) {
   #include <​abstractions/​base>​   #include <​abstractions/​base>​
Строка 91: Строка 86:
   /bin/ping mixr,   /bin/ping mixr,
   /​etc/​modules.conf r,   /​etc/​modules.conf r,
-}<note>+} 
 +</code>
  
-1. #include <​tunables/​global>:​ включает ​утверждения ​из других файлов. Это позволяет ​утверждениям, относящимся к нескольким приложениям находится в одном общем файле.+  -- **#include <​tunables/​global>​**: включает ​операторы ​из других файлов. Это позволяет ​операторам, относящимся к нескольким приложениям находится в одном общем файле
 +  -- **/bin/ping flags=(complain)**:​ путь к программе,​ управляемой профилем,​ также устанавливающий режим обучения. 
 +  -- **capability net_raw,**: разрешает приложению доступ к возможностям CAP_NET_RAW Posix.1e. 
 +  -- **/bin/ping mixr,**: разрешает приложению доступ на чтение и выполнение файла.
  
-2. /bin/ping flags=(complain):​ путь к профилю программы,​ также устанавливающий режим сравнения. +<​note>​После редактирования файла профиляон должен быть перезагружен. Для детальной информации обратитесь к разделу [[wiki:​руководство_по_ubuntu_server:​безопасность:​apparmor#​использование_apparmor|Использование AppArmor]]</​note>​
- +
-3. capability net_raw,: allows the application access to the CAP_NET_RAW Posix.1e capability. +
- +
-4. /bin/ping mixr,: allows the application read and execute access to the file. +
- +
-После редактирования файла профиля он должен быть перезагружен. Для детальной инрмации обратитесь к разделу [[wiki:​руководство_по_ubuntu_server:​безопасность:​apparmor#​использование_apparmor|Использование AppArmor]]+
  
 ===Создание профиля=== ===Создание профиля===
  
-    Design a test planTry to think about how the application should be exercisedThe test plan should be divided into small test casesEach 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 ​packagefile 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 misbehavingaudit messages are sent to the log filesThe program ​aa-logprof ​can be used to scan log files for AppArmor ​audit messagesreview them and update the profilesFrom 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. +
  
 ---- ----