Безопасная конфигурация MySQL/MariaDB

Подробное руководство по защите баз данных MySQL/MariaDB на CentOS.
/ Безопасность

Безопасная конфигурация MySQL/MariaDB: Подробное руководство по защите баз данных MySQL/MariaDB на CentOS

Введение

MySQL и MariaDB — это одни из самых популярных систем управления базами данных на сегодняшний день. Их широкое применение в интернет-приложениях делает их целью для многих видов атак. Защита базы данных — это один из ключевых аспектов общей информационной безопасности вашей системы. В этом руководстве мы рассмотрим подробные шаги по безопасной конфигурации MySQL/MariaDB на ОС CentOS.

Шаг 1: Установка MySQL/MariaDB

Для начала установим MySQL или MariaDB на ваш сервер CentOS. Здесь приведены команды для установки MariaDB, так как это более современная и активно поддерживаемая версия.

sudo yum install mariadb-server

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

sudo systemctl start mariadb
sudo systemctl enable mariadb

Теперь можно проверить статус сервиса:

sudo systemctl status mariadb

Шаг 2: Начальная настройка безопасности

MySQL/MariaDB предоставляет удобный скрипт для начальной настройки безопасности. Запустите его командой:

sudo mysql_secure_installation

В ходе выполнения скрипта вам будет предложено выполнить следующее:

  1. Установить пароль для пользователя root
  2. Удалить анонимных пользователей
  3. Запретить удаленный вход для root
  4. Удалить тестовую базу данных
  5. Перезагрузить таблицы привилегий

Следуйте рекомендациям скрипта для повышения безопасности.

Шаг 3: Обновление программного обеспечения

Держите ваше программное обеспечение обновленным. Это правило критически важно для безопасности любой системы.

sudo yum update
sudo yum install mysql mariadb

Шаг 4: Конфигурация файла my.cnf

Откройте файл конфигурации MySQL/MariaDB (`/etc/my.cnf`) для редактирования и внесите следующие изменения:

Отключите доступ root пользователя удаленно

bind-address = 127.0.0.1

Включите журналирование запросов, чтобы отслеживать активность пользователей


                      

Ограничьте размер пакетов и буферов, чтобы предотвратить DoS атаки


                      

Настройте строгие политики паролей:


                      

После внесения изменений перезагрузите сервис:

sudo systemctl restart mariadb

Шаг 5: Правильное управление пользователями и правами

Создайте индивидуальных пользователей для каждого приложения и предоставьте им минимально необходимые права доступа.

Подключитесь к MySQL и создайте нового пользователя:

CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, UPDATE, DELETE ON mydatabase.* TO 'newuser'@'localhost';
FLUSH PRIVILEGES;

Избегайте использования привилегий `GRANT ALL PRIVILEGES`. Всегда предоставляйте наименьшие возможные права.

Шаг 6: Использование шифрования

  1. Шифрование соединений между клиентом и сервером с помощью SSL/TLS
  2. Шифрование хранения данных с помощью `InnoDB` и функциональности `Encrypted InnoDB`

Сначала сгенерируйте сертификаты и ключи для SSL:

sudo mysql_ssl_rsa_setup

Обновите конфигурационный файл (`/etc/my.cnf`) для включения SSL:

[mysqld]
ssl-ca=/var/lib/mysql/ca.pem
ssl-cert=/var/lib/mysql/server-cert.pem
ssl-key=/var/lib/mysql/server-key.pem

Перезагрузите сервис:

sudo systemctl restart mariadb

Заключение

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

Поиск