Az AppArmor a névalapú kötelező hozzáférés-vezérlés megvalósítása Linux biztonsági modulként. Az AppArmor az egyes programokat felsorolt fájlok és a posix 1003.1e vázlat szerinti képességek halmazához köti.
Az AppArmor alapértelmezésben telepítésre és betöltésre kerül. Az alkalmazásokra profilokat használ az alkalmazás által igényelt fájlok és jogosultságok meghatározásához. Néhány csomag saját profilt telepít, valamint további profilok találhatók az apparmor-profiles csomagban.
Az apparmor-profiles csomag telepítéséhez adja ki a következő parancsot:
sudo apt-get install apparmor-profiles
Az AppArmor profiloknak két végrehajtási módjuk van:
-
Panaszkodás/tanulás: a profilsértések engedélyezettek, és naplózásra kerülnek. Új profilok teszteléséhez és fejlesztéséhez hasznos.
-
Kényszerített/korlátozott: kikényszeríti a profilházirendet, és naplózza a megsértését.
Az apparmor-utils csomag parancssori segédprogramokat tartalmaz, amelyekkel módosíthatja az AppArmor végrehajtási módot, meghatározhatja egy profil állapotát, új profilokat hozhat létre stb.
-
Az apparmor_status segítségével megjeleníthető az AppArmor profilok aktuális állapota.
sudo apparmor_status
-
Az aa-complain a profilt panaszkodás módba kapcsolja.
sudo aa-complain /útvonal/végrehajtható
-
Az aa-enforce a profilt kényszerített módba kapcsolja.
sudo aa-enforce /útvonal/végrehajtható
-
Az AppArmor profilok az
/etc/apparmor.d
könyvtárban találhatók. Használatával az összes profil módja kezelhető.Adja ki a következő parancsot az összes profil panaszkodás módba kapcsolásához:
sudo aa-complain /etc/apparmor.d/*
Minden profil kényszerített módba kapcsolásához:
sudo aa-enforce /etc/apparmor.d/*
-
Az apparmor_parser segítségével a profil betölthető a kernelbe. A -r kapcsoló segítségével használható a pillanatnyilag betöltött profil újratöltésére is. Profil betöltése:
cat /etc/apparmor.d/profil.név | sudo apparmor_parser -a
Profil újratöltése:
cat /etc/apparmor.d/profil.név | sudo apparmor_parser -r
-
Az
/etc/init.d/apparmor
segítségével az össze profil újratölthető:sudo /etc/init.d/apparmor reload
-
Az
/etc/apparmor.d/disable
könyvtár az apparmor_parser -R kapcsolójával együtt a profil letiltására használható.sudo ln -s /etc/apparmor.d/profil.név /etc/apparmor.d/disable/ sudo apparmor_parser -R /etc/apparmor.d/profil.név
Letiltott profil újraengedélyezéséhez távolítsa el a profilra mutató szimbolikus linket az
/etc/apparmor.d/disable/
könyvtárból. Ezután töltse be a profilt a -a kapcsoló használatával.sudo rm /etc/apparmor.d/disable/profil.név cat /etc/apparmor.d/profil.név | sudo apparmor_parser -a
-
Az AppArmor letiltható, és a kernelmodul eltávolítható a következő parancs kiadásával:
sudo /etc/init.d/apparmor stop sudo update-rc.d -f apparmor remove
-
Az AppArmor újraengedélyezéséhez adja ki a következőt:
sudo /etc/init.d/apparmor start sudo update-rc.d apparmor defaults
A profil.név helyet a kezelni kívánt profil nevét adja meg. Az |
Az AppArmor profilok egyszerű szöveges fájlok az /etc/apparmor.d/
könyvtárban. A fájlok neve az általuk leírt végrehajtható fájl teljes elérési útvonala, a „/” helyett a „.” elválasztóval. Az /etc/apparmor.d/bin.ping
például a /bin/ping
parancs AppArmor profilja.
A profilokban használt szabályoknak két fő típusuk van:
-
Útvonalbejegyzések: ezek részletezik az alkalmazás által a fájlrendszerben elérhető fájlokat.
-
Képességbejegyzések: ezek meghatározzák a korlátozott folyamat által használható jogosultságokat.
Vegyük például az /etc/apparmor.d/bin.ping
fájlt:
#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>: más fájlokban található utasítások felvétele. Ez lehetővé teszi a több alkalmazásra vonatkozó utasítások közös fájlba helyezését.
-
/bin/ping flags=(complain): a profil által leírt program elérési útja, valamint a complain (panaszkodás) mód beállítása.
-
capability net_raw,: lehetővé teszi az alkalmazás számára a CAP_NET_RAW Posix.1e képesség elérését.
-
/bin/ping mixr,: engedélyezi az alkalmazásnak a fájl olvasását és végrehajtását.
A profilt a szerkesztés befejezése után újra kell tölteni. Részletekért lásd „Az AppArmor használata” szakaszt. |
-
Készítsen teszttervet: Gondolkodjon róla, hogy az alkalmazást hogyan kell megvizsgálni. A teszttervet kis tesztesetekre kell felosztani. Minden tesztesetnek rendelkeznie kell rövid leírással, és a követendő lépések listájával.
Néhány általános teszteset:
-
A program elindítása.
-
A program leállítása.
-
A program újratöltése.
-
Az init parancsfájl által támogatott összes parancs tesztelése.
-
-
Az új profil előállítása: Az aa-genprof használatával állítsa elő az új profilt. Adja ki a következő parancsot:
sudo aa-genprof végrehajtható
Például:
sudo aa-genprof slapd
-
A profil felvételéhez az apparmor-profiles csomagba, küldjön hibajelentést a Launchpadra az AppArmor csomaghoz:
-
Vigye fel a teszttervet és teszteseteket.
-
Mellékelje az új profilt a hibajelentéshez.
-
Amikor a program hibásan viselkedik, akkor auditálási üzenetek kerülnek a naplófájlokba. Az aa-logprof program segítségével kiszűrhetők a naplófájlokból az AppArmor auditálási üzenetei, majd áttekintésük után a profilok frissíthetők. Adja ki a következő parancsot:
sudo aa-logprof
-
Speciális beállítási lehetőségekért lásd az AppArmor Administration Guide dokumentumot.
-
Az AppArmor más Ubuntu kiadásokon történő használatával kapcsolatban lásd az AppArmor közösségi wikioldalát.
-
Az OpenSUSE AppArmor oldala az AppArmor egy újabb bemutatását tartalmazza.
-
Az AppArmor problémák felvetésére, és az Ubuntu kiszolgáló közösség életébe való bekapcsolódásra remek hely a freenode #ubuntu-server IRC-csatornája.