![]() |
|
|||||||
| Webmaster Web Dizayn ve Webmasterlarla ilgili herşey burada... |
![]() |
|
|
LinkBack | Forum Araçları | Görüntüleme Biçimleri |
|
|
#1 (permalink) |
|
Etkili Üye
![]() Giriş Tarihi: 02-10-2005
Konum: Dağılın uleenn
Mesajlar: 250
Rep Gücü: 17
Rep Puanı : 2750
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
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: EmailSiphonMicrosoft\ URL\ ControlNPBotWindows\ XPFrontPageMSIECrawlerHTTrack^Mozilla/4.0$SqwormWebCopierWebReaper 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\ GetRightFlashGetTeleportEmailSiphonMicrosoft\ URL\ ControlNPBotWindows\ XPFrontPageMSIECrawlerHTTrack^Mozilla/4.0$SqwormWebCopierWebReaper 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 onRewriteCond %{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} WebReaperRewriteRule .* - [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/3012.148.196.128/2512.148.209.192/2663.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 iplerdoiptables -A INPUT -i $DEV -s $ipler -p tcp --destination-port 80 -j DROPdone 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.6912.148.196.128-12.148.196.255/255.255.255.25512.148.209.192-12.148.209.255/255.255.255.25563.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: almadenCherryPickerCrescentDA\ DIIbotEmailCollectorEmailSiphonEmailWolfExtractorP roFlashGetFrontPageGetRightHTTrackInternetSeer\.co mLinkWalkerMicrosoft\ URL\ ControlMozilla.*IndyMozilla.*NEWT^Mozilla/4.0$MSIECrawlerNICErsPRONPBotpsbotsitecheck\.inter netseer\.comSqwormTeleportWebBanditwebbanditWebCop ierWebEMailExtracWebReaperWindows\ XPZeus.*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
__________________
|
|
|
|
|
Reklam Vermek için networkreklam@gmail.com Adresine e-mail gönderiniz For Advertising contact networkreklam@gmail.com |