재우니의 블로그

https://sublimecoding.com/blocking-bots-in-iis/

 

Blocking Bots in IIS

Recently I had an application on apache become the victim of bot spam. As a good measure and to be proactive, I set out to implement the same protection on a Windows Server running IIS 7.5. The web is something on the order of 60% bot traffic, many of

sublimecoding.com

 

웹은 봇 트래픽의 60% 정도이며, 이들 중 다수는 중요하지 않으며 SEO를 손상시키지 않고 안전하게 차단할 수 있습니다. 이러한 봇 중 다수는 활용할 수 있는 IP 주소 범위가 다양하기 때문에 user agent 를 기반으로 차단하기로 했습니다.

 

먼저 IIS 설치에 URL 재작성 모듈이 추가되었는지 확인해야 합니다. 이 글을 쓰고 있는 버전은 IIS 7이며 다른 버전의 프로세스도 비슷해야 합니다.

 

(IIS 7(x64)용 Microsoft URL 재작성 모듈 2.0)

 

이 재작성 모듈이 IIS 7.0과 7.5 모두에서 작동하는지 확인했습니다.

모듈을 설치한 후 IIS 관리자를 다시 시작하고 왼쪽에서 서버를 클릭합니다. "시작 페이지" 다음의 최상위 옵션이 될 것입니다. 아래 이미지에서 볼 수 있습니다.

 

 

 

URL 재작성이 웹 서버에서 활성화되면. 그런 다음 작업 창에서 "규칙 추가..."를 클릭합니다.

아래 정보가 포함된 창이 열립니다. 요청 차단을 클릭한 다음 "확인"을 클릭합니다.

 

그런 다음 규칙에 대한 설정을 선택하라는 메시지가 표시됩니다.

"다음을 기반으로 하는 액세스 차단" 필드에 대해 user-agent header 를 선택합니다.

사용 선택: 정규식

 

 

 

그런 다음 패턴을 입력합니다.

 

내 규칙에 아래 패턴을 사용했습니다. 맨 위에 나열된 "^$"는 빈 문자열에 대한 정규식입니다. user agent 로 식별하지 않는 한 봇이 페이지에 액세스하는 것을 허용하지 않습니다. user agent 없이 이러한 애플리케이션을 공격하는 유일한 것은 보안 도구가 불량하다는 사실을 가장 자주 발견했습니다.

 

^$|EasouSpider|Add Catalog|PaperLiBot|Spiceworks|ZumBot|RU_Bot|Wget|Java/1.7.0_25|Slurp|FunWebProducts|80legs|Aboundex|AcoiRobot|Acoon Robot|AhrefsBot|aihit|AlkalineBOT|AnzwersCrawl|Arachnoidea|ArchitextSpider|archive|Autonomy Spider|Baiduspider|BecomeBot|benderthewebrobot|BlackWidow|Bork-edition|Bot mailto:craftbot@yahoo.com|botje|catchbot|changedetection|Charlotte|ChinaClaw|commoncrawl|ConveraCrawler|Covario|crawler|curl|Custo|data mining development project|DigExt|DISCo|discobot|discoveryengine|DOC|DoCoMo|DotBot|Download Demon|Download Ninja|eCatch|EirGrabber|EmailSiphon|EmailWolf|eurobot|Exabot|Express WebPictures|ExtractorPro|EyeNetIE|Ezooms|Fetch|Fetch API|filterdb|findfiles|findlinks|FlashGet|flightdeckreports|FollowSite Bot|Gaisbot|genieBot|GetRight|GetWeb!|gigablast|Gigabot|Go-Ahead-Got-It|Go!Zilla|GrabNet|Grafula|GT::WWW|hailoo|heritrix|HMView|houxou|HTTP::Lite|HTTrack|ia_archiver|IBM EVV|id-search|IDBot|Image Stripper|Image Sucker|Indy Library|InterGET|Internet Ninja|internetmemory|ISC Systems iRc Search 2.1|JetCar|JOC Web Spider|k2spider|larbin|larbin|LeechFTP|libghttp|libwww|libwww-perl|linko|LinkWalker|lwp-trivial|Mass Downloader|metadatalabs|MFC_Tear_Sample|Microsoft URL Control|MIDown tool|Missigua|Missigua Locator|Mister PiX|MJ12bot|MOREnet|MSIECrawler|msnbot|naver|Navroad|NearSite|Net Vampire|NetAnts|NetSpider|NetZIP|NextGenSearchBot|NPBot|Nutch|Octopus|Offline Explorer|Offline Navigator|omni-explorer|PageGrabber|panscient|panscient.com|Papa Foto|pavuk|pcBrowser|PECL::HTTP|PHP/|PHPCrawl|picsearch|pipl|pmoz|PredictYourBabySearchToolbar|RealDownload|Referrer Karma|ReGet|reverseget|rogerbot|ScoutJet|SearchBot|seexie|seoprofiler|Servage Robot|SeznamBot|shopwiki|sindice|sistrix|SiteSnagger|SiteSnagger|smart.apnoti.com|SmartDownload|Snoopy|Sosospider|spbot|suggybot|SuperBot|SuperHTTP|SuperPagesUrlVerifyBot|Surfbot|SurveyBot|SurveyBot|swebot|Synapse|Tagoobot|tAkeOut|Teleport|Teleport Pro|TeleportPro|TweetmemeBot|TwengaBot|twiceler|UbiCrawler|uptimerobot|URI::Fetch|urllib|User-Agent|VoidEYE|VoilaBot|WBSearchBot|Web Image Collector|Web Sucker|WebAuto|WebCopier|WebCopier|WebFetch|WebGo IS|WebLeacher|WebReaper|WebSauger|Website eXtractor|Website Quester|WebStripper|WebStripper|WebWhacker|WebZIP|WebZIP|Wells Search II|WEP Search|Widow|winHTTP|WWWOFFLE|Xaldon WebSpider|Xenu|yacybot|yandex|YandexBot|YandexImages|yBot|YesupBot|YodaoBot|yolinkBot|youdao|Zao|Zealbot|Zeus|ZyBORG

 

 

