Rozdíly
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
| bezpečnost:apparmor [2012/08/01 17:13] – vytvořeno ubuntu | bezpečnost:apparmor [2019/02/25 17:21] (aktuální) – upraveno mimo DokuWiki 127.0.0.1 | ||
|---|---|---|---|
| Řádek 1: | Řádek 1: | ||
| + | ====== AppArmor ====== | ||
| + | {{.: | ||
| + | |||
| + | ====== Instalace ====== | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ====== Spuštění ====== | ||
| + | |||
| + | {{: | ||
| + | < | ||
| + | sudo aa-status | ||
| + | </ | ||
| + | |||
| + | ====== Jak to funguje ====== | ||
| + | // | ||
| + | |||
| + | ===== Příklad profilu ===== | ||
| + | {{.: | ||
| + | < | ||
| + | / | ||
| + | # [...] | ||
| + | @{PROC}/ | ||
| + | /etc/mtab r, | ||
| + | / | ||
| + | / | ||
| + | |||
| + | # browsing directories allowed | ||
| + | / r, | ||
| + | /**/ r, | ||
| + | |||
| + | owner @{HOME}/ | ||
| + | owner @{HOME}/ | ||
| + | owner @{HOME}/ | ||
| + | owner @{HOME}/ | ||
| + | |||
| + | # [...] | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | |||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | |||
| + | # for PDFs | ||
| + | / | ||
| + | |||
| + | # Openoffice.org | ||
| + | / | ||
| + | |||
| + | # [...] | ||
| + | } | ||
| + | </ | ||
| + | Pokud je tento profil aktivní, Thunderbird může pouze | ||
| + | * číst (**r**) základní systémové soubory v ///etc// a ///proc// a procházet adresáře, | ||
| + | * zapisovat a číst (**rw**) do vlastních adresářů a na plochu, | ||
| + | * spouštět (**x**) pouze aplikace nutné k chodu nebo otevření přílohy. | ||
| + | |||
| + | Vše ostatní je zakázáno. Pokud je útok na systém veden přes kompromitaci Thunderbirdu, | ||
| + | |||
| + | Na druhou stranu je patrné, že každá zvýšená bezpečnost s sebou může přinést nižší komfort pro uživatele. Např. v případě instalace nestandardního doplňku může být potřeba ručně doplnit profil. Z tohoto důvodu jsou nové profily zaváděny velmi pomalu a s relativně volnými omezeními, což je ovšem vždy bezpečnější než aplikace bez profilu. | ||
| + | |||
| + | ===== Příklad záznamu do logu ===== | ||
| + | {{: | ||
| + | |||
| + | Ukazuje neúspěšný (// | ||
| + | < | ||
| + | Jul 27 13:25:20 lucid-lean kernel: [ 8142.886121] type=1503 audit(1280229920.037: | ||
| + | </ | ||
| + | {{: | ||
| + | |||
| + | {{ .: | ||
| + | |||
| + | ====== Doplňkové informace ====== | ||
| + | |||
| + | ===== Výhody ===== | ||
| + | |||
| + | * vynikající způsob aktivní ochrany před napadením | ||
| + | * relativně jednoduchá administrace (pro mírně pokročilého uživatele) | ||
| + | * možnost měnit profil za běhu systému i programu (ručně) | ||
| + | * možnost spouštět neznámé programy v " | ||
| + | |||
| + | ===== Nevýhody ===== | ||
| + | |||
| + | * obtížný pro začátečníka - pokud něco nefunguje, může být těžké nalézt příčinu | ||
| + | * menší uživatelská přívětivost - občas může být potřeba aktualizovat profil | ||
| + | * v Ubuntu neexistuje grafická nadstavba (aplikace, kde by se dalo nastavení " | ||
| + | * nenabízí samo možnosti při běhu programu - vždy je potřeba se podívat do logů a upravit profil //ex post// | ||
| + | |||
| + | ===== Alternativy ===== | ||
| + | |||
| + | * [[SELinux]] | ||
| + | |||
| + | |||
| + | ====== Odstranění ====== | ||
| + | |||
| + | {{: | ||
| + | |||
| + | ====== Odkazy ====== | ||
| + | * [[https:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | * [[http:// | ||
| + | |||
| + | ====== Technické detaily ====== | ||
| + | |||
| + | ===== Dostupné příkazy ===== | ||
| + | |||
| + | ==== aa-status ==== | ||
| + | < | ||
| + | arrange@lucid-lean: | ||
| + | [sudo] password for arrange: | ||
| + | apparmor module is loaded. | ||
| + | 14 profiles are loaded. | ||
| + | 12 profiles are in enforce mode. | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | 2 profiles are in complain mode. | ||
| + | / | ||
| + | / | ||
| + | 4 processes have profiles defined. | ||
| + | 4 processes are in enforce mode : | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | / | ||
| + | 0 processes are in complain mode. | ||
| + | 0 processes are unconfined but have a profile defined. | ||
| + | </ | ||
| + | |||
| + | * // | ||
| + | * existuje 14 profilů, 2 z nich jsou v módu // | ||
| + | * 4 profily mají odpovídající běžící proces | ||
| + | |||
| + | ==== apparmor_parser ==== | ||
| + | < | ||
| + | sudo apparmor_parser -r -T -W / | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | sudo apparmor_parser -R / | ||
| + | </ | ||
| + | |||
| + | ===== Syntax profilového souboru ===== | ||
| + | |||
| + | Prázdné řádky a řádky začínající na **#** jsou ignorovány (kromě ''# | ||
| + | |||
| + | ==== Include ==== | ||
| + | |||
| + | Do profilu je možné přidat pomocí '' | ||
| + | < | ||
| + | #include < | ||
| + | #include < | ||
| + | </ | ||
| + | |||
| + | ==== Nastavení cest a zástupných znaků ==== | ||
| + | |||
| + | // | ||
| + | |||
| + | **∗** | ||
| + | |||
| + | **∗∗** - zástupný znak pro libovolný počet jakýchkoliv znaků **včetně** | ||
| + | |||
| + | **?** - zástupný znak pro libovolný jeden znak kromě ⁄ | ||
| + | |||
| + | === Příklady === | ||
| + | %%/tmp/*%% | ||
| + | |||
| + | soubory přímo v adresáři /tmp | ||
| + | |||
| + | %%/tmp/*/%% | ||
| + | |||
| + | adresáře přímo v adresáři /tmp | ||
| + | |||
| + | %%/tmp/**%% | ||
| + | |||
| + | vše (=adresáře i soubory) v libovolné hloubce pod /tmp | ||
| + | |||
| + | %%/ | ||
| + | |||
| + | adresáře (pouze) v libovolné hloubce pod /tmp | ||
| + | |||
| + | |||
| + | ==== Nastavení přístupových práv ==== | ||
| + | |||
| + | **r** | ||
| + | |||
| + | čtení | ||
| + | |||
| + | **w** | ||
| + | |||
| + | zápis (nelze použít zároveň s //a//) | ||
| + | |||
| + | **a** | ||
| + | |||
| + | připojení (// | ||
| + | |||
| + | **k** | ||
| + | |||
| + | zamknutí (//lock//) souboru | ||
| + | |||
| + | **px** | ||
| + | |||
| + | spuštění programu, ale jen v případě, že má aktivní profil (v opačném případě je spuštění zakázáno). Předává systémové proměnné. | ||
| + | |||
| + | **Px** | ||
| + | |||
| + | stejně jako //px//, ale nepředává systémové proměnné | ||
| + | |||
| + | **ux** | ||
| + | |||
| + | bezpodmínečné spuštění programu, předává proměnné | ||
| + | |||
| + | **Ux** | ||
| + | |||
| + | bezpodmínečné spuštění programu, nepředává proměnné | ||
| + | |||
| + | **ix** | ||
| + | |||
| + | spuštění programu ve stejném prostředí a se stejnými omezeními jaké má původní program | ||
| + | |||
| + | **m** | ||
| + | |||
| + | umožňuje mapovat spustitelná data do paměti ('' | ||
| + | |||
| + | **l** | ||
| + | |||
| + | vytváření pevných odkazů (// | ||
| + | |||
| + | ==== Sítě ==== | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | === Příklady použití === | ||
| + | < | ||
| + | network, | ||
| + | network inet, | ||
| + | network inet stream, | ||
| + | network inet tcp, | ||
| + | network tcp, | ||
| + | </ | ||
| + | |||
| + | * povolí veškerou síťovou komunikaci | ||
| + | * povolí veškerou síťovou komunikaci protokolu IPv4 | ||
| + | * povolí síťovou komunikaci IPv4 přes TCP | ||
| + | * totéž co v předchozím | ||
| + | * povolí TCP komunikaci přes IPv4 i IPv6. | ||
| + | |||
| + | ==== Další příkazy ==== | ||
| + | === owner === | ||
| + | |||
| + | povolí přístup jen tehdy, pokud je uživatel zároveň vlastníkem souboru | ||
| + | < | ||
| + | owner /home/*/** rw, | ||
| + | /home/*/foo rw, | ||
| + | </ | ||
| + | |||
| + | === audit === | ||
| + | zapíše zprávu do logu v každém případě, ne jen tehdy, pokud došlo k zákazu přístupu | ||
| + | < | ||
| + | audit /etc/shadow w, | ||
| + | /etc/shadow r, | ||
| + | </ | ||
| + | |||
| + | === deny === | ||
| + | zakáže určitou činnost. To je užitečné v případě, že potřebujete | ||
| + | * něco zakázat, a přitom nechcete, aby se zpráva o tom pořád vyskytovala v logu (zakáže, ale potlačí zprávu) | ||
| + | * vymezit konkrétní zakázanou oblast v širším pravidle | ||
| + | |||
| + | < | ||
| + | @{HOME}/** rw, | ||
| + | deny @{HOME}/ | ||
| + | </ | ||
| + | Povolí čtení a zápis v celém domovském adresáři kromě //~/.ssh//. | ||
| + | === capability === | ||
| + | viz '' | ||
| + | < | ||
| + | capability chown | ||
| + | </ | ||
| + | Může měnit UID a GID. | ||
| + | |||
| + | ===== Záznamy v logu ===== | ||
| + | |||
| + | ==== type ==== | ||
| + | Proměnná //type// může nabývat hodnot 1501-1506. Nejběžnější je // | ||
| + | * 1501 - AUDIT - záznamy související s příkazem '' | ||
| + | * 1502 - ALLOWED - povoleno | ||
| + | * 1503 - DENIED - zakázáno | ||
| + | * 1504 - HINT - informace k procesu | ||
| + | * 1505 - STATUS - změny v konfiguraci | ||
| + | * 1506 - ERROR - vnitřní chyba // | ||