Bu rehber cloaking'in nasıl çalıştığını, cloak-keys ve cloak modüllerinin doğru kurulumunu, mode +x ile zorlama yöntemlerini, maskelenmiş host üzerinden ban yazmayı ve anahtar sızması durumunda izlenecek yolu ele alıyor.
Cloaking ne yapar, ne yapmaz
Cloaking kapalıyken bir katılım şöyle görünür:
CODE TERMINAL
*** Kullanici ([email protected]) has joined #trsiberCloaking açıkken hostun ilk bölümü maskelenir:
CODE TERMINAL
*** Kullanici ([email protected]) has joined #trsiberMaskeleme yalnızca JOIN'de değil; PART, WHOIS, WHO ve hostun göründüğü her yerde geçerlidir. Gerçek host ve IP yalnızca IRCOp'lar tarafından görülebilir. Aynı gerçek host için her zaman aynı maskelenmiş host üretilir; bu, ban yazmayı mümkün kılan temel özelliktir.
Cloaking IRC dışındaki sızıntıları engellemez. Kanala bağlantı bırakan bir saldırgan, kurban o adrese girdiğinde web sunucusu günlüklerinden gerçek IP'yi öğrenir. DCC dosya transferi, harici görsel önizlemeleri ve bazı istemci eklentileri de aynı riski taşır. Cloaking bir katmandır, tek başına anonimlik değildir.
Maskelenmiş IP biçimleri ve ban mantığı
Kullanıcının hostu çözülemiyorsa yalnızca IP bilinir ve maskelenmiş host farklı bir biçim alır: IPv4 için üç bloklu ve .IP ile biten, IPv6 için iki nokta ile ayrılmış bir yapı. Bu yapı bilinçli olarak tasarlanmıştır, çünkü hangi bölümü joker ile değiştirdiğinize göre ban kapsamı değişir.
| Adres türü | Maskelenmiş ban kalıbı | Gerçek karşılığı | Kapsam |
|---|---|---|---|
| IPv4 | *!*@AAAAAAAA.BBBBBBBB.CCCCCCCC.IP | *!*@198.51.100.150 | Yalnızca tek IP |
| IPv4 | *!*@*.BBBBBBBB.CCCCCCCC.IP | *!*@198.51.100.* | /24 bloğu |
| IPv4 | *!*@*.CCCCCCCC.IP | *!*@198.51.* | /16 bloğu |
| IPv6 | *!*@AAAAAAAA:BBBBBBBB:CCCCCCCC:IP | Tek IPv6 adresi | Yalnızca tek IP |
| IPv6 | *!*@*:BBBBBBBB:CCCCCCCC:IP | /112 bloğu | Dar blok |
| IPv6 | *!*@*:CCCCCCCC:IP | /64 bloğu | Tipik olarak tek abone |
Pratik sonuç: kanal operatörleri maskelenmiş hostu görmelerine rağmen IP bloğu düzeyinde ban yazabilir. IPv6'da doğru hedef neredeyse her zaman /64 bloğudur, çünkü bir aboneye tahsis edilen aralık budur; tek IPv6 adresini banlamak etkisizdir.
Cloak modülünü seçmek
UnrealIRCd 6'da en az bir cloak modülü yüklü olmak zorundadır; hiçbiri yüklenmemişse sunucu "No cloaking module loaded" hatasıyla başlamaz. Modüller çoğu kurulumda conf/modules.default.conf üzerinden zaten yüklenir.
| Modül | Kullanım durumu |
|---|---|
| cloak_sha256 | Yeni kurulan ağlar için önerilen algoritma |
| cloak_md5 | UnrealIRCd 5'ten yükseltilen ağlarda eski maskeleri ve dolayısıyla mevcut banları korumak için |
| cloak_none | Cloaking'i hiç kullanmayan ağlar için (önerilmez) |
CODE TERMINAL
# unrealircd.conf - yeni kurulum
loadmodule "cloak_sha256";
# UnrealIRCd 5'ten yukseltme yapiyor ve eski ban kaliplarini koruyorsaniz
# loadmodule "cloak_md5";Modül değiştirmek, tüm kullanıcıların maskelenmiş hostunu değiştirir. cloak_md5'ten cloak_sha256'ya geçiş, maskelenmiş host üzerine yazılmış her banı geçersiz kılar. Bu geçişi yalnızca ban listesini yeniden üretmeyi planlıyorsanız yapın.
Cloak anahtarlarını üretmek
Maskeleme algoritması üç gizli anahtar kullanır. Anahtarları elle yazmayın; UnrealIRCd'nin üreticisi yeterli entropiyi sağlar.
CODE TERMINAL
# Unix
./unrealircd gencloak
# Windows
unrealircdctl gencloakÇıkan blok doğrudan yapılandırmaya alınır:
CODE TERMINAL
set {
cloak-keys {
"g5Ea8V0j7gb3t7w8QFmFV7Qoacit6T62eOk3jlIn7Qg0YaGgBqj55";
"mVv4uVw3306We2HvgPWTk1q0Nvnrl6uCr6Bor57c01d4eB5s60eQ3";
"HPXLauAcFF058V4Ian7X1hlt0Yj0MGmooNqs5bALL3um5GwD3O6w0M5L";
}
}Kurallar nettir: tam olarak üç anahtar, her biri 50 ile 100 karakter arasında, küçük harf, büyük harf ve rakam karışımı. Anahtarlar ağdaki tüm sunucularda birebir aynı olmak zorundadır.
Ağ genelinde tutarlılık
Hem cloak-keys hem de host önekinin (UnrealIRCd 6'da set::cloak-prefix, eski yapılandırmalarda set::hiddenhost-prefix) tüm sunucularda aynı olması gerekir. Aksi hâlde aynı kullanıcı sunucuya göre farklı maskelenmiş host alır; kanal banları bir sunucuda çalışır, diğerinde çalışmaz ve kullanıcılar banın içinden geçiyormuş gibi görünür.
CODE TERMINAL
set {
cloak-prefix "trs";
}Önek genellikle ağ adını temsil eden üç veya dört harften oluşur ve maskelenmiş hostun başına eklenir: trs-2DCA3201.ornek-isp.net.
Cloaking'i varsayılan ve zorunlu yapmak
Cloaking kullanıcı modu +x ile etkinleşir. Kullanıcıların bunu elle yapmasını beklemek yerine bağlantı anında uygulanmalıdır:
CODE TERMINAL
set {
modes-on-connect "+ixw";
restrict-usermodes "x";
}modes-on-connect ile her bağlanan kullanıcı +x alır. Ancak kullanıcı daha sonra /MODE nick -x diyerek maskeyi kaldırabilir. restrict-usermodes içine x eklenmesi bunu engeller ve maskeyi kalıcı hâle getirir.
UnrealIRCd 6.1.1 ve sonrasında modes-on-connect değeri security-group bazında ezilebilir. Bu, örneğin TLS ile bağlanan ve hesabı doğrulanmış kullanıcılara farklı davranmak isteyen ağlar için kullanışlıdır; ancak cloaking söz konusu olduğunda istisna tanımlamamak en güvenli tercihtir.
Hostname yerine her zaman IP maskesi kullanmak
Varsayılan davranışta (set::cloak-method host) çözülen bir hostname varsa onun bir bölümü maskelenir, geri kalanı görünür kalır. Bu, kullanıcının ISS'sini ve çoğu zaman şehrini açık eder. Daha yüksek gizlilik isteyen ağlar hostname'i hiç kullanmaz:
CODE TERMINAL
set {
cloak-method ip;
}Bu ayarla her kullanıcı 6CAB8F7C.1067B5DC.20B6CFB2.IP biçiminde bir maske alır. ISS bilgisi tamamen kaybolur; buna karşılık operatörler için "hangi sağlayıcıdan geliyor" bilgisi de ortadan kalkar, dolayısıyla kötüye kullanım incelemelerinde IRCOp'ların gerçek hostu görme yetkisine daha çok ihtiyaç duyulur.
Anahtar sızması durumunda ne yapmalı
Cloak anahtarları gizli kalmak zorundadır. Anahtarlar sızarsa saldırgan, maskelenmiş bir hosttan yola çıkıp olasılıkları deneyerek gerçek IP'yi kaba kuvvetle çözebilir. Bu, cloaking'in sağladığı korumanın tamamen kaybedilmesi anlamına gelir.
Anahtar değiştirmenin kaçınılmaz bir maliyeti vardır: yeni anahtarlarla üretilen maskeler eskilerden farklı olur ve maskelenmiş host üzerine yazılmış tüm banlar (kanal banları, GLINE, ZLINE, extended ban kalıpları) geçersiz kalır. Eski anahtarla yazılmış banları yeni anahtara çevirmenin bir yolu yoktur.
- Sızıntının kapsamını belirleyin: anahtarlar hangi yedekte, hangi depoda veya hangi sunucu görüntüsünde yer aldı.
- Yeni anahtarları gencloak ile üretin ve ağdaki tüm sunucularda aynı anda güncelleyin.
- Kritik banları önceden gerçek IP veya aralık tabanlı karşılıklarına (ZLINE, GZLINE, ban ip) çevirin; bu banlar anahtar değişiminden etkilenmez.
- Değişimi düşük trafikli bir zaman diliminde, tüm sunucuları koordineli biçimde yeniden başlatarak uygulayın.
- Değişimden sonra kanal ban listelerini gözden geçirin ve eski maskeleri temizleyin.
Anahtarları nerede tutmamalı
- Genel veya kurum içi git depolarında. Bir kez commit edilen anahtar, geçmişten silinmeden gizli sayılmaz.
- Yapılandırma yedeklerinin şifresiz tutulduğu paylaşımlı dizinlerde.
- Destek taleplerinde veya forum gönderilerinde paylaşılan tam conf dosyalarında. Sorun bildirirken cloak-keys bloğunu mutlaka çıkarın.
- Sunucu barındırıcısına gönderilen hata ayıklama çıktılarında ve core dump dosyalarında.
Yapılandırmayı doğrulamak
- Sunucuyu başlattıktan sonra test istemcisiyle bağlanın ve /WHOIS ile kendi hostunuzun maskelenmiş olduğunu doğrulayın.
- /MODE nick -x deneyin; restrict-usermodes doğru ayarlandıysa işlem reddedilir.
- İkinci bir sunucuyu ağa bağlayın ve aynı kullanıcının her iki sunucuda aynı maskelenmiş hostu aldığını karşılaştırın. Farklıysa cloak-keys veya cloak-prefix eşleşmiyor.
- Maskelenmiş host üzerine bir kanal banı yazın ve kullanıcının gerçekten engellendiğini test edin.
- Cloak anahtarlarını değiştirdiğinizde /REHASH yeterli değildir; değişikliğin tüm sunucularda etkili olması için koordineli yeniden başlatma gerekir.
Sonuç
Cloaking, UnrealIRCd'de en az yapılandırma ile en çok kullanıcı koruması sağlayan özelliktir. Doğru kurulum üç şeye indirgenir: bir cloak modülü seçmek ve bir daha değiştirmemek, gencloak ile üretilmiş üç anahtarı tüm sunucularda aynı tutmak ve +x modunu modes-on-connect ile vererek restrict-usermodes ile kilitlemek.
Gizlilik hassasiyeti yüksek ağlarda cloak-method ip ek bir kazanç sağlar. Buna karşılık en kritik operasyonel disiplin anahtarların gizliliğidir; çünkü anahtar sızıntısının bedeli yalnızca kullanıcı gizliliğinin kaybı değil, tüm ban altyapısının yeniden kurulmasıdır.
TR Siber Ekibi