Projet

Général

Profil

Actions

Demande #3551

ouvert

Configurer nginx@bastion pour limiter les requêtes

Ajouté par Quentin Gibeaux il y a presque 6 ans. Mis à jour il y a 24 jours.

Statut:
En cours de traitement
Priorité:
Normale
Assigné à:
Catégorie:
-
Version cible:
Début:
10/01/2019
Echéance:
% réalisé:

20%

Temps estimé:
Difficulté:
2 Facile

Description

Pour éviter que l'infra complexe ne tombe avec les crawler, il faudrait configurer nginx sur bastion pour limiter les requêtes d'une même IP a un taux de requête/sec donnée.


Demandes liées 1 (0 ouverte1 fermée)

Lié à Admins - Demande #3773: Augmenter les ressources de la VM adlFerméChristian P. Momon17/06/2019

Actions

Mis à jour par François Poulain il y a presque 6 ans

Exemple de inspiré de config livrée par défaut dans discourse (https://github.com/discourse/discourse_docker/blob/master/templates/web.ratelimited.template.yml) :

limit_req_zone $binary_remote_addr zone=flood:10m rate=12r/s;
limit_req_zone $binary_remote_addr zone=bot:10m  rate=200r/m;
limit_req_status 429;

limit_conn_zone $binary_remote_addr zone=connperip:10m;
limit_conn_status 429;

limit_conn connperip 20;
limit_req zone=flood burst=12  nodelay;
limit_req zone=bot   burst=100 nodelay;

La doc nginx: https://www.nginx.com/blog/rate-limiting-nginx/

Mis à jour par Christian P. Momon il y a plus de 5 ans

  • Lié à Demande #3773: Augmenter les ressources de la VM adl ajouté

Mis à jour par Quentin Gibeaux il y a environ 4 ans

  • Assigné à mis à Romain H.

voir dry run pour avoir une vue de ce qui serait bloqué sur une semaine

Mis à jour par Quentin Gibeaux il y a environ 4 ans

  • Version cible changé de Backlog à Décembre 2020

Mis à jour par Romain H. il y a environ 4 ans

  • essayer en mode dry run dans un premier temps pour voir s'il y a des faux positifs
  • attention aux requêtes DAV vers la valise qui sont fréquentes et marchent souvent par essai/erreur (lpoujoulat)

Mis à jour par Romain H. il y a environ 4 ans

La directive limit_req_dry_run n'existe que depuis nginx version 1.17.1.
Debian Buster propose nginx version 1.14.2.
Debian Bullseye propose nginx version 1.18.0.

Cette directive n'est donc pas utilisable sur bastion qui est en Buster.
Je ne trouve pas d'alternative à cette directive.

Est-ce qu'on se lance avec une configuration directement en prod ou on attend Bullseye (=~ 6 mois) pour avoir le mode dry run ?

Mis à jour par Quentin Gibeaux il y a environ 4 ans

je propose d'attendre bullseye

Mis à jour par Quentin Gibeaux il y a presque 4 ans

  • Version cible changé de Décembre 2020 à Janvier 2021

Mis à jour par Quentin Gibeaux il y a presque 4 ans

  • Version cible changé de Janvier 2021 à Février 2021

Mis à jour par Quentin Gibeaux il y a presque 4 ans

  • Version cible changé de Février 2021 à Mars 2021

Mis à jour par Quentin Gibeaux il y a plus de 3 ans

  • Version cible changé de Mars 2021 à Avril 2021

Mis à jour par Quentin Gibeaux il y a plus de 3 ans

  • Version cible changé de Avril 2021 à Mai 2021

Mis à jour par Quentin Gibeaux il y a plus de 3 ans

  • Version cible changé de Mai 2021 à Juin 2021

Mis à jour par Quentin Gibeaux il y a plus de 3 ans

  • Version cible changé de Juin 2021 à Été 2021

Mis à jour par Quentin Gibeaux il y a plus de 3 ans

  • Version cible changé de Été 2021 à Septembre 2021

Mis à jour par Quentin Gibeaux il y a environ 3 ans

  • Version cible changé de Septembre 2021 à Octobre 2021

Mis à jour par Quentin Gibeaux il y a environ 3 ans

  • Version cible changé de Octobre 2021 à Novembre 2021

Mis à jour par Quentin Gibeaux il y a environ 3 ans

  • Version cible changé de Novembre 2021 à Décembre 2021

Mis à jour par Quentin Gibeaux il y a presque 3 ans

  • Version cible changé de Décembre 2021 à Janvier 2022

Mis à jour par Quentin Gibeaux il y a presque 3 ans

  • Version cible changé de Janvier 2022 à Février 2022

Mis à jour par Quentin Gibeaux il y a presque 3 ans

  • Version cible changé de Février 2022 à Mars 2022

Mis à jour par Quentin Gibeaux il y a plus de 2 ans

  • Version cible changé de Mars 2022 à Avril 2022

Mis à jour par Quentin Gibeaux il y a plus de 2 ans

  • Version cible changé de Avril 2022 à Mai 2022

Mis à jour par Quentin Gibeaux il y a plus de 2 ans

  • Version cible changé de Mai 2022 à Juin 2022

Mis à jour par Quentin Gibeaux il y a plus de 2 ans

  • Version cible changé de Juin 2022 à Été 2022

Mis à jour par Quentin Gibeaux il y a plus de 2 ans

  • Version cible changé de Été 2022 à Septembre 2022

Mis à jour par Romain H. il y a environ 2 ans

  • Statut changé de Nouveau à En cours de traitement
  • % réalisé changé de 0 à 20

J'ai activé la limite en mode dry run (commit 32e95e88fc6e17326eaa99b6f7ecfa7d97667862).

En cas de dépassement d'une limite, un message est journalisé dans le error.log du virtualhost.
Le message ressemble à ça :

2022/09/27 00:00:00 [error] X#Y: *Z limiting requests, excess: 12.784 by zone "flood", client: A.B.C.D, server: www.april.org, request: "GET / HTTP/1.1", host: "www.april.org", referrer: "https://www.april.org/" 

Je laisse tourner quelques jours et je regarderai les logs pour voir la quantité de faux positifs et voir s'il faut modifier les seuils.

Mis à jour par Quentin Gibeaux il y a environ 2 ans

  • Version cible changé de Septembre 2022 à Octobre 2022

Mis à jour par Quentin Gibeaux il y a environ 2 ans

  • Version cible changé de Octobre 2022 à Novembre 2022

Mis à jour par Quentin Gibeaux il y a environ 2 ans

  • Version cible changé de Novembre 2022 à Décembre 2022

Mis à jour par Quentin Gibeaux il y a presque 2 ans

  • Version cible changé de Décembre 2022 à Janvier 2023

Mis à jour par Quentin Gibeaux il y a presque 2 ans

  • Version cible changé de Janvier 2023 à Février 2023

Mis à jour par Frédéric Couchet il y a presque 2 ans

  • Version cible changé de Février 2023 à Mars 2023

Mis à jour par Quentin Gibeaux il y a plus d'un an

  • Version cible changé de Mars 2023 à Avril 2023

Mis à jour par Quentin Gibeaux il y a plus d'un an

  • Version cible changé de Avril 2023 à Mai 2023

Mis à jour par Quentin Gibeaux il y a plus d'un an

  • Version cible changé de Mai 2023 à Juin 2023

Mis à jour par Quentin Gibeaux il y a plus d'un an

  • Version cible changé de Juin 2023 à Été 2023

Mis à jour par Quentin Gibeaux il y a plus d'un an

  • Version cible changé de Été 2023 à Septembre 2023

Mis à jour par Quentin Gibeaux il y a environ un an

  • Version cible changé de Septembre 2023 à Octobre 2023

Mis à jour par Quentin Gibeaux il y a environ un an

  • Version cible changé de Octobre 2023 à Novembre 2023

Mis à jour par Quentin Gibeaux il y a environ un an

  • Version cible changé de Novembre 2023 à Décembre 2023

Mis à jour par Quentin Gibeaux il y a 12 mois

  • Version cible changé de Décembre 2023 à Janvier 2024

Mis à jour par Quentin Gibeaux il y a 11 mois

  • Version cible changé de Janvier 2024 à Février 2024

Mis à jour par Quentin Gibeaux il y a 10 mois

  • Version cible changé de Février 2024 à Mars 2024

Mis à jour par Quentin Gibeaux il y a 9 mois

  • Version cible changé de Mars 2024 à Avril 2024

Mis à jour par Quentin Gibeaux il y a 8 mois

  • Version cible changé de Avril 2024 à Mai 2024

Mis à jour par Quentin Gibeaux il y a 7 mois

  • Version cible changé de Mai 2024 à Juin 2024

Mis à jour par Quentin Gibeaux il y a 6 mois

  • Version cible changé de Juin 2024 à Été 2024

Mis à jour par Quentin Gibeaux il y a 4 mois

  • Version cible changé de Été 2024 à Septembre 2024

Mis à jour par Quentin Gibeaux il y a 2 mois

  • Version cible changé de Septembre 2024 à Octobre 2024

Mis à jour par Quentin Gibeaux il y a environ 2 mois

  • Version cible changé de Octobre 2024 à Novembre 2024

Mis à jour par Quentin Gibeaux il y a 24 jours

  • Version cible changé de Novembre 2024 à Décembre 2024
Actions

Formats disponibles : Atom PDF