UnrealIRCd

UnrealIRCd ulines Bloğu ve Services Bağlantısı Rehberi

· 5 dk okuma

UnrealIRCd ulines Bloğu ve Services Bağlantısı Rehberi
İçindekiler
  1. Services Nasıl Bağlanır?
  2. 1. Services İçin listen Portu
  3. 2. Services İçin link Bloğu
  4. 3. ulines Bloğu
  5. 4. set Bloğunda İlgili Ayarlar
  6. Services Tarafı
  7. Bağlantıyı Doğrulamak
  8. Sık Karşılaşılan Sorunlar
  9. Güvenlik Önerileri
  10. Services Bakımı Sırasında Ne Olur?
  11. Birden Fazla Services Paketi
  12. Kontrol Listesi
  13. Sonuç

UnrealIRCd tek başına nick veya kanal kaydı tutmaz. Kullanıcıların alışkın olduğu NickServ, ChanServ, MemoServ gibi hizmetler, services adı verilen ayrı bir yazılım tarafından sağlanır. Bu yazılım, UnrealIRCd'ye özel yetkili bir sunucu olarak bağlanır. Bu rehberde UnrealIRCd ulines bloğunu ve services bağlantısının sunucu tarafını ele alıyoruz.

Services Nasıl Bağlanır?

Services paketi (Anope veya Atheme) kendini ağa bir IRC sunucusu gibi tanıtır; örneğin services.ornekagi.net adıyla. Bu sunucunun üzerinde NickServ, ChanServ gibi "sanal kullanıcılar" bulunur. Kullanıcı /msg NickServ yazdığında mesaj bu sanal kullanıcıya iletilir.

Bunun çalışabilmesi için UnrealIRCd tarafında üç şey gerekir:

  1. Services'in bağlanacağı bir listen portu,
  2. Services sunucusunu tanımlayan bir link bloğu,
  3. Services sunucusunu özel yetkili olarak işaretleyen bir ulines bloğu.

1. Services İçin listen Portu

Services genellikle aynı makinede çalışır. Bu durumda yalnızca yerel adreste dinlenen bir port en güvenli seçenektir:

listen {
	ip 127.0.0.1;
	port 7000;
	options { serversonly; }
}

Services ayrı bir makinedeyse portu o makinenin IP'sine açın ve mutlaka TLS kullanın. Port ayarları için listen ve TLS portları yazımıza bakın.

link services.ornekagi.net {
	incoming {
		mask 127.0.0.1;
	}
	password "GucluBirLinkParolasi";
	class servers;
}
  • Blok adı, services yapılandırmasındaki sunucu adıyla birebir aynı olmalıdır.
  • incoming maskesi yalnızca services'in bağlanacağı adresi içermelidir.
  • outgoing bloğu gerekmez; services bağlantıyı kendisi başlatır.
  • Parola, services yapılandırmasındaki uplink parolasıyla aynı olmalıdır.

Link bloğunun genel yapısını link bloğu yazımızda anlattık.

3. ulines Bloğu

ulines {
	services.ornekagi.net;
}

Bu blok, services.ornekagi.net sunucusuna özel yetkiler tanır. U-Line olarak işaretlenen sunucu:

  • Kanallarda op olmadan mod değiştirebilir,
  • Kullanıcıların nicklerini değiştirebilir (örneğin kayıtlı bir nick şifresiz kullanıldığında),
  • Kayıtlı kullanıcılara +r modu verebilir,
  • Ağ genelinde yasak (ör. AKILL) uygulayabilir.

Bu yetkiler son derece güçlüdür. Bu yüzden ulines bloğuna yalnızca services sunucusunu ekleyin. Normal bir IRC sunucusunu U-Line yapmak hem güvenlik açığı oluşturur hem de ağda senkronizasyon sorunlarına yol açar.

Ağınızda birden fazla UnrealIRCd sunucusu varsa ulines bloğu her sunucuda aynı olmalıdır. Bir sunucuda U-Line tanımlı olup diğerinde olmayan bir services, o sunucudaki kullanıcılara düzgün hizmet veremez.

4. set Bloğunda İlgili Ayarlar

Services'e ilişkin bazı ayarlar set bloğunda bulunur:

set {
	services-server "services.ornekagi.net";
	sasl-server "services.ornekagi.net";
}
  • services-server: Bazı komutların ve bildirimlerin services sunucusuna yönlendirilmesi için kullanılır.
  • sasl-server: SASL kimlik doğrulama isteklerinin gönderileceği sunucu. UnrealIRCd çoğu durumda SASL sunucusunu otomatik bulabilir; birden fazla services sunucusu olan karmaşık kurulumlarda açıkça belirtmek faydalıdır.

Ayrıca set { options { hide-ulines; } } seçeneği, U-Line sunucularının /LINKS çıktısında normal kullanıcılardan gizlenmesini sağlar. SASL ile ilgili ayrıntılar için services SASL ayarları yazımıza bakın.

Services Tarafı

UnrealIRCd tarafı hazır olduktan sonra services yapılandırmasında aynı bilgileri girmeniz gerekir: bağlanılacak adres ve port, link parolası, services sunucusunun adı ve doğru protokol modülü. Anope için bu işlemleri Anope ve UnrealIRCd bağlantısı, Atheme için Atheme kurulumu yazılarımızda adım adım anlattık.

