UnrealIRCd 6, yeni bağlanan bilinmeyen kullanıcılarla uzun süredir ağa gelen veya Services üzerinden tanınan kullanıcıları aynı güven düzeyinde değerlendirmek zorunda değildir. reputation score, security-group, Connthrottle ve set::anti-flood birlikte kullanıldığında drone/bot saldırıları sınırlandırılırken gerçek kullanıcıların IRC ağına erişimi korunabilir.

Bu rehberde reputation skorunun nasıl oluştuğunu, varsayılan known-users ve unknown-users ayrımını, özel trusted-users grubunu, grup bazlı anti-flood limitlerini ve güvenli devreye alma yöntemini inceleyeceğiz.

1. Katmanların görevi

KatmanNe yapar?Ana risk
Reputation scoreIP'nin ağa ne kadar süredir güvenilir biçimde geldiğini ölçerNAT ve paylaşımlı IP yanlış yorumlanabilir
security-groupHesap, IP, certfp, TLS, ASN ve skor gibi ölçütlerle kullanıcıyı sınıflandırırYanlış öncelik geniş muafiyet doğurabilir
ConnthrottleAni bağlantı dalgasında bilinmeyen kullanıcıları sınırlarÇok sert eşik yeni gerçek kullanıcıyı engeller
set::anti-floodNICK, JOIN, INVITE ve konuşma hızını gruba göre belirlerTek tip limit botu kaçırır veya kullanıcıyı cezalandırır
SASL/ServicesHesabı tanınmış kullanıcı sinyaline dönüştürürHesap ele geçirilmesi ayrı izlenmeli


2. Reputation score nasıl çalışır?

Resmî belgelere göre reputation skoru kullanıcıdan çok IP adresinin geçmişini temsil eder. Bağlı bir IP'nin skoru her beş dakikada bir artar; Services hesabıyla doğrulanmış kullanıcı ek puan alır. Skor 10000 ile sınırlandırılır ve uzun süre görülmeyen kayıtlar zamanla silinir.

UnrealIRCd 6.1.2 ve sonrasında, hiçbir kanalda bulunmayan veya varsayılan olarak üçten az üyeli kanallarda bekleyen kullanıcıların skoru artırılmaz. Bu değişiklik, botların sessizce bağlı kalıp zaman içinde güven kazanmasını zorlaştırır.


  • WHOIS Nick ile kullanıcının skoru görülebilir.
  • REPUTATION 198.51.100.10 bir IP'yi sorgular.
  • REPUTATION <10 düşük skorlu çevrimiçi kullanıcıları listeler.
  • REPUTATION #kanal kanal üyelerinin skorlarını incelemeye yardım eder.



Belge IP'leri örnektir. Reputation, kimlik doğrulama veya kötü amaçlı davranış kanıtı değildir; yalnız risk bağlamıdır.

3. Varsayılan security group'lar

Varsayılan known-users grubu, Services üzerinde tanımlanmış veya reputation skoru 25 ve üzeri kullanıcıları kapsar. unknown-users ise known-users ile eşleşmeyen kullanıcılar için özel tamamlayıcı gruptur.

CODE TERMINAL
security-group known-users {
    identified yes;
    webirc no;
    reputation-score 25;
};


Bu blok yapılandırmada bulunmazsa UnrealIRCd varsayılan değerleri kullanır. Eşiği değiştirmeden önce gerçek ağ telemetrisi incelenmeli; özellikle mobil operatör NAT'ı, VPN çıkışları ve webchat proxy'leri aynı IP altında çok sayıda kullanıcı gösterebilir.

4. Security-group önceliği

Bir kullanıcı birden fazla gruba uyabilir. Grup tabanlı set veya anti-flood ayarında ilk eşleşmenin belirlenmesinde priority önemlidir: düşük sayı daha yüksek önceliktir. known-users varsayılan olarak 100 önceliğindedir; özel trusted-users grubunun daha önce eşleşmesi isteniyorsa 50 gibi daha düşük bir değer seçilebilir.

CODE TERMINAL
security-group trusted-users {
    priority 50;
    public no;
    account { TrustedBot; NetworkStaff; };
    certfp {
        "ORNEK_SHA256_SERTIFIKA_PARMAKIZI";
    };
};


Örnekteki parmak izi gerçek değildir. IP yerine Services hesabı ve istemci sertifika parmak izi kullanmak dinamik ağlarda daha kararlı olabilir. Yine de tek bir ortak bot hesabını onlarca otomasyonda kullanmak güvenli değildir.

