Atakują właśnie teraz: awaryjny poradnik dla admina serwera Minecraft

Atakują właśnie teraz: awaryjny poradnik dla admina serwera Minecraft

Otwierasz konsolę i widzisz potok błędów. TPS spada do zera. Gracze rozłączają się jeden po drugim. Na czacie panika od tych, którzy jeszcze trzymają połączenie. Monitoring pokazuje 100% wykorzystania kanału albo CPU. Twój serwer jest atakowany.

To nie czas na panikę. To czas na jasne działanie. W tym artykule plan krok po kroku na sytuację, gdy atak już idzie, a ty musisz działać szybko.

Krok 1: Nie panikuj

Poważnie. Panika prowadzi do nieprzemyślanych decyzji: usunąć reguły firewalla, zrestartować serwer bez przygotowania, zacząć zmieniać configi na oko. Każde z tych działań może tylko pogorszyć sprawę.

Zapamiętaj: atak DDoS to zjawisko tymczasowe. Atakujący wydaje zasoby. Większość ataków na serwery Minecraft trwa od kilku minut do kilku godzin. Twoje zadanie to zminimalizować szkody i zachować dane.

Otwórz notatnik albo plik tekstowy. Zapisuj wszystko, co robisz, ze znacznikami czasu. Pomoże potem przy analizie i przy kontakcie z hostingiem.

Krok 2: Ustal typ ataku

Zanim cokolwiek zablokujesz, musisz zrozumieć, co dokładnie się dzieje. Różne typy ataków wymagają różnych środków.

Sprawdź obciążenie kanału

# Aktualny ruch na interfejsie
cat /proc/net/dev
# Albo bardziej przejrzyscie
vnstat -l -i eth0
# Albo przez nethogs dla szczegolow po procesach
nethogs eth0

Jeśli ruch przychodzący mierzy się w setkach megabitów albo gigabitach - to atak volumetryczny (UDP flood, amplification). W tym wypadku twoje iptables nie pomogą: kanał jest zapchany zanim pakiety dotrą do twoich reguł.

Sprawdź liczbę połączeń

# Ogolna statystyka polaczen TCP
ss -s
# Liczba polaczen na port Minecraft
ss -tn state established | grep :25565 | wc -l
# Top IP po liczbie polaczen
ss -tn state established | grep :25565 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -rn | head -20

Tysiące połączeń z różnych IP (albo z jednego zakresu) to TCP connection flood albo SYN flood.

Sprawdź CPU i pamięć

# Ogolne obciazenie
top -bn1 | head -15
# Konkretnie proces Java
ps aux | grep java | grep -v grep

Jeśli CPU na 100%, ale ruch normalny - być może to nie atak sieciowy, tylko spam join-botami albo exploit przeciążający rdzeń serwera.

Sprawdź logi Minecrafta

Otwórz latest.log albo konsolę serwera. Szukaj:

  • Masowych podłączeń/rozłączeń graczy
  • Nieznanych nicków łączących się dziesiątkami
  • Błędów typu "Connection throttled" albo "Too many connections"
  • Nietypowych pakietów albo komend

Krok 3: Awaryjne środki przez iptables

Jeśli atak idzie na poziomie sieci, a twój kanał nie jest jeszcze całkiem zapchany, iptables to twoje pierwsze narzędzie.

Ograniczenie połączeń z jednego IP

# Nie wiecej niz 3 jednoczesne polaczenia z jednego IP na port Minecraft
iptables -A INPUT -p tcp --dport 25565 -m connlimit --connlimit-above 3 -j DROP

Ograniczenie nowych połączeń na sekundę

# Nie wiecej niz 5 nowych polaczen na sekunde z jednego 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

Blokowanie konkretnych IP albo podsieci

Jeśli w wyniku ss widzisz jeden IP albo podsieć z tysiącami połączeń:

# Zablokuj konkretny IP
iptables -I INPUT -s 192.168.1.100 -j DROP
# Zablokuj podsiec /24
iptables -I INPUT -s 192.168.1.0/24 -j DROP

