MCSTORM_IO - czy mogę się jakoś bronić?

Pół godziny temu widziałem na konsoli bardzo duży ruch, sprawdziłem latest.log - ok. 90 tys. wpisów takich jak poniżej. Atak trwał jedną minutę. Serwer wytrzymał, nie wiem, czy użytkownicy coś zauważyli. Czy mogę się jakoś bronić?

[18:30:30] [Server thread/INFO]: com.mojang.authlib.GameProfile@5f873004[id=<null>,name=MCSTORM_IO_sjboh,properties={},legacy=false] (/23.129.64.135:4991) lost connection: Disconnected
[18:30:30] [Server thread/INFO]: com.mojang.authlib.GameProfile@6d45e775[id=<null>,name=MCSTORM_IO_rprym,properties={},legacy=false] (/89.151.134.157:37003) lost connection: Disconnected
[18:30:30] [Server thread/INFO]: com.mojang.authlib.GameProfile@12a3d388[id=<null>,name=MCSTORM_IO_pqrua,properties={},legacy=false] (/180.211.191.38:50640) lost connection: Disconnected
[18:30:30] [Server thread/INFO]: com.mojang.authlib.GameProfile@15786744[id=<null>,name=MCSTORM_IO_foyue,properties={},legacy=false] (/178.218.201.63:46128) lost connection: Disconnected
[18:30:30] [Server thread/INFO]: com.mojang.authlib.GameProfile@731972ff[id=<null>,name=MCSTORM_IO_txwdl,properties={},legacy=false] (/123.234.46.51:60396) lost connection:Disconnected
[18:30:30] [Server thread/INFO]: com.mojang.authlib.GameProfile@31a54da6[id=<null>,name=MCSTORM_IO_gkqgl,properties={},legacy=false] (/123.200.6.58:59393) lost connection: Disconnected
[18:30:30] [Server thread/INFO]: com.mojang.authlib.GameProfile@5780dcea[id=<null>,name=MCSTORM_IO_bmvik,properties={},legacy=false] (/157.245.244.159:36494) lost connection: Disconnected
[18:30:30] [Server thread/INFO]: com.mojang.authlib.GameProfile@219f7ee6[id=<null>,name=MCSTORM_IO_yhuzl,properties={},legacy=false] (/41.184.212.3:36730) lost connection: Disconnected
[18:30:30] [Server thread/INFO]: com.mojang.authlib.GameProfile@32f53a20[id=<null>,name=MCSTORM_IO_weixp,properties={},legacy=false] (/36.89.246.187:51431) lost connection: Disconnected
[18:30:30] [Server thread/INFO]: com.mojang.authlib.GameProfile@4ce38231[id=<null>,name=MCSTORM_IO_skzuj,properties={},legacy=false] (/109.75.47.204:39749) lost connection: Disconnected
[18:30:30] [Server thread/INFO]: com.mojang.authlib.GameProfile@1dd560cb[id=<null>,name=MCSTORM_IO_mwnrw,properties={},legacy=false] (/103.127.63.57:42482) lost connection: Disconnected
[18:30:30] [Server thread/INFO]: com.mojang.authlib.GameProfile@47e745d9[id=<null>,name=MCSTORM_IO_xigsy,properties={},legacy=false] (/182.176.104.26:43095) lost connection: Disconnected

Najskuteczniej? Włączając tryb online. Pewnie tego nie zrobisz, więc nada się też darmowy epicguard lub płatny botsentry. Pamiętaj by dokładnie przejrzeć config pobranego pluginu.

Jako pierwsza linia obrony przyda się jakiś antybot, czy blokowanie wzorców nicków (w końcu MCSTORM_IO_*).

Jako dalsza warstwa na to co przejdzie, mogę polecić usługę typu IP score, np. OK! No.Proxy (PS. mogę na PW podrzucić jakiś testowy plan).

