Перейти к содержанию

Управление профилями AppArmor

Понимание рисков AppArmor в разработке MySQL

Хотя профили AppArmor помогают защитить ваш сервер MySQL, неверная конфигурация может привести к неожиданному поведению и потенциальным уязвимостям безопасности. Вот почему тщательный обзор и тестирование имеют решающее значение при внесении изменений:

Потенциальные риски неправильно настроенных профилей AppArmor

Неправильная конфигурация Описание
Чрезмерно жесткие профили Эти профили могут помешать MySQL получать доступ к необходимым файлам или ресурсам, что затрудняет его функциональность и вызывает ошибки. Представьте себе профиль, который случайно блокирует MySQL от записи в его журналы, что делает их бесполезными для устранения неполадок.
Чрезмерно мягкие профили Профили с недостаточными ограничениями могут позволить несанкционированный доступ к файлам или функциональным возможностям MySQL. Это создает риск безопасности, так как злоумышленник, используя уязвимость, может воспользоваться более свободным профилем для получения большего контроля над сервером.
Неправильное назначение профиля Назначение неправильного профиля процессу может вызвать любую из вышеупомянутых проблем. Например, случайное назначение MySQL профиля, предназначенного для другой службы, может иметь непредвиденные последствия.

Важность тщательного контроля и тестирования

Тщательно проверяя и тестируя изменения в вашем профиле AppArmor, вы можете минимизировать риски, связанные с неправильной конфигурацией, и обеспечить безопасную и функциональную среду для MySQL.

  • Тщательно просмотрите свои изменения: Дважды проверьте изменения в профиле AppArmor, чтобы убедиться, что они предоставляют MySQL необходимые разрешения при сохранении уровня безопасности.

  • Тестируйте свои изменения в безопасной среде: Прежде чем применять изменения на сервере в рабочем состоянии, протестируйте их в тестовой среде, которая имитирует ваше рабочее окружение. Этот тест позволяет выявить и исправить любые проблемы, вызванные изменениями профиля AppArmor, без воздействия на вашу активную установку MySQL.

Установка утилит для управления AppArmor

Установите пакет apparmor-utils для работы с профилями. Используйте эти утилиты для создания, обновления, принудительного применения, переключения в режим Complain и отключения профилей по мере необходимости:

$ sudo apt install apparmor-utils
Ожидаемый результат
Reading package lists... Done
Building dependency tree
...
The following additional packages will be installed:
    python3-apparmor python3-libapparmor
...

Добавление профиля mysqld

Добавьте профиль mysqld, выполнив следующую процедуру:

  1. Загрузите актуальную версию AppArmor:
$ wget https://gitflic.ru/project/mydb/mydb-server/blob/raw?file=8.0/build-ps/debian/extra/apparmor.d/usr.sbin.mysqld.in
Ожидаемый результат
...
Saving to 'apparamor-profile`
...
  1. Переместите файл в /etc/apparmor.d/usr.sbin.mysqld:
$ sudo mv apparmor-profile /etc/apparmor.d/usr.sbin.mysqld
  1. Создайте пустой файл для редактирования:
$ sudo touch /etc/apparmor.d/local/usr.sbin.mysqld
  1. Загрузите профиль:
$ sudo apparmor_parser -r -T -W /etc/apparmor.d/usr.sbin.mysqld
  1. Перезапустите MyDB Сервер для MySQL:
$ sudo systemctl restart mysql
  1. Проверьте статус профиля:

    $ sudo aa-status
    
Ожидаемый результат
```{.text .no-copy}
...
processes are in enforce mode
...
/usr/sbin/mysqld (100840)
...
```

Проверка текущего статуса

Под пользователем root или с помощью sudo вы можете проверить статус AppArmor:

$ sudo aa-status
Ожидаемый результат
apparmor module is loaded.
34 profiles are loaded.
32 profiles in enforce mode.
...
    /usr/sbin/mysqld
...
2 profiles in complain mode.
...
3 profiles have profiles defined.
...
0 processes are in complain mode.
0 processes are unconfined but have a profile defined.

Переключение профиля в режим Complain

Переключите профиль в режим Complain, когда программа находится в текущем каталоге, с помощью этой команды:

$ sudo aa-complain <программа>

При необходимости укажите путь к программе в команде, например:

$ sudo aa-complain /sbin/<программа>

Если профиль не сохранен в /etc/apparmor.d/, используйте следующую команду:

$ sudo aa-complain /путь/к/профилям/<программа>

Переключение профиля в режим Enforce

Переключите профиль в режим Enforce, когда программа находится в текущем каталоге, с помощью этой команды:

$ sudo aa-enforce <программа>

При необходимости укажите путь к программе в команде, например:

$ sudo aa-enforce /sbin/<программа>

Если профиль не сохранен в /etc/apparmor.d/, используйте следующую команду:

$ sudo aa-enforce /путь/к/профилям/<программа>

Отключение профиля

Вы можете отключить профиль, но рекомендуется переключить профиль в режим Complain.

Используйте любой из следующих методов, чтобы отключить профиль:

$ sudo ln -s /etc/apparmor.d/usr.sbin.mysqld /etc/apparmor.d/disable/
$ sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.mysqld

или

$ aa-disable /etc/apparmor.d/usr.sbin.mysqld

Перезагрузка всех профилей

Выполните любую из следующих команд, чтобы перезагрузить все профили:

$ sudo service apparmor reload

или

$ sudo systemctl reload apparmor.service

Перезагрузка одного профиля

Чтобы перезагрузить один профиль, выполните следующее:

$ sudo apparmor_parser -r /etc/apparmor.d/<профиль>

Чтобы некоторые изменения вступили в силу, возможно, потребуется перезапустить программу.

См. также:

AppArmor
Профили AppArmor
Отключение AppArmor
Конфигурация AppArmor
Устранение неполадок в AppArmor


Последнее обновление: 2024-04-30