Wykrywanie VPN i proxy na serwerze Minecraft: po co i jak

Wykrywanie VPN i proxy na serwerze Minecraft: po co i jak

Zbanowałeś gracza za griefing. Pięć minut później wrócił pod innym nickiem z nowego IP. Znajome? Witaj w świecie VPN i proxy na serwerach Minecraft.

Usługi VPN i proxy stały się tak dostępne, że każdy uczniak w minutę może zmienić swoje IP. Dla zwykłych userów to narzędzie prywatności. Dla adminów serwerów Minecraft to ból głowy, który nie mija.

W tym artykule rozkładam na czynniki: po co w ogóle wykrywać VPN i proxy, jakie są metody, jakich serwisów i pluginów używać, i jak nie przesadzić, blokując legalnych graczy.

Po co wykrywać VPN i proxy

Omijanie banów

Najoczywistszy powód. Gracz dostaje bana po IP, włącza VPN, dostaje nowe IP z innego kraju i wchodzi na serwer jakby nigdy nic. Bez detekcji VPN twój system banów jest bezużyteczny.

W praktyce wygląda to tak: banujesz gracza za używanie cheatów. Podpina NordVPN albo ProtonVPN, zmienia IP z rosyjskiego na niemieckie i rejestruje nowe konto. Twój ban po IP nie zadziałał. Ban po nicku też jest bezużyteczny, bo rejestracja nowego konta na piratce zajmuje 10 sekund.

To problem nie tylko serwerów piratów. Na licencyjnych serwerach z online-mode jest trochę trudniej, ale UUID-ban można obejść przez alternatywne konta. A ban po IP dalej obchodzi się jednym kliknięciem w kliencie VPN.

Ataki botów

Boty podczas ataku na serwer prawie zawsze używają list proxy albo VPN. Jedno IP może wysłać kilkanaście połączeń, po czym zostanie zablokowane. Ale jeśli atakujący ma tysiące proxy, każde IP jest używane raz lub dwa razy, a twój rate limiter po IP staje się bezużyteczny.

Typowy atak botów wygląda tak: atakujący odpala skrypt, który łączy się z twoim serwerem z różnych IP, każde połączenie przez nowe proxy z listy. W minutę do twojego serwera podłącza się setki "graczy", każdy z unikalnym IP z różnych krajów. Rate limiter po IP nie zadziała, bo z każdego IP idzie tylko jedno-dwa połączenia.

Mechanikę ataków botów rozkładaliśmy szczegółowo w artykule Ataki botów na serwer Minecraft. Tam też jest opis, jak captcha pomaga filtrować boty. Ale detekcja VPN dokłada kolejną warstwę ochrony, odsiewając podejrzane połączenia zanim bot w ogóle dojdzie do etapu captchy.

Duplikowanie kont

Na serwerach z ekonomią i startowymi bonusami jeden gracz może tworzyć dziesiątki "mułów" przez VPN. Zarejestrował konto, dostał startowy zestaw, przerzucił surowce na główne konto, przełączył VPN, powtórzył. Bez detekcji VPN twoja ekonomia powoli się rozpada.

Problem się skaluje. Jeden zmotywowany gracz w wieczór może stworzyć 20-30 mułów, każdy przez osobny serwer VPN. Jeśli bonus startowy na twoim serwerze to 1000 monet, w jeden wieczór "nafarmi" 20-30 tysięcy. Gdy takich graczy są dziesiątki, inflacja zabija ekonomię w tydzień.

Chargebacki i oszustwa

Jeśli twój serwer przyjmuje donejty, userzy VPN to podwyższone ryzyko. Kupił rangę przez VPN cudzą kartą, dostał towar, właściciel karty otworzył dispute. Tracisz towar, pieniądze i dostajesz karę od systemu płatności.

Oszuści celowo używają VPN, żeby ukryć swoją prawdziwą lokalizację. To utrudnia dochodzenie i sprawia, że chargeback jest praktycznie nie do odzyskania. Systemy płatności coraz częściej traktują połączenia VPN jako czynnik ryzyka przy ocenie transakcji.

Jak działa detekcja: pod maską

IP Reputation Databases

U podstaw większości metod leżą bazy reputacji IP. To ogromne listy adresów IP, z każdym przypisaną informacją: czy należy do providera VPN, data center, Tor exit node, residential proxy czy zwykłego ISP.

