AppArmor

Урок за приложението Debian AppArmor

Урок за приложението Debian AppArmor
AppArmor е задължителна система за контрол на достъпа за Linux. В задължителна система за контрол на достъпа (MAC) ядрото налага ограничения върху пътища, сокети, портове и различни входно / изходни механизми. Той е разработен от Immunex и сега се поддържа от SUSE. Той е част от ядрото на Linux от версия 2.6.36.

Докато ядрото на Linux осигурява добра изолация на потребителите и силен контрол на разрешенията на файлове, MAC като AppArmor предоставя по-фино разрешени разрешения и защита срещу много неизвестни заплахи. Ако в ядрото на Linux или друг демон на системата бъде открита уязвимост на защитата, добре конфигурираната система AppArmor може да предотврати достъпа до критични пътища, които могат да бъдат уязвими за проблема.

AppArmor може да работи ефективно в два режима - налагане и оплакване. Enforce е производственият статус по подразбиране на AppArmor, докато оплакването е полезно за разработване на набор от правила, базирани на реални модели на работа и за регистриране на нарушения. Той е конфигуриран чрез обикновени текстови файлове в относително удобен формат и има по-къса крива на обучение от повечето други задължителни системи за контрол на достъпа.

Инсталация

За да инсталирате AppArmor на Debian, стартирайте (като root):

apt install apparmor apparmor-utils auditd

Можете да пропуснете auditd, ако не се нуждаете от инструменти за генериране на профили.

Ако искате да инсталирате стартер и допълнителни профили, изпълнете:

apt инсталиране на apparmor-профили apparmor-профили-екстра

Тъй като AppArmor е модул на ядрото на Linux, трябва да го активирате със следните команди:

mkdir -p / etc / default / grub.д

Създайте файла / etc / default / grub.г / apparmor.cfg със следното съдържание:

GRUB_CMDLINE_LINUX_DEFAULT = "$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 1 сигурност = apparmor"

Запазете и излезте, след което изпълнете:

update-grub

След това рестартирайте.

Има дебат дали това трябва да се направи автоматично. Може да поискате да се консултирате с края на този доклад за грешка, за да видите дали това е променено от времето на писането.

След като рестартирате, можете да проверите дали AppArmor е активиран, като стартирате:

aa-статус

Тази команда ще изброи заредените профили на AppArmor и текущото им състояние на съответствие (принудително, оплакване и т.н.)

Ако изпълните:

ps auxZ | grep -v '^ неограничен'

Ще видите списък с програми, които са ограничени от профил на AppArmor. Ограничената програма е тази, която е засегната и ограничена (или пасивно, в режим на оплакване, или активно в принудителен режим) от AppArmor.

Промяна на режими / деактивиране на AppArmor

Ако искате да деактивирате AppArmor, защото дадена програма не работи, може да помислите за поставяне на профила в режим на оплакване вместо принудителен режим. За да направите това, стартирайте (като root или чрез sudo):

aa-оплакване / път / към / програма

Например, ако ping не работи правилно, използвайте:

aa-оплакване / usr / bin / ping

След като даден профил е в режим на оплакване, можете да разгледате регистрирането чрез / var / log / syslog или с journalctl -xe на systemd системи (Debian 8.x, Jessie и по-висока).

След като редактирате профила, за да премахнете или коригирате ограничението, можете отново да включите режима за налагане на двоичния файл с:

aa-налагане / път / към / програма

В горния пример заменете / path / to / program с пълния път към двоичния файл, засегнат от въпросния профил.

Ако имате проблем с програма и тя е в режим на оплакване, дневниците ще предоставят конкретна информация за това, което действие е отказано. Полето на операцията ще обясни какво се е опитала да направи програмата, полето на профила, конкретният засегнат профил, името ще посочи целта на действието (i.д. какъв файл е спрян от операция за четене или запис), а заявените и отказани маски показват дали операцията, както поискана от програмата, така и отказана по профил, е била четена или четена-записвана.

Можете да деактивирате изцяло профил, като изпълните:

aa-disable / path / to / program

Или можете да деактивирате AppArmor напълно, като редактирате файла: / etc / default / grub.г / apparmor.cfg да съдържа:

GRUB_CMDLINE_LINUX_DEFAULT = ”$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 0”

След това се изпълнява:

update-grub

И рестартиране на вашата система.

Работа с AppArmor профили

