Zatiaľ čo jadro Linuxu poskytuje dobrú izoláciu používateľov a silnú kontrolu nad oprávnením k súborom, MAC ako AppArmor poskytuje jemnejšie usporiadané povolenia a ochranu pred mnohými neznámymi hrozbami. Ak sa v jadre systému Linux alebo v inom systémovom démonovi zistí chyba zabezpečenia, dobre nakonfigurovaný systém AppArmor môže zabrániť prístupu na kritické cesty, ktoré by mohli byť problémom zraniteľné.
AppArmor môže efektívne pracovať v dvoch režimoch - vynucovanie a sťažovanie sa. Vynútiť je predvolený produkčný stav aplikácie AppArmor, zatiaľ čo sťažovanie sa je užitočné pri vývoji sady pravidiel založenej na skutočných operačných vzorcoch a pri porušovaní protokolovania. Konfiguruje sa prostredníctvom súborov obyčajného textu v relatívne priateľskom formáte a má kratšiu krivku učenia ako väčšina ostatných povinných systémov kontroly prístupu.
Inštalácia
Ak chcete nainštalovať AppArmor na Debian, spustite (ako root):
apt nainštalovať apparmor apparmor-utils auditdAk nepotrebujete nástroje na generovanie profilov, môžete auditd vynechať.
Ak chcete nainštalovať štartér a ďalšie profily, spustite:
apt nainštalovať apparmor-profiles apparmor-profiles-extraPretože AppArmor je modul jadra Linuxu, musíte ho povoliť pomocou nasledujúcich príkazov:
mkdir -p / etc / default / grub.dVytvorte súbor / etc / default / grub.d / apparmor.cfg s nasledujúcim obsahom:
GRUB_CMDLINE_LINUX_DEFAULT = "$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 1 zabezpečenie = apparmor"Uložte a ukončite, potom spustite:
update-grubPotom reštartujte počítač.
Diskutuje sa, či by sa to malo robiť automaticky. Možno budete chcieť nahliadnuť na koniec tohto hlásenia o chybe, aby ste zistili, či sa to od doby písania tohto článku zmenilo.
Po reštarte môžete skontrolovať, či je AppArmor povolený spustením:
aa-statusTento príkaz zobrazí zoznam načítaných profilov AppArmor a zoznam ich aktuálneho stavu súladu (vynútené, sťažnosti atď.).)
Ak spustíte:
ps auxZ | grep -v '^ neobmedzené'Zobrazí sa zoznam programov, ktoré sú obmedzené profilom AppArmor. Uzavretý program je program, ktorý je ovplyvnený a obmedzený (buď pasívne, v sťažnom režime alebo aktívne v vynútenom režime) aplikáciou AppArmor.
Zmena režimov / zakázanie AppArmor
Ak chcete zakázať AppArmor, pretože program nefunguje, môžete zvážiť umiestnenie profilu do režimu sťažnosti namiesto do režimu vynútenia. Spustíte to (ako root alebo cez sudo):
aa-sťažnosť / cesta / do / programuAk napríklad ping nebude fungovať správne, použite:
aa-sťažnosť / usr / bin / pingAkonáhle je profil v režime sťažovania, môžete skontrolovať protokolovanie cez / var / log / syslog alebo pomocou journalctl -xe na systémových systémoch (Debian 8.x, Jessie a vyššie).
Po úprave profilu, aby ste odstránili alebo upravili obmedzenie, môžete znova zapnúť vynútiteľný režim pre binárne súbory pomocou:
aa-vynútiť / cesta / do / programuVo vyššie uvedenom príklade nahraďte / path / to / program úplnou cestou k binárnemu súboru ovplyvnenému daným profilom.
Ak máte problém s programom a je v režime sťažovania, protokoly poskytnú konkrétne informácie o tom, aká akcia bola odmietnutá. V operačnom poli bude vysvetlené, o čo sa program pokúsil, v poli profilu konkrétny ovplyvnený profil, v názve bude uvedený cieľ akcie (i.e. aký súbor bol zastavený operáciou čítania alebo zápisu) a požadované a odmietnuté masky označujú, či bola operácia, či už požadovaná programom alebo zamietnutá podľa profilu, prečítaná alebo čítaná a zapísaná.
Profil môžete úplne zakázať spustením:
aa-disable / cesta / k / programuAlebo môžete AppArmor úplne zakázať úpravou súboru: / etc / default / grub.d / apparmor.cfg obsahovať:
GRUB_CMDLINE_LINUX_DEFAULT = ”$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 0”Potom beží:
update-grubA reštartujte systém.
Práca s profilmi AppArmor
Profily AppArmor sú umiestnené v / etc / apparmor.d / adresár. Ak nainštalujete balík balíkov apparmor-profiles a apparmor-profiles-extra, profily nájdete v adresári / usr / share / doc / apparmor-profiles a / usr / share / doc / apparmor-profiles / extra. Ak ich chcete aktivovať, skopírujte súbory do / etc / apparmor.d potom ich upravte, aby obsahovali požadované hodnoty, uložte a spustite:
znovu načítať službuAk chcete znovu načítať iba jeden profil, spustite:
apparmor_parser -r / etc / apparmor.d / profilKde „profil“ je názov príslušného profilu.
Neodporúča sa iba kopírovať profily a ďalšie profily do súboru / etc / apparmor.d bez ich ručnej úpravy. Niektoré profily môžu byť staré a niektoré určite neobsahujú požadované hodnoty. Ak ich všetky skopírujete, prinajmenšom ich nastavte tak, aby sa sťažovali, aby ste mohli monitorovať porušenia bez porušenia produkčných programov:
cd / etc / apparmor.dpre f v *.*; urobte sťažnosť / etc / apparmor.d / $ f; hotový
Príkaz aa-enforce môžete použiť jednotlivo na povolenie profilov, ktoré chcete zachovať, naladenie tých, ktoré spôsobujú problémy, a ich vynútenie, alebo na odstránenie tých, ktoré nepotrebujete, spustením aa-disable alebo odstránením súboru profilu z / etc / apparmor.d.
Vytvorenie profilu AppArmor
Pred vytvorením vlastného profilu budete chcieť prehľadať súbor / etc / apparmor.adresáre d a / usr / share / doc / apparmor-profiles pre existujúci profil, ktorý pokrýva daný binárny súbor. Ak ich chcete vyhľadať, spustite:
nájsť / usr / share / doc / apparmor-profiles | grep “program” -iVymeniť program s programom, ktorý chcete chrániť pomocou AppArmor. Ak nejaký nájdete, skopírujte ho do adresára / etc / apparmor.da upravte súbor vo svojom obľúbenom textovom editore.
Každý profil sa skladá z troch hlavných častí: obsahuje, možnosti a cesty. Užitočný odkaz nájdete v dokumentácii SuSE.
Zahŕňa
Zahŕňa poskytnutie syntaxe, ktorú môžete použiť vo vnútri súboru. Používajú syntax C / C ++ #include <> a zvyčajne odkazujú na abstrakcie nájdené v / etc / apparmor.adresár d / abstrakcie.
Schopnosti
Sekcia schopností, ktorá sa zvyčajne nachádza po zahrnutí, obsahuje zoznam konkrétnych schopností, ktoré môže program vykonávať. Môžete napríklad nechať program vykonať operáciu setuid s:
spôsobilosť setuidSchopnosť net_bind_service umožňuje programu viazať sa na sieťový port. Ak to neudelíte, serverový démon ako Apache nemôže otvoriť port 80 a počúvať. Vynechanie tejto funkcie však môže poskytnúť vynikajúce zabezpečenie procesov, ktorým v sieti nedôverujete.
Cesty
Môžete uviesť cesty, ktoré je program schopný čítať (a prípadne písať). Napríklad ak chcete povoliť programu prístup k súboru / etc / passwd, pridajte:
/ etc / passwd rV profile. Poznamenajte si „r“ - to znamená iba na čítanie. Ak zmeníte toto na „w“, bude povolené písanie na túto cestu alebo súbor.
Aj keď v AppArmor povolíte cestu, stále podlieha obmedzeniam systému súborov Linux (t.j.e. sada s chmod, chgrp a chown). AppArmor však aj tak poskytne ďalšiu vrstvu ochrany, ak by boli tieto mechanizmy narušené.
Záver
Kľúčom k úspešnému nasadeniu AppArmor je nastavenie profilov na sťažnosti a následné vynútenie. Starostlivé preskúmanie protokolu vám poskytne minimálne cesty a schopnosti potrebné na úspešnú prevádzku programu. Priradením týchto a ďalších položiek dramaticky zvýšite bezpečnosť vášho systému.