Ich laufe zwei Mongrels unter einem Nginx-Server. Ich bekomme Anfragen für eine nicht existierende Datei. Die IP-Adressen ändern sich häufig, aber die Verweis-URL bleibt unverändert. Ich möchte das auflösen.Blockieren von Empfehlungsspam mit Nginx?
Antwort
https://calomel.org/nginx.html
blockieren die meisten "Referrer-Spam" - "eher ein Ärgernis als ein Problem"
nginx.
## 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; }
Ich war schon einmal in einer ähnlichen Situation, in der ich Menschen auf der Grundlage von Verhalten blockieren musste, anstatt nach anderen willkürlichen Regeln, die eine Firewall selbst beheben könnte.
Sie, wie ich, um das Problem arbeitete, war zu meiner Logik (Rails in Ihrem Fall) tun, um die Blockierung ... Aber ein langer Weg Runde zu machen:
- Haben Sie Ihre Logik eine Blockliste als pflegen neue Zeile getrennte Klartextdatei. Erstellen
- eine Bash (oder andere) Skript als root diese Datei zu lesen und fügen ihre Gelisteten zu Ihrer Firewall Blockliste
- einen cron-Job Erstellen Sie das Skript aufrufen, wieder als root
Der Grund, warum ich tun Sie es so (und geben Sie Django nicht nur die Erlaubnis, die Firewall-Konfiguration zu ändern), sondern einfach: Sicherheit. Wenn meine Bewerbung gehackt würde, würde ich nicht wollen, dass sie etwas anderes verletzt.
Das Bash-Skript ist so etwas wie dieses:
exec < /path/to/my/djago-maintained/block-list
while read line
do
iptables -A INPUT --source $line/32 -j DROP
done
können Sie zu einem Tutorial zeigen auf diese Art von Blockierung? Ich verstehe Ihre Lösung nicht wirklich. Vielen Dank für Ihre Hilfe. Ich versuche eine Lösung an der besten Stelle zu finden, die ich kenne (stackoverflow :-), aber ich möchte nicht, dass es ohne guten Grund moderiert wird. – Jesse
Ich habe noch nie ein Tutorial für so etwas gesehen und ich weiß nicht, was sein richtiger Name (wenn es einen hat) ist ... Das ist genau das, was mir in den Sinn kam, als ich ein ähnliches Problem hatte. Das meiste ist nur Sysadmin-Zeug. – Oli
Ich habe Modul
zur Überprüfung eingehender IP in schwarzen Listen erstellt https://github.com/oneumyvakin/ngx_http_blacklist_lookup_modulees verwendet schwarze Listen von projecthoneypot.org, blocklist.de und uceprotect.net
Mit Nginx map module aa etwas effizienter und einfacher zu verwalten wie die Liste lang wird.
Dieser 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 ist für mich gearbeitet.
dies von http://fadeit.dk/blog/post/nginx-referer-spam-blacklist Got
Hinzufügen der Zitate den ganzen Unterschied. – chovy
Sperren Referrer mit einem ~ * -Operator ist nur ein Regex "Liebe" wird "Live-your-Website" und Referrer wie diese – Garistar