Jak te bazy są zbierane? Kilka sposobów:

  • Analiza ASN. Każdy blok IP należy do określonego systemu autonomicznego (AS). ASN NordVPN, ExpressVPN i innych providerów są znane. Cały ich zakres jest automatycznie oznaczony jako VPN.
  • Aktywne skanowanie. Serwisy sprawdzają IP pod kątem otwartych portów proxy (SOCKS4/5, HTTP CONNECT).
  • Sieci honeypot. Specjalne serwery, które zapisują IP użyte do abuzywnej aktywności.
  • Crowdsourcing. Dane od tysięcy klientów, którzy zgłaszają podejrzane IP.
  • Monitoring BGP. Śledzenie anonsów tras charakterystycznych dla providerów VPN i data centers. Określone wzorce w routingu pozwalają zidentyfikować bloki IP używane przez serwisy VPN.

Typy proxy i VPN

Nie wszystkie VPN są takie same. Rozumienie różnic między typami pomaga dokładniej skonfigurować detekcję:

Komercyjne VPN (NordVPN, ExpressVPN, Surfshark, CyberGhost). Używają IP z data center, łatwo wykrywalne po ASN. To najbardziej rozpowszechniony typ wśród zwykłych userów.

Tor Exit Nodes. Lista exit nodes Tora jest publiczna i aktualizowana co godzinę. Usera Tora wykryć najłatwiej. Tor jest używany zarówno przez boty, jak i przez userów z wysokimi wymaganiami co do prywatności.

Proxy data center. Adresy IP należące do hostingów (AWS, DigitalOcean, Hetzner, OVH). Legalny gracz niezwykle rzadko łączy się z IP data center. Praktycznie zawsze to bot albo proxy.

Residential proxy. Najtrudniejszy do detekcji typ. Ruch przechodzi przez realne domowe IP zwykłych userów (często bez ich wiedzy, przez zainfekowane urządzenia albo "darmowe" aplikacje VPN). IP wygląda jak zwykłe domowe, bo nim jest.

Proxy SOCKS4/SOCKS5. Otwarte serwery proxy, często na skompromitowanych maszynach. Wykrywane przez aktywne skanowanie portów.

Główne serwisy API

proxycheck.io

Jeden z najpopularniejszych serwisów w społeczności Minecraft. Mają darmowy plan (1000 zapytań dziennie) i plany płatne.

Przykład zapytania:

curl "https://proxycheck.io/v2/185.220.101.4?key=YOUR_API_KEY&vpn=1&asn=1"

Odpowiedź:

{
  "status": "ok",
  "185.220.101.4": {
    "asn": "AS60729",
    "provider": "Starknet",
    "continent": "Europe",
    "country": "Germany",
    "type": "VPN",
    "risk": 98
  }
}

Pole risk od 0 do 100. Wartość powyżej 66 zazwyczaj oznacza VPN/proxy. Pole type może być VPN, Hosting, TOR, SOCKS, SOCKS4, SOCKS5, Inference Engine i inne.

Ważny niuans proxycheck.io: mają Dashboard, gdzie widać statystyki zapytań. Dla serwerów Minecraft wygodne jest to, że wspierają zapytania batch - można sprawdzić do 1000 IP jednym zapytaniem, co znacząco oszczędza limit.

IPQualityScore

Bardziej zaawansowany serwis z machine learning. Poza detekcją VPN wykrywa boty, residential proxy, a nawet anomalie geolokalizacyjne.

curl "https://ipqualityscore.com/api/json/ip/YOUR_KEY/185.220.101.4"
{
  "success": true,
  "proxy": true,
  "vpn": true,
  "tor": false,
  "is_crawler": false,
  "recent_abuse": true,
  "fraud_score": 95,
  "ISP": "Starknet",
  "ASN": 60729,
  "connection_type": "Data Center"
}

fraud_score od 0 do 100. Powyżej 85 to zdecydowanie VPN/proxy. IPQualityScore jest szczególnie dobry w wykrywaniu residential proxy, z czym inne serwisy radzą sobie gorzej. Pole connection_type dokładnie pokazuje typ połączenia: Residential, Corporate, Data Center, Education.

ip-api.com

