Атакуют прямо сейчас: экстренный гайд для админа Minecraft сервера

Атакуют прямо сейчас: экстренный гайд для админа Minecraft сервера

Вы открываете консоль - и видите поток ошибок. TPS падает до нуля. Игроки отключаются один за другим. В чате панику пишут те, кто еще держит соединение. Мониторинг показывает 100% загрузку канала или CPU. Ваш сервер атакуют.

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

Шаг 1: Не паникуйте

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

Запомните: DDoS-атака - это временное явление. Атакующий тратит ресурсы. Большинство атак на Minecraft серверы длятся от нескольких минут до нескольких часов. Ваша задача - минимизировать ущерб и сохранить данные.

Откройте блокнот или текстовый файл. Записывайте все, что делаете, с временными метками. Это поможет потом при анализе и при обращении к хостингу.

Шаг 2: Определите тип атаки

Прежде чем что-то блокировать, нужно понять, что именно происходит. Разные типы атак требуют разных мер.

Проверьте загрузку канала

# Текущий трафик на интерфейсе
cat /proc/net/dev
# Или более наглядно
vnstat -l -i eth0
# Или через nethogs для детализации по процессам
nethogs eth0

Если входящий трафик измеряется сотнями мегабит или гигабитами - это volumetric атака (UDP flood, amplification). В этом случае ваши iptables не помогут: канал забит до того, как пакеты дойдут до ваших правил.

Проверьте количество соединений

# Общая статистика TCP соединений
ss -s
# Количество соединений на порт Minecraft
ss -tn state established | grep :25565 | wc -l
# Топ IP по количеству соединений
ss -tn state established | grep :25565 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20

Тысячи соединений с разных IP (или с одного диапазона) - это TCP connection flood или SYN flood.

Проверьте CPU и память

# Общая загрузка
top -bn1 | head -15
# Конкретно Java процесс
ps aux | grep java | grep -v grep

Если CPU на 100%, но трафик нормальный - возможно, это не сетевая атака, а join-бот спам или эксплойт, перегружающий ядро сервера.

Проверьте логи Minecraft

Откройте latest.log или консоль сервера. Ищите:

  • Массовые подключения/отключения игроков
  • Неизвестные имена, подключающиеся десятками
  • Ошибки типа "Connection throttled" или "Too many connections"
  • Необычные пакеты или команды

Шаг 3: Экстренные меры через iptables

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

Ограничение соединений с одного IP

# Не больше 3 одновременных соединений с одного IP на порт Minecraft
iptables -A INPUT -p tcp --dport 25565 -m connlimit --connlimit-above 3 -j DROP

Ограничение новых соединений в секунду

# Не больше 5 новых соединений в секунду с одного IP
iptables -A INPUT -p tcp --dport 25565 -m state --state NEW -m recent --set --name mc
iptables -A INPUT -p tcp --dport 25565 -m state --state NEW -m recent --update --seconds 1 --hitcount 5 --name mc -j DROP

Блокировка конкретных IP или подсетей

Если в выводе ss вы видите один IP или подсеть с тысячами соединений:

# Заблокировать конкретный IP
iptables -I INPUT -s 192.168.1.100 -j DROP
# Заблокировать подсеть /24
iptables -I INPUT -s 192.168.1.0/24 -j DROP

Защита от SYN flood

# Включить SYN cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Уменьшить таймаут для полуоткрытых соединений
echo 10 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle

Блокировка UDP трафика (если сервер только на TCP)

# Minecraft Java работает по TCP, можно дропать UDP на этот порт
iptables -A INPUT -p udp --dport 25565 -j DROP

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

Шаг 4: Включите whitelist

Если атака идет на уровне протокола Minecraft (бот-подключения, join flood), самый быстрый способ остановить ее - включить whitelist.

# В консоли Minecraft
whitelist on

Это мгновенно отсечет всех, кого нет в whitelist. Да, новые игроки не смогут зайти. Но это лучше, чем сервер, который лежит для всех.

Если у вас BungeeCord или Velocity:

  • Включите режим онлайн (online-mode: true на прокси)
  • Настройте лимит подключений в конфиге прокси
  • Используйте плагины типа BotSentry или Antibot для автоматической фильтрации

Для серверов с Velocity, в velocity.toml:

[advanced]
connection-timeout = 5000
login-ratelimit = 3000

Шаг 5: Свяжитесь с хостингом

Если атака сильная (забит канал, null route), пора писать в саппорт хостинга. Вот что нужно сообщить:

  1. Время начала атаки (с точностью до минут)
  2. Тип атаки (если определили): UDP flood, SYN flood, application-level
  3. Скриншоты или логи с количеством соединений и трафиком
  4. IP адрес вашего сервера (если у вас несколько)
  5. Что вы уже предприняли

Хороший хостинг может:

  • Включить базовую DDoS-защиту на своей стороне
  • Перенаправить трафик через scrubbing center
  • Временно сменить IP адрес
  • Дать рекомендации по настройке

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

