Question

J'exécute deux groupes sur un serveur Nginx. Je continue à recevoir des demandes pour un fichier inexistant. Les adresses IP changent fréquemment, mais l'URL de référence reste la même. J'aimerais résoudre ce problème.

Était-ce utile?

La solution

https://calomel.org/nginx.html p>

Bloquer la plupart des "spam de parrainage" " - "Plus une gêne qu'un problème"

nginx.conf

    ## Deny certain Referers (case insensitive)
    ## The ~* makes it case insensitive as opposed to just a ~
 if ($http_referer ~* (babes|click|diamond|forsale|girl|jewelry|love|nudit|organic|poker|porn|poweroversoftware|sex|teen|video|webcam|zippo))
    {  return 403;   }

Autres conseils

Utiliser Nginx Le module de carte est un peu plus efficace et facile à gérer car la liste est longue.

Mettez ceci dans votre bloc http {}:

map $http_referer $bad_referer {
    hostnames;

    default                           0;

    # Put regexes for undesired referers here
    "~social-buttons.com"             1;
    "~semalt.com"                     1;
    "~kambasoft.com"                  1;
    "~savetubevideo.com"              1;
    "~descargar-musica-gratis.net"    1;
    "~7makemoneyonline.com"           1;
    "~baixar-musicas-gratis.com"      1;
    "~iloveitaly.com"                 1;
    "~ilovevitaly.ru"                 1;
    "~fbdownloader.com"               1;
    "~econom.co"                      1;
    "~buttons-for-website.com"        1;
    "~buttons-for-your-website.com"   1;
    "~srecorder.co"                   1;
    "~darodar.com"                    1;
    "~priceg.com"                     1;
    "~blackhatworth.com"              1;
    "~adviceforum.info"               1;
    "~hulfingtonpost.com"             1;
    "~best-seo-solution.com"          1;
    "~googlsucks.com"                 1;
    "~theguardlan.com"                1;
    "~i-x.wiki"                       1;
    "~buy-cheap-online.info"          1;
    "~Get-Free-Traffic-Now.com"       1;
}

Mettez ceci dans le bloc de votre serveur {}:

if ($bad_referer) { 
    return 444; # emtpy response
}

Cela a fonctionné pour moi.

Compris dans http://fadeit.dk/blog/post/nginx-referer-spam- liste noire

Je me trouvais dans une situation similaire auparavant où je devais bloquer des personnes en fonction de leur comportement plutôt que d'autres règles arbitraires qu'un pare-feu pourrait résoudre lui-même.

Pour résoudre le problème, mon problème était de faire en sorte que ma logique (Rails dans votre cas) fasse le blocage ... Mais un long chemin à parcourir:

  • Demandez à votre logique de gérer une liste de blocage en tant que fichier de texte brut séparé par une nouvelle ligne.
  • Créez un script bash (ou autre) en tant que root pour lire ce fichier et ajouter ses listes à la liste de blocage de votre pare-feu
  • Créez un travail cron pour appeler le script, encore une fois en tant que root

La raison pour laquelle je le fais de cette manière (plutôt que de simplement donner des autorisations à Django pour modifier la configuration du pare-feu) est simplement: la sécurité. Si ma demande était piratée, je ne voudrais pas que cela blesse autre chose.

Le script bash ressemble à ceci:

exec < /path/to/my/djago-maintained/block-list
while read line
do

    iptables -A INPUT --source $line/32 -j DROP

done
scroll top