2008-09-22 20 views
6

Herkesin bildiği gibi IP kara listesinin çalışmadığını görüyoruz - spam gönderenler bir vekil aracılığıyla gelebilir, ancak, yasal kullanıcılar etkilenebilir ... Şöyle ki, kara listeleme etkin bir şekilde benim gibi görünüyor Uygulamanın geribildirimi ve kullanıcı davranışına dayanarak, IP'lerin gerçek listesinin dinamik olarak belirlendiği göz önüne alındığında, kalıcı bir saldırganın durdurulması için mekanizma. ÖrneğinDinamik IP tabanlı kara listeye alma

: - Sitenize bir kötü yazılmış bot sorunları çok garip HTTP isteklerini - - Birisi giriş ekranı kaba kuvvet çalışırken bir komut dosyası kiddie uygulamanızda açıklarını aramak için bir tarayıcı kullanan

aşağıdaki mekanizması çalışacak merak ederek ve eğer öyleyse, bunu herhangi bir alet varsa biliyor musunuz ediyorum: bir web uygulamasında

  • , geliştirici bir "suç" bildirmek için bir kanca vardır . Bir suç, küçük (geçersiz şifre) olabilir ve kara listeye alınmak için düzinelerce bu türden suçlar alırdı; Ya da büyük olabilir ve 24 saatlik bir süre içinde bu tür suçların bir çift sizi dışarı atıyor.
  • Her sayfa yüklenmeden önce, web sunucusu düzeyinde bir bloğun bir kısmı açılır ve kullanıcının bir "kötü" IP'den gelip gelmediğini belirler.
  • Yerleşik bir "bağışlama" mekanizması var: bir süre sonra artık IP'ye yönelik suç sayılmaz.

Teşekkürler!

Ekstra not: çözüm PHP çalıştı eğer müthiş olurdu ama

cevap

2

a * nix makineniz var mı? bu tür şeylerin iptables

düzenlemek gibi bir şey kullanarak, muhtemelen işletim sistemi seviyesinde bırakılması daha iyidir: yorumuna cevaben

, evet (bir çeşit). Ancak, fikir, iptables'lerin bağımsız olarak çalışabilmeleridir. Belirli bir eşiği kısma ayarlayabilirsiniz (örneğin, x isteklerini/dakikasını aşan 80 numaralı bağlantı noktası üzerindeki blok istekleri) ve bunların hepsi şeffaf olarak işlenir (yani, uygulamanızın gerçekten bu konuda bir şey bilmesine gerek yoktur. dinamik engelleme gerçekleşir). Kutunun tam kontrolüne sahipseniz ve güvenlik duvarınızın daraltılmasına izin vermeyi tercih ederseniz iptables yöntemini öneririm (avantajlar, bu mantığı web uygulamanıza yüklemenize gerek yoktur, ve kaydedebilirsiniz) istekleri, web sunucunuza isabet etmeden önce istekleri düşürülür)

Aksi takdirde, engellemenin büyük bir bileşen olmayacağını düşünüyorsanız (veya uygulamanız taşınabilir ve iptables'e erişilemez), daha fazla Bu mantığı uygulamanıza yerleştirmek için

+0

Bir web uygulamasından iptables ile iletişim kurmanın bir yolu var mı? "IPtables, sanırım X adresinde bir davetsiz misafir, bence gelecekte kötü davranıp davranmadıklarını görmelerini istiyorum". Linux'ta gerçekten PHP üzerinde çalışıyorum. –

0

ben olması gerektiğini düşünüyorum herhangi bir dil/platform için, genel olarak yaklaşımı hakkında düşüncelerinizi duymak isteriz kullanıcı adı artı IP bloğu bir arada. Sadece IP değil.

+0

Bir kullanıcının henüz giriş yapmadığı bir duruma atıfta bulunuyor ya da hiç. Giriş ekranından açıkça bahseder ... Kullanıcı giriş yapmış olsaydı, önemsiz olurdu. – AviD

5

fail2ban'a bir göz atın. IP tablolarını, hatalı davranış kalıpları için günlük dosyalarının kuyruğundan kaldırmanızı sağlayan bir python çerçevesi.

0

Özel kilitleme koduna bakıyorsunuz. Açık kaynak dünyasında, bu tür kodların çeşitli tatlarını içeren uygulamalar vardır. Gereksinimleriniz oldukça önemsiz olsa da, bunlardan bazılarına bakmalısınız, bu yüzden bir IP/kullanıcı adı açılanını işaretleyin ve bir IP'yi x zamanının bloke edilmesi için kullanın.(Not, kullanıcı değil IP'yi engelleyin dedim. Kullanıcı geçerli bir IP/kullanıcı adı/pw combo aracılığıyla çevrimiçi olmaya çalışabilir.)

Aslında, kullanıcı oturum açma işlemlerinin izlerini tutabilirsiniz ve günlüğe kaydederken bilinmeyen bir IP adresinden, 3 kullanıcı adında bir kötü kullanıcı adı/pw combo ile, bu kullanıcı adı için çok uzun bir süredir IP'yi kilitleyin. (Bir çok ISS'nin IP'leri paylaştığını unutmayın, bu nedenle ...)

Ayrıca, kimlik doğrulamasında bir gecikme de yerleştirmek isteyebilirsiniz, böylece bir IP, her bir 'y' saniyede bir kereden fazla giriş yapamaz. .

+0

Son noktanızda: Kimlik doğrulamadaki gecikme en sevdiğim tekniklerden biridir. Uygulama, kimlik bilgilerinin geçersiz olduğunu ancak yanıtın kullanıcıya gösterilmesinden önce, 1 saniye süreyle uyuduğunu belirledikten sonra. Bu şekilde, meşru kullanıcılar yavaşlamamaktadır, ancak bot izlerini çekmektedir. –

0

Web sunucusuna karşı isabet izlerini takip eden ve belirli suçlar için değişken zaman periyotları için işletim sistemi/güvenlik duvarı düzeyindeki IP adreslerini dinamik olarak yasaklayan bir istemci için bir sistem geliştirdim, evet, bu kesinlikle mümkün . Owen'ın dediği gibi, güvenlik duvarı kuralları web sunucusundan çok daha iyi bir yer. (Ne yazık ki, müşteri bu kod üzerinde sıkı bir telif hakkı tutmayı seçti, bu yüzden paylaşmaya özgürlüğüm yok.)

Genellikle PHP'den ziyade Perl'de çalışıyorum, ancak bir komut satırınız olduğu sürece Güvenlik duvarı kuralları motorunuza (örneğin,/sbin/iptables gibi) bir arabirim kurarak, sistem komutlarını yürütme yeteneğine sahip herhangi bir dilden oldukça kolay bir şekilde bunu yapabilmeniz gerekir.

0

err sisteminin bu tür i benimkini sana kolayca yeterli verebilir, kolay ve yaygındır

onun basit ve kısaca

yazıldığı gibi komut http://www.alandoherty.net/info/webservers/ açıkladı hiçbir commentry anda eklenen olarak {indirilebilir arn't } ama yukarıdaki siteden bir e-posta bırakın, ve ben size kod atmak ve hata ayıklama/sunucuya taloring ile yardım memnuniyetle

İlgili konular