AppArmor

Vodič za Debian AppArmor

Vodič za Debian AppArmor
AppArmor je obvezni sustav kontrole pristupa za Linux. U obveznom sustavu kontrole pristupa (MAC), kernel nameće ograničenja na putanje, utičnice, portove i razne ulazno / izlazne mehanizme. Razvio ga je Immunex, a sada ga održava SUSE. Dio je jezgre Linuxa od verzije 2.6.36.

Iako Linux jezgra pruža dobru izolaciju korisnika i snažnu kontrolu dozvola datoteka, MAC poput AppArmor pruža preciznije dozvole i zaštitu od mnogih nepoznatih prijetnji. Ako se u jezgri Linuxa ili drugom demonu sustava pronađe sigurnosna ranjivost, dobro konfigurirani sustav AppArmor može spriječiti pristup kritičnim stazama koje bi mogle biti osjetljive na problem.

AppArmor može učinkovito raditi u dva načina - provoditi i žaliti se. Enforce je zadani proizvodni status AppArmor-a, dok je žalba korisna za razvoj skupa pravila koji se temelji na stvarnim obrascima rada i za kršenje evidentiranja. Konfiguriran je putem običnih tekstualnih datoteka u relativno prijateljskom formatu i ima kraću krivulju učenja od većine ostalih obveznih sustava kontrole pristupa.

Montaža

Da biste instalirali AppArmor na Debian, pokrenite (kao root):

apt instalirati apparmor apparmor-utils auditd

Audit možete izostaviti ako vam nisu potrebni alati za stvaranje profila.

Ako želite instalirati starter i dodatne profile, pokrenite:

apt instalirati apparmor-profile apparmor-profile-extra

Budući da je AppArmor modul jezgre Linuxa, morate ga omogućiti sljedećim naredbama:

mkdir -p / etc / default / grub.d

Stvorite datoteku / etc / default / grub.d / apparmor.cfg sa sljedećim sadržajem:

GRUB_CMDLINE_LINUX_DEFAULT = "$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 1 sigurnost = apparmor"

Spremite i izađite, a zatim pokrenite:

update-grub

Zatim ponovno pokrenite.

Raspravlja se treba li to učiniti automatski. Možda ćete htjeti pogledati kraj ovog izvještaja o greškama da biste vidjeli je li to promijenjeno od vremena ovog pisanja.

Nakon ponovnog pokretanja možete provjeriti je li AppArmor omogućen pokretanjem:

aa-status

Ova naredba će prikazati učitane profile AppArmor i njihovo trenutno stanje usklađenosti (prisiljeni, žaliti se, itd.)

Ako trčite:

ps auxZ | grep -v '^ neograničeno'

Vidjet ćete popis programa koji su ograničeni AppArmor profilom. Ograničeni program je onaj na koji AppArmor utječe i ograničava ga (pasivno, u načinu žalbe ili aktivno u prisilnom načinu).

Promjena načina rada / onemogućavanje AppArmor

Ako želite onemogućiti AppArmor jer program ne radi, možda biste trebali razmisliti o postavljanju profila u način žalbe umjesto u prisilnom načinu. Da biste to učinili, pokrenite (kao root ili putem sudo):

aa-prigovor / put / do / programa

Na primjer, ako ping neće raditi ispravno, upotrijebite:

aa-prigovor / usr / bin / ping

Jednom kada je profil u načinu za žalbu, možete pregledati bilježenje putem / var / log / syslog ili pomoću journalctl -xe na systemd sustavima (Debian 8.x, Jessie i više).

Nakon što uredite profil da biste uklonili ili prilagodili ograničenje, možete ponovo uključiti način prisile za binarni sustav s:

aa-prisiliti / put / do / programa

U gornjem primjeru zamijenite / path / to / program punim putem do binarne datoteke na koju utječe dotični profil.

Ako imate problem s programom i on je u načinu žalbe, zapisnici će pružiti određene informacije o tome koja je radnja odbijena. Polje operacije objasnit će što je program pokušao učiniti, polje profila specifični profil na koji se to odnosi, ime će odrediti cilj radnje (i.e. koja je datoteka zaustavljena iz operacije čitanja ili pisanja), a tražene i odbijene maske ukazuju na to je li operacija, kako zahtijevana od programa, tako i odbijena po profilu, pročitana ili pročitana-napisana.

Profil možete u potpunosti onemogućiti pokretanjem:

aa-onemogući / put / do / programa

Ili možete potpuno onemogućiti AppArmor uređivanjem datoteke: / etc / default / grub.d / apparmor.cfg sadržavati:

GRUB_CMDLINE_LINUX_DEFAULT = ”$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 0”

Zatim trčanje:

update-grub

I ponovno podizanje sustava.