Профилите на AppArmor се намират в / etc / apparmor.г / директория. Ако инсталирате пакета apparmor-profile и apparmor-profiles-extra пакети, ще намерите профили в / usr / share / doc / apparmor-profile и / usr / share / doc / apparmor-profile / extra. За да ги активирате, копирайте файловете в / etc / apparmor.d след това ги редактирайте, за да сте сигурни, че съдържат стойностите, които искате, запазете и след това изпълнете:

презареждане на услугата apparmor

Ако искате да презаредите само един профил, изпълнете:

apparmor_parser -r / etc / apparmor.г / профил

Където „профил“ е името на въпросния профил.

Не се препоръчва просто да копирате профилите и допълнителните профили в / etc / apparmor.d директория, без да ги редактирате ръчно. Някои профили може да са стари, а някои със сигурност няма да съдържат стойностите, които искате. Ако все пак ги копирате, поне ги настройте да се оплакват, за да можете да наблюдавате нарушения, без да нарушавате производствени програми:

cd / etc / apparmor.д
за f в *.*; направете жалба / etc / apparmor.г / $ е; Свършен

Можете да използвате командата aa-prince поотделно, за да активирате профили, които искате да запазите, да настроите тези, които причиняват проблеми, и да наложите тези, или да премахнете тези, които не са ви необходими, като изпълните aa-disable или премахнете файла на профила от / etc / apparmor.д.

Създаване на AppArmor профил

Преди да създадете потребителски профил, ще искате да потърсите в / etc / apparmor.d и / usr / share / doc / apparmor-profile директории за съществуващ профил, който покрива въпросния двоичен файл. За да ги търсите, изпълнете:

find / usr / share / doc / apparmor-profile | grep “програма” -i

Сменете програма с програмата, която искате да защитите с AppArmor. Ако го намерите, копирайте го в / etc / apparmor.d и след това редактирайте файла в любимия си текстов редактор.

Всеки профил се състои от три основни раздела: включва, възможности и пътища. Можете да намерите полезна справка в документацията на SuSE.

Включва

Включва предоставя синтаксис, който можете да използвате във файла. Те използват синтаксиса C / C ++ #include <> и обикновено се позовават на абстракции, намерени в / etc / apparmor.г / директория за абстракции.

Възможности

Разделът за възможности, който обикновено се намира след включването, изброява конкретни възможности, които програмата може да изпълни. Например можете да позволите на програма да извърши настройка на операция с:

способност setuid

Възможността net_bind_service позволява на програмата да се свързва с мрежов порт. Ако не предоставите това, демон на сървър като Apache не може да отвори порт 80 и да слуша. Пропускането на тази възможност обаче може да осигури отлична сигурност за процеси, на които нямате доверие в мрежата.

Пътеки

Можете да изброите пътища, които програмата може да прочете (и евентуално да напише). Например, ако искате да разрешите на програмата достъп до файла / etc / passwd, добавете:

/ etc / passwd r

В профила. Обърнете внимание на „r“ - това означава само за четене. Ако промените това на „w“, ще бъде разрешено писането по този път или файл.

Дори ако разрешите път в AppArmor, той все още е обект на ограничения на файловата система на Linux (т.е.д. комплект с chmod, chgrp и chown). Въпреки това, AppArmor все пак ще осигури допълнителен слой защита, ако тези механизми бъдат компрометирани.

Заключение

Ключът към успешното внедряване на AppArmor е да зададете профили, които да се оплакват, след което да налагат. Внимателният преглед на регистрационния файл ще ви даде минималните пътища и възможности, необходими за успешната работа на програмата. Присвоявайки тези и не повече, вие значително ще увеличите сигурността на вашата система.

Инсталирайте най-новата стратегия за игра OpenRA на Ubuntu Linux
OpenRA е Libre / Free Real Time стратегия за игра, която пресъздава ранните игри на Westwood като класическата Command & Conquer: Red Alert. Разпредел...
Инсталирайте най-новия Dolphin Emulator за Gamecube & Wii на Linux
Dolphin Emulator ви позволява да играете избраните от вас игри Gamecube & Wii на Linux Personal Computers (PC). Като безплатно достъпен и емулатор на...
Как да използвам GameConqueror Cheat Engine в Linux
Статията обхваща ръководство за използването на GameConqueror cheat engine в Linux. Много потребители, които играят игри под Windows, често използват ...