Pergunta

Normalmente nós, endereço IPS da lista negra com iptables. Mas na Amazon EC2, se uma conexão passar pelo balanceador de carga elástica, o endereço remoto será substituído pelo endereço do balanceador de carga, renderizando iptables sem utilidade. No caso do HTTP, aparentemente a única maneira de descobrir o endereço remoto real é olhar para o cabeçalho HTTP HTTP_X_FORWARDED_FOR. Para mim, bloquear os IPs no nível do aplicativo da Web não é uma maneira eficaz.

Qual é a melhor prática a se defender contra o ataque do DOS nesse cenário?

Neste artigo, alguém sugeriu que pudéssemos substituir o balanceador de carga elástica por Haproxy. No entanto, existem certas desvantagens em fazer isso, e estou tentando ver se há alternativas melhores.

Foi útil?

Solução

Eu acho que você descreveu todas as opções atuais. Você pode querer participar de alguns dos threads do fórum da AWS para votar em uma solução - os engenheiros e gerenciamento da Amazon estão abertos a sugestões para melhorias do ELB.

Outras dicas

Se você implantar seu ELB e instâncias usando o VPC em vez do EC2-Classic, poderá usar grupos de segurança e ACLs de rede para restringir o acesso ao ELB.

http://docs.aws.amazon.com/elasticloadbalancing/latest/developerguide/usvpc_applysg.html

É comum executar um servidor de aplicativos atrás de um proxy reverso. Seu proxy reverso é camada que você pode usar para adicionar proteção do DOS antes que o tráfego chegue ao seu servidor de aplicativos. Para o nginx, você pode olhar para o módulo de limitação da taxa como algo que poderia ajudar.

Você pode configurar um host EC2 e executar o Haproxy sozinho (é isso que a Amazon está usando de qualquer maneira!). Em seguida, você pode aplicar seus filtros iptables nesse sistema.

Aqui está uma ferramenta que fiz para quem quer usar Fail2ban na AWS com Apache, ELB e ACL: https://github.com/anthonymartin/aws-acl-dail2ban

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top