5. OR mantığını doğru anlamak

Security-group içindeki eşleşme ölçütleri genel olarak OR mantığıyla değerlendirilir. Aynı gruba account ve geniş bir ip ağı eklemek, iki koşul birden gerekliymiş gibi davranmaz; bunlardan biri kullanıcıyı gruba sokabilir. Bu ayrıntı, yanlışlıkla büyük bir ağı trusted-users yapmanın en yaygın nedenlerinden biridir.

Daha karmaşık koşullar için ayrı gruplar veya resmî rule ifadesi kullanılmalı. Değişiklik sonrası configtest ve kontrollü test hesabı olmadan rehash yapılmamalıdır.

6. Anti-flood neden gruba göre ayrılır?

Yeni ve kimliği doğrulanmamış bir kullanıcının kısa sürede çok sayıda nick değiştirmesi veya onlarca kişiye özel mesaj göndermesi daha şüphelidir. Uzun süredir bilinen kullanıcı veya onaylı servis botu ise gerçek işlevi için daha geniş sınıra ihtiyaç duyabilir.

UnrealIRCd varsayılanlarında known-users ve unknown-users için farklı NICK/JOIN ve eşzamanlı konuşma sınırları bulunur. Bu ayrımı kaldırıp herkese çok yüksek limit vermek drone saldırısının etkisini büyütür; herkese çok düşük limit vermek ise ağın kullanılabilirliğini bozar.

CODE TERMINAL
set {
    anti-flood {
        known-users {
            nick-flood 3:60;
            join-flood 3:90;
            max-concurrent-conversations {
                users 10;
                new-user-every 15s;
            };
        };
        unknown-users {
            nick-flood 2:60;
            join-flood 2:90;
            max-concurrent-conversations {
                users 4;
                new-user-every 15s;
            };
        };
    };
};


Bu değerler resmî varsayımları açıklayan örneklerdir. Mevcut UnrealIRCd sürümünüzün belge sayfası ve üretilen örnek yapılandırması esas alınmalıdır.

7. Connthrottle katmanı

Connthrottle, kısa sürede çok sayıda yeni bağlantı geldiğinde bilinmeyen kullanıcıların giriş hızını azaltırken known-users grubunu mümkün olduğunca erişilebilir tutar. Services hesabını SASL ile erken doğrulayan kullanıcılar saldırı anında avantaj kazanır; bu yüzden kullanıcıları kayıtlı hesap ve SASL kullanımına yönlendirmek yalnız hesap güvenliği değil, kullanılabilirlik önlemidir.

Connthrottle bütün bot saldırısını tek başına durdurmaz. Ama dalganın hızını düşürerek operatörün logları incelemesi, DNSBL sonuçlarını görmesi ve gerektiğinde daha dar ağ kuralı uygulaması için zaman kazandırır.

8. WebIRC ve WebSocket kullanıcıları

Webchat mimarisinde UnrealIRCd bütün kullanıcıları proxy IP'sinden görüyorsa reputation ve bağlantı sınırları yanlış çalışabilir. WEBIRC secret, gerçek istemci IP aktarımı ve güvenilir proxy listesi doğru yapılandırılmalıdır. Ancak webirc-users grubunu doğrudan known-users içine almak, yeni web kullanıcılarına gereğinden geniş güven sağlayabilir.

Resmî security-group belgeleri webirc, websocket ve server-port ölçütlerini destekler. Webchat için ayrı bir grup tanımlayıp, yalnız gerekli bağlantı ve mesaj limitlerini vermek daha kontrollüdür.

9. Özel bot grubu

Servis entegrasyonları, köprüler ve izleme botları meşru olarak sık mesaj gönderebilir. Bunlara global anti-flood muafiyeti vermek yerine hesap ve certfp ile dar bir grup oluşturun:

CODE TERMINAL
security-group service-bots {
    priority 40;
    public no;
    account { StatusBot; BridgeBot; };
};

set service-bots {
    max-channels-per-user 25;
};


Hangi anti-flood alanlarının özel grupta desteklendiği kullanılan sürüme göre doğrulanmalıdır. Bot hesabı ele geçirilirse yüksek limit saldırganın etkisini artıracağından, bot davranışı ayrıca log ve alarm kurallarıyla izlenmelidir.

10. Kanal düzeyinde koruma

Security group'lar ~security-group extended ban ile kanal politikasında kullanılabilir. Örneğin bir saldırı anında düşük güven grubunun kanala girişini geçici sınırlamak mümkündür. Fakat kalıcı ve ağ genelinde uygulanmış geniş ban, yeni gerçek kullanıcıları dışlayabilir.

