Безопасность MySQL

MySQL (http://www.mysql.com) — одна из самых популярных в настоящее время систем баз данных с открытым исходным кодом. Зачастую она используется совместно с web-сервером Apache и языком сценариев РНР, позволяя создавать динамические веб-страницы. В то же время MySQL —часть программного обеспечения сложной структуры, и ей часто приходится взаимодействовать локально или удаленно с разнообразными программами, поэтому для ее защиты должны предприниматься самые эффективные специальные меры. К некоторым действиям по защите можно отнести запуск MySQL в среде с помощью команды chroot (см. трюк № 10), запуск ее от имени nonroot-пользователя и отключение возможности в MySQL загружать данные из локальных файлов. К счастью, реализовать любой из этих методов не так сложно, как может показаться сразу. Для начала рассмотрим использование команды chrootO.
Создайте пользователя и группу для запуска MySQL. После этого загрузите исходный дистрибутив MySQL, распакуйте его и перейдите в созданный им каталог. Запустите команду по компоновке MySQL и настройте ее структуру каталогов для выполнения команды chroot О:
$ ./configure --prefix=/mysql --with-mysqld-ldf1ags=-al 1 -static && make
При этом MySQL будет размещен в /mysql и статически связан с mysqld. Это значительно облегчит настройку структуры каталогов, поскольку в нее не придется копировать дополнительные библиотеки. По завершении компиляции получите полномочия root и запустите команды установки MySQL:
# mate install DESTDIR=/mysql_chroot && In -s /mysqlchroot/mysql /mysql
# scripts/mysql_install_db
Первая команда устанавливает MySQL, но вместо /mysql она поместит файлы в /mysqlchroot/mysql. Кроме того, она создаст символическую ссылку (symbolic link) из этого каталога в /mysql, что значительно упростит администрирование MySQL. Вторая команда создает базу данных по умолчанию. Если бы перед запуском этой команды не была создана символическая ссылка, то выполнение сценария mysqlinstalldb завершилось бы неудачей (он ожидает размещения MySQL в /mysql). То же самое произошло бы и с другими программами и сценариями, поэтому создание символической ссылки значительно упрощает жизнь.
Теперь для корректной работы MySQL необходимо настроить необходимые разрешения каталога. Для этого выполните следующие команды:
# chcwn -R root:mysql /mysql
# chcwn -R mysql /mysql/var
Запустим MySQL:
# /mysql /bin/mysqld_safe&

Метки: , , ,

Статьи по теме