Ochrona przed SYN flood

# Wlacz SYN cookies
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
# Zmniejsz timeout dla polotwartych polaczen
echo 10 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 1 > /proc/sys/net/ipv4/tcp_tw_recycle

Blokowanie ruchu UDP (jeśli serwer tylko na TCP)

# Minecraft Java dziala po TCP, mozna dropowac UDP na ten port
iptables -A INPUT -p udp --dport 25565 -j DROP

Ważne: zapisuj wszystkie reguły, które dodajesz. Po ataku trzeba je będzie przejrzeć i, być może, usunąć tymczasowe.

Krok 4: Włącz whitelist

Jeśli atak idzie na poziomie protokołu Minecraft (podłączenia botów, join flood), najszybszym sposobem zatrzymania go jest włączenie whitelisty.

# W konsoli Minecrafta
whitelist on

To natychmiast odetnie wszystkich, których nie ma na whiteliście. Tak, nowi gracze nie wejdą. Ale to lepsze niż serwer, który leży dla wszystkich.

Jeśli masz BungeeCord albo Velocity:

  • Włącz tryb online (online-mode: true na proxy)
  • Skonfiguruj limit połączeń w configu proxy
  • Użyj pluginów typu BotSentry albo Antibot do automatycznej filtracji

Dla serwerów z Velocity, w velocity.toml:

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

Krok 5: Skontaktuj się z hostingiem

Jeśli atak jest mocny (zapchany kanał, null route), pora pisać do supportu hostingu. Oto co trzeba podać:

  1. Czas początku ataku (z dokładnością do minut)
  2. Typ ataku (jeśli ustaliłeś): UDP flood, SYN flood, application-level
  3. Zrzuty ekranu albo logi z liczbą połączeń i ruchem
  4. Adres IP twojego serwera (jeśli masz kilka)
  5. Co już podjąłeś

Dobry hosting może:

  • Włączyć podstawową ochronę DDoS po swojej stronie
  • Przekierować ruch przez scrubbing center
  • Tymczasowo zmienić adres IP
  • Dać rekomendacje co do konfiguracji

Zły hosting powie "nie możemy nic zrobić" albo w ogóle wyłączy twój serwer "za tworzenie problemów dla innych klientów". To też, niestety, realia.

Zachowuj korespondencję z hostingiem. Może się potem przydać.

Krok 6: Kiedy potrzeba profesjonalnej ochrony

Iptables i whitelist to pierwsza pomoc. Pomogą przy słabych atakach albo dadzą czas do podłączenia normalnej ochrony. Ale nie rozwiązują problemu.

Jeśli ataki się powtarzają, jeśli ich moc rośnie, jeśli atakujący adaptuje się do twoich reguł - potrzebujesz wyspecjalizowanej usługi filtracji.

MineGuard na przykład działa jako proxy-filtr: cały ruch przechodzi przez węzeł filtrujący, który analizuje pakiety na poziomie protokołu Minecraft. Prawdziwi gracze przechodzą, ruch atakujący odcinany jest zanim dotrze do twojego serwera. Przy czym filtracja działa na poziomie XDP/eBPF, co pozwala obrabiać miliony pakietów na sekundę bez obciążenia procesora.

Kluczowa zaleta takiego podejścia - twój prawdziwy IP jest ukryty. Atakujący nie może obejść ochrony, bo nie wie, gdzie uderzyć bezpośrednio.

Podłączenie zajmuje kilka minut: wskazujesz adres MineGuard jako adres swojego serwera, a MineGuard przekazuje czysty ruch do ciebie.

Krok 7: Po ataku - co sprawdzić

Atak się skończył. Serwer działa. Ale nie pora się rozluźniać. Oto checklista:

Zachowaj logi

# Skopiuj logi iptables
iptables -L -n -v > ~/attack-log-iptables-$(date +%Y%m%d).txt
# Skopiuj logi Minecrafta
cp /path/to/server/logs/latest.log ~/attack-log-mc-$(date +%Y%m%d).log
# Zapisz statystyke polaczen
ss -s > ~/attack-log-connections-$(date +%Y%m%d).txt

