Frage

Ich bin mit zwei Bastarde unter Nginx-Server. Ich bekommen ständig Anfragen für eine nicht vorhandene Datei. Die IP-Adressen ändern sich häufig, aber die aufgerufene URL bleibt gleich. Ich möchte dieses Problem zu beheben.

War es hilfreich?

Lösung

https://calomel.org/nginx.html

blockieren die meisten "Referrer-Spam" - "eher ein Ärgernis als ein Problem"

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;   }

Andere Tipps

Kartenmodul Mit aa etwas effizienter und einfacher zu verwalten als die Liste lang wird.

Setzen Sie diese in Ihrem http {} Block:

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;
}

Setzen Sie diese in Ihrem Server {} Block:

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

Es funktionierte für mich.

Haben Sie das von http://fadeit.dk/blog/post/nginx-referer-spam- schwarze Liste

Ich habe in einer ähnlichen Situation gewesen, wo ich brauchte Menschen anstelle von anderen willkürlichen Regeln basierend auf Verhalten zu blockieren, die eine Firewall auf seinem eigenen aussortieren kann.

Sie so, wie ich gearbeitet, um das Problem war meine Logik (Rails in Ihrem Fall) tun, um die Blockierung zu machen ... Aber ein langer Weg Runde:

  • Haben Sie Ihre Logik eine Blockliste beibehalten, new-line-Text-Datei getrennt.
  • Erstellen Sie eine bash (oder andere) Skript als root diese Datei zu lesen und seine Gelisteten zu Ihrer Firewall Blockliste hinzufügen
  • Erstellen Sie einen cron-Job, das Skript zu nennen, wieder als root

Der Grund, warum ich es auf diese Weise um zu tun (und nicht nur Berechtigungen Django geben Firewall Konfiguration zu ändern) ist einfach: die Sicherheit. Wenn meine Anwendung gehackt wurden, würde ich nicht will, dass es irgendetwas anderes zu verletzen.

Das Bash-Skript ist so etwas wie folgt aus:

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

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

done

Ich habe Modul erstellt für die Überprüfung eingehender IP in schwarzen Listen https://github.com/oneumyvakin/ngx_http_blacklist_lookup_module

es verwendet schwarze Listen von projecthoneypot.org, blocklist.de und uceprotect.net

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top