1. AppArmor
AppArmor is een Linux Security Module implementatie van op naam gebaseerde toegangscontrole. AppArmor beperkt individuele programma's tot een set van specifieke bestanden. Eén van de doelen van AppArmor is dat het makkelijk te begrijpen en makkelijk toe te passen moet zijn. AppArmor is echter nog vrij nieuw in Ubuntu, en omdat het nog redelijk ingewikkeld is, is het nog niet geschikt om gebruikt te worden door beginnende gebruikers.
AppArmor is beschikbaar vanaf Ubuntu 7.04 (Feisty Fawn).
1.1. Installatie
AppArmor is standaard geïnstalleerd en geladen in Gutsy. Enkele pakketten installeren hun eigen profielen. Aanvullende profielen kunnen gevonden worden in het pakket apparmor-profiles van de Universe repository.
1.1.1. Installeren van aanvullende AppArmor profielen
- activeer de Universe repository
Installeer apparmor-profiles
1.2. Gebruik
Alle opdrachten dienen in een terminal uitgevoerd te worden.
1.2.1. Geef de huidige status van apparmor weer
sudo apparmor_status
1.2.2. Plaats een profiel in complain mode
sudo aa-complain /path/to/bin
Voorbeeld:
sudo aa-complain /bin/ping
1.2.3. Plaats alle profielen in complain mode
sudo aa-complain /etc/apparmor.d/*
1.2.4. Plaats een profiel in enforce mode
sudo aa-enforce /path/to/bin
Voorbeeld:
sudo aa-enforce /bin/ping
1.2.5. Plaats alle profielen in enforce mode
sudo aa-enforce /etc/apparmor.d/*
1.2.6. Deactiveer AppArmor raamwerk
sudo /etc/init.d/apparmor kill sudo update-rc.d -f apparmor remove
1.2.7. Activeer AppArmor raamwerk
sudo /etc/init.d/apparmor start sudo update-rc.d apparmor start 37 S .
1.2.8. Herlaad alle profielen
sudo /etc/init.d/apparmor reload
1.2.9. Herlaad een profiel
cat /etc/apparmor.d/profile.name | sudo apparmor_parser -r
Voorbeeld:
cat /etc/apparmor.d/bin.ping | sudo apparmor_parser -r
1.2.10. Deactiveer een profiel
ln -s /etc/apparmor.d/profile.name /etc/apparmor.d/disable/ apparmor_parser -R /etc/apparmor.d/profile.name
Voorbeeld:
ln -s /etc/apparmor.d/bin.ping /etc/apparmor.d/disable/ apparmor_parser -R /etc/apparmor.d/bin.ping
1.2.11. Activeer een profiel
standaard zijn profielen geactiveerd (d.w.z. geladen in de kernel en toegepast op processen).
rm /etc/apparmor.d/disable/profile.name cat /etc/apparmor.d/profile.name | sudo apparmor_parser -a
Voorbeeld:
rm /etc/apparmor.d/disable/bin.ping cat /etc/apparmor.d/bin.ping | sudo apparmor_parser -a
1.3. FAQ
1.3.1. apparmor_status rapporteert processen die niet beperkt zijn maar wel een profiel gedefiniëerd hebben
Herstart de weergegeven processen. Het systeem opnieuw starten lost het probleem ook op.
AppArmor kan alleen processen volgen en beschermen die gestart zijn nadat de kernel module geladen is. Nadat het apparmor pakket geïnstalleerd is wordt apparmor gestart. Maar draaiende processen worden niet beschermd door AppArmor. herstarten van de processen of het systeem opnieuw opstarten zal dit probleem oplossen.
U kan ook een profiel toepassen op een al draaiend proces door het uitvoeren van de volgende opdracht:
sudo sh -c "echo 'setprofile /path/to/bin' > /proc/pid/attr/current"
- Aanmaken van een nieuw profiel
1.3.2. Het ontwerpen van een test plan
Bedenk hoe een toepassing uitgevoerd zou moeten worden. Het test plan zou opgedeeld moeten worden in kleine testcases. Elke testcase zou een kleine beschrijving moeten hebben en de te volgen stappen.
Enkele standaard testcases zijn :
- start het programma
- stop het programma
- herlaad het programma
- test alle opdrachten ondersteund door het init script
1.3.3. Genereer het nieuwe profiel
Gebruik aa-genprof om een nieuw profiel te genereren.
Gebruik de opdracht aa-genprof in een terminal:
sudo aa-genprof executable
Voorbeeld:
sudo aa-genprof slapd
De man pagina heeft meer informatie: man aa-genprof.
1.3.4. Uw nieuwe profiel toevoegen aan het apparmor-profiles pakket
Om uw nieuwe profiel toe te voegen aan het apparmor-profiles pakket, stuur een bug naar Launchpad AppArmor package:
- Voeg uw test plan en testcases bij
- Voeg uw nieuwe profiel toe aan de bug
1.4. Updaten van een profiel
Wanneer programma's zich misdragen worden er berichten naar de logbestanden verzonden. Het programma aa-logprof kan worden gebruikt om logbestanden op AppArmor berichten te scannen, beoordeel ze en update de profielen indien nodig.
sudo aa-logprof
De man pagina heeft meer informatie: man aa-logprof.
1.5. Bronnen
Intro to AppArmor for Geeks : detailed usage of apparmor.
AppArmor now in Feisty : small tutorial about generating a new profile for evince.
https://help.ubuntu.com/community/AppArmor: het origineel
Originele vertaler van het wiki artikel: ServaasXubuntuUser Aanvullingen en correcties: Bartek, Joop13 en Johanvd