Darmowy serwis z limitem 45 zapytań na minutę. Niezbyt dokładny do detekcji VPN, ale rozpoznaje hostingi i data center. Pasuje do małych serwerów, które nie chcą płacić za API.

curl "http://ip-api.com/json/185.220.101.4?fields=status,proxy,hosting,isp,as"
{
  "status": "success",
  "proxy": true,
  "hosting": true,
  "isp": "Starknet",
  "as": "AS60729 Starknet"
}

Uwaga: ip-api.com w darmowym planie działa tylko przez HTTP (nie HTTPS). Do zastosowań produkcyjnych to ograniczenie, bo klucz API i zapytania lecą otwartym tekstem.

ipinfo.io

Kolejna przyzwoita opcja. Darmowy plan do 50 000 zapytań miesięcznie. Mają osobny produkt Privacy Detection API, który wykrywa VPN, proxy, Tor i połączenia relay. Dane są bardzo dokładne, szczególnie do wykrywania IP z data center.

Porównanie serwisów

Parametrproxycheck.ioIPQualityScoreip-api.comipinfo.io
Darmowy limit1000/dzień5000/mies45/min50000/mies
Dokładność VPNWysokaBardzo wysokaŚredniaWysoka
Residential proxyCzęściowoTakNieCzęściowo
TorTakTakCzęściowoTak
Czas odpowiedzi~50ms~80ms~30ms~40ms
Zapytania batchDo 1000NieDo 100Nie
Pluginy MinecraftAntiVPN, PlanCustomCustomCustom

Rozwiązania pluginowe

Anti-VPN (EJB Software)

Najpopularniejszy plugin do detekcji VPN dla Minecrafta. Wspiera Bukkit, Spigot, Paper, Velocity, BungeeCord.

Instalacja: pobierasz JAR, wrzucasz do /plugins/, restartujesz serwer. Podstawowa konfiguracja:

# plugins/AntiVPN/config.yml
sources:
  order:
    - proxycheck
    - iphub
    - ipqualityscore

mcleaks:
  enabled: true

kick:
  enabled: true
  message: "&cVPN/Proxy connections are not allowed on this server."

action:
  method: "kick"
  # Можно заменить на "command" для выполнения команды
  # command: "ban {player} VPN detected"

bypass:
  permission: "antivpn.bypass"

Anti-VPN wspiera wiele źródeł danych i pozwala je łączyć dla większej dokładności. Jeśli jeden serwis mówi VPN, a dwa inne nie, można ustawić próg.

Dodatkowe ustawienia, które warto włączyć:

# Минимальное количество источников, подтверждающих VPN
consensus:
  min-sources: 2

# Логирование всех проверок
logging:
  enabled: true
  file: "antivpn.log"

# Алерты в Discord при обнаружении VPN
alerts:
  discord:
    enabled: true
    webhook: "https://discord.com/api/webhooks/..."

Plan (Analytics Plugin)

Plan to plugin analityczny do Minecrafta, który między innymi zbiera dane o GeoIP i typach połączeń. Integruje się z proxycheck.io i może pokazywać statystyki podłączeń VPN w panelu web. Sam nie blokuje VPN, ale daje cenne informacje do podejmowania decyzji.

Przykład własnego rozwiązania w Javie

Jeśli piszesz swój plugin, weryfikację VPN możesz zrobić przez zapytania HTTP:

public class VpnChecker {
    private final String apiKey;
    private final OkHttpClient client = new OkHttpClient();

    // Cache wyników na 30 minut
    private final Cache<String, Boolean> cache = CacheBuilder.newBuilder()
        .maximumSize(10000)
        .expireAfterWrite(30, TimeUnit.MINUTES)
        .build();

    public CompletableFuture<Boolean> isVpn(String ip) {
        Boolean cached = cache.getIfPresent(ip);
        if (cached != null) return CompletableFuture.completedFuture(cached);

        return CompletableFuture.supplyAsync(() -> {
            Request request = new Request.Builder()
                .url("https://proxycheck.io/v2/" + ip
                     + "?key=" + apiKey + "&vpn=1")
                .build();

            try (Response response = client.newCall(request).execute()) {
                JsonObject json = JsonParser.parseString(
                    response.body().string()
                ).getAsJsonObject();

                JsonObject ipData = json.getAsJsonObject(ip);
                String type = ipData.get("type").getAsString();
                boolean isVpn = type.equals("VPN") || type.equals("TOR");

                cache.put(ip, isVpn);
                return isVpn;
            } catch (IOException e) {
                // Przy błędzie API przepuszczamy gracza
                return false;
            }
        });
    }
}

