Der Kampf gegen die Bots

Es war mal wieder soweit der Server hat seine Macken gezeigt bis hin zu einer Load von 90+. Die Ursache war am Anfang nicht ganz klar nachdem ich aber die nginx Logs begutachtet habe war es klar. Die Bots sind los nicht die guten die mit einem Chatten auf Tinder hoffnungsvolle Nachrichten senden oder die Instagram Bilder aus dem Urlaub liken. Nein diese Art von Bots die einfach nur DATEN sammeln. Viele davon nur um ihren zahlenden Kunden etwaige Marken Nennungen zu reporten.

awk -F\" '{print $6}' /var/log/nginx/access.log | sort | uniq -c | sort -n

Ok dachte ich dafür gibts ja die robots.txt diese habe ich mühsam eingestellt. Jedoch musste ich Tage später feststellen das diese Bots so gar nicht zu liken sind, weil sie das robots.txt zwar nachweislich regelmässig abfragen jedoch den Inhalt gekonnt ignorieren.

Access Sperren über Nginx

Für alle die sich nicht an die robots.txt halten (erstaunlich viele) gibts via nginx einen eigenen Türsteher und auch da musste ich erkennen das das Abweisen mit 403 „alla du kommst da ned rein“ wohl zu höfflich ist besser gefahren bin ich dann mit der Stille alias HTTP Response 444. Weiters verbraucht das schreiben der Log zugriffe unglaublich viele Zugriffe auf das Filesystem (daher auch das access_log off;)