봇 차단 시 매우 구체적으로 알려드리겠습니다. 단순히 "fire"와 같은 일반적인 단어를 사용하면 "firefox"에 대해 긍정적으로 나타날 수 있습니다. 해당 문제를 해결하기 위해 정규식을 조정할 수도 있지만 더 구체적으로 설정하는 것이 훨씬 간단하고 다음 사람이 해당 설정을 만질 때 더 많은 정보를 얻을 수 있다는 이점이 있습니다.

 

또한 Java/1.7.0_25에 대한 규칙이 있음을 알 수 있습니다. 이 경우 이 버전의 Java를 사용하여 내 서버를 공격하는 봇이었습니다. ColdFusion과 같은 일부 언어는 JVM에서 실행되고 언어 user agent 와 localhost에 대한 웹 요청을 사용하여 PDF와 같은 것을 어셈블하는 것과 같은 언어별 user agent 를 조심스럽게 차단하십시오. 

 

Jruby, Groovy 또는 Scala도 비슷한 작업을 수행할 수 있지만 테스트하지는 않았습니다.

 

아래에는 위의 정규식에 의해 차단된 모든 봇의 전체 목록이 표시됩니다.

 

 

^$
EasouSpider
Add Catalog
PaperLiBot
Spiceworks
ZumBot
RU_Bot
Wget
Java/1.7.0_25
Slurp
FunWebProducts
80legs
Aboundex
AcoiRobot
Acoon Robot
AhrefsBot
aihit
AlkalineBOT
AnzwersCrawl
Arachnoidea
ArchitextSpider
archive
Autonomy Spider
Baiduspider
BecomeBot
benderthewebrobot
BlackWidow
Bork-edition
Bot mailto:craftbot@yahoo.com
botje
catchbot
changedetection
Charlotte
ChinaClaw
commoncrawl
ConveraCrawler
Covario
crawler
curl
Custo
data mining development project
DigExt
DISCo
discobot
discoveryengine
DOC
DoCoMo
DotBot
Download Demon
Download Ninja
eCatch
EirGrabber
EmailSiphon
EmailWolf
eurobot
Exabot
Express WebPictures
ExtractorPro
EyeNetIE
Ezooms
Fetch
Fetch API
filterdb
findfiles
findlinks
FlashGet
flightdeckreports
FollowSite Bot
Gaisbot
genieBot
GetRight
GetWeb!
gigablast
Gigabot
Go-Ahead-Got-It
Go!Zilla
GrabNet
Grafula
GT::WWW
hailoo
heritrix
HMView
houxou
HTTP::Lite
HTTrack
ia_archiver
IBM EVV
id-search
IDBot
Image Stripper
Image Sucker
Indy Library
InterGET
Internet Ninja
internetmemory
ISC Systems iRc Search 2.1
JetCar
JOC Web Spider
k2spider
larbin
larbin
LeechFTP
libghttp
libwww
libwww-perl
linko
LinkWalker
lwp-trivial
Mass Downloader
metadatalabs
MFC_Tear_Sample
Microsoft URL Control
MIDown tool
Missigua
Missigua Locator
Mister PiX
MJ12bot
MOREnet
MSIECrawler
msnbot
naver
Navroad
NearSite
Net Vampire
NetAnts
NetSpider
NetZIP
NextGenSearchBot
NPBot
Nutch
Octopus
Offline Explorer
Offline Navigator
omni-explorer
PageGrabber
panscient
panscient.com
Papa Foto
pavuk
pcBrowser
PECL::HTTP
PHP/
PHPCrawl
picsearch
pipl
pmoz
PredictYourBabySearchToolbar
RealDownload
Referrer Karma
ReGet
reverseget
rogerbot
ScoutJet
SearchBot
seexie
seoprofiler
Servage Robot
SeznamBot
shopwiki
sindice
sistrix
SiteSnagger
SiteSnagger
smart.apnoti.com
SmartDownload
Snoopy
Sosospider
spbot
suggybot
SuperBot
SuperHTTP
SuperPagesUrlVerifyBot
Surfbot
SurveyBot
SurveyBot
swebot
Synapse
Tagoobot
tAkeOut
Teleport
Teleport Pro
TeleportPro
TweetmemeBot
TwengaBot
twiceler
UbiCrawler
uptimerobot
URI::Fetch
urllib
User-Agent
VoidEYE
VoilaBot
WBSearchBot
Web Image Collector
Web Sucker
WebAuto
WebCopier
WebCopier
WebFetch
WebGo IS
WebLeacher
WebReaper
WebSauger
Website eXtractor
Website Quester
WebStripper
WebStripper
WebWhacker
WebZIP
WebZIP
Wells Search II
WEP Search
Widow
winHTTP
WWWOFFLE
Xaldon WebSpider
Xenu
yacybot
yandex
YandexBot
YandexImages
yBot
YesupBot
YodaoBot
yolinkBot
youdao
Zao
Zealbot
Zeus
ZyBORG