Сохраните переписку с хостингом. Она может понадобиться потом.

Шаг 6: Когда нужна профессиональная защита

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

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

MineGuard, например, работает как прокси-фильтр: весь трафик проходит через фильтрующий узел, который анализирует пакеты на уровне протокола Minecraft. Легитимные игроки проходят, атакующий трафик отсекается до того, как дойдет до вашего сервера. При этом фильтрация работает на уровне XDP/eBPF, что позволяет обрабатывать миллионы пакетов в секунду без нагрузки на процессор.

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

Подключение занимает несколько минут: вы указываете адрес MineGuard как адрес вашего сервера, а MineGuard проксирует чистый трафик к вам.

Шаг 7: После атаки - что проверить

Атака закончилась. Сервер работает. Но рано расслабляться. Вот чек-лист:

Сохраните логи

# Скопируйте логи iptables
iptables -L -n -v > ~/attack-log-iptables-$(date +%Y%m%d).txt
# Скопируйте логи Minecraft
cp /path/to/server/logs/latest.log ~/attack-log-mc-$(date +%Y%m%d).log
# Сохраните статистику соединений
ss -s > ~/attack-log-connections-$(date +%Y%m%d).txt

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

Проверьте целостность данных

  • Все миры загружаются корректно?
  • Плагины работают без ошибок?
  • Данные игроков (инвентари, позиции, экономика) не повреждены?
  • Бэкап был создан до атаки или во время?

Если бэкап создавался во время атаки, он может быть поврежден. Используйте предыдущий бэкап для проверки.

Уберите временные правила

Пересмотрите все iptables правила, которые добавили в спешке. Слишком агрессивные правила могут блокировать легитимных игроков.

# Посмотрите текущие правила с номерами
iptables -L INPUT -n --line-numbers
# Удалите конкретное правило по номеру
iptables -D INPUT <номер>

Проверьте, не осталось ли следов

  • Нет ли незнакомых OP-игроков?
  • Не изменены ли конфиги (server.properties, spigot.yml)?
  • Нет ли подозрительных плагинов в папке plugins?

DDoS иногда используется как отвлечение, пока атакующий пытается эксплуатировать уязвимости на сервере.

Шаг 8: План защиты на будущее

Атака произошла один раз - произойдет снова. Готовьтесь заранее.

Бэкапы

  • Настройте автоматические бэкапы минимум раз в день
  • Храните бэкапы на отдельном сервере или в облаке
  • Проверяйте бэкапы раз в месяц - восстанавливайте тестово

Скройте реальный IP

  • Используйте прокси (BungeeCord, Velocity) или защитный сервис
  • Не публикуйте IP сервера нигде, кроме прокси-адреса
  • Если IP уже засвечен - попросите хостинг сменить его

Подготовьте скрипт экстренной защиты

Создайте скрипт, который можно запустить одной командой при атаке:

#!/bin/bash
# emergency-protect.sh
echo "Включаю экстренную защиту..."
# Лимит соединений
iptables -A INPUT -p tcp --dport 25565 -m connlimit --connlimit-above 3 -j DROP
# Rate limit новых подключений
iptables -A INPUT -p tcp --dport 25565 -m state --state NEW -m hashlimit \
  --hashlimit-above 5/sec --hashlimit-burst 10 --hashlimit-mode srcip \
  --hashlimit-name mc_limit -j DROP
# SYN cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
echo "Защита активирована. Не забудьте включить whitelist!"

Мониторинг

  • Настройте оповещения при аномальном трафике
  • Используйте Prometheus + Grafana или хотя бы простой скрипт, отслеживающий количество соединений
  • Подпишитесь на уведомления от хостинга о сетевых проблемах

Документация

  • Запишите, что произошло и какие действия помогли
  • Составьте контакт-лист: саппорт хостинга, другие админы, которые могут помочь
  • Обновляйте план действий после каждой атаки

Быстрая сводка: порядок действий

  1. Не паникуйте. Откройте блокнот, фиксируйте действия
  2. Определите тип: проверьте трафик (vnstat, nethogs), соединения (ss), CPU (top)
  3. Примените iptables правила: лимит соединений, rate limiting
  4. Включите whitelist в Minecraft
  5. Напишите в саппорт хостинга с деталями
  6. Оцените необходимость профессиональной защиты (MineGuard или аналог)
  7. После атаки: сохраните логи, проверьте данные, уберите временные правила
  8. Подготовьте план на будущее: бэкапы, мониторинг, скрытие IP

Атака - это неприятно, но это не конец. С правильными действиями вы минимизируете ущерб и вернете сервер в строй быстрее, чем думаете.


Sunucunuzu DDoS Saldırılarından Koruyun

5 dakikada kurulumla ücretsiz koruma. 1 TB bant genişliği dahil.

Ücretsiz Deneyin


İlgili Makaleler