Bağlantıyı Doğrulamak

Services başlatıldıktan sonra IRC'de şu komutları deneyin:

/links
/msg NickServ HELP
/whois ChanServ
  • /links çıktısında services sunucusunu görmelisiniz (hide-ulines açıksa yalnızca oper'lar görür).
  • NickServ yardım metnini göndermelidir.
  • /whois ChanServ çıktısında ChanServ'ün services sunucusunda olduğu görünmelidir.

Sık Karşılaşılan Sorunlar

Services bağlanmıyor, "Link denied" hatası: Link bloğunun adı services'in kendini tanıttığı adla eşleşmiyor ya da incoming mask yanlış. Services yapılandırmasındaki sunucu adını ve UnrealIRCd'deki link bloğu adını harf harf karşılaştırın.

"Authentication failed": Link parolaları iki tarafta farklı.

Services bağlanıyor ama kanallarda mod değiştiremiyor: Services sunucusu ulines bloğunda yok veya ağdaki bazı sunucularda eksik.

Services bağlanıp hemen kopuyor: Services tarafında yanlış protokol modülü seçilmiş olabilir. UnrealIRCd 6 için services yazılımının belgelerinde önerilen protokol modülünü kullanın.

Kayıtlı kullanıcılara +r verilmiyor: U-Line eksikliği veya services ile UnrealIRCd arasında sürüm uyumsuzluğu olabilir.

Daha fazla sorun ve çözümü için services sık sorunlar yazımıza göz atın.

Güvenlik Önerileri

  • Link parolasını uzun ve rastgele seçin; başka hiçbir yerde kullanmayın.
  • Services aynı makinedeyse portu yalnızca 127.0.0.1'de dinletin.
  • Services farklı makinedeyse TLS kullanın ve incoming maskesini tek bir IP ile sınırlayın.
  • ulines bloğuna services dışında hiçbir sunucu eklemeyin.

Services Bakımı Sırasında Ne Olur?

Services paketini güncellemek veya yeniden başlatmak gerektiğinde services sunucusu kısa bir süreliğine ağdan ayrılır. Bu sırada NickServ ve ChanServ kullanılamaz, kayıtlı nickler korunmaz ve kanal korumaları devre dışı kalır. UnrealIRCd ise çalışmaya devam eder; kullanıcılar sohbet etmeyi sürdürür. Bu kısa pencerede kanal ele geçirme girişimleri olabileceği için services bakımlarını yoğun olmayan saatlerde yapmak ve önceden duyurmak iyi bir uygulamadır.

Services yeniden bağlandığında kanalları ve kullanıcıları tarar, kayıtlı kanallardaki yetkileri kendi veritabanına göre yeniden düzenler. Bu sırada bazı kanallarda kısa süreli mod değişiklikleri görmek normaldir.

Birden Fazla Services Paketi

Bazı ağlar ana services paketine ek olarak istatistik botu veya özel hizmetler sunan başka yazılımları da sunucu olarak bağlar. Bu yazılımların her biri için ayrı bir link bloğu tanımlanır. Yalnızca gerçekten mod değiştirme ve kullanıcı yönetimi yetkisine ihtiyaç duyan hizmetleri ulines bloğuna ekleyin; sadece kanalda istatistik toplayan bir hizmetin U-Line yetkisine ihtiyacı yoktur. Her yeni U-Line, ağınızın güvenlik sınırını genişletir.

Kontrol Listesi

Services bağlantısını kurduktan sonra şu dört maddeyi işaretleyin: link bloğu adı ile services sunucu adı birebir aynı mı, parolalar iki tarafta eşleşiyor mu, ulines bloğu ağdaki her sunucuda var mı ve services portu dışarıya kapalı mı? Bu dört soruya evet diyebiliyorsanız bağlantınız hem çalışır hem de güvenlidir.

Sonuç

ulines bloğu kısa ama ağınızın en güçlü yetkisini tanımlar. Doğru bir link bloğu, yerel adreste dinlenen güvenli bir port ve tüm sunucularda tutarlı bir ulines tanımıyla services paketiniz sorunsuz çalışacak, kullanıcılarınız NickServ ve ChanServ'ün tüm imkânlarından yararlanabilecektir. Bir sonraki adımda ağ genelindeki ayarları yöneten set bloğu yazımıza geçebilirsiniz.

IRC sorunun mu var? Kanalda birlikte çözelim.

💬 Kanala Bağlan

Sıkça Sorulan Sorular

U-Line ne demek?

Services gibi özel yetkili sunucuları ifade eder. U-Line olarak tanımlanan sunucu, normal kullanıcıların yapamayacağı mod değişiklikleri ve işlemler yapabilir.

Normal bir IRC sunucusunu U-Line yapabilir miyim?

Yapmamalısınız. U-Line yalnızca services gibi güvenilir hizmet sunucuları için kullanılmalıdır; aksi hâlde ciddi güvenlik ve senkronizasyon sorunları çıkar.

Services bağlanıyor ama NickServ cevap vermiyor, neden?

Genellikle services sunucusu ulines bloğunda tanımlı değildir veya services tarafındaki yapılandırmada protokol modülü yanlış seçilmiştir.