AppArmor Ubuntu server
AppArmor в Линукс е разширение за сигурност (подобно на SELinux), което ограничава достъпа на програмите до системни ресурси, файлове и мрежови възможности чрез профили. Целта е да се намали щетата при компрометирано приложение.
Когато обаче става въпрос за сървъри, тази логика понякога се обръща срещу нас. Според моя опит AppArmor на Ubuntu Server причинява повече проблеми, отколкото ползи. Няма да забравя случая, когато дълго не разбирах защо DNS не работи добре. Оказа се, че AppArmor е ограничил услугата, която работеше с хаотични прекъсвания, в които нямаше никаква логика. Затова на всяка нова инсталация на Ubuntu Server го деактивирам.
Проверка на статуса
sudo apparmor_status
Деактивиране на AppArmor
На съвременни Ubuntu Server системи (с systemd):
sudo systemctl stop apparmor
sudo systemctl disable apparmor
За пълно премахване на пакета:
sudo apt-get remove apparmor apparmor-utils
На по-стари Ubuntu версии (преди systemd) се използваха: sudo service apparmor stop и sudo update-rc.d -f apparmor remove.
Активиране отново (ако е нужно)
sudo apt-get install apparmor apparmor-utils
sudo systemctl enable apparmor
sudo systemctl start apparmor
Заключение
AppArmor е полезен инструмент в десктоп и контейнеризирани среди, но на production Ubuntu сървъри може да причини трудно диагностицируеми проблеми с услуги като DNS (Bind9), пощенски сървъри или уеб сървъри. Ако забележите необяснимо поведение на услуга, проверете AppArmor лога с dmesg | grep apparmor или journalctl -u apparmor — може да е именно той.