Лучшие советы по безопасности MySQL и MariaDB

Опубликовано: 2022-01-08

Безопасность является серьезной проблемой для многих людей. В этом посте вы найдете десять советов о том, как обеспечить безопасность MySQL и MariaDB, чтобы обезопасить свои базы данных от хакеров. Эти советы включают в себя: резервное копирование данных, использование надежных паролей и ограничение прав доступа.


Лучшие советы по безопасности MySQL и MariaDB

Вот лучшие советы по обеспечению безопасности MySQL и MariaDB:


Удалить пользователей без пароля

Если в вашей базе есть пользователи без паролей, лучше их удалить. Это поможет снизить вероятность того, что кто-то сможет взломать вашу базу данных. Вы можете использовать следующий запрос для удаления этих пользователей:

Независимо от того, имеют ли пользователи доступ только с локального хоста, их следует удалить, чтобы предотвратить выполнение любых отрицательных команд. Кроме того, слабые пароли сами по себе представляют угрозу безопасности.

Вы всегда должны использовать надежные пароли при создании пользователей в своих базах данных. Слабые пароли легче взломать хакерам, что может привести к тому, что они получат доступ к вашей базе данных и нанесут ей ущерб, если им это удастся. Использование автоматического генератора паролей поможет создать для вас более надежные пароли, которые труднее взломать.

Вам также следует рассмотреть возможность использования двухфакторной аутентификации для ваших пользователей. Для этого потребуется дополнительный код, который обычно отправляется на их телефон, чтобы войти в базу данных. Это значительно усложняет получение доступа кем-либо, если у него есть только ваше имя пользователя и пароль.


Ограничить удаленный доступ

Если вам не нужно давать удаленный доступ к вашей базе данных, то лучше ограничить его. Это поможет снизить вероятность того, что кто-то сможет взломать вашу базу данных из удаленного места.

К счастью, последние версии MySQL и MariaDB автоматически ограничивают удаленный доступ к базе данных, если не указано иное. Тем не менее, вам все равно следует проверить настройки безопасности, чтобы убедиться, что это так.

Также рекомендуется убедиться, что все пользователи подключаются к MySQL только с нужных вам хостов. Например, это можно сделать с помощью ([email protected]).


Удалить тестовую базу данных

При установке MySQL или MariaDB автоматически создается тестовая база данных. Эта база данных содержит данные, которые можно использовать для взлома ваших реальных баз данных, если они попадут в чужие руки. Лучше удалить эту базу данных, чтобы ее нельзя было использовать в гнусных целях.

Эта тестовая база данных также создает ненужную нагрузку на сервер базы данных. Он используется только тестировщиками баз данных для тестирования запросов, поэтому его можно удалить, не влияя на функциональность ваших баз данных.


Запутать доступ к MySQL

Если вы не хотите, чтобы люди знали о существовании вашей базы данных, вы можете запутать ее доступ. Это затруднит кому-либо поиск вашей базы данных и взлом ее.

Обфускация доступа также усложняет для тех, кто отслеживает ваш трафик, определение того, какие порты используются MySQL или MariaDB.

Хорошо известно, что MySQL работает на порту 3306, а «root» — это имя суперпользователя. Вы можете исправить это, отредактировав my.cnf и изменив переменную «port».


Защитите свои файлы конфигурации

Как и в любом приложении, важно защитить файлы конфигурации для MySQL или MariaDB. Эти файлы содержат конфиденциальную информацию, такую ​​как пароли и пользовательские данные. Защита этих файлов поможет предотвратить получение доступа к этой информации кем-либо, если они получат доступ к вашим серверам.


Сетевая безопасность

Также важно защитить вашу сеть, а также сами серверы. Это поможет снизить вероятность того, что кто-то взломает вашу базу данных из удаленного места и запустит в ней гнусные команды.

Первое, что вы должны убедиться, это то, что доступ к MySQL осуществляется только через локальное соединение, а не через сеть. Вы можете сделать это через сокет Unix. Введите «skip-networking» в my.cnf. чтобы остановить все соединения TCP/IP.

Вы также можете использовать свой брандмауэр, чтобы заблокировать доступ к MySQL с определенных IP-адресов или диапазонов. Это поможет снизить вероятность того, что кто-то взломает вашу базу данных из удаленного места.


Используйте плагины аудита

Вы также можете использовать плагины аудита, чтобы отслеживать, что происходит в вашей базе данных. Это поможет вам определить, взломал ли кто-то вашу базу данных или с ней происходит что-то подозрительное, что может указывать на это.

Сегодня в Интернете доступно множество бесплатных и платных вариантов этих плагинов. MySQL Enterprise Audit — хороший вариант, если MySQL Enterprise уже используется в вашей организации. У MariaDB также есть собственный плагин аудита.

Все эти плагины отлично справляются с мониторингом вашей базы данных на предмет подозрительной активности. Они даже могут отправлять вам оповещения, если обнаружено что-то необычное, чтобы вам не приходилось каждый раз вручную проверять журналы.


Отключить ЗАГРУЗИТЬ ЛОКАЛЬНЫЙ ИНФАЙЛ ДАННЫХ

Еще один способ предотвратить доступ кого-либо к вашей базе данных — отключить функцию LOCAL в MySQL и MariaDB. Эта команда позволяет загружать файлы данных из локального файла, но также представляет угрозу безопасности, особенно если они не зашифрованы. Чтобы отключить эту функцию, установите local-infile=0 в файле my.cnf.


Права доступа к файлам

Также важно установить правильные файловые привилегии для ваших файлов MySQL и MariaDB. Это гарантирует, что только авторизованные пользователи смогут получить к ним доступ. Вы можете сделать это, установив соответствующие разрешения для этих файлов.

Например, вы можете указать владельцем всех ваших файлов MySQL «mysql», а группу — «mysql», при этом всем остальным пользователям будет отказано в доступе. Это гарантирует, что только пользователи с правильными разрешениями смогут получить доступ к вашим файлам MySQL.


SSL и шифрование данных в пути

Если вы используете MySQL или MariaDB с включенным SSL, важно установить на вашем сервере необходимые сертификаты. Если этого не сделать, любой может перехватить информацию, пересылаемую между вашей базой данных и ее клиентами.

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

Вы также можете зашифровать данные, которые передаются между сервером базы данных и другими устройствами. Это гарантирует, что любой, кто отслеживает трафик в вашей сети, не сможет получить доступ ни к каким данным, которые они передают или получают, даже если им удалось взломать одну из этих систем.

SSL был бы отличным способом добиться этого для пользователей MySQL, так как он уже встроен в протокол. Пользователи MariaDB могут использовать stunnel для достижения аналогичного эффекта.


Шифрование данных в состоянии покоя

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

Это можно сделать с помощью такого инструмента, как MySQL Enterprise Encryption или MariaDB Column Encryption.

Оба этих инструмента предлагают отличный способ защитить ваши данные от доступа, если кому-то удастся взломать ваш сервер базы данных. Они также очень просты в использовании, поэтому вам не нужно быть экспертом в шифровании, чтобы воспользоваться преимуществами этих инструментов.


Вывод

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

Надеюсь, эта статья дала вам несколько хороших идей о том, как обеспечить безопасность MySQL и MariaDB в вашей организации, чтобы никто не смог взломать ваши базы данных, если им удастся пробить другие средства защиты.