Te logi pomogą przy analizie i mogą się przydać, jeśli zdecydujesz złożyć skargę do dostawcy hostingu atakującego.

Sprawdź integralność danych

  • Czy wszystkie światy ładują się poprawnie?
  • Czy pluginy działają bez błędów?
  • Czy dane graczy (ekwipunki, pozycje, ekonomia) nie są uszkodzone?
  • Czy backup był zrobiony przed atakiem czy w jego trakcie?

Jeśli backup powstawał w trakcie ataku, może być uszkodzony. Użyj poprzedniego backupu do sprawdzenia.

Usuń tymczasowe reguły

Przejrzyj wszystkie reguły iptables dodane w pośpiechu. Zbyt agresywne reguły mogą blokować prawdziwych graczy.

# Zobacz aktualne reguly z numerami
iptables -L INPUT -n --line-numbers
# Usun konkretna regule po numerze
iptables -D INPUT <numer>

Sprawdź, czy nie zostały ślady

  • Czy nie ma nieznanych graczy z OP?
  • Czy configi (server.properties, spigot.yml) nie zostały zmienione?
  • Czy w folderze plugins nie ma podejrzanych pluginów?

DDoS bywa używany jako odwrócenie uwagi, gdy atakujący próbuje wyeksploatować podatności na serwerze.

Krok 8: Plan ochrony na przyszłość

Atak zdarzył się raz, zdarzy się znowu. Przygotuj się wcześniej.

Backupy

  • Skonfiguruj automatyczne backupy minimum raz dziennie
  • Trzymaj backupy na osobnym serwerze albo w chmurze
  • Sprawdzaj backupy raz w miesiącu, przywracaj testowo

Ukryj prawdziwy IP

  • Używaj proxy (BungeeCord, Velocity) albo usługi ochronnej
  • Nie publikuj IP serwera nigdzie poza adresem proxy
  • Jeśli IP już wyświetlony - poproś hosting o zmianę

Przygotuj skrypt awaryjnej ochrony

Stwórz skrypt, który można odpalić jedną komendą przy ataku:

#!/bin/bash
# emergency-protect.sh
echo "Wlaczam awaryjna ochrone..."
# Limit polaczen
iptables -A INPUT -p tcp --dport 25565 -m connlimit --connlimit-above 3 -j DROP
# Rate limit nowych podlaczen
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 "Ochrona aktywna. Nie zapomnij wlaczyc whitelisty!"

Monitoring

  • Skonfiguruj alerty przy anomalnym ruchu
  • Używaj Prometheus + Grafana albo chociaż prosty skrypt śledzący liczbę połączeń
  • Zapisz się na powiadomienia hostingu o problemach sieciowych

Dokumentacja

  • Zapisz, co się stało i jakie działania pomogły
  • Zbierz kontakty: support hostingu, inni adminowie, którzy mogą pomóc
  • Aktualizuj plan działań po każdym ataku

Szybkie podsumowanie: kolejność działań

  1. Nie panikuj. Otwórz notatnik, fiksuj działania
  2. Ustal typ: sprawdź ruch (vnstat, nethogs), połączenia (ss), CPU (top)
  3. Zastosuj reguły iptables: limit połączeń, rate limiting
  4. Włącz whitelist w Minecrafcie
  5. Napisz do supportu hostingu ze szczegółami
  6. Oceń potrzebę profesjonalnej ochrony (MineGuard albo odpowiednik)
  7. Po ataku: zachowaj logi, sprawdź dane, usuń tymczasowe reguły
  8. Przygotuj plan na przyszłość: backupy, monitoring, ukrycie IP

Atak to nieprzyjemna sprawa, ale nie koniec. Przy prawidłowych działaniach zminimalizujesz szkody i zwrócisz serwer do służby szybciej, niż myślisz.


Chroń swój serwer przed atakami DDoS

Darmowa ochrona z konfiguracją w 5 minut. 1 TB ruchu w zestawie.

Wypróbuj za darmo


Powiązane artykuły