Polecam zastosować segmentowanie sieci, podczas zmożonego ruchu z pewnych segmentów które są RISK wycinasz go. Możliwości jest multum, myślę, że w twoim case wystarczy iptables z ipsetem do tego.

Mam tryb online, więc logować mogą się tylko gracze z kontem premium.

Mam to: https://www.spigotmc.org/resources/vpnguard.6246/

Czyli te logi to tylko “odbijanie” się botów od serwera? W takim wypadku jeśli łącza wystarcza i nie widzisz żadnych negatywnych skutków na serwerze to nie ma co się martwić.

Tak, tylko się odbijały. Oba rdzenie CPU były obciążone na 100%, ale nie wiem, czy użytkownicy na serwerze coś zauważyli - na czacie się nie skarżyli.

Q. How many players can the plugin look information up for?
A. At the time of writing this the backend API provider has a 500 monthly request limit. Which means if you enable api-cache within config.yml you can get 500 monthly unique players and lookup information regarding them with no problem! Just to clarify once more, the plugin is free, however the API Backend this plugin uses is not. I do not manage the API service, so please don’t penalize the plugin for you not being able to use it for free.

500 req/mc to trochę może być mało, jeśli faktycznie by było potrzebne z tego korzystać :flushed:

Zbierz logi i bashem lub inną metodą wyciągnij IP z linijek które mają w sobie MCSTORM_IO_, po czym wpakuj to w ipset i wytnij na iptables.

Wydaje mi się, że plugin VPNGuard w ogóle tego nie zauważył, żadnego komunikatu od tego pluginu w logu nie widzę.

Tak, bo weryfikacja premium jest bardzo wcześnie w procesie łączenia się z serwerem. W teorii pod tym względem logowanie kont premium wymaga więcej zasobów (każde połączenie praktycznie to request do mojangu).

To ponad 91 tys. wierszy, ale nie sprawdzałem, czy adresy IP się powtarzają.

Czy to obciąża bardziej mój serwer czy raczej serwery Mojang?

Weź pod uwagę możliwość ataku refleksyjnego przy włączonym online mode (vps zawala serwery Mojangu requestami o logowanie). Może być jeszcze goręcej niż przy offline mode :sunglasses:

Coś takiego pomoże wylistować IP:

cat jakis.log | grep MCSTORM_IO_ | grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" | sort -n | uniq > lista.txt

A czymś takim możesz sprawdzić częstotliwość występowania konkretnych adresów:

cat jakis.log | grep MCSTORM_IO_ | grep -E -o "([0-9]{1,3}[\.]){3}[0-9]{1,3}" | sort -n | uniq -c | sort -n

Proporcjonalnie do skali przedsięwzięcia raczej odpowiedź jest prosta. :flushed:

W pliku są 2172 wpisy, jeden adres IP został wykorzystany aż 171 razy, inne adresy tylko raz.

Wystarczy plugin nAntibot

Zalecane czytanie ze zrozumieniem, osoba posiada online-mode, przez co te boty “odbijają się” od serwera (nie wchodzą na niego). Żaden plugin nie pomoże w tym przypadku, trzeba ingerować głębiej w zapory (rozwiązania systemowe).

Zrobiłem kilka małych testów z ok. 8k połączeń na sekundę na serwerze z darmowego hostingu. Użycie procesora wzrasta podobnie jak u ciebie, lecz w średnich mspt nie ma dużej różnicy. Przez 30 sekund ataku utrzymywały się one na poziomie 2,5, co można przetłumaczyć na 5% obciążenia serwera. Najwyższy tick w tym czasie osiągnął 200 ms, więc źle nie jest. Aktualnie nie masz problemu, jeśli jednak ataki będą większe to pobaw się trochę firewallem. Droższą opcją jest też tcpshield, lecz aktualnie nie będziesz miał raczej tak dużych ataków by był on potrzebny. Możesz dodatkowo wyczyścić sobie logi z prób dołączeń botów pluginem consolespamfix.

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.