Web Sayfalarını Tarayan Spam ve Casus Robotları Engelleme
Mart 2004
İlker Fıçıcılar
Web sayfalarımı her gün pek çok robot gezip bandwidth'den giderek daha
fazla çalmaya başlayınca bir çözüm aramak gerekti. Web sunucularımın önünde
squid bir httpd hızlandırıcı olarak çalışıyor. Uygun refresh_pattern
ayarlarıyla squid'in sunucuyu oldukça rahatlattığını söyleyebilirim.
Squid'le mutluyuz ve mutluluk gölgeleyici bu kötü robotlardan kurtulmak
istiyoruz.
Squid ile Apache bir denge içinde çalışmalı, aksi halde kullanıcılar,
sayfayı gezenler istenmeyen sonuçlarla karşılaşıyorlar. Performans için
gerek squid'de gerekse apache'de pek çok ayarı sınırlarında kullanmak
gerekiyor. Örneğin apache'de mod_gzip açtıysanız, apache'nin önündeki
squid'in sayfaların farklı biçimlerini de önbellekte tutmasını
sağlamalısınız, yoksa gzip ile sıkıştırılmış sayfaları gösteremeyen
bir tarayıcı sayfalarınızı okuyamayacaktır.
Benzer şekilde kötü robotları
apache içinden engellerseniz ve uygun Vary başlıkları eklemezseniz,
ya robotlar squid'de daha önce normal kullanıcılarca önbelleklenmiş bilgiye
ulaşacaklar ve engellenmemiş olacaklar, ya da ilk davranan kötü bir robotsa
ve bu istek önbelleğe girdiyse normal kullanıcılar da Erişim Yasak
sayfası ile karşılaşacaklardır. Bunu önlemek için apache'ye Header append
"Vary:" "User-Agent" şeklinde bir ekleme yapabilirsiniz, ama bu da
squid'in her sayfanın her tarayıcı için ayrı bir kopyasını önbellekte
tutmasına yol açar. Bu ise, ziyaret eden farklı user-agent sayısına göre,
performansını on kattan daha fazla düşürüyor.
Bu durumda, apache'de vary başlığı ayarı olarak sadece Header
append "Vary:" "Accept-Encoding" kullanmak, apache'de RewriteEngine ile
RewriteCond %{HTTP_USER_AGENT} EmailSiphon ve
RewriteRule .* - [F,L] biçimindeki yasaklamaları kullanmamak gerekiyor.
Yapmak istediğimizi squid acl'leri ile halledeceğiz.
Önce, apache veya squid http_accelerator kayıtlarınızı inceleyerek sizi
rahatsız eden robotları tesbit etmelisiniz. Aşağıdaki liste veya
internetteki başka listeler yerine kendi istenmeyen robotlar listenizi
oluşturmanız verimlilik açısından yararlı olacaktır. Yine de bu kısa listeyi
kullanabilirsiniz:
EmailSiphon
Microsoft\ URL\ Control
NPBot
Windows\ XP
FrontPage
MSIECrawler
HTTrack
^Mozilla/4.0$
Sqworm
WebCopier
WebReaper
Bu listedeki FrontPage sayfanızı editlemeye çalışıp başarılı
olamadıkça tekrar tekrar deneyen acemileri engellemek için. Windows
XP yazısı ise hiçbir normal user-agent'ta görülmez. Diğerleri ise spam,
casus ve offline robotları / agent'ları genelde. Sayfanızın Teleport,
GetRight vb. programlarla sömürülmesini istemiyorsanız listeyi
bunları da ekleyerek biraz daha genişletebilirsiniz:
DA\
GetRight
FlashGet
Teleport
EmailSiphon
Microsoft\ URL\ Control
NPBot
Windows\ XP
FrontPage
MSIECrawler
HTTrack
^Mozilla/4.0$
Sqworm
WebCopier
WebReaper
Bu listeyi bir dosyaya yazıp kaydedin. Ben
/usr/local/share/koturobot.lst dosyasına yazıp, squid.conf
ayar dosyasına şu satırları ekledim:
acl koturobot browser "/usr/local/share/koturobot.lst"
http_access deny koturobot
Evet, hepsi bu. Eğer www sunucularınızın önünde bir squid httpd
hızlandırıcı olarak çalışıyorsa, bu ayar sayfalarınızdan eposta adresi
ve resim çalınması engellemek yönünde iyi bir adım olacak ve
bandwidth'inizin de bir miktar rahatlamasını sağlayacaktır.
Eğer, squid'siz sadece apache sunucuyu kullanıyorsanız, virtual
hostlarınız için aşağıdaki gibi bir ayar eklemesiyle apache'nin bu robotları
engellemesini sağlayabilirsiniz:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} "DA " [OR]
RewriteCond %{HTTP_USER_AGENT} GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} Teleport [OR]
RewriteCond %{HTTP_USER_AGENT} EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} "Microsoft URL Control" [OR]
RewriteCond %{HTTP_USER_AGENT} NPBot [OR]
RewriteCond %{HTTP_USER_AGENT} "Windows XP" [OR]
RewriteCond %{HTTP_USER_AGENT} FrontPage [OR]
RewriteCond %{HTTP_USER_AGENT} MSIECrawler [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [OR]
RewriteCond %{HTTP_USER_AGENT} "^Mozilla/4.0$" [OR]
RewriteCond %{HTTP_USER_AGENT} Sqworm [OR]
RewriteCond %{HTTP_USER_AGENT} WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} WebReaper
RewriteRule .* - [F,L]
Bu yöntemle sadece user-agent'inden tanınabilen robotları
durdurabiliyoruz. Diğerleri, user-agent bilgilerini normal olanlara
benzeterek bu filtrelerden geçebiliyorlar. Bunları ise IP adreslerinden, IP
bloklarından tanıyarak engellemek mümkün. Bu engeli de ister iptables ile,
istersek de squid ile koyabiliriz. Kısa bir Kötü Robot IP Listesi
olarak şunlar kullanılabilir:
64.140.49.66/30
12.148.196.128/25
12.148.209.192/26
63.148.99.224/27
Bu listeyi, /usr/local/share/koturobotip.lst gibi bir dosyaya
kaydettikten sonra, iptables ile şu şekilde kullanıyoruz:
cat /usr/local/share/koturobotip.lst | while read ipler
do
iptables -A INPUT -i $DEV -s $ipler -p tcp --destination-port 80 -j DROP
done
Squid içinden kullanabilmek için listeyi önce squid'in anlayabileceği
biçime getirelim:
64.140.49.66-64.140.49.69/255.255.255.69
12.148.196.128-12.148.196.255/255.255.255.255
12.148.209.192-12.148.209.255/255.255.255.255
63.148.99.224-63.148.99.255/255.255.255.255
Bu IP listesini /usr/local/share/koturobotadres.lst dosyasına
yazıp şu iki satırı da squid'e ekleyerek squid'in bu adresleri engellemesini
sağlarız:
acl koturobotadres src "/usr/local/share/koturobotadres.lst"
http_access deny koturobotadres
Daha kapsamlı bir Kötü Robotlar Listesi olarak aşağıdaki
kullanılabilir:
almaden
CherryPicker
Crescent
DA\
DIIbot
EmailCollector
EmailSiphon
EmailWolf
ExtractorPro
FlashGet
FrontPage
GetRight
HTTrack
InternetSeer\.com
LinkWalker
Microsoft\ URL\ Control
Mozilla.*Indy
Mozilla.*NEWT
^Mozilla/4.0$
MSIECrawler
NICErsPRO
NPBot
psbot
sitecheck\.internetseer\.com
Sqworm
Teleport
WebBandit
webbandit
WebCopier
WebEMailExtrac
WebReaper
Windows\ XP
Zeus.*Webster
Son Not: Bazen çok ufak unutkanlıklar, sorunu yanlış yerde
aramamıza ve epeyce bir zaman kaybetmemize yol açabilirler. Sözün özü,
yukarıdaki değişiklikleri yaptıktan sonra squid ve/veya apache'yi yeniden
başlatmayı unutmamakta yarar var.
Yardımcı Kaynaklar:
Mart 2004
İlker FIÇICILAR
Arama önerileri:
antispam,
antivirus,
apache,
squid,
bogofilter,
pyzor,
razor,
HTTPD_ACCELERATOR,
cache,
proxy,
web,
www,
httpd.conf,
httpd,
acl,
user_agent,
browser,
spam,
block,
spy,
spam abuse,
nosppam,
robots.txt,
robot.txt,
bot,
Kaynak gösterecekler için referans:
"Web Sayfanızı Ziyaret Eden Kötü Web",
İlker Fıçıcılar,
http://www.KlavyeMonitor.com/kotu_robot_engelleme.html
İlgili Benzer Yazılar:
|