Это изображение предоставленоRobinraj PremchandсуществуетPixabayОпубликован в
Мой апплет был запущен 26 мая, и работает он всего несколько дней, 30 мая студент сказал мне, что апплетом больше нельзя пользоваться, и я ночью пошел домой и включил компьютер, чтобы проверить базу данных... Только тогда я понял, что что-то не так!
Где таблица данных в моей базе данных ytools, почему осталось ПРЕДУПРЕЖДЕНИЕ? ? ? ?
Я так испугался, что быстро погуглил
Я втираю, это атаковано? Почему Tencent Cloud не выдает мне предупреждения системы безопасности? ? ?
Тем не менее, есть ли предупреждения безопасности, это второстепенно, и самое главное - выяснить, в чем причина, а затем найти способы ее устранения и предотвращения.Эта статья только фиксирует мой опыт после атаки.
причина
Я проверил некоторую информацию и обнаружил, что удаление баз данных не редкость.С 2016 по 2017 год было атаковано большое количество баз данных MySQL, а хакеры покидали учетные записи QQ и запрашивали высокую плату за восстановление, даже сейчас такие вещи случаются часто. На самом деле в общем-то это потому, что мы не очень разбираемся в безопасности серверов, и случайность серьезная (так же, как и сейчас я не понимаю, почему я маленький гад, который ничего не сделал и все еще хочет со мной возиться ). MySQL наиболее уязвим для атак в следующих двух ситуациях.
Пароль сервера слишком простой
Многие люди пытаются избавить себя от проблем и установить простой пароль сервера, который удобен для памяти и входа в систему, что часто оставляет место для взлома хакерам. Как только пароль сервера будет взломан, хакеры смогут войти непосредственно на сервер, произвольно изменять и удалять данные. В связи с этим при установке пароля рекомендуется использовать комбинацию букв, цифр и символов, а также стараться использовать более 8 цифр и 10 цифр. Время от времени меняйте пароль.
Программы для веб-сайтов напрямую используют привилегии root
Многие новички не устанавливают разрешения при использовании базы данных (или просто избавляют от проблем, и проект запускается), а программа веб-сайта напрямую подключается к корневому органу. После взлома программы веб-сайта пароль учетной записи root также будет получен hei клиенты. В MySQL есть 5 таблиц, связанных с разрешениями, наиболее важными из которых являются user и db. За исключением того, что root localhost имеет все разрешения в пользовательской таблице, другие xxxx% вообще не имеют разрешений. Разрешения должны быть открыты в таблице db.
Короче говоря, не запускайте с правами root и администратора! Также ограничьте разрешения до минимума!
профилактика
Вот некоторые общие меры предосторожности, которые я нашел в своем исследовании:
- Пароль администратора сервера имеет определенную сложность, рекомендуется использовать комбинацию букв, цифр и символов.
- Сервер закрывает удаленный доступ (или закрывает удаленный доступ к внешней сети) и корректирует номер порта по умолчанию для удаленного доступа.
- Пароль root-пользователя MySQL имеет определенную сложность, поэтому рекомендуется использовать пароль, состоящий из букв, цифр и символов.
- MySQL не допускает никаких удаленных подключений, рекомендуется открывать подключение только к IP-адресу, на котором расположена система совместной работы.
- MySQL не использует порт по умолчанию 3306, рекомендуется изменить его на другой порт. (файл конфигурации mysql: my.cnf под Linux)
- MySQL настраивает резервное копирование по расписанию и создает резервную копию пакета резервных копий данных на другой машине (или за пределами площадки).
- Программа веб-сайта не использует полномочия 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.7
password
Поле изменено сmysql.user
удалите таблицу, новое имя поляauthenticalion_string
.
- Обновить разрешения
flush privileges;
- Выйдите из среды оболочки MySQL и перезапустите службу MySQL.
sudo service mysql restart
Изменить порт, используемый MySQL
Мы знаем, что порт MySQL по умолчанию — 3306. В целях безопасности рекомендуется изменить номер порта MySQL по умолчанию на то, что вы хотите (если у вас есть девушка, измените его на день рождения девушки, чтобы вы могли' т забудь).
Я проверил много информации и сказал, что файл конфигурации MySQL находится в/etc/mysql/my.cnf
путь, но когда я просматриваю контент, он дает мне следующую информацию:
В этом файле вообще нет настройки параметров(Это вызвано разными версиями 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
Наконец
Вышеприведенный контент составлен мной после ознакомления с соответствующей информацией после атаки на сервер, потому что я мало что знаю об этом, и я могу принять только некоторые простые защитные меры, которые приведены только для справки.Если у вас есть какие-либо предложения, Вы можете Оставить мне сообщение в области комментариев или на фоне официального аккаунта.