NGINX: Como lidar com o tráfego obviamente falso em um servidor que emite um redirecionamento de cobertor incondicional?

1

Eu me deparei com um problema bastante interessante ao tentar configurar o NGinx. Eu corro um pequeno servidor web que serve tudo via HTTPS com o NGinx 1.13.8. Como é típico para tal configuração, ele também escuta na porta 80 e emite um redirecionamento geral para todas as solicitações para a porta 443 com o mesmo URI, usando o seguinte fragmento de configuração para conseguir isso:

location / {
    return 301 https://$server_name$request_uri;
}

Isso por si só funcionou muito bem para o que eu preciso para isso. No entanto, comecei a obter algum tráfego obviamente falso e facilmente identificável (períodos aleatórios de cerca de 5 minutos onde recebo milhares de novas conexões de IPs aparentemente aleatórios, todos com um prefixo comum no cabeçalho User-Agent, todos fazendo exatamente o mesmo pedido ( HEAD / HTTP/1.1 ), todos deixando a conexão aberta até o tempo limite, e todos nunca seguindo o redirecionamento).

Idealmente, gostaria de fechar essas conexões assim que elas forem identificadas para minimizar a quantidade de recursos que elas desperdiçam. Atualmente, eu criei este fragmento de configuração modificado para fazer isso:

location / {
    return 301 https://$server_name$request_uri;
}

location = / {
    if ($method = "HEAD") {
        set $drop M;
    }
    if ($http_user_agent ~* "Dalvik/2.1.0 (Linux U ") {
        set $drop "U${drop}";
    }
    if ($drop = "UM") {
        return 444;
    }
}

No entanto, isso parece não funcionar (já que os registros ainda mostram esses picos de tráfego retornando inteiramente a 301. Também tentei correspondência menos específica (apenas correspondências gerais no cabeçalho User-Agent ou no método) dentro o primeiro bloco de localização e também não parece funcionar.

Então, eu tenho duas perguntas:

  1. Por que isso não funciona?
  2. Existe uma maneira melhor de lidar com esse tráfego que potencialmente não envolve inspeção profunda de pacotes no firewall?
por Austin Hemmelgarn 15.02.2018 / 16:44

0 respostas