UnrealIRCd Flood Koruması: anti-flood Ayarları ve Kanal Korumaları
İçindekiler
Flood, IRC'nin en eski sorunlarından biridir: Bir kullanıcı veya bot ağı, kısa sürede çok sayıda mesaj, kanala giriş-çıkış, nick değişikliği veya CTCP isteği göndererek kanalları kullanılamaz hâle getirir. UnrealIRCd flood koruması, bu saldırılara hem sunucu düzeyinde hem de kanal düzeyinde katmanlı bir savunma sunar.
Flood Türleri
| Flood türü | Belirti |
|---|---|
| Mesaj flood'u | Kanala veya kişiye art arda çok sayıda mesaj |
| Nick flood'u | Sürekli nick değiştirerek kanalı bildirimlerle doldurma |
| Join/part flood'u | Kanala sürekli girip çıkma |
| CTCP flood'u | Kullanıcılara çok sayıda CTCP isteği gönderme |
| Away flood'u | Away mesajını sürekli değiştirme |
| Knock / invite flood'u | Kapalı kanallara sürekli knock veya davet gönderme |
| Bağlantı flood'u | Kısa sürede çok sayıda yeni bağlantı |
Bağlantı flood'u ayrı bir konu olduğu için onu connthrottle yazımızda ele aldık. Bu rehber, bağlı kullanıcıların davranışlarına odaklanıyor.
Sunucu Düzeyinde Temel Koruma: Lag Penalty
UnrealIRCd, her kullanıcının gönderdiği komutlar için küçük bir "gecikme cezası" hesaplar. Kullanıcı çok hızlı komut gönderirse sunucu bu komutları sıraya alır ve belirli bir hızdan fazlasını işlemez. Ceza belirli bir sınırı aşarsa kullanıcı "Excess Flood" mesajıyla bağlantıdan düşer. Bu mekanizma ayar gerektirmeden çalışır ve basit flood girişimlerinin çoğunu kendiliğinden durdurur.
anti-flood Bloğu
UnrealIRCd 6'da sunucu düzeyindeki flood sınırları set bloğu içindeki anti-flood bölümünde tanımlanır. En önemli yenilik, kullanıcıları gruplara ayırarak farklı sınırlar uygulayabilmektir:
set {
anti-flood {
everyone {
connect-flood 3:60;
}
unknown-users {
nick-flood 2:60;
join-flood 3:90;
away-flood 4:120;
lag-penalty 1000;
lag-penalty-bytes 90;
}
known-users {
nick-flood 3:60;
join-flood 3:90;
lag-penalty 500;
}
}
}
Biçim sayı:saniye şeklindedir. Örneğin nick-flood 2:60 bir kullanıcının 60 saniyede en fazla iki kez nick değiştirebileceği anlamına gelir.
Bilinen ve Bilinmeyen Kullanıcılar
Bu ayrım UnrealIRCd'nin en akıllı korumalarından biridir. Bilinen kullanıcılar (known-users) genellikle NickServ'e giriş yapmış veya IP adresi ağda uzun süredir görülen, itibar puanı yüksek kullanıcılardır. Bilinmeyen kullanıcılar (unknown-users) ise yeni bağlanan, hakkında bilgi olmayan bağlantılardır.
Saldırı botlarının neredeyse tamamı bilinmeyen kullanıcı grubundadır. Bu gruba sıkı sınırlar, tanınmış kullanıcılara esnek sınırlar uygulamak, gerçek kullanıcılarınızı rahatsız etmeden botları etkisiz bırakır. Grupların nasıl tanımlandığını güvenlik grupları ve reputation yazımızda anlattık.
Kanal Düzeyinde Koruma: +f
Sunucu düzeyindeki ayarlar herkes için geçerlidir; ama bazı kanallar daha sıkı veya daha esnek kurallar isteyebilir. Kanal modu +f, kanal operatörlerine ayrıntılı bir flood kalkanı sunar:
/mode #kanal +f [10j#R10,30m#M10,6n#N15,5c#C15]:15
Bu örneği okumak için parçaları ayıralım: Köşeli parantezin içindeki her öğe bir olay türünü, bir eşiği ve isteğe bağlı bir aksiyonu tanımlar; sondaki :15 ise saniye cinsinden zaman penceresidir. 10j#R10 ifadesi "15 saniyede 10'dan fazla giriş olursa kanala 10 dakikalığına +R modu koy" demektir. 30m#M10 mesajlar için, 6n#N15 nick değişiklikleri için, 5c#C15 CTCP'ler için benzer kurallardır.
| Harf | Olay |
|---|---|
| c | CTCP |
| j | Kanala giriş |
| k | Knock |
| m | Mesaj (kanal geneli) |
| n | Nick değişikliği |
| t | Kullanıcı başına metin (tek kişinin mesajları) |
Belirli bir kullanıcının tek başına flood yapmasını engellemek için t türü kullanılır; eşik aşıldığında o kullanıcı kanaldan atılabilir veya banlanabilir.
Hazır Profiller: +F
+f'in söz dizimi güçlü ama karmaşıktır. UnrealIRCd 6, bunu kolaylaştırmak için hazır flood profilleri sunan +F modunu getirdi:
/mode #kanal +F normal
/mode #kanal +F strict
/mode #kanal +F relaxed
Profiller sunucu yöneticisi tarafından yapılandırmada tanımlanır ve özelleştirilebilir. Çoğu kanal için +F normal iyi bir varsayılandır; sürekli saldırı alan kanallar strict, çok hareketli ve kalabalık kanallar ise relaxed profilini tercih edebilir. Hatta sunucu yöneticisi, hiç +F ayarlanmamış kanallara otomatik olarak bir varsayılan profil uygulanmasını sağlayabilir. Kanal modlarının tamamı için kanal modları yazımıza bakın.
Flood Saldırısı Anında Ne Yapmalı?
Otomatik korumalar çoğu saldırıyı durdurur; ama büyük ve organize bir saldırı sırasında elle müdahale de gerekebilir:
- Kanalı kapatın:
+R(yalnızca kayıtlılar girebilir) veya+M(yalnızca kayıtlılar konuşabilir) ile yeni gelen botların etkisini kesin. - Ortak noktayı bulun: Botların nick kalıplarını, realname'lerini veya IP aralıklarını inceleyin.
- Kaynağı engelleyin: Oper'lar ortak bir IP aralığı tespit ederse G-Line veya GZ-Line ile kaynağı tamamen dışarıda bırakır.
- Spamfilter ekleyin: Botlar aynı mesajı tekrarlıyorsa geçici bir spamfilter kuralı ekleyin.
- Temizlik: Saldırı bittikten sonra geçici modları kaldırın.
Kullanıcı Tarafında Önlemler
Kullanıcılar da kendilerini flood'a karşı koruyabilir. +R kullanıcı modu kayıtsız kişilerden özel mesaj almayı, +T ise CTCP isteklerini engeller. mIRC'nin kendi flood koruma seçenekleri ve ignore listesi de bu konuda yardımcı olur. Ayrıntılar: kullanıcı modları ve ignore komutu.
Doğru Dengeyi Bulmak
Flood korumasının amacı saldırıları durdurmak, gerçek sohbeti boğmamaktır. Çok sıkı ayarlar şu sorunlara yol açabilir:
- Hızlı yazan kullanıcıların "Excess Flood" ile düşmesi,
- Bir etkinlik sırasında kanala aynı anda gelen gerçek kullanıcıların kanalı +R'ye sokması,
- Bağlantı sorunu yaşayan ve sürekli yeniden bağlanan kullanıcıların cezalandırılması.
Ayarları değiştirdikten sonra birkaç gün boyunca log'ları ve kullanıcı şikâyetlerini izleyin. Gerektiğinde eşikleri kademeli olarak ayarlayın.
Ayarları Test Ortamında Denemek
Flood eşiklerini canlı ağda deneme yanılma yoluyla bulmak yerine bir test sunucusunda iki üç istemci penceresiyle sahte bir flood oluşturmak çok daha güvenlidir. Basit bir mIRC timer'ı ile kontrollü sayıda mesaj gönderip korumanın hangi noktada devreye girdiğini gözlemleyebilirsiniz. Böylece gerçek kullanıcılarınızı etkilemeden eşiklerin ne kadar sıkı olduğunu görür ve ayarları güvenle canlı ağa taşırsınız.
Ayarlarınızı belgelendirin ve oper ekibiyle paylaşın; saldırı anında herkesin aynı korumaları bildiği bir ekip çok daha hızlı hareket eder.
Sonuç
UnrealIRCd'nin flood koruması üç katmandan oluşur: her kullanıcı için otomatik gecikme cezası, bilinen ve bilinmeyen kullanıcıları ayıran sunucu düzeyindeki anti-flood ayarları ve kanal operatörlerinin kontrolündeki +f/+F modları. Bu katmanları birlikte kullandığınızda saldırıların büyük kısmı kullanıcılarınız fark etmeden durdurulur. Bağlantı dalgalarına karşı koruma için sıradaki rehberimiz connthrottle.
IRC sorunun mu var? Kanalda birlikte çözelim.
💬 Kanala BağlanSıkça Sorulan Sorular
Flood nedir?
Bir veya birden fazla kullanıcının kısa sürede çok sayıda mesaj, giriş-çıkış, nick değişikliği veya CTCP isteği göndererek kanalı veya kullanıcıları rahatsız etmesidir.
+f ile +F arasındaki fark nedir?
+f ayrıntılı ve elle yazılan bir kural kümesidir. +F ise UnrealIRCd 6 ile gelen hazır profillerdir; normal, strict gibi adlarla kolayca kullanılır.
Flood koruması gerçek kullanıcıları etkiler mi?
Çok sıkı ayarlanırsa etkileyebilir. Bu yüzden yeni kullanıcılar için daha sıkı, tanınmış kullanıcılar için daha esnek sınırlar kullanmak önerilir.