Zwróć uwagę na cache. Bez niego każde połączenie generuje zapytanie HTTP, a podczas ataku botów twój klucz API szybko wyczerpie limit.

Tak samo krytycznie ważne jest używanie zapytań asynchronicznych (CompletableFuture). Jeśli robić sprawdzanie synchronicznie w głównym wątku serwera, każde połączenie zablokuje serwer na 50-100ms w oczekiwaniu na odpowiedź API. Przy 100 jednoczesnych połączeniach to katastrofa.

LimboFilter + detekcja VPN

Jeśli używasz LimboAuth albo LimboFilter do ochrony przed botami (pisaliśmy o tym w artykule o ochronie captcha), weryfikację VPN można wbudować w ten sam pipeline. Najpierw sprawdzamy IP pod kątem VPN, potem gracz przechodzi captchę. Podwójny filtr.

Zaletą takiego podejścia jest to, że weryfikacja VPN odbywa się na poziomie proxy (Velocity/BungeeCord), zanim połączenie trafi na backend. To oszczędza zasoby backendu i poprawia ogólną wydajność.

Wydajność: wąskie gardło

Wywołania API na każde połączenie

Za każdym razem, gdy gracz się łączy, twój serwer robi zapytanie HTTP do zewnętrznego API. W normalnym trybie to nie problem: 50 połączeń na godzinę, 50 zapytań. Ale podczas ataku botów do twojego serwera mogą się łączyć tysiące IP na minutę.

Bez cache'owania to oznacza:

  • Tysiące zapytań API na minutę
  • Wyczerpanie darmowego limitu w minuty
  • Dodatkowe opóźnienie przy połączeniu (50-100ms na każde zapytanie)
  • Jeśli API padło, zostajesz bez ochrony

W realnym scenariuszu ataku botów widziałem serwery, które w 10 minut ataku wyczerpywały miesięczny limit IPQualityScore (5000 zapytań). Potem API zwracał błąd 429 i wszystkie kolejne boty przechodziły bez weryfikacji.

Cache obowiązkowy

Minimum, które trzeba zrobić:

# Przykład konfiguracji cache
cache:
  enabled: true
  # Trzymać wynik sprawdzenia IP w pamięci
  duration: 30m
  # Maksymalna liczba wpisów
  max-size: 50000
  # Cache'ować też wyniki negatywne
  cache-negatives: true

Przy 50 000 unikalnych IP w cache i średnim rozmiarze wpisu ~200 bajtów to w sumie ~10MB RAM. Drobiazg.

Strategia cache'owania też jest ważna. Wyniki pozytywne (IP zidentyfikowane jako VPN) można cache'ować dłużej, 1-2 godziny. Providerzy VPN nie zmieniają IP swoich serwerów co 30 minut. Wyniki negatywne (czyste IP) cache'uj na 15-30 minut, żeby nie przegapić przypadku, gdy IP zostało niedawno przydzielone do serwera VPN.

Lokalne bazy vs API

Alternatywą dla zapytań API są lokalne bazy reputacji IP. Istnieją bazy w formacie CSV/SQLite, które pobiera się na serwer i aktualizuje raz dziennie.

Plusy:

  • Zerowe opóźnienie przy sprawdzaniu
  • Działa bez internetu
  • Brak limitów zapytań

Minusy:

  • Dane starzeją się między aktualizacjami
  • Nie łapią nowych serwerów VPN, które pojawiły się dziś
  • Duży rozmiar bazy (setki megabajtów)
  • Omijają residential proxy

W praktyce najlepsza strategia to kombinacja. Lokalna baza do pierwotnego sprawdzenia, API dla tych IP, które nie są lokalnie. To redukuje liczbę wywołań API o 80-90%, bo większość IP VPN jest już w lokalnej bazie.

Fail-open vs Fail-closed

Ważne pytanie architektoniczne: co robić, jeśli API nie odpowiada? Dwa podejścia:

