Permisiunile Linux stabilesc ce poate face un utilizator asupra fișierelor. AppArmor adaugă încă un nivel: controlează ce poate face o anumită aplicație, chiar dacă procesul rulează cu un utilizator care are acces mai larg.
De exemplu, un serviciu web poate avea dreptul să citească fișierele site-ului, dar să fie blocat când încearcă să acceseze directoare sensibile, să execute programe nepermise sau să folosească anumite capabilități. AppArmor este mecanismul Mandatory Access Control activ implicit în Ubuntu și aplică reguli definite în profiluri asociate programelor.
Verifică dacă AppArmor funcționează
Pe Ubuntu, AppArmor este instalat și încărcat implicit. Verifică starea:
sudo aa-status
Ar trebui să vezi:
apparmor module is loaded
Urmat de numărul profilurilor încărcate, profilurile aflate în enforce, cele aflate în complain și procesele izolate.
Verifică și serviciul:
systemctl status apparmor
Profilurile sunt păstrate în:
/etc/apparmor.d/
Listează-le:
sudo find /etc/apparmor.d \
-maxdepth 1 -type f -printf '%f\n' | sort
Numele profilului folosește de obicei calea executabilului cu / înlocuit prin ., de exemplu un profil pentru /usr/sbin/aplicatie poate apărea ca usr.sbin.aplicatie.
Instalează instrumentele de administrare
Pentru comenzile aa-complain, aa-enforce și aa-logprof, instalează:
sudo apt update
sudo apt install apparmor-utils
Poți instala și profilurile suplimentare:
sudo apt install apparmor-profiles
Unele profiluri suplimentare sunt experimentale și pot fi livrate în modul complain. Nu le trece direct în enforce pe un server de producție înainte să testezi toate funcțiile aplicației.
Înțelege diferența dintre complain și enforce
AppArmor folosește două moduri importante:
complain: permite acțiunea, dar înregistrează încălcarea în loguri;enforce: blochează acțiunea nepermisă și o înregistrează.
Pentru a vedea profilurile din fiecare mod:
sudo aa-status
Înainte să modifici un profil, află calea reală a executabilului:
command -v nume-aplicatie
readlink -f "$(command -v nume-aplicatie)"
Dacă există deja un profil pentru acel executabil, îl poți trece temporar în modul de observare:
sudo aa-complain /cale/catre/executabil
Pornește aplicația și testează funcțiile reale: autentificare, încărcarea fișierelor, scrierea logurilor, conexiunea la baza de date și sarcinile programate.
După ce profilul este verificat:
sudo aa-enforce /cale/catre/executabil
Nu folosi modul complain permanent pentru o aplicație pe care crezi că ai securizat-o. În acest mod, regulile sunt observate, nu aplicate.
Găsește blocările produse de AppArmor
Dacă o aplicație nu mai poate citi un fișier sau porni după activarea profilului, caută evenimentele AppArmor:
sudo journalctl -k --since today |
grep 'apparmor="DENIED"'
Pentru ultimele evenimente:
sudo journalctl -k -n 300 |
grep -i apparmor
Un eveniment poate indica:
profile=
name=
operation=
requested_mask=
denied_mask=
profile identifică regula activă, name arată resursa accesată, iar operation explică acțiunea încercată.
Nu rezolva automat orice blocare oferind acces larg. Verifică mai întâi dacă aplicația chiar trebuie să acceseze acea cale. Un acces neobișnuit poate indica o configurare greșită sau un comportament care merită investigat.
Ajustează profilurile fără să modifici fișierul principal
Pentru profilurile care acceptă configurări locale, folosește fișierele din:
/etc/apparmor.d/local/
De exemplu, dacă profilul principal se numește:
/etc/apparmor.d/usr.sbin.aplicatie
ajustările locale pot fi păstrate în:
/etc/apparmor.d/local/usr.sbin.aplicatie
Această separare reduce riscul ca modificările tale să fie suprascrise la actualizarea pachetului.
Poți analiza evenimentele și primi propuneri interactive:
sudo aa-logprof
Nu accepta mecanic toate regulile sugerate. aa-logprof îți arată accesul observat, dar tu trebuie să decizi dacă este legitim.
După modificarea profilului, verifică și reîncarcă:
sudo apparmor_parser -r \
/etc/apparmor.d/numele.profilului
Pentru reîncărcarea tuturor profilurilor:
sudo systemctl reload apparmor
Testează înainte de producție
Fluxul sigur este:
backup profil
→ mod complain
→ teste funcționale
→ analiză loguri
→ reguli strict necesare
→ reload
→ mod enforce
→ testare din nou
Creează backup înainte de editare:
sudo cp -a \
/etc/apparmor.d/numele.profilului \
/etc/apparmor.d/numele.profilului.bak
Nu dezactiva AppArmor la nivelul întregului sistem doar pentru că o aplicație este blocată. Ubuntu avertizează că dezactivarea sa reduce securitatea, iar în versiunile moderne oprirea completă presupune schimbarea parametrilor kernelului și repornirea sistemului.
AppArmor este util când îl tratezi ca pe un control precis: observi comportamentul aplicației, permiți numai resursele necesare și verifici logurile după fiecare schimbare.
Surse folosite
Ubuntu Security Documentation — AppArmor, arhitectură, profiluri și moduri de funcționare.
Ubuntu Server Documentation — administrarea AppArmor, aa-status, aa-logprof și reîncărcarea profilurilor.
Ubuntu Security Documentation — restricționarea privilegiilor și rolul AppArmor în Ubuntu.

















































