Вспомните опыт после атаки на сервер

MySQL
Вспомните опыт после атаки на сервер

Это изображение предоставленоRobinraj PremchandсуществуетPixabayОпубликован в

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

WX20190605-210513@2x

Где таблица данных в моей базе данных ytools, почему осталось ПРЕДУПРЕЖДЕНИЕ? ? ? ?

u=3304691937,3517639434&fm=26&gp=0

Я так испугался, что быстро погуглил

Я втираю, это атаковано? Почему Tencent Cloud не выдает мне предупреждения системы безопасности? ? ?

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

причина

Я проверил некоторую информацию и обнаружил, что удаление баз данных не редкость.С 2016 по 2017 год было атаковано большое количество баз данных MySQL, а хакеры покидали учетные записи QQ и запрашивали высокую плату за восстановление, даже сейчас такие вещи случаются часто. На самом деле в общем-то это потому, что мы не очень разбираемся в безопасности серверов, и случайность серьезная (так же, как и сейчас я не понимаю, почему я маленький гад, который ничего не сделал и все еще хочет со мной возиться ). MySQL наиболее уязвим для атак в следующих двух ситуациях.

Пароль сервера слишком простой

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

Программы для веб-сайтов напрямую используют привилегии root

Многие новички не устанавливают разрешения при использовании базы данных (или просто избавляют от проблем, и проект запускается), а программа веб-сайта напрямую подключается к корневому органу. После взлома программы веб-сайта пароль учетной записи root также будет получен hei клиенты. В MySQL есть 5 таблиц, связанных с разрешениями, наиболее важными из которых являются user и db. За исключением того, что root localhost имеет все разрешения в пользовательской таблице, другие xxxx% вообще не имеют разрешений. Разрешения должны быть открыты в таблице db.

Короче говоря, не запускайте с правами root и администратора! Также ограничьте разрешения до минимума!

профилактика

Вот некоторые общие меры предосторожности, которые я нашел в своем исследовании:

  1. Пароль администратора сервера имеет определенную сложность, рекомендуется использовать комбинацию букв, цифр и символов.
  2. Сервер закрывает удаленный доступ (или закрывает удаленный доступ к внешней сети) и корректирует номер порта по умолчанию для удаленного доступа.
  3. Пароль root-пользователя MySQL имеет определенную сложность, поэтому рекомендуется использовать пароль, состоящий из букв, цифр и символов.
  4. MySQL не допускает никаких удаленных подключений, рекомендуется открывать подключение только к IP-адресу, на котором расположена система совместной работы.
  5. MySQL не использует порт по умолчанию 3306, рекомендуется изменить его на другой порт. (файл конфигурации mysql: my.cnf под Linux)
  6. MySQL настраивает резервное копирование по расписанию и создает резервную копию пакета резервных копий данных на другой машине (или за пределами площадки).
  7. Программа веб-сайта не использует полномочия root напрямую, а устанавливает права доступа пользователя отдельно.

мера

Для вышеупомянутых мер метода здесь приведен процесс модификации.

Заявление об охране окружающей среды

Среда этого эксперимента: Ubuntu Server 18.04 из Tencent Cloud, а база данных — MySQL 5.7.25.

Изменить пароль учетной записи root

Чтобы изменить пароль сервера, мы можем перейти непосредственно к консоли, чтобы изменить его, Нечего и говорить, вот изменение корневого пароля базы данных MySQL.

  • Войдите в MySQL как учетная запись root
mysql -u root -p

Затем введите исходный пароль root, чтобы войти в операцию с базой данных (оболочка mysql)

  • выберите базу данных
use mysql;
  • Обновить пароль root
update user set authentication_string=password('新密码') where user='root' and host='localhost';

Советы: объясните здесь, в MySQL 5.7passwordПоле изменено сmysql.userудалите таблицу, новое имя поляauthenticalion_string.

  • Обновить разрешения
flush privileges;
  • Выйдите из среды оболочки MySQL и перезапустите службу MySQL.
sudo service mysql restart

Изменить порт, используемый MySQL

Мы знаем, что порт MySQL по умолчанию — 3306. В целях безопасности рекомендуется изменить номер порта MySQL по умолчанию на то, что вы хотите (если у вас есть девушка, измените его на день рождения девушки, чтобы вы могли' т забудь).

Я проверил много информации и сказал, что файл конфигурации MySQL находится в/etc/mysql/my.cnfпуть, но когда я просматриваю контент, он дает мне следующую информацию:

image-20190610105106423

В этом файле вообще нет настройки параметров(Это вызвано разными версиями mysql, еще раз моя системная версия Ubuntu18.04, MySQL 5.7.25), видим только следующие две строчки настроек, что означает импорт файлов конфигурации в эти две директории.

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

Попытавшись открыть и просмотреть содержимое по отдельности, мы обнаружили, что соответствующая конфигурация MySQL находится в/etc/mysql/mysql.conf.d/mysqld.cnf, после входа в каталог выполнитьcat mysql.cnfЭто можно увидеть в **[mysqld]Под этикеткой находится много информации о параметрах, один из которыхport**, мы можем установить его на желаемый номер порта (не забудьте добавить sudo при использовании vim).

Наконец, перезапустите mysql на нем.

sudo service mysql restart

Отключить удаленный доступ к MySQL

MySQL имеет систему привилегий, основной функцией которой является аутентификация пользователя, подключенного к данному хосту, и предоставление пользователю привилегий SELECT, INSERT, UPDATE и DELETE в базе данных. Исходя из соображений безопасности, доступ к учетной записи root обычно возможен только локально, но в процессе разработки может потребоваться открыть разрешение на удаленный доступ root.Если разрешение на удаленный доступ mysql не отключено при официальном запуске , он может быть использован, и библиотека будет удалена.

  • Войдите в MySQL как учетная запись root
mysql -u root -p

Затем введите исходный пароль root, чтобы войти в операцию с базой данных (оболочка mysql)

  • выберите базу данных
use mysql;
  • Отключить удаленный доступ
update user set host = "localhost" where user = "root" and host= "localhost";
  • Обновить разрешения
flush privileges;
  • Выйдите из среды оболочки MySQL и перезапустите службу mysql.
sudo service mysql restart

Наконец

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