Fail-open (przepuszczać przy błędzie). Jeśli API nie odpowiada, gracz łączy się bez sprawdzenia. Bezpieczniej z punktu widzenia UX, ale otwiera okno na ataki, jeśli atakujący wie, że twój limit API jest wyczerpany.

Fail-closed (blokować przy błędzie). Jeśli API nie odpowiada, wszystkie nowe połączenia są blokowane. Bezpieczniej, ale może zablokować legalnych graczy przy awarii API.

Polecam fail-open z cache'owaniem. Nawet jeśli API padło, cache wciąż zawiera dane o tysiącach IP. Nowe, niesprawdzone IP zostaną przepuszczone, ale to lepsze niż całkowita blokada wszystkich połączeń.

Problem fałszywych alarmów

Kto używa VPN legalnie

Tu zaczyna się najtrudniejsza część. Nie każdy user VPN to napastnik. Jest kilka kategorii legalnych userów:

Gracze z krajów z cenzurą. W Chinach, Iranie, ZEA i wielu innych krajach VPN jest niezbędny do dostępu do serwerów Minecraft poza krajem. Jeśli blokujesz wszystkie VPN, tracisz tych graczy. Dla dużych międzynarodowych serwerów to może oznaczać utratę 5-10% audiencji.

Prywatność. Niektórzy gracze z zasady używają VPN do ochrony swojego realnego IP. To nie czyni ich napastnikami. Zwłaszcza po głośnych przypadkach doxingu w społeczności Minecraft, gdzie realne IP graczy były używane do ataków DDoS na sieci domowe.

Korporacyjne VPN. Gracze, którzy łączą się z pracy przez korporacyjny VPN. Tak, tak bywa. Korporacyjne VPN zwykle używają IP z data center, co może powodować fałszywe alarmy.

Internet mobilny. Niektórzy operatorzy mobilni używają CGNAT, a ich IP trafiają do baz jako "podejrzane". To klasyczny false positive. W krajach z rozwijającymi się rynkami to szczególnie aktualne, bo operatorzy mobilni masowo używają CGNAT.

Sieci uniwersyteckie. Studenci grający z sieci uczelnianych często łączą się przez NAT z IP, które może być oznaczone jako "hosting" albo "datacenter", bo uniwersytety mają własne numery AS.

Statystyki typów połączeń

Według różnych badań, około 15-25% ruchu botów na serwery Minecraft idzie przez VPN albo proxy. Jednocześnie wśród legalnych graczy VPN używa 3-7%. To znaczy, że totalna blokada VPN odetnie znacząco więcej botów niż realnych graczy. Ale te 3-7% realnych graczy to mogą być aktywni członkowie twojej społeczności.

Jeszcze ciekawszy jest podział na typy:

  • Komercyjne VPN (NordVPN, ExpressVPN, Surfshark): 60% botów, 80% legalnych userów VPN
  • Proxy data center: 30% botów, 5% legalnych userów
  • Residential proxy: 8% botów, 10% legalnych userów
  • Tor exit nodes: 2% botów, 5% legalnych userów

Jak widzisz, proxy data center można blokować śmiało - szansa zahaczenia legalnego gracza minimalna. A komercyjne VPN - trudniej.

Strategie: balans bezpieczeństwa i dostępności

Miękki tryb: sprawdzanie bez blokady

Zamiast natychmiastowej blokady połączeń VPN, loguj je i stosuj dodatkowe sprawdzenia:

# Tryb miękki
action:
  vpn_detected:
    # Nie kickować, tylko dodać flagę
    method: "flag"
    # Wzmocnić weryfikację captcha
    extra_captcha: true
    # Ograniczyć akcje przez pierwsze 30 minut
    restrict_period: 30m
    restrictions:
      - "no_trade"
      - "no_chat_links"
      - "no_pvp"

Gracz z VPN wchodzi na serwer, ale przez pierwsze 30 minut nie może handlować, wysyłać linków na czacie i PvP. Jeśli to bot albo griefer, ograniczenia czynią atak bezsensownym. Jeśli legalny gracz, po 30 minutach dostaje pełny dostęp.

To podejście dobrze działa na serwerach z aktywną społecznością, gdzie ważne jest, żeby nie odstraszyć nowych graczy. Tymczasowe ograniczenia mniej irytują niż pełny ban za używanie VPN.

