Secure Linux втора част
1. погледнем назад
В предишна статия (виж. "Ресурси" отделение), които изследвахме основната функционалност и да използвате готови профили AppArmor. Преди да преминем към основната тема на тази статия - да създават свои собствени профили, накратко припомним това, което вече знаете:
- AppArmor прилага задължително за контрол на достъпа въз основа на принципа на "забранено всичко, което не е изрично разрешено";
- AppArmor наблюдава само тези програми, за които има също зареден (активно) профил;
- AppArmor е важно за абсолютния път до програмата контролирани - той разграничава едно приложение от друг;
- AppArmor позволява само онези действия, които са посочени в профила на правилата на програмата, изгонване на всички останали;
- Има два основни режима на управление: режим на тест се оплакват, в които действията не са забранени (той е в режим учене), но лог файл се записва на програми за известяване политика в профила и прилагане - режим на работа, в които наличните програми за действие са ограничени според профила;
- докладвани опити да се нарушават правилата, написани на /var/log/audit/audit.log файла с профил или / Var / дневник / съобщения (в зависимост от настройките).
2. Профили AppArmor
Гаранцията, предвидена от AppArmor, въз основа на профила на програмата. В действителност, този профил е конфигурационен файл с вашия синтаксис. Той отдавна е приел, че в * конфигурационни никс-система файлове се съхраняват в обикновен текст; не са изключение и AppArmor профили. Помислете за някои от съществуващите профили:
2.1. Тя включва профили и предварително дефинирани променливи
Създаване на профили за нови програми - това не винаги е лесно, което изисква специално внимание към детайла. Улесняване на процеса на създаване на профил, предназначена да основните правила, които могат да бъдат неразделна част от всеки профил.
състав AppArmor включва голяма колекция от основните групи от правила, които могат да бъдат включени в #include профила директива. Те се съдържат в /etc/apparmor.d/abstractions директория. Ние наричаме такива правила комплект включва профили, тъй като това е това е тяхната цел - те са, всъщност, са профилите, но се използват само в другите профили. Всеки един от включените профилите позволява специфична функционалност, например, извършване на идентификация, използването на разделителна способност име услуги, Kerberos, и така нататък. Обикновено цел - функционалност, която позволява на включения профил - това е видно от имената на файловете:
В допълнение към правилата, които позволяват на функционалността, AppArmor има и набор от предварително дефинирани променливи (файлове, чиито разкрития се съдържат в каталожните /etc/apparmor.d/tunables на) тип @, @ и други. Въпреки това, в най-различни променливи са много далеч зад профилите включват:Разбира се, броят на променливите могат да бъдат завършени независимо (както и споделят опита си с общността - виж точка 6 в раздел "Ресурси" ..).
2.2. POSIX-възможности и права на достъп до файлове и директории
Ние сега се обръщат към самите правила, позволява на програмата за изпълнение на конкретни действия. Правила са разделени в позволява някои възможности и създаване на права за достъп за файлове и директории.
Да започнем с един прост: да се установят права на достъп - това е най-естествените и широко разпространени ограниченията, наложени на заявлението. Настройка права за четене и запис в изпълнение, може да бъде полезно за всяка програма: можете да защитите конфигурационните файлове на сървъра, от случайно изтриване, притежават лични данни - от външни хора четат програми. Освен това, дори и при определянето на AppArmor ограничение на достъпа предлага широка гама от възможности, за да се гарантира необходимата гъвкавост за лесна и удобна работа, включително ограничения върху процесите на деца (виж таблица 1).
Десният профил, което показва наличните програмни файлове и директории са написани, както следва: "<путь к каталогу> <права доступа>".
Таблица 1. Режими възразят AppArmor достъп
Новият процес не се контролира, но AppArmor почиства променливи на средата.
Като замислен от създателите на AppArmor, е набор от опции дава ограничи необходимо и достатъчно капацитет на правата на програми за достъп до файлове и директории. Също така, допълнителен контрол позволява на децата процеси (избягва Chroot недостатъци) не произвежда отделен "пясък" е не само в оригиналното заявление тичане, но неговите потомци. Въпреки това, както не без основание, се посочва в документацията (вж. П. 4 в раздел "Ресурси"), трябва да се избегне използването на последните две опции, тъй като те произтичат от процесите на деца под контрола на AppArmor. Също така е лесно да се отгатне, че някои опции са взаимно изключващи се (например, IX и пиксела).
AppArmor също е в състояние да контролира други функции, които не са свързани един за четене и запис на файлове, обекти на правата за изпълнение. Правилата могат да посочат на профила, за да се позволи използването на тези съоръжения в стандарта POSIX (например, приоритетите на изпълнение на процеса на климата).
Всяка такава възможност е написана за възможности за ключови думи, както и пълен списък на наличните POSIX-функции може да се види, като напишете човека способности (не забравяйте да създадете правило за отстраняване на «CAP_» името, ако е възможно). Така например, в пример Профил sbin.syslog-нг програми предоставят възможности chown (POSIX-възможност CAP_CHOWN) - произволна промяна на UID и GID на файла; dac_override (стандартно - CAP_DAC_OVERRIDE) позволява на програми, които се изпълняват от привилегирован потребител, не се вземат под внимание на достъп до преписката, и така нататък.
3. Създаване на нов профил
удобство AppArmor потребителя не свършва дотук ясно синтаксис профил. Съставът на AppArmor включва набор от инструменти, за да ви помогне да създадете профили за различни (включително и собствените си) програми: autodep, genprof и logprof (в системата има и символична връзка към командите, които имат наставка «АА-», сочейки към AppArmor на принадлежност: аа-autodep , аа-genprof и аа-logprof). Тези средства са предназначени за значително опростяване на процеса на създаване на профил. Нека се опитаме да ги използвате за създаване на профил за комунални ако съществува (профил за тази програма вече е в допълнителен набор от профили в директорията / и т.н. / AppArmor / профили / екстри и / ЮЕсАр / акции / DOC / AppArmor-профили / екстри на OpenSUSE и Ubuntu, съответно - на по-добре след това резултатите могат да се сравняват).
3.1. Създаване на нов профил на програма за пример ако съществува
Създаване на нов профил изисква известно време и внимание. Въпреки това, нищо не може да се направи, необратимо разрушителна - винаги можете да изтриете профила лошо и да се върнете към първата стъпка.
Всички по-нататъшни стъпки са описани с позоваване на OpenSUSE 11.1. Въпреки това, създават профили с други разпределения установени AppArmor (например, Ubuntu или Mandrive) също не трябва да причиняват затруднения.
Създаване на основен профил на програмата с помощта на autodep полезност:
Вие любезно се интересуват, дали да създадете нов профил, или просто да копирате съществуващата необходимост:
[1 - неактивни профили за местно / ЮЕсАр / хамбар / ако съществува]
[(V) iew профил] / (U) себе си профил / (С) reate нов профил / Abo (R) т / (F) inish
Натиснете "С" - за да създадете нов профил.
Zypisyvaetsya актуализира състоянието на потребителския / ЮЕсАр / хамбар / ако съществува.
Всички забелязали печатна грешка интерпретатора, но й е простил - всички правим грешки.
Виж какво се е случило:
Бит. По-скоро прилича на шаблон, отколкото до реална профил. Но този профил автоматично поставя в оплакват режим, което е полезно в следващите стъпки.
Стартирайте инструмента за профилиране genprof:
[(S) може дневник за събития поддомейн] / (F) inish
При стартиране genprof полезност подкани - трябва да се в отделен прозорец (без да се прекъсва работата genprof) стартира профилирани прилагането и ", за да покаже на програмата", т.е. изпълним всичко това, което обикновено правите, и който е общ за програмата. Функциите, изпълнявани от ако съществува програма не е много разнообразна, така че просто да промените паролата на потребителя:
По това време, AppArmor в лог файл записва всички разговори са профилирани програма за файлове и папки, и записва информация за използването на възможностите на POSIX:
Когато сте готови с приложението, кликнете в терминала работи genprof полезността бутона «S», а след това от своя страна позволи на действия, извършени профилирана програма:
[(А) llow] / (D) Eny / (G) LOB / Глоб W / (Е) XT / (N) EW / АВО (R) т / (F) inish / (О) т
Добавен /lib/security/pam_*.so собственик г-н профил.
Представя подбор изисква малко обяснение:
Оставя - позволи действието;
Deny - отрече действие;
Глоб - позволи действието на всички файлове от указаната;
Глоб w / Ext - позволи действието на всички файлове от този тип (с разширение) в указаната директория;
New - режим на редактиране - можете да посочите друг път до файл / директория, вместо предложената genprof;
В абортира - прекъсва работата си, ще загубите всички промени - потребителски профил ще остане, както е било преди genprof на старта;
Finish - завърши genprof полезността. Това записва направените промени в правилата;
Избере - показва допълнителна правила опция.
Често genprof той предлага на потребителя възможност за избор на няколко версии на Правилника (те са номерирани, и предложената опция в квадратни скоби), който може да бъде избран чрез натискане на номер, който съответства на номера. В горния пример, следните варианти:
Там се предлага да се свърже схемата за удостоверяване
Крайният профил ще бъде прехвърлена към наложат режим. Изпълнението на тази задача може да се потвърди отново, като пуснете програмата ако съществува: ако паролата е в състояние да се промени, след което излишъкът не сте забранена нищо.
В резултат на това след няколко не много успешни опити, крайният профил е получен, както следва:
Ако в резултат на профила по някаква причина не ви харесва (твърде много подобни правила или е било разрешено нещо напълно ненужните програми), можете да повторите процедурата, или ръчно да редактирате профила. Например, ако е бил създаден от вас въз основа на предложенията по принцип genprof
тя трябва да бъде променено на това:
(Или, както ще видите по-долу, можете допълнително да стеснят обхвата на:
ако съществува програма създава временен файл, който е в името на shadow.tmp случаен низ (шест знака), така че правото да се чете и пише трябва да се осигури за всички тези файлове.
По подразбиране, собственик на опцията ще бъдат записани правилата (по някаква причина не се появява в официални документи) - той посочва, че достъп до файл / директория е разрешено само за собственика. Passwd полезност за него е без значение, а се използва от различни потребители на програмите, тя е много важна възможност. Например, когато достъп до настройки на браузъра разрешение за файлове / история и т.н. Използвайте тип правило
В този случай, чрез провеждане на Firefox, можете да бъдете сигурни, че програмата имат достъп само до домашната директория на потребителя поддиректория .firefox, стартиране на браузъра (който е собственик на всички файлове и поддиректории .firefox).
През последните два примера, правилата сме прилагат замествания шаблони (гранули). Тъй като можете да посочите няколко пътеки и имена на файлове, които използват тези модели (Таблица 2).
Таблица 2. шаблони пермутации