IRC ağlarında her kullanıcının ana bilgisayar adı (host) WHOIS ve kanal katılım mesajlarında diğer kullanıcılara görünür. UnrealIRCd 6, kullanıcıların gerçek IP adreslerini otomatik olarak gizlemek için cloaking (kullanıcı modu +x) sunar. Bunun yanında belirli kişilere okunabilir, kişiye özel bir sanal host (vhost) atamak için iki mekanizma vardır: vhost { } bloğu ve oper { } bloğundaki vhost parametresi. Bu rehberde her ikisini resmi UnrealIRCd belgelerine dayanarak, güvenli parola ve sertifika kullanımıyla birlikte ele alıyoruz.

vhost bloğunun sözdizimi

CODE TERMINAL
vhost {
    auto-login ;
    mask { ... }
    login ;
    password ;
    vhost ;
    swhois "";
}


Parametreler:


  • auto-login: yes olduğunda vhost, kullanıcı bağlandığı anda otomatik uygulanır. UnrealIRCd 6.1.8 ve sonrasında kullanılabilir; varsayılan değer no.
  • mask: Bloğu kimlerin kullanabileceğini belirleyen mask öğesi. Host maskesi, identified yes gibi hesap durumu ya da certfp olabilir.
  • login / password: auto-login kapalıyken kullanıcının /VHOST <login> <parola> komutuyla vhost'u etkinleştirmesi için gereken bilgiler. Parola argon2 gibi özet (hash) türlerini destekler.
  • vhost: Atanacak sanal host. host.com ya da [email protected] biçiminde yazılabilir; $account gibi standart değişkenler desteklenir.
  • swhois: /WHOIS çıktısına eklenecek isteğe bağlı ek satırlar.



Bloklar yapılandırmada yukarıdan aşağıya işlenir. auto-login bloklarında ilk eşleşen blok kazanır ve bu bloklar yalnızca bağlantı anında çalışır. Bu nedenle özel tanımları (belirli bir sertifika gibi) genel tanımların (identified yes gibi) üstüne yazın.

Örnek 1: /VHOST komutuyla klasik vhost

CODE TERMINAL
vhost {
    mask { *.isp.com; }
    login mynick;
    password "$argon2id$v=19$m=8192,t=3,p=2$...";
    vhost my.own.personal.vhost.com;
    swhois "Destek Ekibi";
}


*.isp.com alanından bağlanan kullanıcı /VHOST mynick <parola> yazdığında my.own.personal.vhost.com sanal hostunu alır. mask'i mümkün olduğunca dar tutun; *@* gibi herkese açık bir maske, parolası sızan bir vhost'un her yerden kullanılabilmesi anlamına gelir.

Parolayı düz metin tutmayın

Yapılandırma dosyasındaki düz metin parolalar, dosyanın yedeklerde veya uzak include sunucularında açığa çıkmasıyla birlikte sızar. UnrealIRCd belgeleri parolalar için argon2 özetini önerir. Özeti şu yollardan biriyle üretebilirsiniz:

CODE TERMINAL
# Linux/Unix sunucuda
./unrealircd mkpasswd argon2

# IRC üzerinde (IRCOp olarak)
/MKPASSWD argon2 parolaniz

# Windows'ta
unrealircdctl mkpasswd argon2 parolaniz


Çıktı $argon2id$ ile başlayan uzun bir dizedir; bunu password satırına çift tırnak içinde yazarsınız.

Örnek 2: Kayıtlı kullanıcılara otomatik vhost

Services (ör. Anope) kullanan ağlarda, hesabına giriş yapmış herkese hesap adını içeren bir vhost vermek yaygın bir uygulamadır:

CODE TERMINAL
vhost {
    auto-login yes;
    mask { identified yes; }
    vhost $account.users.example.net;
}


