Какие данные хранятся в базе
База может содержать:
- SteamID;
- статистику;
- наказания;
- привилегии;
- заказы;
- настройки игроков;
- историю действий;
- сообщения поддержки;
- токены интеграций.
Потеря или утечка таких данных влияет не только на игру, но и на доверие пользователей.
Закройте сетевой доступ
Если база нужна только локальным сервисам, привяжите её к 127.0.0.1.
Для удалённых игровых серверов разрешайте доступ только с известных IP или через защищённую частную сеть.
Не открывайте MySQL всему интернету ради быстрого подключения.
Отдельные пользователи
Создавайте отдельные учётные записи для:
- игрового плагина;
- сайта;
- резервного копирования;
- администратора;
- аналитики.
Каждая учётная запись получает только необходимые права.
Сайт не должен иметь право создавать новых пользователей базы, а плагину статистики не требуется доступ к системным таблицам.
Сильные пароли
Используйте случайные длинные пароли и храните их в менеджере.
Не повторяйте пароль от SSH, панели и базы. Утечка одного секрета не должна открывать весь проект.
Конфигурационные файлы
Ограничьте права чтения. Файл с подключением не должен находиться в публичном каталоге сайта или архиве цифрового товара.
Перед передачей логов скрывайте:
- пароль;
- имя пользователя;
- внутренний IP;
- токены;
- строки подключения.
Шифрование соединения
Если база находится на другой машине, используйте TLS или VPN. Открытая передача учётных данных по ненадёжной сети создаёт риск перехвата.
Проверьте, поддерживает ли используемый плагин защищённое соединение.
Обновления
Устанавливайте обновления безопасности СУБД и операционной системы.
Сначала тестируйте крупные изменения и создавайте дамп.
Не используйте устаревшую панель администрирования, доступную по публичному адресу без дополнительной защиты.
Журналы
Следите за:
- неудачными входами;
- подключениями с неизвестных IP;
- созданием пользователей;
- изменением прав;
- удалением таблиц;
- необычными объёмами запросов;
- ошибками авторизации.
Резервные копии
Backup должен храниться отдельно. Если злоумышленник получает полный доступ к основному VPS, он может удалить и рабочую базу, и локальные архивы.
Используйте несколько поколений копий и регулярно проверяйте восстановление.
Защита от ошибок администратора
Большая часть потерь происходит не из-за внешней атаки, а из-за ошибочной команды.
Перед удалением таблиц, массовым изменением или обновлением структуры создавайте свежий дамп.
Для ручной работы используйте отдельного администратора и избегайте постоянного подключения под root.
Минимизация данных
Не храните данные, которые не нужны проекту. Чем меньше лишней информации, тем меньше последствия утечки.
Настройте срок хранения журналов и старых записей.
Реакция на утечку
При подозрении:
1. Ограничьте сетевой доступ. 2. Смените пароли. 3. Отзовите пользователей. 4. Проверьте журналы. 5. Восстановите данные из доверенной копии. 6. Проверьте сайт и плагины. 7. Устраните источник. 8. Зафиксируйте произошедшее.
Итог
Защита базы состоит из закрытого порта, отдельных пользователей, минимальных прав, защищённых соединений и удалённых резервных копий.
Не используйте root в плагинах и не храните секреты в публичных файлах.