İyinet'e Hoşgeldiniz!

Türkiye'nin En Eski Webmaster Forum'una Hemen Kayıt Olun!

Kayıt Ol!

Botçulardan Kurtulmak için dakikada bağlantı sayısı kontrolü

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
Merhaba,

Artık çok sıkıldım ya. Sürekli siteye gelen botlara bağlı IP adreslerini banlamaktan. En sonunucusu bugün geldi. 85.101.85.XX6 ip adresi ile. ( %99 forumdan o yüzden yazayım dedim. )

Bunları sunucu otomatik olarak banlamasını sağlamanın bir yolu varmıdır. Botlar genelde 1 dakika için de 50+ bağlantı açabiliyor. Normal bir kullanıcı da zaten 1 dk içinde bu kadar fazla bağlantı yapmaz.

Bunu sunucunun otomatik olarak banlamasını sağlamak için birşeyler yapabilir miyiz ?


VPS, centos, plesk...

Not: her IP bu şekilde gelmiyor, bu sonuncusu için sadece örnekti.
 

Angelo

0
İyinet Üyesi
Katılım
13 Aralık 2004
Mesajlar
9,603
Reaction score
111
Konum
AZ
PHP:
<?PHP
session_start();
$stamp = date("Y-m-d H:i:s");
$_SESSION['visits'][$stamp]++;

  if ($_SESSION['visits'][$stamp] >= 50) {
  exit;
  }

?>

gibi bir dosya yaratıp en tepeye include edilebilir sitede.
 

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
Angelo bunu php olarak değilde sunucu bazlı yapılamaz mı ?

Sunucu bazlı yaptırmak istememin nedeni bunlar geldiği zaman sunucunun kasılmasını da engellemek te.
 

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
Bunu okuyup denemek isterdim ancak sunucu olarak fazla bilgim yok şimdi tümden sorun yaratmayalım.
 

LaTenT

0
İyinet Üyesi
Katılım
8 Kasım 2005
Mesajlar
717
Reaction score
16
Eğer onların tarayıcı sürümü botlarla tutuşuyorsa 406 hatası verdirebilirsin. Mesela Delphi'de yaptığın botun indy httpclientinde browser yanıtında indy compatable imzası var. Mod_security buna 406 verdirtiyor. Tabi rulelerin varsa. Ancak bunu aşmak zor değil. 50 limit de az olur. Google'ı banlamamak için 100 üzeri limit isabet oluyor. Bunu da csf ile yapabilirsin. Gelen paketler ne olarak görünüyor? SYN_ imzası varsa iptablese netstatla sorgulatıp banlatabilirsin. Yöntemler çok. Ancak botun imzasını, gelen paketlerin cinsini,adedini görmek lazım.
 

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
Syn değiller.
Botlar bilinen yöntemlerle yapılmış scriptler oluyor genelde. İçerik botları kısacası.

Botu gördüğüm zaman zaten sunucundan banlıyorum.
 

LaTenT

0
İyinet Üyesi
Katılım
8 Kasım 2005
Mesajlar
717
Reaction score
16
mod_evasive kurabilirsin o zaman. Ayarı da kısarsın. Fazla sayıda istek yapınca yasak hatası alır.
 

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
o bahsettiğinizi inceledim, işe yarıyor galiba.

Ancak sunucum için hangisini denemem gerektiğini anlayamadım.

CentOS 4.x, plesk var.
Galiba bu apache sürümü ile alakalı. Peki apache sürümünü nasıl öğrenebiliyoruz.
 

yagmayok

1
İyinet Üyesi
Katılım
25 Ocak 2005
Mesajlar
7,131
Reaction score
89
ssh ile öğrendim. Apache/2.0.52 imiş...

Yardımlarınız için teşekkürler.
 

LaTenT

0
İyinet Üyesi
Katılım
8 Kasım 2005
Mesajlar
717
Reaction score
16
Onu dene olmazsa başka yollar da buluruz. Tek site içinse 1. sayfada yazan arkadaşın php kodunu geliştirip kullanmanı tavsiye ederim.

Örn: Bu botlar türk ipler ise

<?php
$ipsine=explode('.',$_SERVER["REMOTE_ADDR"]);
$x=$ipsine(0);
if (($x=='81') or ($x=='85') or ($x=='78') or ($x=='195')) {

//buraya limitleyeceğin kodlar gelecek. 1. sayfada arkadaşın verdiği olabilir veya sleeple uyutup //belli sürelerde bağlantı sayısına bakabilirsin. Üstteki ipleri de çoğaltabilirsin.

}

?>
 

Türkiye’nin ilk webmaster forum sitesi iyinet.com'da forum üyeleri tarafından yapılan tüm paylaşımlardan; Türk Ceza Kanunu’nun 20. Maddesinin, 5651 Sayılı Kanununun 4. maddesinin 2. fıkrasına göre, paylaşım yapan üyeler sorumludur.

Üst