Twardy tryb: blokada z whitelistą

Jeśli twój serwer jest stale atakowany i miękki tryb nie daje rady:

action:
  vpn_detected:
    method: "kick"
    message: "VPN/Proxy detected. Apply for whitelist at discord.gg/..."

whitelist:
  enabled: true
  # Игроки с этими UUID могут заходить через VPN
  players:
    - "550e8400-e29b-41d4-a716-446655440000"  # SteveFromChina
    - "6ba7b810-9dad-11d1-80b4-00c04fd430c8"  # PrivacyEnthusiast

Gracz z VPN dostaje kicka z wiadomością, która kieruje go na Discord. Tam tłumaczy powód używania VPN i dostaje pozwolenie. Tak, to dodaje tarcie. Ale czasami to jedyna działająca opcja.

Ważne: whitelist powinien być przywiązany do UUID, a nie do nicku. UUID nie zmienia się przy zmianie nicku, więc gracz nie straci pozwolenia.

Tryb hybrydowy: po typie proxy

Najbardziej zbalansowane podejście:

action:
  # Proxy data center i Tor - blokować od razu
  datacenter_proxy:
    method: "kick"
  tor_exit:
    method: "kick"

  # Komercyjne VPN - tryb miękki
  commercial_vpn:
    method: "flag"
    extra_captcha: true
    restrict_period: 15m

  # Residential proxy - przepuszczać
  residential_proxy:
    method: "allow"
    log: true

To podejście odcina to co najgroźniejsze (proxy data center, Tor), stosuje miękkie środki do komercyjnych VPN i przepuszcza residential proxy. W praktyce blokuje to 90%+ ruchu botów przy minimum fałszywych alarmów.

Czasowa blokada podczas ataku

Kolejna zaawansowana strategia: dynamicznie zaostrzać reguły przy wykryciu ataku. W normalnym trybie VPN są dozwolone z ograniczeniami. Gdy liczba połączeń na minutę przekroczy próg (np. 50), automatycznie włącza się twardy tryb, blokujący wszystkie VPN. Gdy atak się kończy, reguły wracają do normalnych.

dynamic_mode:
  normal:
    vpn_action: "flag"
  attack_threshold: 50  # połączeń/min
  attack:
    vpn_action: "kick"
    duration: 10m  # pozostać w trybie ataku

To pozwala nie poświęcać dostępności w czasie pokoju, ale szybko zamykać lukę VPN podczas ataku.

Integracja z ochroną DDoS

Filtrowanie na poziomie sieci

Idealny scenariusz to gdy detekcja VPN działa nie na poziomie pluginu Minecraft, a na poziomie filtra sieciowego. To znaczy, że podejrzane IP są odsiewane zanim połączenie TCP w ogóle dotrze do twojego serwera.

MineGuard realizuje dokładnie takie podejście. Detekcja VPN jest wbudowana w filtrujące proxy, które obsługuje połączenia przed ich sproxowaniem na twój serwer. To zdejmuje obciążenie z serwera Minecraft i usuwa opóźnienie zapytań API z pipeline'u podłączenia gracza.

Zalety filtrowania na poziomie sieci:

  • Obciążenie od sprawdzania VPN nie leży na serwerze Minecraft
  • Reputacja IP sprawdzana równolegle z innymi sprawdzeniami (rate limiting, GeoIP)
  • Cache wspólny dla wszystkich serwerów podłączonych do filtra
  • Podczas ataku botów przetwarzanie dzieje się przed twoim serwerem
  • Nie ma potrzeby instalowania i aktualizowania pluginów na każdym serwerze

Połączenie z captchą

Najskuteczniej detekcja VPN działa w połączeniu z innymi mechanizmami:

  1. Filtr sieciowy odsiewa oczywiste proxy data center i Tor
  2. Rate limiter ogranicza liczbę połączeń z jednego IP
  3. Detekcja VPN oznacza podejrzane połączenia
  4. Captcha weryfikuje oznaczonych graczy
  5. Analiza behawioralna śledzi anomalie po podłączeniu

Każda warstwa usuwa swoją porcję ruchu botów. Razem tworzą system, który niezwykle trudno obejść. Bot musi jednocześnie używać residential proxy (drogo), przejść rate limiter (wolno), nie być oznaczonym przez detekcję VPN, rozwiązać captchę (technicznie trudne) i imitować normalne zachowanie.

