Como posso modificar meu cgi para responder de forma mais eficaz a / bloquear / qualquer que seja um ataque de ddos? [fechadas]

1

Estou sob DDoS. O que posso fazer? já aborda esse tipo de "questão canônica", mas acho que estou fazendo uma variante identificável, conforme descrito abaixo. Mas por favor avise se esta postagem é inapropriada.

Os ataques que estou recebendo são de vários e sempre mutáveis ip's; nos últimos minutos de 66.135.63.82. Todos os ataques são contra um cgi que estou usando no meu site que eu mesmo escrevi (é link mas não realmente de muito interesse para ninguém além de mim (e, aparentemente, o hacker)). Os ataques executam meu cgi com um query_string de aparência boba e eu adicionei uma função qvalidate () que parece estar identificando-os de forma confiável, até agora. E para consultas inválidas, eu agora durmo (15) e, em seguida, emito uma página de ~ 25MB para o atacante (só para mostrar que eu posso ser irritante, também :). E eles parecem esperar - em vez de vários ataques por segundo, eles agora estão espalhados em intervalos de aproximadamente 15 segundos.

Mas esta semi-correção parece boba e, finalmente, ineficaz a longo prazo. E desperdiço muito do meu tempo verificando as coisas várias vezes ao dia e, ocasionalmente, aprimorando o procedimento. Então, o que eu estou perguntando é - o que eu posso codificar no meu cgi para lidar melhor com esses ataques conforme eles ocorrem? Eu tenho o ataque na minha mão, por assim dizer, em tempo real, quando ocorre. E eu tenho o ip de um getenv ("REMOTE_ADDR"). Então eu posso fazer praticamente o que eu quiser neste momento (exceto tirar o bleep dele, que é o que eu realmente gostaria de fazer, mas não sei como codificar isso :). Qual seria a melhor coisa a fazer? Obrigado.

edit - Obrigado por respostas, pessoal. Eu deveria ter mencionado o meu site está no host compartilhado dreamhost.com por isso algumas sugestões não estão disponíveis para mim. E estou esperando por uma resposta do isp. Mas como é o meu próprio cgi, eu esperava que isso me desse a oportunidade de fazer algo que normalmente não é possível.

edit - @HBruijn Por que não é um tópico? No topo deste post, eu dei um link para a "questão canônica" deste site também sobre este mesmo tópico. E então eu continuei explicando porque eu pensei que estava perguntando uma "variante distinguível" daquela questão (aparentemente no tópico). Além disso, eu originalmente publiquei link e eles me disseram para postar aqui. Vai a figura:)

    
por John Forkosh 18.04.2016 / 14:09

1 resposta

2

Primeiro, uso o fail2ban para assistir ao log do servidor da web, e sempre que ele vê uma ocorrência suspeita, use esse ip na próxima hora ou algo assim. No entanto, isso depende de ter acesso root ao seu servidor para manipular o firewall.

Existem serviços de terceiros, como o cloudflare, que podem limpar seu tráfego antes que ele chegue até você. Seus serviços variam de gratuitos a caros. Examine as opções e veja se alguma coisa útil se encaixa no seu orçamento.

Você também pode querer conversar com seu provedor de hospedagem, que presumivelmente tem acesso root ao seu servidor se não tiver, e pode ter várias outras opções de atenuação de ddos, seja através da execução dos servidores e da rede. para terceiros serviços de ddos ao longo das linhas se cloudflare.

Não se preocupe em colocar um sono no seu código. Dói mais do que eles (se eles emitirem pedidos em paralelo, você fica sem memória mais rapidamente). Solte as conexões ruins o mais rápido que puder.

    
por 18.04.2016 / 14:31

Tags