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

1
Onaylı Üye
Üye
Katılım
24 Ocak 2005
Mesajlar
7,131
Tepki puanı
86
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.
 
0
Onaylı Üye
Üye
Katılım
12 Aralık 2004
Mesajlar
9,603
Tepki puanı
106
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.
 
1
Onaylı Üye
Üye
Katılım
24 Ocak 2005
Mesajlar
7,131
Tepki puanı
86
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.
 
1
Onaylı Üye
Üye
Katılım
24 Ocak 2005
Mesajlar
7,131
Tepki puanı
86
Bunu okuyup denemek isterdim ancak sunucu olarak fazla bilgim yok şimdi tümden sorun yaratmayalım.
 
0
Onaylı Üye
Üye
Katılım
8 Kasım 2005
Mesajlar
717
Tepki puanı
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.
 
1
Onaylı Üye
Üye
Katılım
24 Ocak 2005
Mesajlar
7,131
Tepki puanı
86
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.
 
0
Onaylı Üye
Üye
Katılım
8 Kasım 2005
Mesajlar
717
Tepki puanı
16
mod_evasive kurabilirsin o zaman. Ayarı da kısarsın. Fazla sayıda istek yapınca yasak hatası alır.
 
1
Onaylı Üye
Üye
Katılım
24 Ocak 2005
Mesajlar
7,131
Tepki puanı
86
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.
 
1
Onaylı Üye
Üye
Katılım
24 Ocak 2005
Mesajlar
7,131
Tepki puanı
86
ssh ile öğrendim. Apache/2.0.52 imiş...

Yardımlarınız için teşekkürler.
 
0
Onaylı Üye
Üye
Katılım
8 Kasım 2005
Mesajlar
717
Tepki puanı
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.

}

?>
 
Geri
Üst