July 19, 2020

Use Varnish to block bad bots

Use Varnish to block bad bots:

sub vcl_recv {
if (req.http.User-Agent ~ "AspiegelBot" ||
req.http.User-Agent ~ "AutoKeyboard" ||
req.http.User-Agent ~ "Virus-Schutz" ||
req.http.User-Agent ~ "Dataprovider" ||
req.http.User-Agent ~ "YandexMetrika" ||
req.http.User-Agent ~ "Clarabot" ||
req.http.User-Agent ~ "cotoba_bot" ||
req.http.User-Agent ~ "baiduboxapp" ||
req.http.User-Agent ~ "DuckDuckGo-Favicons-Bot" ||
req.http.User-Agent ~ "360Spider" ||
req.http.User-Agent ~ "404checker" ||
req.http.User-Agent ~ "404enemy" ||
req.http.User-Agent ~ "80legs" ||
req.http.User-Agent ~ "Abonti" ||
req.http.User-Agent ~ "Aboundex" ||
req.http.User-Agent ~ "Acunetix" ||
req.http.User-Agent ~ "ADmantX" ||
req.http.User-Agent ~ "AfD-Verbotsverfahren" ||
req.http.User-Agent ~ "AhrefsBot" ||
req.http.User-Agent ~ "AIBOT" ||
req.http.User-Agent ~ "AiHitBot" ||
req.http.User-Agent ~ "Aipbot" ||
req.http.User-Agent ~ "Alexibot" ||
req.http.User-Agent ~ "Alligator" ||
req.http.User-Agent ~ "AllSubmitter" ||
req.http.User-Agent ~ "AlphaBot" ||
req.http.User-Agent ~ "Anarchie" ||
req.http.User-Agent ~ "ApacheBench" ||
req.http.User-Agent ~ "Apexoo" ||
req.http.User-Agent ~ "archive.org_bot" ||
req.http.User-Agent ~ "ASPSeek" ||
req.http.User-Agent ~ "Asterias" ||
req.http.User-Agent ~ "Attach" ||
req.http.User-Agent ~ "autoemailspider" ||
req.http.User-Agent ~ "BackDoorBot" ||
req.http.User-Agent ~ "Backlink-Ceck" ||
req.http.User-Agent ~ "backlink-check" ||
req.http.User-Agent ~ "BacklinkCrawler" ||
req.http.User-Agent ~ "BackStreet" ||
req.http.User-Agent ~ "BackWeb" ||
req.http.User-Agent ~ "Badass" ||
req.http.User-Agent ~ "Bandit" ||
req.http.User-Agent ~ "Barkrowler" ||
req.http.User-Agent ~ "BatchFTP" ||
req.http.User-Agent ~ "Battleztar\ Bazinga" ||
req.http.User-Agent ~ "BBBike" ||
req.http.User-Agent ~ "BDCbot" ||
req.http.User-Agent ~ "BDFetch" ||
req.http.User-Agent ~ "BetaBot" ||
req.http.User-Agent ~ "Bigfoot" ||
req.http.User-Agent ~ "Bitacle" ||
req.http.User-Agent ~ "Blackboard" ||
req.http.User-Agent ~ "Black\ Hole" ||
req.http.User-Agent ~ "BlackWidow" ||
req.http.User-Agent ~ "BLEXBot" ||
req.http.User-Agent ~ "Blow" ||
req.http.User-Agent ~ "BlowFish" ||
req.http.User-Agent ~ "Boardreader" ||
req.http.User-Agent ~ "Bolt" ||
req.http.User-Agent ~ "BotALot" ||
req.http.User-Agent ~ "Brandprotect" ||
req.http.User-Agent ~ "Brandwatch" ||
req.http.User-Agent ~ "Bubing" ||
req.http.User-Agent ~ "Buddy" ||
req.http.User-Agent ~ "BuiltBotTough" ||
req.http.User-Agent ~ "BuiltWith" ||
req.http.User-Agent ~ "Bullseye" ||
req.http.User-Agent ~ "BunnySlippers" ||
req.http.User-Agent ~ "BuzzSumo" ||
req.http.User-Agent ~ "Calculon" ||
req.http.User-Agent ~ "CATExplorador" ||
req.http.User-Agent ~ "CazoodleBot" ||
req.http.User-Agent ~ "CCBot" ||
req.http.User-Agent ~ "Cegbfeieh" ||
req.http.User-Agent ~ "CheeseBot" ||
req.http.User-Agent ~ "CherryPicker" ||
req.http.User-Agent ~ "CheTeam" ||
req.http.User-Agent ~ "ChinaClaw" ||
req.http.User-Agent ~ "Chlooe" ||
req.http.User-Agent ~ "Claritybot" ||
req.http.User-Agent ~ "Cliqzbot" ||
req.http.User-Agent ~ "Cloud\ mapping" ||
req.http.User-Agent ~ "coccocbot-web" ||
req.http.User-Agent ~ "Cogentbot" ||
req.http.User-Agent ~ "cognitiveseo" ||
req.http.User-Agent ~ "Collector" ||
req.http.User-Agent ~ "com.plumanalytics" ||
req.http.User-Agent ~ "Copier" ||
req.http.User-Agent ~ "CopyRightCheck" ||
req.http.User-Agent ~ "Copyscape" ||
req.http.User-Agent ~ "Cosmos" ||
req.http.User-Agent ~ "Craftbot" ||
req.http.User-Agent ~ "crawler4j" ||
req.http.User-Agent ~ "crawler.feedback" ||
req.http.User-Agent ~ "CrazyWebCrawler" ||
req.http.User-Agent ~ "Crescent" ||
req.http.User-Agent ~ "CSHttp" ||
req.http.User-Agent ~ "Curious" ||
req.http.User-Agent ~ "Custo" ||
req.http.User-Agent ~ "DatabaseDriverMysqli" ||
req.http.User-Agent ~ "DataCha0s" ||
req.http.User-Agent ~ "DBLBot" ||
req.http.User-Agent ~ "demandbase-bot" ||
req.http.User-Agent ~ "Demon" ||
req.http.User-Agent ~ "Deusu" ||
req.http.User-Agent ~ "Devil" ||
req.http.User-Agent ~ "Digincore" ||
req.http.User-Agent ~ "DigitalPebble" ||
req.http.User-Agent ~ "DIIbot" ||
req.http.User-Agent ~ "Dirbuster" ||
req.http.User-Agent ~ "Disco" ||
req.http.User-Agent ~ "Discobot" ||
req.http.User-Agent ~ "Discoverybot" ||
req.http.User-Agent ~ "DittoSpyder" ||
req.http.User-Agent ~ "DnyzBot" ||
req.http.User-Agent ~ "DomainAppender" ||
req.http.User-Agent ~ "DomainCrawler" ||
req.http.User-Agent ~ "DomainSigmaCrawler" ||
req.http.User-Agent ~ "DomainStatsBot" ||
req.http.User-Agent ~ "DotBot" ||
req.http.User-Agent ~ "Download\ Wonder" ||
req.http.User-Agent ~ "Dragonfly" ||
req.http.User-Agent ~ "Drip" ||
req.http.User-Agent ~ "DTS\ Agent" ||
req.http.User-Agent ~ "EasyDL" ||
req.http.User-Agent ~ "Ebingbong" ||
req.http.User-Agent ~ "eCatch" ||
req.http.User-Agent ~ "ECCP/1.0" ||
req.http.User-Agent ~ "Ecxi" ||
req.http.User-Agent ~ "EirGrabber" ||
req.http.User-Agent ~ "EMail\ Siphon" ||
req.http.User-Agent ~ "EMail\ Wolf" ||
req.http.User-Agent ~ "EroCrawler" ||
req.http.User-Agent ~ "evc-batch" ||
req.http.User-Agent ~ "Evil" ||
req.http.User-Agent ~ "Exabot" ||
req.http.User-Agent ~ "Express\ WebPictures" ||
req.http.User-Agent ~ "ExtLinksBot" ||
req.http.User-Agent ~ "Extractor" ||
req.http.User-Agent ~ "ExtractorPro" ||
req.http.User-Agent ~ "Extreme\ Picture\ Finder" ||
req.http.User-Agent ~ "EyeNetIE" ||
req.http.User-Agent ~ "Ezooms" ||
req.http.User-Agent ~ "FDM" ||
req.http.User-Agent ~ "FemtosearchBot" ||
req.http.User-Agent ~ "FHscan" ||
req.http.User-Agent ~ "Fimap" ||
req.http.User-Agent ~ "Firefox/7.0" ||
req.http.User-Agent ~ "FlashGet" ||
req.http.User-Agent ~ "Flunky" ||
req.http.User-Agent ~ "Foobot" ||
req.http.User-Agent ~ "Freeuploader" ||
req.http.User-Agent ~ "FrontPage" ||
req.http.User-Agent ~ "FyberSpider" ||
req.http.User-Agent ~ "Fyrebot" ||
req.http.User-Agent ~ "GalaxyBot" ||
req.http.User-Agent ~ "Genieo" ||
req.http.User-Agent ~ "GermCrawler" ||
req.http.User-Agent ~ "Getintent" ||
req.http.User-Agent ~ "GetRight" ||
req.http.User-Agent ~ "GetWeb" ||
req.http.User-Agent ~ "Gigablast" ||
req.http.User-Agent ~ "Gigabot" ||
req.http.User-Agent ~ "G-i-g-a-b-o-t" ||
req.http.User-Agent ~ "Go-Ahead-Got-It" ||
req.http.User-Agent ~ "Gotit" ||
req.http.User-Agent ~ "GoZilla" ||
req.http.User-Agent ~ "Go!Zilla" ||
req.http.User-Agent ~ "Grabber" ||
req.http.User-Agent ~ "GrabNet" ||
req.http.User-Agent ~ "Grafula" ||
req.http.User-Agent ~ "GrapeFX" ||
req.http.User-Agent ~ "GrapeshotCrawler" ||
req.http.User-Agent ~ "GridBot" ||
req.http.User-Agent ~ "GT::WWW" ||
req.http.User-Agent ~ "Haansoft" ||
req.http.User-Agent ~ "HaosouSpider" ||
req.http.User-Agent ~ "Harvest" ||
req.http.User-Agent ~ "Havij" ||
req.http.User-Agent ~ "HEADMasterSEO" ||
req.http.User-Agent ~ "Heritrix" ||
req.http.User-Agent ~ "Hloader" ||
req.http.User-Agent ~ "HMView" ||
req.http.User-Agent ~ "HTMLparser" ||
req.http.User-Agent ~ "HTTP::Lite" ||
req.http.User-Agent ~ "HTTrack" ||
req.http.User-Agent ~ "Humanlinks" ||
req.http.User-Agent ~ "HybridBot" ||
req.http.User-Agent ~ "Iblog" ||
req.http.User-Agent ~ "IDBot" ||
req.http.User-Agent ~ "Id-search" ||
req.http.User-Agent ~ "IlseBot" ||
req.http.User-Agent ~ "Image\ Fetch" ||
req.http.User-Agent ~ "Image\ Sucker" ||
req.http.User-Agent ~ "IndeedBot" ||
req.http.User-Agent ~ "Indy\ Library" ||
req.http.User-Agent ~ "InfoNaviRobot" ||
req.http.User-Agent ~ "InfoTekies" ||
req.http.User-Agent ~ "instabid" ||
req.http.User-Agent ~ "Intelliseek" ||
req.http.User-Agent ~ "InterGET" ||
req.http.User-Agent ~ "Internet\ Ninja" ||
req.http.User-Agent ~ "InternetSeer" ||
req.http.User-Agent ~ "internetVista\ monitor" ||
req.http.User-Agent ~ "ips-agent" ||
req.http.User-Agent ~ "Iria" ||
req.http.User-Agent ~ "IRLbot" ||
req.http.User-Agent ~ "Iskanie" ||
req.http.User-Agent ~ "IstellaBot" ||
req.http.User-Agent ~ "JamesBOT" ||
req.http.User-Agent ~ "Java/" ||
req.http.User-Agent ~ "Jbrofuzz" ||
req.http.User-Agent ~ "JennyBot" ||
req.http.User-Agent ~ "JetCar" ||
req.http.User-Agent ~ "JikeSpider" ||
req.http.User-Agent ~ "JobboerseBot" ||
req.http.User-Agent ~ "JOC\ Web\ Spider" ||
req.http.User-Agent ~ "Joomla" ||
req.http.User-Agent ~ "Jorgee" ||
req.http.User-Agent ~ "JustView" ||
req.http.User-Agent ~ "Jyxobot" ||
req.http.User-Agent ~ "Kenjin\ Spider" ||
req.http.User-Agent ~ "Keyword\ Density" ||
req.http.User-Agent ~ "Kozmosbot" ||
req.http.User-Agent ~ "Lanshanbot" ||
req.http.User-Agent ~ "Larbin" ||
req.http.User-Agent ~ "LeechFTP" ||
req.http.User-Agent ~ "LeechGet" ||
req.http.User-Agent ~ "LexiBot" ||
req.http.User-Agent ~ "Lftp" ||
req.http.User-Agent ~ "LibWeb" ||
req.http.User-Agent ~ "Libwhisker" ||
req.http.User-Agent ~ "Lightspeedsystems" ||
req.http.User-Agent ~ "Likse" ||
req.http.User-Agent ~ "Linguee" ||
req.http.User-Agent ~ "Linkdexbot" ||
req.http.User-Agent ~ "LinkextractorPro" ||
req.http.User-Agent ~ "LinkpadBot" ||
req.http.User-Agent ~ "LinkScan" ||
req.http.User-Agent ~ "LinksManager" ||
req.http.User-Agent ~ "LinkWalker" ||
req.http.User-Agent ~ "LinqiaMetadataDownloaderBot" ||
req.http.User-Agent ~ "LinqiaRSSBot" ||
req.http.User-Agent ~ "LinqiaScrapeBot" ||
req.http.User-Agent ~ "Lipperhey" ||
req.http.User-Agent ~ "Litemage_walker" ||
req.http.User-Agent ~ "Lmspider" ||
req.http.User-Agent ~ "LNSpiderguy" ||
req.http.User-Agent ~ "Ltx71" ||
req.http.User-Agent ~ "lwp-request" ||
req.http.User-Agent ~ "LWP::Simple" ||
req.http.User-Agent ~ "lwp-trivial" ||
req.http.User-Agent ~ "Magnet" ||
req.http.User-Agent ~ "Mag-Net" ||
req.http.User-Agent ~ "magpie-crawler" ||
req.http.User-Agent ~ "Mail.RU_Bot" ||
req.http.User-Agent ~ "Majestic12" ||
req.http.User-Agent ~ "MarkMonitor" ||
req.http.User-Agent ~ "MarkWatch" ||
req.http.User-Agent ~ "Masscan" ||
req.http.User-Agent ~ "Mass\ Downloader" ||
req.http.User-Agent ~ "Mata\ Hari" ||
req.http.User-Agent ~ "MauiBot" ||
req.http.User-Agent ~ "Meanpathbot" ||
req.http.User-Agent ~ "Mediatoolkitbot" ||
req.http.User-Agent ~ "mediawords" ||
req.http.User-Agent ~ "MegaIndex.ru" ||
req.http.User-Agent ~ "Metauri" ||
req.http.User-Agent ~ "MFC_Tear_Sample" ||
req.http.User-Agent ~ "Microsoft\ Data\ Access" ||
req.http.User-Agent ~ "Microsoft\ URL\ Control" ||
req.http.User-Agent ~ "MIDown\ tool" ||
req.http.User-Agent ~ "MIIxpc" ||
req.http.User-Agent ~ "Mister\ PiX" ||
req.http.User-Agent ~ "MJ12bot" ||
req.http.User-Agent ~ "Mojeek" ||
req.http.User-Agent ~ "Morfeus\ Fucking\ Scanner" ||
req.http.User-Agent ~ "Mr.4x3" ||
req.http.User-Agent ~ "MSFrontPage" ||
req.http.User-Agent ~ "MSIECrawler" ||
req.http.User-Agent ~ "Msrabot" ||
req.http.User-Agent ~ "MS\ Web\ Services\ Client\ Protocol" ||
req.http.User-Agent ~ "muhstik-scan" ||
req.http.User-Agent ~ "Musobot" ||
req.http.User-Agent ~ "Name\ Intelligence" ||
req.http.User-Agent ~ "Nameprotect" ||
req.http.User-Agent ~ "Navroad" ||
req.http.User-Agent ~ "NearSite" ||
req.http.User-Agent ~ "Needle" ||
req.http.User-Agent ~ "Nessus" ||
req.http.User-Agent ~ "NetAnts" ||
req.http.User-Agent ~ "Netcraft" ||
req.http.User-Agent ~ "netEstate\ NE\ Crawler" ||
req.http.User-Agent ~ "NetLyzer" ||
req.http.User-Agent ~ "NetMechanic" ||
req.http.User-Agent ~ "NetSpider" ||
req.http.User-Agent ~ "Nettrack" ||
req.http.User-Agent ~ "Net\ Vampire" ||
req.http.User-Agent ~ "Netvibes" ||
req.http.User-Agent ~ "NetZIP" ||
req.http.User-Agent ~ "NextGenSearchBot" ||
req.http.User-Agent ~ "Nibbler" ||
req.http.User-Agent ~ "NICErsPRO" ||
req.http.User-Agent ~ "Niki-bot" ||
req.http.User-Agent ~ "Nikto" ||
req.http.User-Agent ~ "NimbleCrawler" ||
req.http.User-Agent ~ "Nimbostratus-Bot" ||
req.http.User-Agent ~ "Ninja" ||
req.http.User-Agent ~ "Nmap" ||
req.http.User-Agent ~ "NPbot" ||
req.http.User-Agent ~ "Nutch" ||
req.http.User-Agent ~ "oBot" ||
req.http.User-Agent ~ "Octopus" ||
req.http.User-Agent ~ "Offline\ Explorer" ||
req.http.User-Agent ~ "Offline\ Navigator" ||
req.http.User-Agent ~ "Openfind" ||
req.http.User-Agent ~ "OpenLinkProfiler" ||
req.http.User-Agent ~ "Openvas" ||
req.http.User-Agent ~ "OpenVAS" ||
req.http.User-Agent ~ "OrangeBot" ||
req.http.User-Agent ~ "OrangeSpider" ||
req.http.User-Agent ~ "OutclicksBot" ||
req.http.User-Agent ~ "OutfoxBot" ||
req.http.User-Agent ~ "PageAnalyzer" ||
req.http.User-Agent ~ "Page\ Analyzer" ||
req.http.User-Agent ~ "PageGrabber" ||
req.http.User-Agent ~ "page\ scorer" ||
req.http.User-Agent ~ "PageScorer" ||
req.http.User-Agent ~ "Panscient" ||
req.http.User-Agent ~ "Papa\ Foto" ||
req.http.User-Agent ~ "Pavuk" ||
req.http.User-Agent ~ "pcBrowser" ||
req.http.User-Agent ~ "PECL::HTTP" ||
req.http.User-Agent ~ "PeoplePal" ||
req.http.User-Agent ~ "PHPCrawl" ||
req.http.User-Agent ~ "Picscout" ||
req.http.User-Agent ~ "Picsearch" ||
req.http.User-Agent ~ "PictureFinder" ||
req.http.User-Agent ~ "Pimonster" ||
req.http.User-Agent ~ "Pi-Monster" ||
req.http.User-Agent ~ "Pixray" ||
req.http.User-Agent ~ "PleaseCrawl" ||
req.http.User-Agent ~ "plumanalytics" ||
req.http.User-Agent ~ "Pockey" ||
req.http.User-Agent ~ "POE-Component-Client-HTTP" ||
req.http.User-Agent ~ "Probethenet" ||
req.http.User-Agent ~ "ProPowerBot" ||
req.http.User-Agent ~ "ProWebWalker" ||
req.http.User-Agent ~ "Psbot" ||
req.http.User-Agent ~ "Pump" ||
req.http.User-Agent ~ "PxBroker" ||
req.http.User-Agent ~ "PyCurl" ||
req.http.User-Agent ~ "QueryN\ Metasearch" ||
req.http.User-Agent ~ "Quick-Crawler" ||
req.http.User-Agent ~ "RankActive" ||
req.http.User-Agent ~ "RankActiveLinkBot" ||
req.http.User-Agent ~ "RankFlex" ||
req.http.User-Agent ~ "RankingBot" ||
req.http.User-Agent ~ "RankingBot2" ||
req.http.User-Agent ~ "Rankivabot" ||
req.http.User-Agent ~ "RankurBot" ||
req.http.User-Agent ~ "RealDownload" ||
req.http.User-Agent ~ "Reaper" ||
req.http.User-Agent ~ "RebelMouse" ||
req.http.User-Agent ~ "Recorder" ||
req.http.User-Agent ~ "RedesScrapy" ||
req.http.User-Agent ~ "ReGet" ||
req.http.User-Agent ~ "RepoMonkey" ||
req.http.User-Agent ~ "Researchscan" ||
req.http.User-Agent ~ "Ripper" ||
req.http.User-Agent ~ "RocketCrawler" ||
req.http.User-Agent ~ "Rogerbot" ||
req.http.User-Agent ~ "s1z.ru" ||
req.http.User-Agent ~ "SalesIntelligent" ||
req.http.User-Agent ~ "SBIder" ||
req.http.User-Agent ~ "ScanAlert" ||
req.http.User-Agent ~ "Scanbot" ||
req.http.User-Agent ~ "scan.lol" ||
req.http.User-Agent ~ "Scrapy" ||
req.http.User-Agent ~ "Screaming" ||
req.http.User-Agent ~ "ScreenerBot" ||
req.http.User-Agent ~ "Searchestate" ||
req.http.User-Agent ~ "SearchmetricsBot" ||
req.http.User-Agent ~ "Semrush" ||
req.http.User-Agent ~ "SemrushBot" ||
req.http.User-Agent ~ "SEOkicks" ||
req.http.User-Agent ~ "SEOlyticsCrawler" ||
req.http.User-Agent ~ "Seomoz" ||
req.http.User-Agent ~ "SEOprofiler" ||
req.http.User-Agent ~ "seoscanners" ||
req.http.User-Agent ~ "SeoSiteCheckup" ||
req.http.User-Agent ~ "SEOstats" ||
req.http.User-Agent ~ "serpstatbot" ||
req.http.User-Agent ~ "sexsearcher" ||
req.http.User-Agent ~ "SeznamBot" ||
req.http.User-Agent ~ "Shodan" ||
req.http.User-Agent ~ "Siphon" ||
req.http.User-Agent ~ "SISTRIX" ||
req.http.User-Agent ~ "Sitebeam" ||
req.http.User-Agent ~ "SiteExplorer" ||
req.http.User-Agent ~ "Siteimprove" ||
req.http.User-Agent ~ "SiteLockSpider" ||
req.http.User-Agent ~ "SiteSnagger" ||
req.http.User-Agent ~ "SiteSucker" ||
req.http.User-Agent ~ "Site\ Sucker" ||
req.http.User-Agent ~ "Sitevigil" ||
req.http.User-Agent ~ "Slackbot-LinkExpanding" ||
req.http.User-Agent ~ "SlySearch" ||
req.http.User-Agent ~ "SmartDownload" ||
req.http.User-Agent ~ "SMTBot" ||
req.http.User-Agent ~ "Snake" ||
req.http.User-Agent ~ "Snapbot" ||
req.http.User-Agent ~ "Snoopy" ||
req.http.User-Agent ~ "SocialRankIOBot" ||
req.http.User-Agent ~ "Sottopop" ||
req.http.User-Agent ~ "SpaceBison" ||
req.http.User-Agent ~ "Spammen" ||
req.http.User-Agent ~ "SpankBot" ||
req.http.User-Agent ~ "Spanner" ||
req.http.User-Agent ~ "Spbot" ||
req.http.User-Agent ~ "Spinn3r" ||
req.http.User-Agent ~ "SputnikBot" ||
req.http.User-Agent ~ "Sqlmap" ||
req.http.User-Agent ~ "Sqlworm" ||
req.http.User-Agent ~ "Sqworm" ||
req.http.User-Agent ~ "Steeler" ||
req.http.User-Agent ~ "Stripper" ||
req.http.User-Agent ~ "Sucker" ||
req.http.User-Agent ~ "Sucuri" ||
req.http.User-Agent ~ "SuperBot" ||
req.http.User-Agent ~ "SuperHTTP" ||
req.http.User-Agent ~ "Surfbot" ||
req.http.User-Agent ~ "SurveyBot" ||
req.http.User-Agent ~ "Suzuran" ||
req.http.User-Agent ~ "Swiftbot" ||
req.http.User-Agent ~ "sysscan" ||
req.http.User-Agent ~ "Szukacz" ||
req.http.User-Agent ~ "T0PHackTeam" ||
req.http.User-Agent ~ "T8Abot" ||
req.http.User-Agent ~ "tAkeOut" ||
req.http.User-Agent ~ "Teleport" ||
req.http.User-Agent ~ "TeleportPro" ||
req.http.User-Agent ~ "Telesoft" ||
req.http.User-Agent ~ "Telesphoreo" ||
req.http.User-Agent ~ "Telesphorep" ||
req.http.User-Agent ~ "The\ Intraformant" ||
req.http.User-Agent ~ "TheNomad" ||
req.http.User-Agent ~ "TightTwatBot" ||
req.http.User-Agent ~ "Titan" ||
req.http.User-Agent ~ "Toata" ||
req.http.User-Agent ~ "Toweyabot" ||
req.http.User-Agent ~ "Tracemyfile" ||
req.http.User-Agent ~ "Trendiction" ||
req.http.User-Agent ~ "Trendictionbot" ||
req.http.User-Agent ~ "trendiction.com" ||
req.http.User-Agent ~ "trendiction.de" ||
req.http.User-Agent ~ "True_Robot" ||
req.http.User-Agent ~ "Turingos" ||
req.http.User-Agent ~ "Turnitin" ||
req.http.User-Agent ~ "TurnitinBot" ||
req.http.User-Agent ~ "TwengaBot" ||
req.http.User-Agent ~ "Twice" ||
req.http.User-Agent ~ "Typhoeus" ||
req.http.User-Agent ~ "UnisterBot" ||
req.http.User-Agent ~ "URLy.Warning" ||
req.http.User-Agent ~ "URLy\ Warning" ||
req.http.User-Agent ~ "Vacuum" ||
req.http.User-Agent ~ "Vagabondo" ||
req.http.User-Agent ~ "VB\ Project" ||
req.http.User-Agent ~ "VCI" ||
req.http.User-Agent ~ "VeriCiteCrawler" ||
req.http.User-Agent ~ "VidibleScraper" ||
req.http.User-Agent ~ "Virusdie" ||
req.http.User-Agent ~ "VoidEYE" ||
req.http.User-Agent ~ "Voil" ||
req.http.User-Agent ~ "Voltron" ||
req.http.User-Agent ~ "Wallpapers/3.0" ||
req.http.User-Agent ~ "WallpapersHD" ||
req.http.User-Agent ~ "WASALive-Bot" ||
req.http.User-Agent ~ "WBSearchBot" ||
req.http.User-Agent ~ "Webalta" ||
req.http.User-Agent ~ "WebAuto" ||
req.http.User-Agent ~ "Web\ Auto" ||
req.http.User-Agent ~ "WebBandit" ||
req.http.User-Agent ~ "webBench" ||
req.http.User-Agent ~ "WebCollage" ||
req.http.User-Agent ~ "Web\ Collage" ||
req.http.User-Agent ~ "WebCopier" ||
req.http.User-Agent ~ "WEBDAV" ||
req.http.User-Agent ~ "WebEnhancer" ||
req.http.User-Agent ~ "Web\ Enhancer" ||
req.http.User-Agent ~ "WebFetch" ||
req.http.User-Agent ~ "Web\ Fetch" ||
req.http.User-Agent ~ "WebFuck" ||
req.http.User-Agent ~ "Web\ Fuck" ||
req.http.User-Agent ~ "WebGo\ IS" ||
req.http.User-Agent ~ "WebImageCollector" ||
req.http.User-Agent ~ "WebLeacher" ||
req.http.User-Agent ~ "WebmasterWorldForumBot" ||
req.http.User-Agent ~ "webmeup-crawler" ||
req.http.User-Agent ~ "WebPix" ||
req.http.User-Agent ~ "Web\ Pix" ||
req.http.User-Agent ~ "WebReaper" ||
req.http.User-Agent ~ "WebSauger" ||
req.http.User-Agent ~ "Web\ Sauger" ||
req.http.User-Agent ~ "Webshag" ||
req.http.User-Agent ~ "WebsiteExtractor" ||
req.http.User-Agent ~ "WebsiteQuester" ||
req.http.User-Agent ~ "Website\ Quester" ||
req.http.User-Agent ~ "Webster" ||
req.http.User-Agent ~ "WebStripper" ||
req.http.User-Agent ~ "WebSucker" ||
req.http.User-Agent ~ "Web\ Sucker" ||
req.http.User-Agent ~ "WebWhacker" ||
req.http.User-Agent ~ "WebZIP" ||
req.http.User-Agent ~ "WeSEE" ||
req.http.User-Agent ~ "Whack" ||
req.http.User-Agent ~ "Whacker" ||
req.http.User-Agent ~ "Whatweb" ||
req.http.User-Agent ~ "Who.is\ Bot" ||
req.http.User-Agent ~ "Widow" ||
req.http.User-Agent ~ "WinHTTrack" ||
req.http.User-Agent ~ "WiseGuys\ Robot" ||
req.http.User-Agent ~ "WISENutbot" ||
req.http.User-Agent ~ "Wonderbot" ||
req.http.User-Agent ~ "Woobot" ||
req.http.User-Agent ~ "Wotbox" ||
req.http.User-Agent ~ "Wprecon" ||
req.http.User-Agent ~ "WPScan" ||
req.http.User-Agent ~ "WWW-Collector-E" ||
req.http.User-Agent ~ "WWW-Mechanize" ||
req.http.User-Agent ~ "WWW::Mechanize" ||
req.http.User-Agent ~ "WWWOFFLE" ||
req.http.User-Agent ~ "x09Mozilla" ||
req.http.User-Agent ~ "x22Mozilla" ||
req.http.User-Agent ~ "Xaldon_WebSpider" ||
req.http.User-Agent ~ "Xaldon\ WebSpider" ||
req.http.User-Agent ~ "Xenu" ||
req.http.User-Agent ~ "xpymep1.exe" ||
req.http.User-Agent ~ "YandexBot" ||
req.http.User-Agent ~ "YoudaoBot" ||
req.http.User-Agent ~ "Zade" ||
req.http.User-Agent ~ "Zauba" ||
req.http.User-Agent ~ "zauba.io" ||
req.http.User-Agent ~ "Zermelo" ||
req.http.User-Agent ~ "Zeus" ||
req.http.User-Agent ~ "zgrab" ||
req.http.User-Agent ~ "Zitebot" ||
req.http.User-Agent ~ "ZmEu" ||
req.http.User-Agent ~ "ZoominfoBot" ||
req.http.User-Agent ~ "ZumBot" ||
req.http.User-Agent ~ "ZyBorg" ||
req.http.User-Agent ~ "Nimbostratus-Bot" ||
req.http.User-Agent ~ "SurdotlyBot"  # The attackers' request matches a specific user-agent
  ) { return (synth(509, "Forbidden")); }
}

Define 509:

sub vcl_synth {
 if (resp.status == 509) {
    set resp.http.Content-Type = "text/html; charset=utf-8";
    set resp.http.Retry-After = "3";
    synthetic( {"<!DOCTYPE html>
<html>
  <head>
    <title>Access Denied</title>
  </head>
  <body>
    <h1>Access Denied</h1>
    <p></p>
    <hr>
  </body>
</html>
"} );
    return (deliver);
    }
}

Check varnish:

varnishd -C -f /etc/varnish/default.vcl

© Meken 2024

Powered by Hugo & Kiss.