AppArmor

Vadnica za Debian AppArmor

Vadnica za Debian AppArmor
AppArmor je obvezen sistem za nadzor dostopa za Linux. V obveznem sistemu za nadzor dostopa (MAC) jedro nalaga omejitve na poti, vtičnice, vrata in različne vhodno / izhodne mehanizme. Razvil ga je Immunex, zdaj pa ga vzdržuje SUSE. Je del jedra Linuxa od različice 2.6.36.

Medtem ko jedro Linuxa zagotavlja dobro izolacijo uporabnikov in močan nadzor nad dovoljenji datotek, MAC, kot je AppArmor, ponuja natančnejša dovoljenja in zaščito pred številnimi neznanimi grožnjami. Če v jedru Linuxa ali drugem sistemskem demonu najdemo varnostno ranljivost, lahko dobro konfiguriran sistem AppArmor prepreči dostop do kritičnih poti, ki bi lahko bile ranljive za težavo.

AppArmor lahko deluje v dveh načinih - uveljaviti in se pritožiti. Enforce je privzeti produkcijski status AppArmor, medtem ko je pritožba koristna za razvoj nabora pravil, ki temelji na dejanskih vzorcih delovanja, in za kršenje beleženja. Konfiguriran je z navadnimi besedilnimi datotekami v razmeroma prijazni obliki in ima krajšo učno krivuljo kot večina drugih obveznih sistemov za nadzor dostopa.

Namestitev

Če želite namestiti AppArmor v Debian, zaženite (kot root):

apt namestite apparmor apparmor-utils auditd

Auddd lahko izpustite, če ne potrebujete orodij za ustvarjanje profilov.

Če želite namestiti zaganjalnik in dodatne profile, zaženite:

apt namestite apparmor-profile apparmor-profile-extra

Ker je AppArmor modul jedra Linuxa, ga morate omogočiti z naslednjimi ukazi:

mkdir -p / etc / default / grub.d

Ustvarite datoteko / etc / default / grub.d / apparmor.cfg z naslednjo vsebino:

GRUB_CMDLINE_LINUX_DEFAULT = "$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 1 varnost = apparmor"

Shranite in zapustite, nato zaženite:

update-grub

Nato znova zaženite.

Razpravlja se o tem, ali je treba to storiti samodejno. Morda boste želeli pregledati konec tega poročila o napakah in preveriti, ali se je to spremenilo od trenutka pisanja.

Po ponovnem zagonu lahko z zagonom preverite, ali je AppArmor omogočen:

aa-status

Ta ukaz bo prikazal naložene profile AppArmor in njihovo trenutno stanje skladnosti (uveljavljeno, pritožba itd.)

Če zaženete:

ps auxZ | grep -v '^ brez omejitev'

Videli boste seznam programov, ki jih omejuje profil AppArmor. Omejeni program je tisti, na katerega AppArmor vpliva in ga omejuje (bodisi pasivno, v načinu pritožbe bodisi aktivno v prisilnem načinu).

Spreminjanje načinov / onemogočanje AppArmor

Če želite onemogočiti AppArmor, ker program ne deluje, boste morda želeli namesto profila prisiliti profil v način pritožbe. Če želite to narediti, zaženite (kot root ali prek sudo):

aa-pritožba / pot / do / programa

Če na primer ping ne deluje pravilno, uporabite:

aa-pritožba / usr / bin / ping

Ko je profil v načinu za pritožbo, lahko preverite beleženje prek / var / log / syslog ali z journalctl -xe v sistemskih sistemih (Debian 8.x, Jessie in novejši).

Ko uredite profil, da odstranite ali prilagodite omejitev, lahko znova vklopite način prisile za binarno datoteko z:

aa-force / path / to / program

V zgornjem primeru zamenjajte / path / to / program s polno potjo do binarne datoteke, na katero vpliva zadevni profil.

Če imate težave s programom in je v načinu za pritožbo, bodo dnevniki ponujali natančne informacije o tem, katero dejanje je bilo zavrnjeno. V operacijskem polju bo razloženo, kaj je program poskušal narediti, v polju profila je zadeven profil, ime bo določalo cilj dejanja (i.e. katera datoteka je bila ustavljena pri operaciji branja ali pisanja), zahtevane in zavrnjene maske pa kažejo, ali je bila operacija, ki jo zahteva program in je bila zavrnjena po profilu, prebrana ali brana-pisana.

Profil lahko v celoti onemogočite tako, da zaženete:

aa-disable / pot / do / programa

Lahko pa popolnoma onemogočite AppArmor z urejanjem datoteke: / etc / default / grub.d / apparmor.cfg, da vsebuje:

GRUB_CMDLINE_LINUX_DEFAULT = "$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 0"

Nato tek:

update-grub

In ponovni zagon sistema.

Delo s profili AppArmor

