Proteger contra o DDOS pode ser difícil, porque uma alta proporção do tempo que o ISP fica sem recursos (firewalls com estado ou largura de banda) e vai afundar o seu bloco de IPs.
Se o seu DDOS esperado, em seguida, escolher um ISP que pode oferecer prevenção DDOS e sabe como lidar com cargas de alto tráfego, pergunte-lhes exemplos e sistema-los no lugar que pode ajudar. Desligar você não é uma resposta.
Esteja preparado para bloquear netblocks de máquinas de ddos agressivas ou blocos de rede de ddos com o iptables ou seu próprio firewall upstream.
se apenas alguns ip's usarem mais de 90% dos seus recursos, bloqueie-os.
Desenvolva métodos para detectar clientes abusivos (acessar determinados scripts ou páginas, solicitações estranhas, solicitações de páginas fora de ordem, etc, etc. e bloqueá-los).
considere o uso de qos de entrada / saída para controlar a largura de banda de saída de forma justa para os clientes.
considere dividir o banco de dados, a lógica do aplicativo e a veiculação da Web em hardware diferente.
considere um balanceador de carga com alguns nós de cache de carne para absorver pequenos invasores. Mas cuidado, entrar em uma guerra de recursos com o seu atacante não é a melhor idéia, eles vão ganhar! : - (
considere adicionar uma camada de cache entre o aplicativo e o banco de dados, que deve manter a carga do servidor de banco de dados para solicitações repetidas
se o ddo estiver segmentando conteúdo estático, não scripts da Web que exigem recursos do banco de dados, considere algo como um CDN (cloud flare) que oculta o endereço IP real do restante da Internet e ajuda a distribuir a carga geograficamente. você obtém conteúdo mais rápido entregue aos seus usuários e, como efeito colateral, você obtém proteção para os dodôs.
Se você não precisa do UDP, faça com que seu ISP bloqueie o tráfego na fronteira. se você precisar apenas da porta 80 e 443, faça com que seu ISP bloqueie isso na permissão da rede. Se o seu ISP não sabe o que UDP ou portas estão obtendo um novo ...: -).
hospede seu dns em uma infraestrutura separada, com alguém grande que possa lidar com ddos. Se você precisa hospedar o dns, coloque-o em uma infraestrutura separada e em uma rede diferente.
se você estiver usando SSL, certifique-se de que consegue lidar com o sucesso da CPU dos handshakes SSL. Aceleradores SSL são caros. Talvez desenvolva um sistema em que somente clientes pagos ou clientes autenticados registrados possam se conectar via SSL. O mesmo vale para as conexões da porta 80, certifique-se de que seus usuários estejam registrados antes de terem acesso ao aplicativo. Poderia interromper ataques de dodos profundos em seu aplicativo.
de qualquer forma, parece divertido. o que você está fazendo?