UnrealIRCd

unrealircd.conf Temel Yapısı: Yapılandırma Dosyasını Anlamak

· 5 dk okuma

unrealircd.conf Temel Yapısı: Yapılandırma Dosyasını Anlamak
İçindekiler
  1. Blok Yapısı
  2. Temel Söz Dizimi Kuralları
  3. Yorum Satırları
  4. include ile Dosyaları Bölmek
  5. Zorunlu ve Önemli Bloklar
  6. Değişiklikleri Uygulamak
  7. Sık Yapılan Hatalar
  8. Düzenli Bir Yapılandırma İçin Öneriler
  9. Ayarları Bulmak ve Belgelendirme
  10. Ortak Ayarları Paylaşmak
  11. Sonuç

UnrealIRCd'nin bütün davranışı tek bir merkezden yönetilir: unrealircd.conf. Sunucunun adı, kimlerin bağlanabileceği, hangi portların dinleneceği, operatörler, diğer sunucularla bağlantılar ve yüzlerce ayar bu dosyada tanımlanır. Dosyanın söz dizimini bir kez kavradığınızda UnrealIRCd'yi yönetmek çok daha kolay hâle gelir.

Bu rehberde dosyanın genel yapısını, blok mantığını ve sık yapılan hataları ele alıyoruz.

Blok Yapısı

unrealircd.conf, bloklardan oluşur. Her blok bir isimle başlar, süslü parantezler arasında ayarları içerir ve bir noktalı virgülle biter:

blokadi {
	ayar deger;
	baska-ayar "tirnakli deger";
}

Bazı bloklar bir isim değeri alır. Örneğin oper bloğunda operatörün adı, link bloğunda bağlanılacak sunucunun adı blok adından hemen sonra yazılır:

oper ahmet {
	class opers;
	...
}

Blokların içinde alt bloklar da bulunabilir. Örneğin listen bloğunun içindeki options alt bloğu:

listen {
	ip *;
	port 6697;
	options { tls; }
}

Temel Söz Dizimi Kuralları

  1. Her ayar noktalı virgülle biter. Unutulan tek bir noktalı virgül, dosyanın geri kalanının yanlış okunmasına yol açabilir.
  2. Boşluk içeren değerler tırnak içinde yazılır. info "Ornek IRC Agi"; gibi.
  3. Süslü parantezler dengeli olmalıdır. Açılan her { için bir } bulunmalıdır.
  4. Büyük-küçük harf: Blok ve ayar adları küçük harfle yazılır.
  5. Süre değerleri: 1d (gün), 2h (saat), 30m (dakika), 10s (saniye) gibi birimlerle yazılabilir.
  6. Boyut değerleri: 100k, 2M gibi kısaltmalar kullanılabilir.

Yorum Satırları

Dosyaya not eklemek veya bir ayarı geçici olarak devre dışı bırakmak için yorum kullanabilirsiniz:

# Bu bir yorum satiridir
// Bu da bir yorum satiridir
/* Bu ise
   birden fazla satirlik bir yorumdur */

İyi bir alışkanlık: Yaptığınız her önemli değişikliğin yanına tarih ve kısa bir açıklama ekleyin. Aylar sonra "Bu ayarı neden değiştirmiştim?" diye düşünmezsiniz.

include ile Dosyaları Bölmek

UnrealIRCd, ayarların bir kısmını ayrı dosyalarda tutmanıza izin verir. Örnek yapılandırmanın en üstünde şuna benzer satırlar görürsünüz:

include "modules.default.conf";
include "help/help.conf";
include "badwords.conf";
include "spamfilter.conf";
include "operclass.default.conf";
include "snomasks.default.conf";
  • modules.default.conf: Varsayılan olarak yüklenen modüllerin listesidir.
  • help.conf: /HELPOP komutunun yardım metinleridir.
  • operclass.default.conf: Hazır oper yetki sınıflarını içerir.
  • snomasks.default.conf: Operatörlere hangi sunucu bildirimlerinin gösterileceğini belirler.

Kendi dosyalarınızı da ekleyebilirsiniz. Örneğin bütün oper bloklarını opers.conf adlı bir dosyada tutup ana dosyaya include "opers.conf"; satırını eklemek, yapılandırmayı düzenli tutar. Bu dosyaların varsayılan sürümlerini doğrudan düzenlemek yerine kendi dosyanızda geçersiz kılmanız, güncellemelerde değişikliklerinizin kaybolmasını önler. Modül dosyası hakkında ayrıntılı bilgiyi modül yönetimi yazımızda bulabilirsiniz.

Zorunlu ve Önemli Bloklar

BlokGöreviRehber
meSunucunun adı, açıklaması ve kimliğime ve admin blokları
adminYönetici iletişim bilgilerime ve admin blokları
classBağlantı sınıfları ve limitlerclass ve allow blokları
allowKimlerin bağlanabileceğiclass ve allow blokları
listenDinlenen IP ve portlarlisten ve TLS portları
operOperatör hesaplarıoper bloğu
linkDiğer sunucularla bağlantılink bloğu
ulinesServices gibi özel sunucularulines ve services
setAğ genelindeki yüzlerce ayarset bloğu
logKayıt tutma ayarlarılog ayarları

me, admin, en az bir class, en az bir allow ve en az bir listen bloğu olmadan sunucu başlamaz. set bloğundaki bazı ayarlar (ağ adı, cloak anahtarları gibi) de zorunludur.