CODE TERMINAL
MODE #kanal +b ~security-group:unknown-users


Bu komut operasyonel etki yaratır; önce küçük bir test kanalında denenmeli, süre ve geri alma planı belirlenmelidir. +f ve +F kanal anti-flood mekanizmaları, selin büyük bölümü unknown-users kaynaklıysa gruba özgü tepki verebilir.

11. Ölçüm ve eşik belirleme

Eşikler tahminle değil veriyle belirlenmeli. En az bir haftalık normal dönem ve mümkünse saldırı dönemindeki dağılım karşılaştırılmalıdır.


  • Dakika başına yeni bağlantı sayısı
  • Known ve unknown kullanıcı oranı
  • SASL doğrulama başarı/başarısızlık oranı
  • Düşük reputation kullanıcıların kanal ve mesaj davranışı
  • NICK, JOIN, INVITE ve özel mesaj limitine takılma sayısı
  • WEBIRC proxy başına kullanıcı yoğunluğu
  • Yanlış pozitif şikâyeti ve destek kaydı sayısı



P95/P99 normal davranış değerleri başlangıç noktası olabilir. Saldırı anındaki ani değişim, tek bir statik limitten daha anlamlıdır.

12. Güvenli devreye alma


  1. Çalışan yapılandırmanın ve reputation verisinin yedeğini alın.
  2. Ağınızdaki known/unknown dağılımını ölçün.
  3. Özel grubu dar hesap veya certfp ile tanımlayın.
  4. Priority sırasını ve OR eşleşme davranışını belgeleyin.
  5. ./unrealircd configtest ile sözdizimini doğrulayın.
  6. Test hesabıyla hangi gruba eşleşildiğini ve limitleri kontrol edin.
  7. Bakım penceresinde rehash uygulayın.
  8. Bağlantı reddi, flood cezası ve kullanıcı şikâyetlerini izleyin.
  9. Yanlış pozitif görülürse muafiyeti genişletmeden önce kök nedeni bulun.



13. Sık yapılan hatalar

Geniş IP allowlist: Bir hosting sağlayıcısının bütün CIDR bloğunu trusted-users yapmak saldırgana kolay yol açar.

Priority yönünü ters anlamak: Küçük sayı daha yüksek önceliktir. Yanlış sıra beklenmedik limit setini seçebilir.

Account ve IP'yi AND sanmak: Aynı bloktaki ölçütlerin OR davranışı geniş eşleşme doğurabilir.

Reputation'ı kimlik kabul etmek: Skor IP geçmişidir; NAT, VPN ve ele geçirilmiş cihaz bağlamı değiştirebilir.

Bütün botları muaf tutmak: Her entegrasyon ayrı hesap/certfp ve ihtiyacı kadar limit almalıdır.

Yalnız engellemeyi ölçmek: Gerçek kullanıcı kaybı ve Services/SASL başarısı da izlenmelidir.

14. Operasyon kontrol listesi


  • UnrealIRCd desteklenen güncel sürümde mi?
  • known-users varsayılanı bilinçli olarak mı değiştirildi?
  • Özel grupların priority ve public değerleri doğru mu?
  • Trusted gruplar dar account/certfp ölçütü kullanıyor mu?
  • WEBIRC gerçek istemci IP'sini güvenli aktarıyor mu?
  • Connthrottle ve anti-flood birlikte test edildi mi?
  • SASL kullanımı teşvik ediliyor mu?
  • Limit değişikliklerinin sahibi ve geri alma planı var mı?
  • Düşük reputation ve flood olayları merkezi loglarda izleniyor mu?



Sonuç

UnrealIRCd 6'da dayanıklı anti-flood mimarisi tek bir sert limitten değil, kullanıcı güvenini bağlama göre sınıflandırmaktan doğar. Reputation score geçmiş sinyali sağlar; security-group bu sinyali hesap, certfp ve bağlantı türüyle birleştirir; Connthrottle saldırı anındaki giriş dalgasını yavaşlatır; grup bazlı anti-flood ise bilinmeyen kullanıcıya daha dar, doğrulanmış kullanıcıya ölçülü alan tanır. En güvenli sonuç, dar muafiyet ve sürekli ölçümle elde edilir.

Resmî kaynaklar

TR Siber Ekibi Yazar · X
Kaynak bağlantısı ← Ana sayfaya dön