Lai gan Linux kodols nodrošina labu lietotāju izolāciju un spēcīgu failu atļauju kontroli, MAC, piemēram, AppArmor, nodrošina precīzākas atļaujas un aizsardzību pret daudziem nezināmiem draudiem. Ja Linux kodolā vai citā sistēmas dēmonā tiek konstatēta drošības ievainojamība, labi konfigurēta AppArmor sistēma var novērst piekļuvi kritiskajiem ceļiem, kas varētu būt neaizsargāti pret šo problēmu.
AppArmor var efektīvi strādāt divos veidos - izpildīt un sūdzēties. Izpilde ir AppArmor noklusējuma ražošanas statuss, savukārt sūdzība ir noderīga, lai izstrādātu kārtulu kopu, kas balstīta uz reāliem darbības modeļiem, un reģistrētu pārkāpumus. Tas ir konfigurēts caur vienkārša teksta failiem salīdzinoši draudzīgā formātā, un tam ir īsāka mācīšanās līkne nekā lielākajai daļai citu obligāto piekļuves kontroles sistēmu.
Uzstādīšana
Lai Debian instalētu AppArmor, palaidiet (kā root):
apt install apparmor apparmor-utils auditdVarat izlaist auditd, ja jums nav nepieciešami profila ģenerēšanas rīki.
Ja vēlaties instalēt startera un papildu profilus, palaidiet:
apt instalēt apparmor-profiles apparmor-profiles-extraTā kā AppArmor ir Linux kodola modulis, jums tas jāiespējo ar šādām komandām:
mkdir -p / etc / default / grub.dIzveidojiet failu / etc / default / grub.d / aparmors.cfg ar šādu saturu:
GRUB_CMDLINE_LINUX_DEFAULT = "$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 1 security = apparmor"Saglabājiet un izejiet, pēc tam palaidiet:
update-grubPēc tam restartējiet.
Ir debates, ja tas būtu jādara automātiski. Iespējams, vēlēsities iepazīties ar šī kļūdas ziņojuma beigām, lai uzzinātu, vai tas ir mainīts kopš šī rakstīšanas brīža.
Pēc restartēšanas varat pārbaudīt, vai AppArmor ir iespējots, palaižot:
aa-statussŠajā komandā tiks uzskaitīti ielādētie AppArmor profili un to pašreizējais atbilstības stāvoklis (izpildīts, sūdzēts utt.).)
Ja jūs vadāt:
ps auxZ | grep -v '^ unconfined'Tiks parādīts to programmu saraksts, kuras ierobežo AppArmor profils. Ierobežota programma ir programma, kuru AppArmor ietekmē un ierobežo (pasīvi, sūdzību režīmā vai aktīvi izpildes režīmā).
Režīmu maiņa / AppArmor atspējošana
Ja vēlaties atspējot AppArmor, jo programma nedarbojas, varat apsvērt profila ievietošanu sūdzības režīmā, nevis piespiedu režīmā. Lai to izdarītu, palaidiet (kā root vai izmantojot sudo):
aa-sūdzēties / ceļš / uz / programmuPiemēram, ja ping nedarbosies pareizi, izmantojiet:
aa-sūdzēties / usr / bin / pingKad profils ir sūdzību režīmā, jūs varat pārbaudīt reģistrēšanu, izmantojot / var / log / syslog vai ar journalctl -xe sistēmas sistēmās (Debian 8.x, Jessie un augstāk).
Kad esat rediģējis profilu, lai noņemtu vai pielāgotu ierobežojumu, bināram režīmam varat atkal ieslēgt izpildes režīmu ar:
aa-enforce / ceļš / uz / programmuIepriekš minētajā piemērā aizstājiet / path / to / program ar pilnu ceļu uz bināro failu, kuru ietekmē attiecīgais profils.
Ja jums ir problēmas ar programmu un tā darbojas sūdzību režīmā, žurnāli sniegs konkrētu informāciju par to, kāda darbība tika noraidīta. Darbības lauks paskaidros, ko programma mēģināja darīt, profila lauks - konkrētais skartais profils, nosaukums norādīs darbības mērķi (i.e. kurš fails tika apturēts no lasīšanas vai rakstīšanas operācijas), un pieprasītās un noraidītās maskas norāda, vai operācija, kuru gan pieprasīja programma, gan liegta katram profilam, tika lasīta vai lasīta-rakstāma.
Profilu var pilnībā atspējot, palaižot:
aa-atspējojiet / ceļu / uz / programmuVai arī jūs varat pilnībā atspējot AppArmor, rediģējot failu: / etc / default / grub.d / aparmors.cfg satur:
GRUB_CMDLINE_LINUX_DEFAULT = ”$ GRUB_CMDLINE_LINUX_DEFAULT apparmor = 0”Pēc tam darbojas:
update-grubUn restartējiet sistēmu.
Darbs ar AppArmor profiliem
AppArmor profili atrodas / etc / apparmor.d / direktorija. Instalējot paketi apparmor-profiles un apparmor-profiles-extra package, jūs atradīsit profilus mapēs / usr / share / doc / apparmor-profiles un / usr / share / doc / apparmor-profiles / extra. Lai tos aktivizētu, kopējiet failus mapē / etc / apparmor.d pēc tam rediģējiet tos, lai pārliecinātos, ka tajos ir vēlamās vērtības, saglabājiet un pēc tam palaidiet:
pakalpojuma apkarotāja pārlādēšanaJa vēlaties atkārtoti ielādēt tikai vienu profilu, palaidiet:
apparmor_parser -r / etc / apparmor.d / profilsKur “profils” ir attiecīgā profila nosaukums.
Nav ieteicams profilus un papildu profilus tikai kopēt mapē / etc / apparmor.d direktoriju bez roku rediģēšanas. Daži profili var būt veci, un daži, protams, nesatur vēlamās vērtības. Ja tos visus kopējat, vismaz iestatiet tos sūdzēties, lai jūs varētu uzraudzīt pārkāpumus, neizjaucot ražošanas programmas:
cd / etc / apparmor.dpar f *.*; do aa-sūdzēties / etc / apparmor.d / $ f; izdarīts
Varat izmantot komandu aa-enforce atsevišķi, lai iespējotu profilus, kurus vēlaties paturēt, noskaņot tos, kas rada problēmas, un tos ieviest, vai arī noņemt nevajadzīgos, palaižot aa-disable vai noņemot profila failu no / etc / apparmor.d.
AppArmor profila izveide
Pirms izveidojat pielāgotu profilu, vēlaties meklēt mapē / etc / apparmor.d un / usr / share / doc / apparmor-profiles direktorijas esošam profilam, kas aptver attiecīgo bināro failu. Lai meklētu šajos, palaidiet:
atrast / usr / share / doc / apparmor-profiles | grep “programma” -iAizvietot programmu ar programmu, kuru vēlaties aizsargāt, izmantojot AppArmor. Ja atrodat, nokopējiet to uz / etc / apparmor.d un pēc tam rediģējiet failu iecienītajā teksta redaktorā.
Katrs profils sastāv no trim galvenajām sadaļām: ietver, iespējas un ceļi. Noderīgu atsauci varat atrast SuSE dokumentācijā.
Ietilpst
Ietver nodrošināt sintaksi, kuru varat izmantot faila iekšpusē. Viņi izmanto sintaksi C / C ++ #include <> un parasti atsaucas uz abstrakcijām, kas atrodamas / etc / apparmor.d / abstraction katalogs.
Iespējas
Iespēju sadaļā, kas parasti tiek atrasta pēc iekļaušanas, ir norādītas īpašas iespējas, kuras programma var veikt. Piemēram, varat ļaut programmai veikt setuid darbību ar:
spēja setuidSpēja net_bind_service ļauj programmai saistīties ar tīkla portu. Ja jūs to nepiešķirt, servera dēmons, piemēram, Apache, nevar atvērt 80 portu un klausīties. Tomēr šīs iespējas izlaišana var nodrošināt izcilu drošību procesiem, kuriem tīklā neuzticaties.
Ceļi
Jūs varat uzskaitīt ceļus, kurus programma spēj nolasīt (un, iespējams, rakstīt). Piemēram, ja vēlaties atļaut programmai piekļūt failam / etc / passwd, pievienojiet:
/ etc / passwd rProfilā. Ievērojiet “r” - tas nozīmē tikai lasāmu. Ja mainīsit to uz “w”, tiks atļauts rakstīt uz šo ceļu vai failu.
Pat ja jūs atļaujat ceļu AppArmor, uz to joprojām attiecas Linux failu sistēmas ierobežojumi (t.i.e. komplekts ar chmod, chgrp un chown). Tomēr AppArmor joprojām nodrošinās papildu aizsardzības slāni, ja šie mehānismi tiek apdraudēti.
Secinājums
Veiksmīgas AppArmor izvietošanas atslēga ir profilu iestatīšana sūdzībai un pēc tam izpilde. Rūpīga žurnāla pārbaude sniegs jums minimālos ceļus un iespējas, kas nepieciešamas veiksmīgai programmas darbībai. Piešķirot šos un ne vairāk, jūs ievērojami palielināsiet sistēmas drošību.