Rad s profilima AppArmor

Profili AppArmor nalaze se u / etc / apparmor.d / direktorij. Ako instalirate paket paketa apparmor-profile i apparmor-profiles-extra, profile ćete pronaći u / usr / share / doc / apparmor-profile i / usr / share / doc / apparmor-profile / extra. Da biste ih aktivirali, kopirajte datoteke u / etc / apparmor.d, a zatim ih uredite kako biste osigurali da sadrže vrijednosti koje želite, spremite i pokrenite:

ponovno učitavanje usluge apparmor

Ako želite ponovo učitati samo jedan profil, pokrenite:

apparmor_parser -r / etc / apparmor.d / profil

Gdje je "profil" naziv dotičnog profila.

Ne preporučuje se samo kopiranje profila i dodatnih profila u / etc / apparmor.d direktoriju bez ručnog uređivanja. Neki su profili možda stari, a neki zasigurno neće sadržavati vrijednosti koje želite. Ako ih sve kopirate, barem ih podesite da se žale kako biste mogli nadzirati kršenja bez prekida programa u produkciji:

cd / etc / apparmor.d
za f u *.*; učiniti aa-prigovor / etc / apparmor.d / $ f; gotovo

Naredbu aa-force možete koristiti pojedinačno da omogućite profile koje želite zadržati, podesite one koji uzrokuju probleme i provode ih ili uklonite one koji vam nisu potrebni pokretanjem aa-disable ili uklanjanjem datoteke profila iz / etc / apparmor.d.

Izrada profila AppArmor

Prije nego što stvorite prilagođeni profil, poželjet ćete pretražiti / etc / apparmor.d i / usr / share / doc / apparmor-profiles direktoriji za postojeći profil koji pokriva dotični binarni zapis. Da biste ih pretražili, pokrenite:

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

Zamijeniti program s programom koji želite zaštititi s AppArmor. Ako ga pronađete, kopirajte ga u / etc / apparmor.d, a zatim uredite datoteku u omiljenom uređivaču teksta.

Svaki se profil sastoji od tri glavna odjeljka: uključuje, mogućnosti i staze. Korisnu referencu možete pronaći u SuSE-ovoj dokumentaciji.

Uključuje

Uključuje pružanje sintakse koju možete koristiti unutar datoteke. Koriste sintaksu C / C ++ #include <> i obično upućuju na apstrakcije pronađene u / etc / apparmor.d / imenik apstrakcija.

Mogućnosti

Odjeljak s mogućnostima, koji se obično nalazi nakon uključuje, navodi određene mogućnosti koje program može izvesti. Na primjer, možete dopustiti programu da izvrši setuid operaciju sa:

sposobnost setuid

Sposobnost net_bind_service omogućuje programu da se veže na mrežni priključak. Ako to ne odobrite, demon poslužitelja poput Apachea ne može otvoriti priključak 80 i slušati. Međutim, izostavljanje ove mogućnosti može pružiti izvrsnu sigurnost za procese kojima ne vjerujete na mreži.

Staze

Možete navesti putove koje program može čitati (i možda pisati). Na primjer, ako želite dopustiti programu pristup datoteci / etc / passwd, dodajte:

/ etc / passwd r

U profilu. Obratite pažnju na “r” - to znači samo za čitanje. Ako ovo promijenite u "w", pisanje na ovu stazu ili datoteku bit će dopušteno.

Čak i ako dopustite put u AppArmor, on i dalje podliježe ograničenjima Linux datotečnog sustava (tj.e. postavljeno s chmod, chgrp i chown). Međutim, AppArmor će i dalje pružati dodatni sloj zaštite ako se ti mehanizmi ugroze.

Zaključak

Ključ uspješnog postavljanja AppArmor je postavljanje profila za žalbu, a zatim provođenje. Pažljivo ispitivanje dnevnika pružit će vam minimalne putove i mogućnosti potrebne za uspješan rad programa. Dodjeljivanjem ovih i više nećete dramatično povećati sigurnost vašeg sustava.

5 najboljih arkadnih igara za Linux
U današnje vrijeme računala su ozbiljni strojevi koji se koriste za igre na sreću. Ako ne uspijete dobiti novi visoki rezultat, znat ćete na što misli...
Bitka za Wesnoth 1.13.6 Razvoj objavljen
Bitka za Wesnoth 1.13.6 objavljeno prošlog mjeseca, šesto je razvojno izdanje u izdanju 1.13.x series i donosi niz poboljšanja, ponajviše korisničkog ...
Kako instalirati League Of Legends na Ubuntu 14.04
Ako ste ljubitelj League of Legends, ovo je prilika za vas da testirate League of Legends. Imajte na umu da je LOL podržan na PlayOnLinux ako ste kori...