Profili AppArmor se nahajajo v / etc / apparmor.d / imenik. Če namestite paket paketov apparmor-profile in apparmor-profile-extra, boste profile našli v / usr / share / doc / apparmor-profile in / usr / share / doc / apparmor-profile / extra. Če jih želite aktivirati, kopirajte datoteke v / etc / apparmor.d nato jih uredite, da zagotovite, da vsebujejo želene vrednosti, shranite in nato zaženite:

ponovno nalaganje storitve apparmor

Če želite znova naložiti samo en profil, zaženite:

apparmor_parser -r / etc / apparmor.d / profil

Kjer je "profil" ime zadevnega profila.

Ni priporočljivo samo kopirati profilov in dodatnih profilov v / etc / apparmor.d imenika brez ročnega urejanja. Nekateri profili so lahko stari, nekateri pa zagotovo ne bodo vsebovali želenih vrednosti. Če jih vseeno kopirate, jih vsaj nastavite tako, da se bodo pritožili, da boste lahko spremljali kršitve, ne da bi prekinili programe v produkciji:

cd / etc / apparmor.d
za f v *.*; naredi aa-pritožba / etc / apparmor.d / $ f; Končano

Ukaz aa-force lahko uporabite posamezno, da omogočite profile, ki jih želite obdržati, nastavite tiste, ki povzročajo težave, in jih uveljavite ali odstranite tiste, ki jih ne potrebujete, tako da zaženete datoteko profila ali odstranite datoteko profila iz / etc / apparmor.d.

Ustvarjanje profila AppArmor

Preden ustvarite profil po meri, boste želeli poiskati / etc / apparmor.d in / usr / share / doc / apparmor-profile imenika za obstoječi profil, ki zajema zadevno binarno datoteko. Če želite iskati te, zaženite:

najdi / usr / share / doc / apparmor-profile | grep “program” -i

Zamenjati program s programom, ki ga želite zaščititi z AppArmor. Če ga najdete, ga kopirajte v / etc / apparmor.d in nato uredite datoteko v svojem najljubšem urejevalniku besedil.

Vsak profil je sestavljen iz treh glavnih odsekov: vključuje, zmožnosti in poti. Koristno referenco najdete v dokumentaciji SuSE.

Vključuje

Vključuje zagotavlja sintakso, ki jo lahko uporabite v datoteki. Uporabljajo sintakso C / C ++ #include <> in običajno sklice na abstrakcije, ki jih najdemo v / etc / apparmor.d / abstrakcije imenik.

Zmogljivosti

V razdelku o zmožnostih, ki ga običajno najdete po vključitvi, so navedene posebne zmožnosti, ki jih lahko izvaja program. Na primer, programu lahko dovolite, da izvede nastavitveno operacijo z:

sposobnost setuid

Sposobnost net_bind_service omogoča programu, da se veže na omrežna vrata. Če tega ne odobrite, strežniški demon, kot je Apache, ne more odpreti vrat 80 in poslušati. Če pa izpustite to možnost, lahko zagotovite odlično varnost za procese, ki jim v omrežju ne zaupate.

Poti

Lahko navedete poti, ki jih program lahko bere (in morda piše). Če želite na primer programu dovoliti dostop do datoteke / etc / passwd, dodajte:

/ etc / passwd r

V profilu. Upoštevajte »r« - to pomeni samo za branje. Če to spremenite v "w", bo dovoljeno pisanje na to pot ali datoteko.

Tudi če dovolite pot v AppArmor, zanjo še vedno veljajo omejitve datotečnega sistema Linux (tj.e. nastavljena s chmod, chgrp in chown). Vendar bo AppArmor še vedno zagotovil dodatno plast zaščite, če bodo ti mehanizmi ogroženi.

Zaključek

Ključ do uspešne uvedbe AppArmor je nastavitev profilov za pritožbo in nato uveljavitev. S skrbnim pregledom dnevnika boste dobili minimalne poti in zmožnosti, potrebne za uspešno delovanje programa. Z dodelitvijo le-teh in nič več boste močno povečali varnost sistema.

Namestite najnovejšo strategijo igre OpenRA v Ubuntu Linux
OpenRA je Libre / Free Real Time strateški stroj, ki poustvarja zgodnje igre Westwood, kot je klasična Command & Conquer: Red Alert. Porazdeljeni modi...
Namestite najnovejši Dolphin Emulator za Gamecube & Wii v Linux
Dolphin Emulator vam omogoča igranje izbranih iger Gamecube in Wii na osebnih računalnikih Linux (PC). Dolphin Emulator je prosto dostopen in odprtok...
Kako uporabljati GameConqueror Cheat Engine v Linuxu
Članek zajema vodnik o uporabi varalnice GameConqueror v Linuxu. Številni uporabniki, ki igrajo igre v sistemu Windows, pogosto uporabljajo aplikacijo...