Ich habe diese Einträge in /var/log/nginx/access.log:
107.155.152.109 - - [22/Mar/2018:19:20:54 +0000] "GET / HTTP/1.0" 301 193 "-" "-"
162.216.152.56 - - [22/Mar/2018:19:21:40 +0000] "GET / HTTP/1.0" 301 193 "-" "-"
60.191.48.204 - - [22/Mar/2018:19:21:52 +0000] "GET / HTTP/1.0" 200 17582 "-" "-"
sie sehen mir verdächtig aus, aber meine Kenntnisse in diesem Bereich sind begrenzt. Was ist los? Es gibt sogar mehrere andere von 107.155.xxx.xxx
2 der Adressen erscheinen auf dieser Site wie angegeben:https://www.abuseipdb.com/check/. Dies sind 162.216.152.56 und 60.191.48.204, anscheinend Jacksonville, USA und China.
Ich habe fail2ban wie beschrieben konfiguriertHierda ich auf Digital Ocean mit Ubuntu 14.04 bin, aber nichts im Fail2Ban-Protokoll.
Antwort1
Soweit ich das beurteilen kann, gibt es in diesen Zeilen keinen Grund zur Sorge. Es ist nicht ungewöhnlich, dass Bots Ihre Website besuchen und jede Minute nach Verzeichnissen crawlen. Sehen Sie sich "/etc/fail2ban/filter.d/botsearch-common.conf" und "/etc/fail2ban/filter.d/nginx-botsearch.conf" an, um zu sehen, wie fail2ban versucht, das crawlen Ihrer Website durch Badbots zu verhindern. Sie können auch versuchen, Bots per User-Agent zu blockieren. Dies könnte ein Ansatz sein, der verwendet werden könnte:https://gist.github.com/hans2103/733b8eef30e89c759335017863bd721d
Aber ich rate Ihnen, Bots einfach zu ignorieren. Wenn Ihre Konfigurationen sauber sind, müssen Sie sich darüber keine großen Gedanken machen.
Antwort2
Ein einfaches GET
„of“ /
wird den ganzen Tag über jeden Tag passieren – zusammen mit viel anderem von Bots generiertem Datenverkehr. Es macht fast keinen Sinn, Ressourcen zu verschwenden, um etwas dagegen zu unternehmen, wenn Sie einen Webserver betreiben, auf den öffentlich zugegriffen werden kann. Dafür ist er buchstäblich da. Die Tatsache, dass auf einige mit geantwortet wird, 301
deutet darauf hin, dass Sie virtuelle Hosts verwenden und dass die Anforderung ohne gültigen Header eingegangen ist Host
und dass Ihr Nginx-Setup sie auf Ihren standardmäßigen virtuellen Host umleitet.
Der Grund fail2ban
dafür, dass nichts unternommen wird, ist, dass der Datenverkehr, den es sieht, nicht als bösartig erkannt wurde. Standardmäßig wird nach Skriptscannern, Brute-Forces-Angriffen auf HTTP-Authentifizierung und anderen bösartigen Mustern Ausschau gehalten.
Antwort3
Sie können diesen Code einfach am Anfang Ihres Nginx-Codes vor dem Server-Tag hinzufügen, um die gängigsten Bots für Ihre Website zu ignorieren.
map $http_user_agent $limit_bots {
default 0;
~*(google|bing|yandex|msnbot) 1;
~*(AltaVista|Googlebot|Slurp|BlackWidow|Bot|ChinaClaw|Custo|DISCo|Download|Demon|eCatch|EirGrabber|EmailSiphon|EmailWolf|SuperHTTP|Surfbot|WebWhacker) 1;
~*(Express|WebPictures|ExtractorPro|EyeNetIE|FlashGet|GetRight|GetWeb!|Go!Zilla|Go-Ahead-Got-It|GrabNet|Grafula|HMView|Go!Zilla|Go-Ahead-Got-It) 1;
~*(rafula|HMView|HTTrack|Stripper|Sucker|Indy|InterGET|Ninja|JetCar|Spider|larbin|LeechFTP|Downloader|tool|Navroad|NearSite|NetAnts|tAkeOut|WWWOFFLE) 1;
~*(GrabNet|NetSpider|Vampire|NetZIP|Octopus|Offline|PageGrabber|Foto|pavuk|pcBrowser|RealDownload|ReGet|SiteSnagger|SmartDownload|SuperBot|WebSpider) 1;
~*(Teleport|VoidEYE|Collector|WebAuto|WebCopier|WebFetch|WebGo|WebLeacher|WebReaper|WebSauger|eXtractor|Quester|WebStripper|WebZIP|Wget|Widow|Zeus) 1;
~*(Twengabot|htmlparser|libwww|Python|perl|urllib|scan|Curl|email|PycURL|Pyth|PyQ|WebCollector|WebCopy|webcraw) 1;
}
Und dies zu Ihrem / Standort
location / {
...........
if ($limit_bots = 1) {
return 403;
}
}