Hesabı ayse olan kullanıcı, ayse.users.example.net sanal hostunu alır. Bloğun bağlantı anında çalıştığını unutmayın: kullanıcının bu sırada tanınmış (identified) olması, pratikte SASL ile giriş yapması gerekir. Bağlandıktan sonra NickServ'e IDENTIFY komutu gönderen kullanıcılar bu bloktan yararlanamaz. Bu yüzden auto-login vhost'larını, SASL kullanımını teşvik eden bir yapılandırmayla birlikte düşünün.

Örnek 3: TLS istemci sertifikasıyla vhost

CODE TERMINAL
vhost {
    auto-login yes;
    mask {
        certfp "e74d46f19ff468f5e8e349cc285df96585ba4f16b64902e334e6e76afe76a798";
    }
    vhost this.user.rocks;
}


Burada vhost, belirli bir TLS istemci sertifikasının parmak iziyle (certfp) bağlanan kullanıcıya otomatik verilir. Paylaşılan bir parola olmadığı için ele geçirilmesi en zor yöntemdir. Kullanıcının sertifika parmak izini, kendisi TLS ile bağlıyken WHOIS çıktısından öğrenebilirsiniz.

Operatörlere vhost: oper bloğu

IRCOp'lara sanal host atamak için ayrı bir vhost bloğu gerekmez. oper bloğundaki vhost parametresi, belgelerdeki tanımıyla başarılı bir /OPER işleminden sonra ayarlanacak ana bilgisayar adını belirler:

CODE TERMINAL
oper bobsmith {
    class opers;
    mask { smithco.com; *.somedialupisp.com; }
    password "e74d46f19ff468f5e8e349cc285df96585ba4f16b64902e334e6e76afe76a798" { certfp; };
    operclass netadmin;
    vhost staff.example.net;
    swhois "a Network Administrator";
}


Bu örnek, belgelerdeki temel oper bloğuna vhost satırı eklenerek ve parola yerine certfp kimlik doğrulaması kullanılarak oluşturuldu. Operatör /OPER bobsmith komutunu sertifikasıyla bağlıyken çalıştırdığında hostu staff.example.net olur ve WHOIS çıktısında swhois satırı görünür.

Operatörler, ağda en çok hedef alınan hesaplardır. Gerçek IP'si öğrenilen bir operatör, doğrudan DDoS saldırısına veya kişisel bilgilerinin ifşa edilmesine (doxxing) maruz kalabilir. Oper vhost'u bu riski azaltır; ancak IP'nin oper olmadan önceki anlarda da görünmemesi için cloaking'in (+x) varsayılan olarak etkin olduğundan emin olun.

Uygulama ve doğrulama

Yapılandırmayı değiştirdikten sonra önce sözdizimini denetleyin, ardından sunucuyu yeniden başlatmadan yükleyin:

CODE TERMINAL
./unrealircd configtest
./unrealircd rehash


Test için bir istemciyle bağlanıp kendi WHOIS çıktınıza bakın. auto-login blokları yalnızca bağlantı anında değerlendirildiğinden, değişikliği görmek için yeniden bağlanmanız gerekir.

Güvenlik kontrol listesi


  • vhost ve oper parolalarını argon2 özetiyle saklayın; mümkünse certfp kullanın.
  • /VHOST bloklarında mask'i dar tutun, *@* kullanmaktan kaçının.
  • Özel auto-login bloklarını genel blokların üstüne yazın; ilk eşleşen kazanır.
  • identified yes tabanlı otomatik vhost için SASL'ı yaygınlaştırın.
  • Cloaking'i açık tutun; vhost onun yerine değil, üstüne eklenen bir kolaylıktır.
  • Yapılandırma dosyalarının ve yedeklerin erişim izinlerini kısıtlayın.



Kaynaklar

  • UnrealIRCd, Vhost block: https://www.unrealircd.org/docs/Vhost_block
  • UnrealIRCd, Oper block: https://www.unrealircd.org/docs/Oper_block
  • UnrealIRCd, Authentication types: https://www.unrealircd.org/docs/Authentication_types

TR Siber Ekibi Yazar · TRSiber
← Ana sayfaya dön