GeoIP w połączeniu z detekcją VPN

Dodatkowa technika: łączenie detekcji VPN z filtrowaniem GeoIP. Jeśli twój serwer celuje w audiencję rosyjskojęzyczną, a połączenie idzie z IP w Brazylii przez komercyjny VPN, to prawie na pewno nie twój docelowy gracz.

Oczywiście blokady GeoIP nie można używać jako jedynej metody (legalni gracze mogą podróżować), ale w połączeniu z detekcją VPN daje dodatkowy sygnał do podjęcia decyzji.

Co wybrać dla twojego serwera

Mały serwer (do 50 graczy)

Plugin Anti-VPN + darmowe API od proxycheck.io. 1000 zapytań dziennie wystarczy z zapasem. Ustaw miękki tryb z ograniczeniami zamiast pełnej blokady. Jeśli ataków nie ma, detekcja VPN służy głównie do zapobiegania ban evasion.

Koszt: darmowo. Czas konfiguracji: 15 minut.

Średni serwer (50-200 graczy)

Anti-VPN z płatnym API + lokalny cache na 30 minut. Tryb hybrydowy po typie proxy. Koniecznie whitelist dla sprawdzonych graczy z VPN.

Koszt: $5-15/mies za API. Czas konfiguracji: 30-60 minut.

Duży serwer (200+ graczy)

Potrzebujesz filtrowania na poziomie sieci. Pluginowe rozwiązania nie poradzą sobie z poważnymi atakami botów, bo każde połączenie i tak dojdzie do serwera Minecraft. Serwisy w rodzaju MineGuard obsługują detekcję VPN przed twoim serwerem, co jest krytycznie ważne przy masowych atakach.

Koszt: zależy od providera. Czas zwrotu: pierwszy odbity atak.

Praktyczne porady

Zacznij od logowania. Zanim zaczniesz blokować VPN, włącz logowanie na tydzień. Zobacz, ilu twoich aktualnych graczy używa VPN. To da pojęcie o skali potencjalnych fałszywych alarmów.

Nie blokuj po cichu. Jeśli kickujesz gracza za VPN, koniecznie pokaż zrozumiałą wiadomość z instrukcją, jak dostać dostęp (whitelist, Discord, kontakt z adminem).

Aktualizuj bazy. Jeśli używasz lokalnej bazy reputacji IP, aktualizuj ją minimum raz dziennie. Providerzy VPN regularnie rotują swoje IP.

Monitoruj limity API. Ustaw alert, gdy zużycie API zbliża się do limitu. Nagły skok zapytań może oznaczać atak.

Nie polegaj na jednej metodzie. Detekcja VPN to jedna warstwa ochrony. Łącz z captchą, rate limiting, analizą behawioralną.

Testuj z VPN. Raz w miesiącu podłącz się do swojego serwera przez popularne serwisy VPN i sprawdź, jak działa detekcja. Serwisy API aktualizują bazy i to, co działało miesiąc temu, może przestać.

Prowadź statystyki. Zapisuj, ile połączeń zostało zablokowanych przez detekcję VPN, ile z nich było realnymi botami, ile fałszywymi alarmami. Te dane pomogą dostroić progi.

Zapewnij obejście dla staffu. Moderatorzy i administratorzy muszą móc wejść przez VPN bez ograniczeń. Permisja antivpn.bypass dla staffu obowiązkowa.

Podsumowanie

Detekcja VPN i proxy nie rozwiązuje wszystkich problemów bezpieczeństwa serwera Minecraft, ale zamyka znaczącą część: omijanie banów, ataki botów przez listy proxy, multikonta.

Klucz to balans. Totalna blokada VPN odstraszy część legalnych graczy. Brak detekcji zostawi serwer bezbronny wobec ban evasion i botów. Podejście hybrydowe z różnymi regułami dla różnych typów proxy to to, co działa w praktyce.

Zacznij od małego: postaw Anti-VPN, podłącz proxycheck.io, włącz miękki tryb. Popatrz na logi, dostrój ustawienia. I pamiętaj, że detekcja VPN to część wielowarstwowego systemu bezpieczeństwa, a nie srebrna kula.


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