Ubuntu server

Anketa

Pokračovanie ktorého návodu by ste chceli?:

Partenské projekty

Ubuntu server - AppArmor

Verzia pre tlačOdoslať priateľoviPDF verzia

AppArmor je implementácia bezpečnostného modulu Linuxu (Linux Security Module) riadenia prístupu na základe mandátov založených na menách. AppArmor zabraňuje jednotlivým programom meniť súbory, ktoré sú definované v zozname dokumentu posix 1003.1e.

AppArmor sa nainštaluje spolu so systémom a hneď sa aj aktivuje. Používa profily aplikácií, aby určil, ktoré súbory a s akými právami daná aplikácia vyžaduje. Niektoré balíky nainštalujú svoje vlastné profily a niektoré ďalšie dodatočné profily sa nachádzajú v balíku apparmor-profiles.

Ak chceme nainštalovať balík apparmor-profiles, do príkazového riadka zadáme:

sudo apt-get install apparmor-profiles

Profily AppArmor majú dva módy spustenia:

  • Upozorňovací/Učiaci: umožňuje porušiť pravidlá v profile, porušenia sú však zaznamenané. Toto je užitočné pri testovaní a tvorbe nových profilov.

  • Prinucovací/Zákazový: striktne presadzuje politiku profilu a pokus o jej porušenie zaznamená.

Použitie AppArmor

