Управление профилями 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
, выполнив следующую процедуру:
- Загрузите актуальную версию 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`
...
- Переместите файл в
/etc/apparmor.d/usr.sbin.mysqld
:
$ sudo mv apparmor-profile /etc/apparmor.d/usr.sbin.mysqld
- Создайте пустой файл для редактирования:
$ sudo touch /etc/apparmor.d/local/usr.sbin.mysqld
- Загрузите профиль:
$ sudo apparmor_parser -r -T -W /etc/apparmor.d/usr.sbin.mysqld
- Перезапустите MyDB Сервер для MySQL:
$ sudo systemctl restart mysql
-
Проверьте статус профиля:
$ 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