Múltiplos ataques DDOS por dia [duplicados]

1

Eu gerencio um site de tecnologia popular e há semanas meu site está sob ataques DDOS. Os ataques acontecem em horários aleatórios e, geralmente, cerca de 10 vezes por dia. Normalmente, os ataques duram apenas alguns minutos e param.

Quando meu site está sob ataque, ele fica inacessível. A carga do servidor não sobe, serviços como o MySQL, Nginx & FPM não são afetados. Parece ser um ataque SYN ou algo semelhante.

Eu corro o CentOS 5.6 (64bit), em uma máquina poderosa. Eu tentei endurecer um pouco o SYSCTL, minhas configurações podem ser encontradas abaixo. Além disso, eu configurei o iptables para bloquear todas as portas, exceto as que eu preciso. Esse script também pode ser encontrado abaixo.

Eu sei que essa pergunta já foi feita muitas vezes por pessoas, mas há alguma outra dica que alguém possa me dar para combater esses ataques? Está realmente ficando muito chato.

Estou aberto para tentar qualquer coisa.

CONFIGURAÇÕES DE SYSCTL

net.ipv4.ip_forward                         = 0
net.ipv4.conf.default.rp_filter             = 1
net.ipv4.conf.default.accept_source_route   = 0
kernel.sysrq                                = 1
kernel.core_uses_pid                        = 1
net.ipv4.tcp_syncookies                     = 1
kernel.msgmnb                               = 65536
kernel.msgmax                               = 65536
kernel.shmmax                               = 68719476736
kernel.shmall                               = 4294967296
net.ipv4.conf.all.send_redirects            = 0
net.ipv4.conf.default.send_redirects        = 0
net.ipv4.tcp_max_syn_backlog                = 2048
net.ipv4.icmp_echo_ignore_broadcasts        = 1
net.ipv4.conf.all.accept_source_route       = 0
net.ipv4.conf.all.accept_redirects          = 0
net.ipv4.conf.all.secure_redirects          = 0
net.ipv4.conf.all.log_martians              = 1
net.ipv4.conf.default.accept_redirects      = 0
net.ipv4.conf.default.secure_redirects      = 0
net.ipv4.icmp_echo_ignore_broadcasts        = 1
net.ipv4.icmp_ignore_bogus_error_responses  = 1
net.ipv4.conf.default.rp_filter             = 1
net.ipv4.tcp_timestamps                     = 0
net.ipv4.conf.all.rp_filter                 = 1
net.ipv4.conf.default.rp_filter             = 1
net.ipv4.conf.eth0.rp_filter                = 1
net.ipv4.conf.lo.rp_filter                  = 1

DEFINIÇÕES DE IPTABLES

*filter
:INPUT DROP
:FORWARD DROP
:OUTPUT ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m tcp ! --tcp-flags FIN,SYN,RST,ACK SYN -m state --state NEW -j DROP
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 21 -m state --state NEW -j ACCEPT
-A INPUT -p tcp --dport 22 --syn -m limit --limit 1/m --limit-burst 3 -j ACCEPT
-A INPUT -p tcp --dport 22 --syn -j DROP
-A INPUT -p tcp -m tcp --dport 22 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -m state --state NEW -j ACCEPT
-A INPUT -p tcp -m tcp --dport 443 -m state --state NEW -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
COMMIT

Gráfico MRTG das últimas 24h. Spikes são ataques, e é quando o servidor se torna inacessível.

    
por Mr.Boon 08.08.2011 / 10:03

1 resposta

2

"Parece ser um ataque SYN" - em que evidência você baseia isso? Sua tabela conntrack está cheia ou você tem um número ridículo de entradas incompletas na saída do netstat? Dado que os cookies SYN são geralmente muito eficazes, eu estaria mais inclinado a pensar que é um simples ataque de enchimento de tubos, para o qual a única solução é obter um pipe maior, pergunte ao seu provedor para bloquear o tráfego abusivo a montante (se é simples tráfego como um ataque de reflexão do DNS) ou obter um serviço de limpeza de tubos (se for um tráfego mais complicado), seja do seu provedor de upstream ou de terceiros como as redes Arbor - porque o firewall da sua máquina está do lado errado conexão de rede restrita.

Com base nas informações adicionais sobre a natureza do gráfico, acho que é bem provável que você esteja sendo inundado com tráfego ("preenchimento de canais") - os gráficos de contabilidade de tráfego fornecidos por seu provedor devem ser capazes de Confirme que, ao mostrar a sua taxa de tráfego flatlines ao nível da capacidade de ligação que está a pagar ao seu fornecedor.

    
por 08.08.2011 / 10:08

Tags