Míg a Linux kernel jó elkülönítést biztosít a felhasználóktól és erős fájlengedély-vezérlést biztosít, az MA, mint az AppArmor, finomabbra szabott engedélyeket és védelmet nyújt számos ismeretlen fenyegetés ellen. Ha biztonsági rést talál a Linux kernelben vagy más rendszerdémonban, a jól konfigurált AppArmor rendszer megakadályozhatja a kritikus útvonalakhoz való hozzáférést, amelyek veszélyeztetettek lehetnek a probléma szempontjából.
Az AppArmor kétféle módban képes hatékonyan működni - érvényesíteni és panaszt tenni. A kényszerítés az AppArmor alapértelmezett gyártási állapota, míg a reklamálás hasznos a valós működési mintákon alapuló szabálykészlet kialakításához és a szabálysértések naplózásához. Sima szöveges fájlokon keresztül van konfigurálva, viszonylag barátságos formátumban, és rövidebb tanulási görbével rendelkezik, mint a legtöbb más kötelező beléptető rendszer.
Telepítés
Az AppArmor telepítéséhez a Debian-ra futtassa (root-ként):
apt install apparmor apparmor-utils auditdKihagyhatja az auditd elemet, ha nincs szüksége profilalkotó eszközökre.
Indító és további profilok telepítéséhez futtassa:
apt install apparmor-profilok apparmor-profilok-extraMivel az AppArmor egy Linux kernelmodul, a következő parancsokkal kell engedélyeznie:
mkdir -p / etc / default / grub.dHozza létre az / etc / default / grub fájlt.d / apparmor.cfg a következő tartalommal:
GRUB_CMDLINE_LINUX_DEFAULT = "$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 1 security = apparmor"Mentés és kilépés, majd futtatás:
update-grubEzután indítsa újra.
Vita van arról, hogy ezt automatikusan meg kell-e tenni. Érdemes megkeresni a hibajelentés végét, hogy megtudja, megváltozott-e ez az írás óta.
Az újraindítás után ellenőrizheti, hogy az AppArmor engedélyezve van-e a futtatással:
aa-státuszEz a parancs felsorolja a betöltött AppArmor profilokat, és felsorolja azok aktuális megfelelőségi állapotát (kikényszerítve, panaszkodva stb.)
Ha fut:
ps auxZ | grep -v '^ unconfined'Megjelenik az AppArmor-profil által korlátozott programok listája. A zárt program az AppArmor által érintett és korlátozott (akár passzívan, panaszos módban, akár aktívan kényszerített módban).
Módok módosítása / az AppArmor letiltása
Ha kikapcsolja az AppArmor programot, mert egy program nem működik, akkor fontolja meg a profil panaszos módba helyezését kényszerített mód helyett. Ehhez futtassa (root-ként vagy sudo-n keresztül):
aa-reklamál / útvonal / programhozPéldául, ha a ping nem működik megfelelően, használja:
aa-reklamál / usr / bin / pingMiután egy profil panasz módban van, megvizsgálhatja a naplózást a / var / log / syslog fájlon keresztül vagy a journalctl -xe segítségével a systemd rendszereken (Debian 8.x, Jessie és magasabb).
Miután szerkesztette a profilt a korlátozás eltávolítására vagy módosítására, a bináris esetében ismét bekapcsolhatja a kényszerítési módot:
aa-kényszerítés / elérési út / programhozA fenti példában cserélje le a / path / to / program parancsot a bináris fájl teljes elérési útjára, amelyet a kérdéses profil érintett.
Ha problémája van egy programmal, és panaszkodási módban van, a naplók konkrét információkat tartalmaznak arról, hogy milyen műveletet utasítottak el. A műveleti mező elmagyarázza, hogy a program mit próbált megtenni, a profil mező az érintett profilt, a név megadja a művelet célját (i.e. milyen fájlt állítottak le egy olvasási vagy írási műveletnél), és a kért és elutasított maszkok jelzik, hogy a program által kért és a profilonként megtagadott műveletet elolvasták-e vagy írták-e.
A profilt teljesen letilthatja a futtatással:
aa-disable / path / to / programVagy letilthatja az AppArmor alkalmazást a fájl szerkesztésével: / etc / default / grub.d / apparmor.cfg tartalmaznia kell:
GRUB_CMDLINE_LINUX_DEFAULT = "$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 0"Aztán futás:
update-grubÉs indítsa újra a rendszert.
Munka az AppArmor profilokkal
Az AppArmor profilok az / etc / apparmor könyvtárban találhatók.d / könyvtár. Ha telepíti az apparmor-profilok és az apparmor-profilok-extra csomagok csomagot, akkor a / usr / share / doc / apparmor-profiles és / usr / share / doc / apparmor-profiles / extra fájlokat megtalálja. Aktiválásukhoz másolja a fájlokat az / etc / apparmor könyvtárba.d majd szerkessze őket, hogy biztosan tartalmazzák a kívánt értékeket, mentse el, majd futtassa:
szolgáltató apparmor újratöltéseHa csak egy profilt szeretne újratölteni, futtassa:
apparmor_parser -r / etc / apparmor.d / profilAhol a „profil” a kérdéses profil neve.
Nem ajánlott a profilokat és az extra profilokat csak az / etc / apparmor fájlba másolni.d könyvtár anélkül, hogy azokat kézzel szerkesztené. Egyes profilok régiek lehetnek, mások pedig biztosan nem tartalmazzák a kívánt értékeket. Ha mindet másolja, legalább állítsa panaszra, hogy figyelemmel kísérhesse a jogsértéseket anélkül, hogy megszakítaná a gyártási programokat:
cd / etc / apparmor.df-re *.*; do aa-reklamál / etc / apparmor.d / $ f; Kész
Az aa-enforce paranccsal külön-külön is engedélyezheti a megtartani kívánt profilokat, hangolhatja azokat, amelyek problémákat okoznak, és kikényszerítheti azokat, vagy eltávolíthatja azokat, amelyekre nincs szüksége, aa-disable futtatásával vagy a profilfájl eltávolításával az / etc / apparmor fájlból.d.
AppArmor profil létrehozása
Egyéni profil létrehozása előtt meg kell keresni az / etc / apparmor fájlt.d és / usr / share / doc / apparmor-profilok könyvtárak egy létező profilhoz, amely lefedi a szóban forgó bináris fájlt. Ezek kereséséhez futtassa:
find / usr / share / doc / apparmor-profiles | grep „program” -iCserélje ki program az AppArmor programmal védeni kívánt programmal. Ha talál ilyet, másolja az / etc / apparmor könyvtárba.d, majd szerkessze a fájlt a kedvenc szövegszerkesztőben.
Minden profil három fő szakaszból áll: tartalmazza, képességek és útvonalak. Hasznos referenciát talál a SuSE dokumentációjában.
Magába foglalja
Tartalmaz olyan szintaxist, amelyet a fájl belsejében használhat. A C / C ++ #include <> szintaxist használják, és általában az / etc / apparmor fájlban található absztrakciókat referálják.d / absztrakciók könyvtár.
Képességek
A képességek szakasz, amely általában a benne foglaltak után található, felsorolja azokat a speciális képességeket, amelyeket a program képes végrehajtani. Például engedélyezheti a programnak a setuid művelet végrehajtását:
képesség setuidA net_bind_service képesség lehetővé teszi, hogy egy program hálózati porthoz kapcsolódjon. Ha ezt nem engedélyezi, akkor az Apache-hoz hasonló szerverdémon nem tudja megnyitni a 80-as portot és hallgatni. Ennek a lehetőségnek az elhagyása azonban kiváló biztonságot nyújthat azoknak a folyamatoknak, amelyekben nem bízik a hálózatban.
Útvonalak
Felsorolhatja azokat az útvonalakat, amelyeket a program képes olvasni (és esetleg írni). Például, ha engedélyezi a program számára az / etc / passwd fájl elérését, adja hozzá:
/ etc / passwd rA profilban. Vegye figyelembe az „r” betűt - ez csak olvasható. Ha ezt „w” -re változtatja, akkor erre az útvonalra vagy fájlra lehet írni.
Még akkor is, ha engedélyez egy elérési utat az AppArmor programban, akkor is Linux fájlrendszer-korlátozások vonatkoznak rá (i.e. chmod, chgrp és chown beállítással). Az AppArmor azonban továbbra is extra védelmet nyújt, ha ezek a mechanizmusok sérülnek.
Következtetés
Az AppArmor sikeres telepítésének kulcsa a profilok beállítása a panaszra, majd az érvényesítés. A gondos naplóvizsgálat megadja Önnek a program sikeres működéséhez szükséges minimális utakat és képességeket. Ezek és nem több hozzárendelésével drámai módon növelheti a rendszer biztonságát.