AppArmor

Výukový program pro Debian AppArmor

Výukový program pro Debian AppArmor
AppArmor je povinný systém kontroly přístupu pro Linux. V povinném systému kontroly přístupu (MAC) ukládá jádro omezení na cesty, zásuvky, porty a různé vstupní / výstupní mechanismy. Byl vyvinut společností Immunex a nyní je udržován společností SUSE. Je součástí jádra Linuxu od verze 2.6.36.

Zatímco linuxové jádro poskytuje dobrou izolaci uživatelů a silnou kontrolu oprávnění k souborům, MAC jako AppArmor poskytuje jemnější oprávnění a ochranu před mnoha neznámými hrozbami. Pokud je v linuxovém jádře nebo jiném systémovém démonovi nalezena chyba zabezpečení, může dobře nakonfigurovaný systém AppArmor zabránit přístupu na kritické cesty, které by mohly být zranitelné vůči problému.

AppArmor může efektivně fungovat ve dvou režimech - vynucení a stížnost. Enforce je výchozí stav produkce AppArmor, zatímco stížnost je užitečná pro vývoj sady pravidel založených na vzorech skutečných operací a pro porušení protokolování. Je konfigurován prostřednictvím souborů prostého textu v relativně přátelském formátu a má kratší křivku učení než většina ostatních povinných systémů kontroly přístupu.

Instalace

Chcete-li nainstalovat AppArmor na Debian, spusťte (jako root):

apt install apparmor apparmor-utils auditd

Pokud nepotřebujete nástroje pro generování profilů, můžete auditd vynechat.

Chcete-li nainstalovat startér a další profily, spusťte:

apt install apparmor-profiles apparmor-profiles-extra

Protože AppArmor je modul jádra systému Linux, musíte jej povolit pomocí následujících příkazů:

mkdir -p / etc / default / grub.d

Vytvořte soubor / etc / default / grub.d / apparmor.cfg s následujícím obsahem:

GRUB_CMDLINE_LINUX_DEFAULT = "$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 1 zabezpečení = apparmor"

Uložte a ukončete a poté spusťte:

update-grub

Poté restartujte počítač.

Diskutuje se, zda by to mělo být provedeno automaticky. Možná budete chtít na konci tohoto hlášení o chybě zjistit, zda se to od doby psaní tohoto článku změnilo.

Po restartu můžete zkontrolovat, zda je AppArmor povolen spuštěním:

aa-status

Tento příkaz zobrazí seznam načtených profilů AppArmor a seznam jejich aktuálního stavu dodržování předpisů (vynucené, stížnosti atd.).)

Pokud spustíte:

ps auxZ | grep -v '^ unconfined'

Zobrazí se seznam programů, které jsou omezeny profilem AppArmor. Omezený program je program, který je ovlivněn a omezen (buď pasivně, v režimu stížnosti nebo aktivně v vynuceném režimu) aplikací AppArmor.

Změna režimů / deaktivace AppArmor

Pokud si přejete deaktivovat AppArmor, protože program nefunguje, můžete zvážit umístění profilu do režimu stížnosti namísto vynuceného režimu. Chcete-li to provést, spusťte (jako root nebo prostřednictvím sudo):

aa-stížnost / cesta / k / programu

Pokud například ping nebude fungovat správně, použijte:

aa-stěžovat si / usr / bin / ping

Jakmile je profil v režimu stížností, můžete zkontrolovat protokolování pomocí / var / log / syslog nebo pomocí journalctl -xe na systémových systémech (Debian 8.x, Jessie a vyšší).

Jakmile profil upravíte, abyste odstranili nebo upravili omezení, můžete pro binární soubor znovu zapnout režim vynucení pomocí:

aa-vynutit / cesta / k / programu

Ve výše uvedeném příkladu nahraďte / path / to / program úplnou cestou k binárnímu souboru ovlivněnému daným profilem.

Pokud máte problém s programem a je v režimu stížností, protokoly poskytnou konkrétní informace o tom, jaká akce byla odepřena. Pole operace vysvětlí, o co se program pokusil, pole profilu ovlivněný konkrétní profil, název určí cíl akce (i.E. jaký soubor byl zastaven z operace čtení nebo zápisu) a požadované a zamítnuté masky označují, zda operace, jak požadovaná programem, tak zamítnutá podle profilu, byla přečtena nebo přečtena a zapsána.

Profil můžete zcela deaktivovat spuštěním:

aa-disable / cesta / k / programu

Nebo můžete AppArmor úplně deaktivovat úpravou souboru: / etc / default / grub.d / apparmor.cfg obsahovat:

GRUB_CMDLINE_LINUX_DEFAULT = ”$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 0”

Pak běží:

update-grub