Balík apparmor-utils obsahuje nástroje pre príkazový riadok, ktorými môžeme pre AppArmor zmeniť mód spustenia, nájsť stav profilu, vytvoriť nové profily, atď.

  • apparmor_status sa používa na zobrazenie aktuálneho stavu profilov AppArmor.

    sudo apparmor_status
  • aa-complain prepne profil do upozorňovacieho módu.

    sudo aa-complain /cesta/k/programu
  • aa-enforce prepne profil do prinucovacieho módu.

    sudo aa-enforce /cesta/k/programu
  • Profily AppArmor sa nachádzajú v priečinku /etc/apparmor.d. Tento priečinok môžeme použiť na zmenu módu všetkých profilov naraz.

    Ak chceme všetky profily naraz prepnúť do upozorňovacieho módu, zadáme:

    sudo aa-complain /etc/apparmor.d/*

    Keby sme ich chceli prepnúť do prinucovacieho módu, zadáme:

    sudo aa-enforce /etc/apparmor.d/*
  • apparmor_parser sa používa na načítanie profilu do jadra. Môžeme ho použiť aj na obnovenie už načítaných profilov použitím prepínača -r. Profil načítame takto:

    cat /etc/apparmor.d/neno.profilu | sudo apparmor_parser -a

    Obnovenie profilu urobíme takto:

    cat /etc/apparmor.d/meno.profilu | sudo apparmor_parser -r
  • /etc/init.d/apparmor môže byť použitý na obnovenie všetkých profilov:

    sudo /etc/init.d/apparmor reload
  • Priečinok /etc/apparmor.d/disable môže byť použitý pomocou príkazu apparmor_parser -R na vypnutie profilu.

    sudo ln -s /etc/apparmor.d/meno.profilu /etc/apparmor.d/disable/
    sudo apparmor_parser -R /etc/apparmor.d/meno.profilu

    Ak chceme znova zapnúť vypnutý profil, odstránime symbolické prepojenie na profil v  /etc/apparmor.d/disable/. Potom načítame profil spolu s prepínačom -a.

    sudo rm /etc/apparmor.d/disable/meno.profilu
    cat /etc/apparmor.d/meno.profilu | sudo apparmor_parser -a
  • AppArmor môžeme vypnúť a zrušiť aj načítanie modulu jadra zadaním príkazu:

    sudo /etc/init.d/apparmor stop
    sudo update-rc.d -f apparmor remove
  • Ak chceme znova obnoviť AppArmor, zadáme:

    sudo /etc/init.d/apparmor start
    sudo update-rc.d apparmor defaults
[Note]

Spojenie meno.profilu nahraďte menom profilu, s ktorým chcete manipulovať. Nahraďte tiež cestu /cesta/k/programu/ aktuálnou cestou spustiteľného súboru. Napríklad príkaz ping má cestu /bin/ping

Profily

Profily AppArmor sú jednoduché textové súbory umiestnené v priečinku /etc/apparmor.d/. Súbory sú nazvané podľa celej cesty k spustiteľnému súboru pričom znak "/" je nahradený znakom ".". Napríklad /etc/apparmor.d/bin.ping je AppArmor profil pre príkaz /bin/ping.

Existujú dva hlavné typy pravidiel použitých v profiloch:

  • Záznamy ciest: hovoria, ku ktorým súborom aplikácie je možné pristupovať v súborovom systéme.

  • Capability entries: určujú, aké právomoci budú môcť použiť neoprávnené procesy.

Napríklad sa môžeme pozrieť na profil /etc/apparmor.d/bin.ping:

#include <tunables/global>
/bin/ping flags=(complain) {
  #include <abstractions/base>
  #include <abstractions/consoles>
  #include <abstractions/nameservice>
 
  capability net_raw,
  capability setuid,
  network inet raw,
 
  /bin/ping mixr,
  /etc/modules.conf r,
}
  • #include <tunables/global>: príkaz include znamená začleniť z iných súborov. Tento umožňuje nastaviť chovanie viacerých aplikácií, ktoré nastavíme v spoločnom súbore.

  • /bin/ping flags=(complain): cesta k profilovanému programu a nastavenie upozorňovacieho módu.

  • capability net_raw,: umožňuje aplikáciám pristupovať k funkcionalite CAP_NET_RAW Posix.1e.

  • /bin/ping mixr,: umožňuje aplikáciám čítať a spúšťať súbor.

[Note]

Ak upravíte profil, musíte ho znova načítať. Viac informácii sa dozviete v časti “Použitie AppArmor”.

Vytvorenie profilu

  • Návrh testovacieho plánu: Skúsme porozmýšlať, ako by aplikácia mala byť spúšťaná. Testovací plán si rozdelíme na malé testovacie prípady. Každý testovací prípad by mal mať krátky opis a zoznam krokov podobných týmto.

    Niektoré štandardné testovacie prípady sú:

    • Štartovanie programu.

    • Vypínanie programu.

    • Obnovenie programu.

    • Testovanie všetkých príkazov, ktoré podporuje init skript.

  • Generovanie nového profilu: Na vygenerovanie nového profilu použijem nástroj aa-genprof. Do príkazového riadka zadáme:

    sudo aa-genprof program

    Napríklad:

    sudo aa-genprof slapd
  • Ak chceme náš nový profil začleniť do balíka apparmor-profiles, súbor odošleme ako chybové hlásenie k balíku AppArmor do systému Launchpad:

    • Napíšeme testovací plán a testovacie prípady.

    • Pripojíme nový profil k hláseniu o chybe.

Aktualizácia profilov

Keď sa program nespráva tak ako by sa mal, odošle sa správa do log súborov. Na hľadanie v súboroch so záznamami AppArmor môžeme použiť nástroj aa-logprof, prezrieť si ich a aktualizovať profily. Do príkazového riadka zadáme:

sudo aa-logprof

Zdroje

  • Popis ďalších konfiguračných možností je na stránke AppArmor Administration Guide.
  • Detaily o používaní AppArmor s ostatnými vydaniami Ubuntu sa nachádzajú na stránke AppArmor Community Wiki.
  • Stránka OpenSUSE AppArmor je iná verzia úvodu do AppArmor.
  • Skvelým miestom, kde môžete získať pomoc ku AppArmor a spojiť sa s ostatnými členmi komunity Ubuntu Servera, je na IRC kanále #ubuntu-server na  freenode.