0887 371 498 support@itservice-bg.net
10.10.2021 · Самуил Арсов · Linux commands, Ubuntu

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 — може да е именно той.