# Blocking Crawler
if ($http_user_agent ~* (360Spider|AhrefsBot|ecoresearchCrawler|AwarioRssBot|adscanner|SemrushBot|trendkite|Blexboti|babar|seekport|Barkrowler|80legs.com|Abonti|AcoonBot|Acunetix|adbeat_bot|AddThis.com|adidxbot|ADmantX|AhrefsBot|AngloINFO|Antelope|BaiduSpider|BeetleBot|binlar|bitlybot|BlackWidow|BLP_bbot|BoardReader|Bolt\ 0|BOT\ for\ JCE|Bot\ mailto\:craftbot@yahoo\.com|casper|CazoodleBot|CCBot|checkprivacy|ChinaClaw|chromeframe|Clerkbot|Cliqzbot|clshttp|CommonCrawler|comodo|CPython|crawler4j|Crawlera|CRAZYWEBCRAWLER|Curious|Curl|Custo|CWS_proxy|Default\ Browser\ 0|diavol|DigExt|Digincore|DIIbot|discobot|DISCo|DoCoMo|DotBot|Download\ Demon|DTS.Agent|EasouSpider|eCatch|ecxi|EirGrabber|Elmer|EmailCollector|EmailSiphon|EmailWolf|Exabot|ExaleadCloudView|ExpertSearchSpider|ExpertSearch|Express\ WebPictures|ExtractorPro|extract|EyeNetIE|Ezooms|F2S|FastSeek|feedfinder|FeedlyBot|FHscan|finbot|Flamingo_SearchEngine|FlappyBot|FlashGet|flicky|Flipboard|g00g1e|Genieo|genieo|GetRight|GetWeb\!|GigablastOpenSource|GozaikBot|Go\!Zilla|Go\-Ahead\-Got\-It|GrabNet|grab|Grafula|GrapeshotCrawler|GTB5|GT\:\:WWW|Guzzle|harvest|heritrix|HMView|HomePageBot|HTTP\:\:Lite|HTTrack|HubSpot|ia_archiver|icarus6|IDBot|id\-search|IlseBot|Image\ Stripper|Image\ Sucker|Indigonet|Indy\ Library|integromedb|InterGET|InternetSeer\.com|Internet\ Ninja|IRLbot|ISC\ Systems\ iRc\ Search\ 2\.1|jakarta|Java|JetCar|JobdiggerSpider|JOC\ Web\ Spider|Jooblebot|kanagawa|KINGSpider|kmccrew|larbin|LeechFTP|libwww|Lingewoud|LinkChecker|linkdexbot|LinksCrawler|LinksManager\.com_bot|linkwalker|LinqiaRSSBot|LivelapBot|ltx71|LubbersBot|lwp\-trivial|Mail.RU_Bot|masscan|Mass\ Downloader|maverick|Maxthon$|Mediatoolkitbot|MegaIndex|MegaIndex|megaindex|MFC_Tear_Sample|Microsoft\ URL\ Control|microsoft\.url|MIDown\ tool|miner|Missigua\ Locator|Mister\ PiX|mj12bot|Mozilla.*Indy|Mozilla.*NEWT|MSFrontPage|msnbot|Navroad|NearSite|NetAnts|netEstate|NetSpider|NetZIP|Net\ Vampire|NextGenSearchBot|nutch|Octopus|Offline\ Explorer|Offline\ Navigator|OpenindexSpider|OpenWebSpider|OrangeBot|Owlin|PageGrabber|PagesInventory|panopta|panscient\.com|Papa\ Foto|pavuk|pcBrowser|PECL\:\:HTTP|PeoplePal|Photon|PHPCrawl|planetwork|PleaseCrawl|PNAMAIN.EXE|PodcastPartyBot|prijsbest|proximic|psbot|purebot|pycurl|QuerySeekerSpider|R6_CommentReader|R6_FeedFetcher|RealDownload|ReGet|Riddler|Rippers\ 0|rogerbot|RSSingBot|rv\:1.9.1|RyzeCrawler|SafeSearch|SBIder|Scrapy|Scrapy|Screaming|SeaMonkey$|search.goo.ne.jp|SearchmetricsBot|search_robot|SemrushBot|Semrush|SentiBot|SEOkicks|SeznamBot|ShowyouBot|SightupBot|SISTRIX|sitecheck\.internetseer\.com|siteexplorer.info|SiteSnagger|skygrid|Slackbot|Slurp|SmartDownload|Snoopy|Sogou|Sosospider|spaumbot|Steeler|sucker|SuperBot|Superfeedr|SuperHTTP|SurdotlyBot|Surfbot|tAkeOut|Teleport\ Pro|TinEye-bot|TinEye|Toata\ dragostea\ mea\ pentru\ diavola|Toplistbot|trendictionbot|TurnitinBot|turnit|URI\:\:Fetch|urllib|Vagabondo|Vagabondo|vikspider|VoidEYE|VoilaBot|WBSearchBot|webalta|WebAuto|WebBandit|WebCollage|WebCopier|WebFetch|WebGo\ IS|WebLeacher|WebReaper|WebSauger|Website\ eXtractor|Website\ Quester|WebStripper|WebWhacker|WebZIP|Web\ Image\ Collector|Web\ Sucker|Wells\ Search\ II|WEP\ Search|WeSEE|Wget|Widow|WinInet|woobot|woopingbot|worldwebheritage.org|Wotbox|WPScan|WWWOFFLE|WWW\-Mechanize|Xaldon\ WebSpider|XoviBot|yacybot|YisouSpider|zermelo|Zeus|zh-CN|ZmEu|ZumBot|ZyBorg|neofonie) ) {
     access_log off;
     return 444;
}

Warum nicht alles sperren

Die Antwort ist weil die Leute nur noch suchen um auf Inhalte zu kommen eine Analyse der Suchkriterien für meine Domains zeigt das sogar der Domainname lieber gesucht als eingegeben wird. Mobile Geräte sind da vielleicht nicht ganz hilfreich da dort Adress und Suchzeile verschwimmt. Die rate der Wiederkehrenden User sinkt.

Nginx logfiles Buffern

Eines habe ich am Rande gelernt wenn der Server viele Zugriffe erlebt ist ein Buffern der Logfiles gar nicht so dumm.

log_format main '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$gzip_ratio"';    
access_log /var/log/nginx/access.log main buffer=8k flush=5m;

Quellenverzeichnis

  1. Suche der häufigsten Bots
  2. Sperren von Bots über die nginx config

Beitrag veröffentlicht

in

von

Schlagwörter:

Kommentare

Eine Antwort zu „Der Kampf gegen die Bots“

  1. Avatar von A WordPress Commenter

    Hi, this is a comment.
    To get started with moderating, editing, and deleting comments, please visit the Comments screen in the dashboard.
    Commenter avatars come from Gravatar.

Schreibe einen Kommentar zu A WordPress Commenter Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert