TL; DR
El hardware potente es probablemente la única defensa para los ataques DDoS a gran escala.
El bloqueo de la IP de los usuarios puede ayudar, pero también puede ser contraproducente, ya que los jugadores reales podrían usarse en DDoS contra ti sin saberlo.
El manejo de la conexión del servidor es rápido y liviano, para evitar agregar formas adicionales de ataque.
En primer lugar, el servidor no debe permitir que una conexión haga nada hasta que se haya autenticado y se haya demostrado que es un usuario válido. No hay ninguna razón por la que el servidor deba hacer algo por conexiones no válidas. Sus jugadores deben tener cuentas en su servidor, y deben iniciar sesión con una contraseña. El servidor no debe hacer nada con una conexión hasta que puedan iniciar sesión correctamente. Cualquier manejo costoso solo debería ocurrir después de que se haya completado el inicio de sesión. Podría ir un paso más allá y bloquear la dirección IP de cualquiera que realice demasiados intentos de inicio de sesión incorrectos, pero esto probablemente no ayude mucho por las razones a continuación ...
Intentar bloquear las conexiones en el software no detendrá un verdadero ataque DDoS. En el mejor de los casos, funcionaría en un escenario específico en el que ha enfurecido a un foro de miles de miembros, quienes decidieron tomar represalias al pasar todo el día intentando iniciar sesión en su servidor. Plausible, pero no una forma eficiente de atacar. Bloquearlos reduciría la carga en su servidor de juegos si tiene un esquema de autenticación algo caro.
Una verdadera DDoS, sin embargo, ignora su protocolo de inicio de sesión. Opera en las capas inferiores de la red; antes de que su aplicación sepa que se ha recibido un paquete. Estos tipos de ataques no pueden ser mitigados más que por un hardware que sea lo suficientemente poderoso como para soportar más abusos que los atacantes. Los cortafuegos de hardware especiales pueden ayudar aquí. El propio firewall puede bloquear las conexiones en función de su propia lógica, pero aún así tiene límites. Un firewall más caro podría tener límites más altos, pero aún así probablemente no pueda soportar 10 millones de atacantes. Ahora, si su servidor de juegos es un clúster de servidores en docenas de lugares, cada uno con su propio enrutador y firewall costoso ... tiene muchas más posibilidades en general. Eso podría costar más que lo que vale cualquier servidor de juegos, pero incluso los enrutadores con precios modestos tienen algo de filtrado de tráfico.
El bloqueo de las conexiones en su código cuando su firewall no puede evitar que su código sufra un impacto secundario en el procesador y la memoria, y tampoco puede ayudarlo con la saturación de la red. (Puede cerrar la puerta de su casa para evitar que las personas pisoteen toda su casa, pero eso no impide que se abarroten en su camino de acceso. Puede agregar una puerta, pero pueden invadir la puerta. Podría construir una puerta más grande, pero suficiente de ellos también pueden enjambres.)
El tiempo en el software o mediante un firewall, el bloqueo de los usuarios por IP tiene un inconveniente. Imagínese si un troll que odia su juego decidiera crear una página web con un script que haga intentos de inicio de sesión en su juego. Si suben esta página a uno de tus foros de juegos, cualquier jugador legítimo que pase por esa página, sin saberlo, hará intentos de inicio de sesión. Esto no solo causa problemas para que su servidor maneje estas solicitudes ... ¡sino que si su servidor las bloquea, es posible que esté bloqueando jugadores legítimos!
Por lo tanto, al cerrar, asegúrese de tener un protocolo de inicio de sesión adecuado y eficiente, tan bueno como sea posible con un enrutador / firewall, y de que tenga mucho cuidado con la forma en que bloquea las direcciones IP, en todo caso.