Förstå AppArmor i Ubuntu [Linux]
Du har nog hört talas om AppArmor medan du installerar Ubuntu, men eftersom det inte är en applikation som visas i Applikationsmenyn och den inte visas i någon grafisk form, har de flesta säkert ingen aning om vad den gör och varför Det är viktigt för ditt system. Kort sagt är AppArmor en säkerhetsmodul som begränsar enskilda program till en uppsättning listade filer och funktioner, så att de inte orsakar kaos på ditt system.
Vad är AppArmor?
AppArmor är ett obligatoriskt åtkomstkontrollsystem (MAC) som begränsar program till en begränsad uppsättning resurser. Det begränsar program till en uppsättning filer, attribut och funktioner, så det går inte att gå djupt in i systemet och utgöra kaos (om inte det är tillåtet). Istället för Windows-UAC-modellen som ger kontroll till användarna, binder AppArmor åtkomstkontrollattributen till själva programmet.
Hur AppArmor fungerar
AppArmor fungerar på kärnnivå och laddas under uppstarten. Det sätt AppArmor hanterar tillståndet är via Profiler. Profiler är en uppsättning regler som bestämmer vad programmet kan och inte kan göra. Det finns två lägen som profilerna kan köra: Enforcement and Complain . Enforcement-läget är en strikt tillämpning av den policy som definieras i profilen samt rapportering av försummelser av försummelser. Klagomod kommer endast att rapportera försöket om försummelse av policyn, men verkställer inte politiken. De flesta profiler är laddade i Enforcement-läget, men det kan också finnas ett bra antal tredjepartsprofiler som laddas i Klagläget.
Kolla in din AppArmor-status
Om du använder Ubuntu 7.04 eller senare installeras AppArmor som standard och laddas när du startar upp datorn. För att kontrollera AppArmor-status skriver du följande kommando i terminalen:
sudo apparmor_status
Så här ser du:
I mitt system kan du se att det finns 17 profiler laddade i Enforcement-läge och 4 pågående processer verkställs av AppArmor.
Hitta funktionshindrade AppArmor-profiler
Förutom de profiler som körs vid uppstart, finns det flera profiler som är tillgängliga men deaktiveras som standard. Du kan kolla in dem i mappen "/etc/apparmor.d/disable". Härifrån kan du se att Firefox och Rsyslogd-profilerna inte är aktiverade.
Firefox-profilen var förmodligen inaktiverad eftersom det leder till en prestandaförlust i Firefox, men om du gillar att aktivera profilen så kan du surfa på webben i mer frid, så här kan du göra det.
Öppna en terminal och typ:
sudo aa-enforce /etc/apparmor.d/usr.bin.firefox
För att inaktivera det igen:
sudo ln -s /etc/apparmor.d/usr.bin.firefox /etc/apparmor.d/disable/ sudo apparmor_parser -R /etc/apparmor.d/usr.bin.firefox
Hur ser AppArmor profil ut?
Även om profilerna låter som en komplicerad programmodul, är det faktiskt en enkel textfil med inkluderade filvägar som anger vilka mappar och kataloger applikationen kan komma åt. Så här ser eVince-profilen ut (du kan enkelt klicka på någon profil i mappen "/etc/apparmor.d" för att öppna den i textredigeraren).
Skapa egna profiler för att stänga applikationen
Ubuntu har gjort ett ganska bra jobb för att skydda dig, men om du vill begränsa en anpassad applikation som inte är skyddad av Ubuntu, kan du skapa din egen profil för att låsa ner programmet. Det här är särskilt användbart i ett serverkrav där många program körs i bakgrunden där du inte kan se den.
Obs! Innan du skapar egna profiler är det bäst att först titta på det befintliga AppArmor-profilsbiblioteket för att kontrollera om profilen för din ansökan är tillgänglig. Du kan också installera " apparmor-profiles
" för att få en extra lista med profiler.
För att skapa egna AppArmor-profiler måste du först installera "apparmor-utils".
sudo apt-get installera apparmor-utils
När du har installerat kör följande kommando för att starta profileringen:
sudo aa-genprof / path / to / application
där "/ sökväg / till / ansökan" är sökvägen till den applikation som du vill profilera. Standardapplikationsmappen är "/ usr / bin", men det kan vara annorlunda beroende på applikationen.
Därefter startar du programmet som du ska profilera (lämnar terminalen). För det här exemplet använder jag Krita. Använd programmet som du brukar göra på någon annan dag.
För varje åtgärd du utför på applikationen, återgå till terminalen och tryck på "Shift + s" för att få det att söka efter ändringar.
Härifrån kan du se sökvägen som applikationen åtkomst till och åtgärdens allvar. Du kan då "Tillåt (A)" eller "Neka (D)" åtgärden.
Fortsätt göra detta för resten av de åtgärder som utförts på ansökan. För att få det bästa resultatet är det bäst att du planerar din lista över åtgärder innan du börjar profilera.
Slutligen, när du är klar, tryck på "Shift + F" för att avsluta profileringen och "Shift + s" för att spara profilen.
När du väl har skapats kommer profilen att sparas i mappen "/etc/apparmor.d" och laddas i Enforcement-läge.
Redigera profiler
För att redigera din nyskapade profil, använd följande kommando:
sudo aa-logprof / path / to / application
AppArmor kommer sedan att skanna loggposterna och låta dig göra ändringar i profilen.
Stoppa och starta om AppArmor
Av några anledningar att du behöver stoppa eller starta om AppArmor, kan du enkelt göra det med
sudo service apparmor stoppa #stop apparmor
och
sudo service apparmor starta om #restart apparmor
Mer information om AppArmor finns på Ubuntu AppArmor-sidan.
Bildkrediter: Knight in Shining Armor