UnrealIRCd

UnrealIRCd Connthrottle: Bağlantı Dalgalarına ve Bot Saldırılarına Karşı Koruma

· 5 dk okuma

UnrealIRCd Connthrottle: Bağlantı Dalgalarına ve Bot Saldırılarına Karşı Koruma
İçindekiler
  1. Connthrottle'ın Mantığı
  2. Örnek Yapılandırma
  3. known-users: Kimler Muaf?
  4. new-users: Yeni Kullanıcı Sınırları
  5. disabled-when: Ne Zaman Devre Dışı?
  6. Saldırı Sırasında Ne Görürsünüz?
  7. Connthrottle Neyi Çözmez?
  8. Diğer Önlemlerle Birlikte Kullanım
  9. Yapılandırmayı Ayarlamak İçin İpuçları
  10. Kullanıcılarınızı SASL'e Yönlendirin
  11. Etkinlik Öncesi Hazırlık
  12. Sonuç

Modern IRC saldırılarının büyük kısmı tek bir kullanıcıdan değil, yüzlerce farklı IP adresinden aynı anda bağlanan bot ağlarından gelir. Bu tür bir saldırıda her bot yalnızca bir kez bağlandığı için IP başına bağlantı sınırları işe yaramaz. UnrealIRCd connthrottle modülü bu sorunu farklı bir açıdan ele alır: Belirli bir süre içinde ağa kabul edilen yeni kullanıcı sayısını sınırlar.

Connthrottle'ın Mantığı

Gerçek hayatta bir IRC ağına her dakika belirli bir sayıda yeni kullanıcı bağlanır. Bu sayı ağın büyüklüğüne göre değişir ama genellikle tahmin edilebilir bir düzeydedir. Bir bot saldırısında ise bu sayı aniden onlarca, yüzlerce katına çıkar. Connthrottle, bu ani artışı fark eder ve normal düzeyin üzerindeki yeni bağlantıları reddeder.

Kritik nokta şudur: Connthrottle tanınmış kullanıcıları bu sınırdan muaf tutar. Ağınızda daha önce görülmüş, itibar puanı yüksek IP adreslerinden gelen kullanıcılar ve SASL ile giriş yapan kayıtlı kullanıcılar saldırı sırasında bile bağlanmaya devam edebilir. Böylece saldırı botları dışarıda kalırken düzenli kullanıcılarınız etkilenmez.

Örnek Yapılandırma

set {
	connthrottle {
		known-users {
			minimum-reputation 24;
			sasl-bypass yes;
			webirc-bypass no;
		}
		new-users {
			local-throttle 20:60;
			global-throttle 30:60;
		}
		disabled-when {
			reputation-gathering 1w;
			start-delay 3m;
		}
	}
}

Bu bloğu parça parça inceleyelim.

known-users: Kimler Muaf?

  • minimum-reputation: Bir IP adresinin "bilinen" sayılması için gereken en düşük itibar puanıdır. UnrealIRCd, bir IP'den bağlanan kullanıcılar ağda vakit geçirdikçe o IP'nin puanını artırır. Ayrıntılar için güvenlik grupları ve reputation yazımıza bakın.
  • sasl-bypass: SASL ile kimlik doğrulaması yapan kullanıcıların, itibar puanından bağımsız olarak sınırdan muaf tutulmasını sağlar. Kayıtlı kullanıcılarınızın saldırı anında bile bağlanabilmesi için bu ayarın açık olması önerilir. SASL kurulumu için IRC SASL bağlantısı rehberimize bakabilirsiniz.
  • webirc-bypass: Web IRC ağ geçitlerinden gelen kullanıcıların muaf tutulup tutulmayacağını belirler. Web istemcinizi kendiniz işletiyorsanız ve güveniyorsanız açabilirsiniz; ancak saldırganların web istemcisini kötüye kullanabileceğini de unutmayın.

new-users: Yeni Kullanıcı Sınırları

  • local-throttle: Bu sunucuya belirli bir sürede kabul edilecek en fazla yeni kullanıcı sayısıdır. 20:60, 60 saniyede en fazla 20 yeni kullanıcı anlamına gelir.
  • global-throttle: Ağın tamamına kabul edilecek en fazla yeni kullanıcı sayısıdır.

Bu değerleri seçmek için ağınızın normal trafiğini bilmeniz gerekir. Küçük bir ağda dakikada 20 yeni kullanıcı, olağan dışı bir artıştır. Büyük bir ağda ise yoğun saatlerde bu sayı normal olabilir. Değerleri çok düşük seçerseniz popüler bir etkinlik sırasında gelen gerçek kullanıcıları da reddedersiniz; çok yüksek seçerseniz saldırıyı durduramazsınız.

disabled-when: Ne Zaman Devre Dışı?

  • reputation-gathering: Ağ yeni kurulduğunda itibar veritabanı boştur ve herkes "bilinmeyen" görünür. Bu süre boyunca connthrottle devre dışı kalır ve itibar verisinin birikmesi beklenir. Bir haftalık süre genellikle yeterlidir.
  • start-delay: Sunucu yeniden başladığında bütün kullanıcılar aynı anda yeniden bağlanır. Bu dalga bir saldırı gibi görünebileceği için başlangıçtan sonraki birkaç dakika koruma devre dışı kalır.

Saldırı Sırasında Ne Görürsünüz?

