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