TL; DR
L'hardware potente è probabilmente l'unica difesa per gli attacchi DDoS su vasta scala.
Bloccare gli utenti IP può aiutare, ma può anche ritorcersi contro, poiché i giocatori reali potrebbero essere utilizzati in DDoS contro di te senza saperlo.
Mantieni la gestione delle connessioni server veloce e leggera, per evitare di aggiungere ulteriori modi in cui possono attaccare.
Prima di tutto, il server non deve consentire a una connessione di fare nulla finché non è stato autenticato e mostrato come un utente valido. Non c'è ragione per cui il server debba fare qualcosa per connessioni non valide. I tuoi giocatori devono avere account sul tuo server e devono accedere con una password. Il server non dovrebbe fare nulla con una connessione fino a quando non possono accedere con successo. Qualsiasi trattamento costoso dovrebbe avvenire solo dopo il completamento del login. Potresti fare un ulteriore passo avanti e bloccare l'indirizzo IP di chiunque comporti troppi tentativi di accesso errati, ma questo probabilmente non sarà di grande aiuto per le ragioni seguenti ...
Provare a bloccare le connessioni nel software non fermerà un vero attacco DDoS. Nel migliore dei casi, funzionerebbe in uno scenario specifico in cui hai irritato un forum di migliaia di membri, che hanno deciso di vendicarsi spendendo tutto il giorno cercando di accedere al tuo server. Plausibile, ma non un modo efficace per attaccare. Bloccarli ridurrebbe il carico sul tuo server di gioco se hai uno schema di autenticazione piuttosto costoso.
Un vero DDoS, tuttavia, ignora il tuo protocollo di accesso. Funziona ai livelli di rete inferiori; prima che la tua applicazione sappia che un pacchetto è stato ricevuto. Questi tipi di attacchi non possono essere mitigati se non da un hardware abbastanza potente da sopportare più abusi di quanto i tuoi aggressori possano gestire. Qui possono essere utili firewall hardware speciali. Il firewall stesso può bloccare le connessioni in base alla propria logica, ma ha ancora dei limiti. Un firewall più costoso potrebbe avere limiti più elevati, ma probabilmente non può resistere a 10 milioni di aggressori. Ora se il tuo server di gioco è un cluster di server in dozzine di postazioni ognuna con il proprio router e firewall costosi ... ha molte più possibilità in generale. Potrebbe essere più costoso di qualsiasi server di gioco, ma anche i router con un prezzo modesto hanno un filtro del traffico.
Bloccare le connessioni nel tuo codice quando il tuo firewall non può impedire al tuo codice di subire un colpo secondario sul processore e sulla memoria, e nessuno dei due può aiutare con la saturazione della rete. (Puoi chiudere la porta principale per impedire alle persone di calpestare tutta la casa, ma questo non impedisce loro di affollare il tuo vialetto.Potresti aggiungere un cancello, ma possono sciamare il cancello.Potresti costruire un cancello più grande, ma abbastanza di loro possono sciamare anche questo.)
Meteo in software o attraverso un firewall, il blocco degli utenti tramite IP ha uno svantaggio. Immagina se un troll che odia il tuo gioco decidesse di creare una pagina web con uno script che faccia tentativi di accesso al tuo gioco. Se caricano questa pagina in uno dei forum di giochi, i giocatori legittimi che passano da quella pagina effettueranno inconsapevolmente tentativi di accesso. Questo non solo causa problemi per il tuo server che gestisce queste richieste ... ma se il tuo blocco li blocca, allora stai potenzialmente bloccando i giocatori legittimi!
Quindi, in chiusura, assicurati di avere un protocollo di accesso corretto ed efficiente, come un router / firewall che ti puoi permettere, e di essere molto attento a come blocchi gli indirizzi IP, se non del tutto.