Değişiklikleri Uygulamak

Dosyada bir değişiklik yaptıktan sonra iki yol vardır:

./unrealircd configtest
./unrealircd rehash

configtest dosyayı kontrol eder ama uygulamaz; rehash ise değişiklikleri sunucuyu kapatmadan uygular. IRC içinde oper olarak /REHASH yazmak da aynı işi görür. Rehash sırasında bir hata olursa sunucu eski, çalışan yapılandırmayla devam eder; bu sayede yanlış bir değişiklik ağı çökertmez.

Bazı değişiklikler, örneğin sunucunun sid değeri, yeniden başlatma gerektirebilir. Yeniden başlatma bütün kullanıcıların bağlantısını keser; bu yüzden mümkünse yoğun olmayan saatlerde yapın.

Sık Yapılan Hatalar

  • Eksik noktalı virgül: En yaygın hatadır. Hata mesajındaki satırın bir önceki satırına da bakın.
  • Kapatılmamış süslü parantez: Dosyanın sonunda beklenmedik bir hata alıyorsanız ilk şüpheliniz budur.
  • Tırnak hatası: Kelime işlemciden kopyalanan "akıllı tırnaklar" düz tırnak değildir ve hata verir.
  • Eski sürüm örnekleri: İnternetteki 3.2 dönemi örneklerinde artık geçerli olmayan blok ve ayarlar bulunur.
  • Sekme ve boşluk karışıklığı: Hata vermez ama okunabilirliği düşürür; tutarlı bir girinti kullanın.

Bu hataların ayrıntılı çözümleri ve hata mesajlarının anlamları için yapılandırma hataları yazımıza bakabilirsiniz.

Düzenli Bir Yapılandırma İçin Öneriler

  1. Ana dosyayı kısa tutun; uzun listeleri ayrı include dosyalarına taşıyın.
  2. Her değişiklikten önce dosyanın bir yedeğini alın.
  3. Değişiklikleri bir sürüm kontrol sistemiyle (ör. git) takip edin; ama parolaların ve anahtarların herkese açık bir depoya gitmediğinden emin olun.
  4. Ağda birden fazla sunucu varsa ortak ayarları tek bir dosyada toplayıp her sunucuda aynı dosyayı kullanın.

Ayarları Bulmak ve Belgelendirme

UnrealIRCd yüzlerce ayar içerir ve hepsini ezberlemek mümkün değildir. Bir ayarın ne işe yaradığını öğrenmenin en güvenilir yolu projenin resmî belgeleridir. Belgeler her bloğu, her ayarın varsayılan değerini ve hangi sürümde eklendiğini ayrıntılı biçimde anlatır. İnternette bulduğunuz bir yapılandırma parçasını kopyalamadan önce o ayarın hâlâ geçerli olup olmadığını belgelerden kontrol etmek, saatlerce sürecek hata ayıklamayı önler.

Örnek yapılandırma dosyası da başlı başına bir öğretmendir. conf/examples/example.conf içindeki açıklama satırları, her bloğun neden orada olduğunu kısaca anlatır. Yeni bir kurulum yaparken bu dosyayı satır satır okuyup kendi ağınıza göre düzenlemek, boş bir dosyadan başlamaktan çok daha güvenlidir.

Ortak Ayarları Paylaşmak

Birden fazla sunuculu bir ağda bazı ayarlar bütün sunucularda aynı olmak zorundadır: ağ adı, cloak anahtarları, ulines tanımı ve genellikle spamfilter kuralları. Bu ayarları network.conf gibi tek bir dosyada toplayıp her sunucuda include ile çağırmak, bir sunucuda değişiklik yapıp diğerini unutma riskini ortadan kaldırır. Sunucuya özgü ayarlar (me bloğu, listen blokları, yerel oper'lar) ise her sunucunun kendi dosyasında kalır. UnrealIRCd, uzak bir adresten yapılandırma dosyası çekme özelliği de sunar; büyük ağlarda ortak dosyayı merkezi bir yerden dağıtmak için kullanılabilir.

Sonuç

unrealircd.conf ilk bakışta karmaşık görünse de aslında tutarlı ve mantıklı bir yapıya sahiptir: bloklar, ayarlar ve noktalı virgüller. Bu temel kuralları öğrendikten sonra her yeni blok yalnızca yeni bir ayar listesi demektir. Bir sonraki adım olarak me ve admin blokları ile sunucunuzu kimlik sahibi yapabilirsiniz.

IRC sorunun mu var? Kanalda birlikte çözelim.

💬 Kanala Bağlan

Sıkça Sorulan Sorular

unrealircd.conf dosyası nerede bulunur?

Linux kurulumunda varsayılan olarak ~/unrealircd/conf/unrealircd.conf yolundadır. Örnek dosyalar conf/examples klasöründedir.

Yapılandırmayı değiştirdikten sonra sunucuyu yeniden başlatmam gerekir mi?

Çoğu değişiklik için gerekmez. ./unrealircd rehash veya IRC içinde /REHASH komutu yeterlidir.

Yapılandırma dosyasını birden fazla dosyaya bölebilir miyim?

Evet. include yönergesiyle ayarları ayrı dosyalara bölebilir, örneğin oper bloklarını ayrı bir dosyada tutabilirsiniz.