Connthrottle devreye girdiğinde reddedilen kullanıcılar, ağın şu anda yoğun olduğunu ve daha sonra tekrar denemeleri gerektiğini söyleyen bir mesaj alır. Oper'lar ise düzenli aralıklarla kaç bağlantının reddedildiğini gösteren sunucu bildirimleri görür. Bu bildirimler, bir saldırının başladığını ve ne zaman bittiğini anlamanın en hızlı yoludur.

Connthrottle Neyi Çözmez?

Connthrottle güçlü bir araçtır ama tek başına yeterli değildir:

  • Zaten bağlı olan botlar: Saldırı yavaş yavaş, sınırların altında kalarak yapılırsa botlar ağa sızabilir. Bu durumda flood koruması ve spamfilter devreye girer.
  • Kayıtlı hesaplarla saldırı: Saldırganın elinde çok sayıda kayıtlı hesap varsa sasl-bypass bu hesapları da içeri alır. Hesap kayıt sürecini e-posta doğrulaması gibi yöntemlerle zorlaştırmak bu riski azaltır.
  • Bilinen IP'lerden gelen saldırılar: Ele geçirilmiş, uzun süredir ağda olan bir IP'den gelen saldırı muafiyetten yararlanabilir.

Diğer Önlemlerle Birlikte Kullanım

En etkili savunma katmanlıdır:

  1. maxperip ile aynı IP'den gelen bağlantıları sınırlayın. Bkz. class ve allow blokları.
  2. connthrottle ile ani yeni kullanıcı dalgalarını durdurun.
  3. anti-flood ile bağlı kullanıcıların davranışlarını sınırlayın.
  4. spamfilter ile bilinen spam içeriklerini yakalayın.
  5. G-Line ve GZ-Line ile tespit edilen kaynakları tamamen engelleyin.
  6. Kanal düzeyinde +F ve gerektiğinde +R kullanın.

Yapılandırmayı Ayarlamak İçin İpuçları

Connthrottle ayarlarını ağınıza göre ince ayarlamak için ilk birkaç hafta log'ları izleyin. Hiç saldırı olmadığı hâlde koruma devreye giriyorsa sınırlarınız çok düşüktür. Saldırı sırasında botlar hâlâ içeri giriyorsa sınırları düşürmeyi veya minimum itibar puanını artırmayı düşünün. Büyük bir etkinlik veya duyuru öncesinde, beklenen kullanıcı artışına göre sınırları geçici olarak yükseltmek de iyi bir pratiktir.

Kullanıcılarınızı SASL'e Yönlendirin

Connthrottle'ın en büyük müttefiki SASL'dir. SASL ile bağlanan kayıtlı kullanıcılar saldırı anında bile muaf tutulduğu için kullanıcılarınızı SASL kullanmaya teşvik etmek, olası bir saldırıda topluluğunuzun büyük kısmının hiç etkilenmemesini sağlar. Yardım kanalınızda mIRC, HexChat ve web istemcileri için SASL kurulumunu anlatan kısa bir rehber bulundurun ve yeni kayıt olan kullanıcılara bu rehberi NickServ'ün karşılama mesajıyla gösterin.

Etkinlik Öncesi Hazırlık

Ağınızda büyük bir duyuru, yayın veya topluluk etkinliği planlıyorsanız o gün çok sayıda yeni kullanıcı gelecektir. Bu kullanıcıların connthrottle tarafından saldırı sanılıp reddedilmemesi için etkinlik öncesinde yeni kullanıcı sınırlarını geçici olarak yükseltin, oper ekibini uyarın ve etkinlik bittikten sonra ayarları eski hâline getirin. Web istemcinizi kullanacak ziyaretçiler bekliyorsanız webirc muafiyetini o süre için açmak da düşünülebilir.

Ayarları değiştirdiğinizde ekibinize haber verin ve ilk saatlerde bildirimleri yakından izleyin; böylece beklenmedik bir yan etkiyi hemen fark edersiniz.

Sonuç

Connthrottle, bot ağlarının kalabalık saldırılarına karşı UnrealIRCd'nin en etkili savunmalarından biridir. Tanınmış kullanıcıları muaf tutması sayesinde saldırı anında bile topluluğunuzun normal şekilde bağlanmaya devam etmesini sağlar. İtibar sisteminin nasıl çalıştığını öğrenmek için güvenlik grupları ve reputation yazımıza göz atabilirsiniz.

IRC sorunun mu var? Kanalda birlikte çözelim.

💬 Kanala Bağlan

Sıkça Sorulan Sorular

Connthrottle mevcut kullanıcılarımı etkiler mi?

Hayır. Connthrottle yalnızca yeni bağlantıları değerlendirir ve itibarı yüksek ya da SASL ile giriş yapan kullanıcıları muaf tutabilir.

Connthrottle neden sunucu açılışında devreye girmiyor?

Sunucu yeni başladığında herkes yeniden bağlanacağı için modül belirli bir süre devre dışı kalacak şekilde ayarlanabilir. Bu, meşru kullanıcıların yeniden bağlanmasını engellememek içindir.

Bir saldırı anında ne kadar bağlantının reddedildiğini nasıl görürüm?

Connthrottle oper'lara düzenli bildirimler gönderir ve ilgili istatistikleri stats komutlarıyla gösterebilir.