A restartujte systém.

Práce s profily AppArmor

Profily AppArmor jsou umístěny v / etc / apparmor.d / adresář. Pokud nainstalujete balíček balíčků apparmor-profiles a apparmor-profiles-extra, najdete profily v / usr / share / doc / apparmor-profiles a / usr / share / doc / apparmor-profiles / extra. Chcete-li je aktivovat, zkopírujte soubory do / etc / apparmor.d poté je upravte, aby obsahovaly požadované hodnoty, uložte je a spusťte:

znovu načíst službu apparmor

Chcete-li znovu načíst pouze jeden profil, spusťte:

apparmor_parser -r / etc / apparmor.d / profil

Kde „profil“ je název příslušného profilu.

Nedoporučuje se pouze kopírovat profily a další profily do / etc / apparmor.d adresář bez jejich ruční úpravy. Některé profily mohou být staré a některé určitě neobsahují požadované hodnoty. Pokud je všechny zkopírujete, přinejmenším je nastavte tak, aby si stěžovali, abyste mohli sledovat porušení bez porušování produkčních programů:

cd / etc / apparmor.d
pro f v *.*; stěžovat si aa / etc / apparmor.d / $ f; Hotovo

Pomocí příkazu aa-enforce můžete jednotlivě povolit profily, které chcete zachovat, vyladit ty, které způsobují problémy, a vynutit si je, nebo odstranit ty, které nepotřebujete, spuštěním aa-disable nebo odebráním souboru profilu z / etc / apparmor.d.

Vytvoření profilu AppArmor

Před vytvořením vlastního profilu budete chtít prohledat soubor / etc / apparmor.adresáře d a / usr / share / doc / apparmor-profiles pro existující profil, který pokrývá daný binární soubor. Chcete-li je vyhledat, spusťte:

najít / usr / share / doc / apparmor-profiles | grep “program” -i

Nahradit program s programem, který chcete chránit pomocí AppArmor. Pokud nějaký najdete, zkopírujte jej do / etc / apparmor.da upravte soubor ve svém oblíbeném textovém editoru.

Každý profil se skládá ze tří hlavních sekcí: zahrnuje, možnosti a cesty. Užitečný odkaz najdete v dokumentaci SuSE.

Zahrnuje

Zahrnuje poskytnout syntaxi, kterou můžete použít uvnitř souboru. Používají syntaxi C / C ++ #include <> a obvykle odkazují na abstrakce nalezené v / etc / apparmor.adresář d / abstrakce.

Schopnosti

Sekce schopností, obvykle nalezená po zahrnutí, uvádí konkrétní funkce, které může program provádět. Například můžete nechat program provést setuid operaci pomocí:

schopnost setuid

Funkce net_bind_service umožňuje programu vázat se na síťový port. Pokud to neudělíte, serverový démon jako Apache nemůže otevřít port 80 a naslouchat. Vynechání této funkce však může poskytnout vynikající zabezpečení pro procesy, kterým v síti nedůvěřujete.

Cesty

Můžete uvést cesty, které je program schopen číst (a případně zapisovat). Například pokud chcete programu povolit přístup k souboru / etc / passwd, přidejte:

/ etc / passwd r

V profilu. Všimněte si „r“ - to znamená pouze pro čtení. Pokud toto změníte na „w“, bude povolen zápis do této cesty nebo souboru.

I když povolíte cestu v AppArmor, stále podléhá omezením systému souborů Linux (tj.E. sada s chmod, chgrp a chown). AppArmor však bude i nadále poskytovat další vrstvu ochrany, pokud by tyto mechanismy byly ohroženy.

Závěr

Klíčem k úspěšnému nasazení AppArmor je nastavení profilů na stížnosti a následné vynucení. Pečlivé prozkoumání protokolu vám poskytne minimální cesty a schopnosti potřebné pro úspěšný provoz programu. Přiřazením těchto a nic víc dramaticky zvýšíte zabezpečení systému.

Hry Výukový program OpenTTD
Výukový program OpenTTD
OpenTTD je jednou z nejpopulárnějších her pro obchodní simulaci. V této hře musíte vytvořit skvělé dopravní podnikání. Začnete však na začátku kolem r...
Hry SuperTuxKart pro Linux
SuperTuxKart pro Linux
SuperTuxKart je skvělý titul navržený tak, aby vám ve vašem systému Linux přinesl zážitek Mario Kart zdarma. Je to docela náročné a zábavné hrát, je n...
Hry Výukový program Battle for Wesnoth
Výukový program Battle for Wesnoth
The Battle for Wesnoth je jednou z nejpopulárnějších strategických her s otevřeným zdrojovým kódem, které si v tuto chvíli můžete zahrát. Tato hra se ...