UnrealIRCd - 3.2 - Resmi Döküman

English | German | Spanish | Hungarian | French | Greek | Dutch | Russian | Turkish
UnrealIRCd
http://www.unrealircd.com/
Versiyon: 3.2.5
En Son Güncelleme: 2006-06-15
Head Coders: Stskeeps / codemastr / Syzop / Luke
Katkıda Bulunanlar: McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk
Dökümantasyon: CKnight^ / Syzop
Çeviri: oepidus (tt`), Strathmore (Timaeus) - irc.trsohbet.com

Bu dökümanı görüntüleyebilmeniz için aşağıda listelenmiş olan tarayıcılardan birine sahip olmanız gerekir. Güncellenmiş dökümanlara http://www.vulnscan.org/UnrealIRCd/unreal32docs.tk.html adresinden ulaşabilirsiniz ve ayrıca FAQ (Sıkça Sorulan Sorular) bölümüne de http://www.vulnscan.org/UnrealIRCd/faq/ adresinden ulaşabilirsiniz.

Uyumlu Tarayıcılar:

- Opera 6.02
- Microsoft Internet Explorer 6.X / 5.5
- Netscape Navigator 6.X
- Mozilla 1.2.X
- Lynx (to a point)

DİZİN / İÇERİK TABLOSU
1. Önsöz & Notlar
---1.1. 3.1.x -> 3.2 yükseltme / uyum üzerine notlar
---1.2. 3.2 versiyonları arasında yükseltme üzerine notlar
2. Kurulum
3. Özellikler
-- 3.1. Gizleme (Cloaking)
-- 3.2. Moduller
-- 3.3. Snomasklar
-- 3.4. Aliases
-- 3.5. Helpop
-- 3.6. Oper erişim seviyeleri
-- 3.7. Oper komutları
-- 3.8. SSL
-- 3.9. IPv6
-- 3.10. Zip links
-- 3.11. Dinamik DNS/IP bağlantı desteği
-- 3.12. Anti-flood özellikleri
-- 3.13. Ban tipleri
-- 3.14. Spamfilter
-- 3.15. CIDR
-- 3.16. Nick Karakter Grupları
-- 3.17. CGI:IRC Desteği
-- 3.18. Zaman Senkronizasyonu
-- 3.19. Diğer özellikler
4. unrealircd.conf dosyasının konfigürasyonu
---4.1. Açıklamalı konfigürasyon dosyası
---4.2. Me Bloğu -=- (M:Line)
---4.3. Admin Bloğu -=- (A:Line)
---4.4. Class Bloğu -=- (Y:Line)
---4.5. Allow Bloğu -=- (I:Line)
---4.6. Listen Bloğu -=- (P:Line)
---4.7. Oper Bloğu -=- (O:Line)
---4.8. DRpass Bloğu -=-(X:Line)
---4.9. Include Yönergesi
---4.10. Loadmodule Yönergesi
---4.11. Log Bloğu
---4.12. TLD Bloğu -=- (T:Line)
---4.13. Ban Nick Bloğu -=- (Q:Line)
---4.14. Ban User Bloğu -=- (K:Line)
---4.15. Ban IP Bloğu -=- (Z:Line)
---4.16. Ban Server Bloğu -=-(q:Line)
---4.17. Ban Realname Bloğu -=- (n:Line)
---4.18. Ban Version Bloğu
---4.19. Ban Exception Bloğu -=- (E:Line)
---4.20. TKL Exception Bloğu
---4.21. Throttle Exception Bloğu
---4.22. Deny DCC Bloğu -=- (dccdeny.conf)
---4.23. Deny Version Bloğu -=- (V:Line)
---4.24. Deny Link Bloğu -=- (D:Line / d:Line)
---4.25. Deny Channel Bloğu -=- (chrestrict.conf)
---4.26. Allow Channel Bloğu
---4.27. Allow DCC Bloğu
---4.28. Vhost Bloğu -=- (vhost.conf)
---4.29. Badword Bloğu -=- (badwords.conf)
---4.30. Uline Bloğu -=- (U:Line)
---4.31. Link Bloğu -=- (C/N/H:Lines)
---4.32. Alias Bloğu
---4.33. Help Bloğu
---4.34. Official Channels Bloğu
---4.35. Spamfilter Bloğu
---4.36. Cgiirc Bloğu
---4.37. Set Bloğu -=- (networks/unrealircd.conf)
5. Ek Dosyalar
6. Kullanıcı & Kanal Modları
7. Kullanıcı & Oper Komutları
8. Güvenlik için tavsiyeler/kontrol listesi
---8.1. Şifreler
---8.2. Ircd ile alakalı olmayan zayıflıklar
---8.3. Konfigürasyon dosyası ve yetkilendirme
---8.4. Kullanıcı-kaynaklı problemler
---8.5. SSL/SSH & sniffing
---8.6. Denial of Service attacks (DoS) [veya: hubumu nasıl koruyabilirim?]
---8.7. Bilgilendirme
---8.8. Exploitlere karşı korunma
---8.9. Özet
9. Sıkça Sorulan Sorular (FAQ)
A. Düzenli İfadeler
---A.1. Değişmezler
---A.2. Nokta İşleci
---A.3. Yineleme İşleçleri
---A.4. Parantez İfadeleri
---A.5. Demirleme İşleçleri
---A.6. Veya İşleci
---A.7. Gruplama İşleçleri (Alt ifadeler)
---A.8. Grup Adresleme İşleci
---A.9. Büyük/küçük harf duyarlılığı

1.0 – Önsöz & Notlar

Bu döküman UnrealIRCd ile özel kullanım için yazılmıştır. Bu dökümanın, UnrealIRCd Geliştirme Grubunun yazılı izni olmadan, başka bir yazılım paketi ile kullanımı veya başka bir yazılım paketi ile dağıtılması kesinlikle yasaktır. Bu dökümanı, UnrealIRCd ile kullanılması koşulu ile ve dökümanın üzerinde hiçbir şekilde değişiklik yapmamak koşulu ile, istediğiniz miktarda kopyasını çıkarabilir / bastırabilir / çoğaltabilir / yayınlayabilirsiniz. - Copyright (telif Hakkı) UnrealIRCd Geliştirme Grubu 2002-2006

Yardım istemeden önce lütfen bu klavuzu okuyun, ayrıca FAQ (Sıkça Sorulan Sorular) kısmına GERÇEKTEN göz atın ki bu kısımda sorularınızın/sorunlarınızın yaklaşık olarak %80 'i cevaplanmıştır/çözülmüştür. Eğer hala yardıma ihtiyacınız varsa, irc.ircsystem.net (port 6667) sunucusunda #unreal-support kanalından yardım için istekte bulunabilirsiniz. (not: belgeleri ve faq kısmını okumuş olduğunuzu kabul ediyoruz ve UnrealIRCd hakkında yardım edebiliriz, servisler hakkında değil!). Eğer bir açık varsa (bug, hata) bunu http://bugs.unrealircd.org/ adresine bildirin.

1.1 – 3.1.x -> 3.2 uyum / yükseltme üzerine notlar

Unreal3.1.x den Unreal3.2 ye yükseltme yaptığınızda var olan konfigürasyon dosyasının değişmiş olduğuna dair uyarılacaksınız, başlangıçta bu değişimi yapmak size zor gözükebilir, fakat değişim olduğunda bunu daha iyi bulacaksınız!

Aynı zamanda 3.1.x’de olan özellikleri bilmenize rağmen özellikler hakkında ki bölüm 3’ü okumayı unutmayın, çünkü birkaç yeni özellik mutlaka vardır.

3.1.x ile 3.2 uyum/link açısından uygun değildir, fakat eğer gerçekten bunu yapmak istiyorsanız, en düşük 3.1.4’e ihtiyacanız vardır, fakat 3.1.5.1 şiddetle önerilir.

1.2 – 3.2 versiyonları arasında yükseltme üzerine notlar

Yükseltme için önerilen yol:
Linux:

- Eski UnrealIRCd klasörünü yeniden adlandırın (aksi takdirde bir sonraki adımda bu klasörün üzerine yazım gerçekleşecektir)
- Yeni UnrealIRCd versiyonunu extract edin ve ./Config ve make komutlarını kullanın
- Eski konfigürasyon dosyalarınızı (unrealircd.conf, motd, rules, server.* [SSL certs], network dosyası,vs) yeni klasöre kopyalayın.

Windows:

- Bütün konfigürasyon dosyalarınızı geçici bir konuma kopyalayın.
- Kurulu olan eski Unreal versiyonu için uninstaller’ı çalıştırın.
- Yeni Unreal versiyonu için installer’ı çalıştırın.
- Eski konfigürasyon dosyalarınızı yeni klasöre kopyalayın.

Aynı zamanda lütfen .RELEASE.NOTES dosyasını nelerin değiştiğini görmek için kontrol edin. Eğer versiyonlar arasında ki değişim için bir hata (bug) bildirecekseniz; bunun bir bug olduğunu bildirmeden önce .RELEASE.NOTES kısmını okuduğunuza emin olun.

2.0 - Kurulum

Test edilmiş & Desteklenen İşletim Sistemleri:

- *NIX versiyonları:
  - Linux (2.2.*, 2.4.*, 2.6.*)
  - FreeBSD (4.*, 5.*)
  - NetBSD (2.*)
  - OpenBSD (3.7, 3.8)
  - Solaris (9, 10)
- Windows versiyonları:
  - Windows 2000 (Pro, Server, Advanced Server)
  - Windows XP (Home, Pro)
  - Windows 2003
- Test Edilmiş Mimariler:
  - ia32 (i386, i486, i586, i686)
  - ia64
  - amd64
  - alpha

Eğer sizin kurduğunuz Unreal3.2 diğer bir işletim sistemi ile düzgün olarak çalışıyorsa lütfen ayrıntıları aşağıdaki adrese bildirin: coders@lists.unrealircd.org

Kurulum Yönergeleri
Linux:

1. gunzip -d Unreal3.2.X.tar.gz
2. tar xvf Unreal3.2.X.tar
3. cd Unreal3.2
4. ./Config
5. En iyi bilginizle bu soruları cevaplayın, genellikle; eğer emin değilseniz, başlangış ayarları iyi çalışacaktır!
6. make
7. Şimdi unrealircd.conf dosyasını ve diğer konfigürasyon dosyalarını oluşturun, Bölüm 4’e bakın.

Windows:

1. Unreal installer ‘ı çalıştırın
2. unrealircd.conf ve diğer konfigürasyon dosyalarınızı oluşturun, Bölüm 4’e bakın.

3.0 - Özellikler

Bu bölümde bazı ana/kullanışlı özellikler anlatılmıştır. Bu bölüm için genel bir bilgi gerekmektedir ve bazen de konfigürasyon dosyalarından bahsedilecektir (hakkında henüz bir fikir sahibi olmadığınız şeyler).

Bu bölümü atlayabilirsiniz, bununla birlikte bu bölümü kurulumdan önce ve sonra okumanız tavsiye edilir. Aksi takdirde 'cloaking', 'snomasks' vs. gibi özelliklerin genel mantığını anlayamayacaksınız.

3.1 - Gizleme (Cloaking)

Gizleme(cloaking) kullanıcıların gerçek hostname’lerinin gizlenmesi için bir yoldur, örneğin eğer gerçek hostname’iniz d5142341.cable.wanadoo.nl, ise, bu (giriş, çıkış ve whois ‘de, vs) rox-2DCA3201.cable.wanadoo.nl olarak görülecektir. Bu özellik kullanıcıların, gerçek host/IP’yi göremeyeceklerinden, birbirlerine saldırı yapmalarını engellemeye yardımcı olur..

Bu +x kullanıcı modu ile kontrol edilir. (örnek: /mode nickiniz +x), aynı zamanda adminler, +x kipini default kipi olarak veya kullanıcıların –x yapamamaları için belirtebilirler.

Gizlenmiş bir host, gizleme (cloaking) modülü tarafından oluşturulur (en az bir tane yüklenmesi zorunludur), şu an için sadece 1 modul içermektedir:
cloak: Bu modül 3.2.1’den bu yana resmi gizleme modulüdür, eski algoritmaya nazaran daha güvenlidir, dahili olarak md5 kullanır ve 3 adet; küçük karakter olarak (a-z) arası karakterleri içeren, büyük karakter olarak (A-Z) arası karakterleri içeren ve rakam olarak (0-9) arası rakamları içeren set::cloak-keys:: belirtmenizi gerektirir. [ör: "AopAS6WQH2Os6hfosh4SFJHs"]. Örnek için example.conf dosyasına bakın.

Gizleme anahtarları (cloak keys) bir ağdaki bütün sunucular için aynı olmak zorundadır. Aynı zamanda gizleme anahtarları (cloak keys) gizli tutulmalıdır, çünkü gizleme anahtarlarının bilinmesi halinde gerçek hostun bulunabilmesi olasıdır.

3.2 - Moduller

UnrealIRCd modül özelliğini destekler, bu:
- Ircd çalışırken yükleyebilirsiniz/yeniden yükleyebilirsiniz/iptal edebilirsiniz (/rehash ile). Bu bazı açıkların saptanmasını veya yeni özelliklerin restart atmadan eklenmesini sağlamaktadır.
- Diğer kişiler yeni komutlar,yeni kullanıcı modları ve hatta yeni kanal modları içeren (3. parti) moduller oluşturabilirler.
Sebeplerinden dolayı çok iyi bir özelliktir. UnrealIRCd sadece birkaç modül ile başlar. www.unrealircd.com -> modules kısmına bir göz atın veya 3. parti modulleri bulabilmek için google arama motorunu kullanın.

En az 2 modulü yüklemeniz (load) zorunludur, aksi taktirde boot işlemini gerçekleştiremezsiniz!:
- komutlar modulü: commands.so (windows için commands.dll)
- gizleme modulü: çoğunlukla cloak.so (windows için cloak.dll).

3.3 - Snomasklar

Snomasklar sunucu uyarı maskeleridir, kullanıcı modunun özel bir tipidir ki bu hangi sunucu uyarılarını alacağınızı belirler/kontrol eder. (çoğunlukla operler tarafından kullanılır)

Şu şekilde belirtilebilir: /mode nickiniz +s SNOMASK, örneğin: /mode nickiniz +s +cF
Kullandığınız snomask’ın kaldırılması için: /mode nickiniz +s -c
Veya kullandığınız bütün snomask’ları: /mode nickiniz –s yazarak kaldırabilirsiniz.

Mevcut SNOMASKlar:
c - Yerel sunucudaki giris/cikislari gosterir
F - Uzak sunucudaki giris/cikislari gosterir
f - Flood saldiri uyarilarini gosterir
k - Atilan /kill komutlarini gormenizi saglar.[*]
e - /CHG* ve /SET* ile servislere gonderilen komutlari gormenizi saglar
j - Junk uyarı mesajlarını gormenizi saglar.
v - vhost kullanım uyarılarını görmenizi sağlar
G - gline/shun uyarılarını görmenizi sağlar
n - Yerel sunucudaki nick degisimlerini gormenizi saglar
N - Uzak sunucudaki nick degisimlerini gormenizi saglar
q - Q-line sebebi ile reddedilen nickleri gormenizi saglar
s - Genel uyarıları gormenizi saglar.[*]
S - Spamfilter eslesmelerinin uyarılarını görmenizi sağlar
o - oper açma uyarılarını görmenizi sağlar
[*: ircop olmayanlarda kullanabilir]

Otomatik olarak alınacak snomaskları (set::snomask-on-connect) ile ve oper açıldığı anda alınacak snomaskları (set::snomask-on-oper, oper::snomask) ile belirtebilirsiniz.

Başlangış ayarı olarak, bir kullanıcı +s modunu kullanıyorsa, belirtilmiş snomasklar kullanılır. Oper olmayanlar için snomasklar +ks, oper olanlar için ise +kscfvGqo.

3.4 - Aliases

Aliases ile sunucu-taraflı alias komutlarını düzenleyebilirsiniz. Örneğin nickserv’e identify komutunu "/ns identify blah" komutunu kullanarak gönderebilirsiniz. (bu: privmsg nickserv identify blah olarak değerlendirilecektir). Hatta daha kompleks yapılarda kisaltmalar (aliases) yapabilirsiniz; /register ‘in register’dan sonra gelecek ilk parametrenin # işareti olduğu durumlarda ChanServ’e olmadığı durumlarda ise NickServ’e gönderilmesi gibi.

Kısaltmalar (aliases) konfigürasyon dosyasındaki alias blokları ile düzenlenir, aynı zamanda bu alias’ları bir dosya ile de belirtebilirsiniz.

3.5 - Helpop

UnrealIRCd bünyesinde /helpop ile erişilebilinen bir yardım sistemine sahiptir. /helpop komutu tamamıyla, konfigürasyon dosyasında ki help bloğu aracılığıyla kullanıcı tarafından düzenlenebilir. Ek olarak tüm komutlar için bazı temel kullanımları içeren bir help.conf dosyası da dahil edilmiştir.
Örneğin /helpop chmodes size UnrealIRCD’in sahip olduğu bütün kanal modlarını gösterecektir.
Eğer IRCOp veya (helpop) yardım operatörü iseniz kelimenin başına ‘?’ karakteri koymanız gerektiğini unutmayın, bu durumda /helpop için /helpop ? ve /helpop chmodes için de /helpop ?chmodes vs. kullanmanız gerekecektir.

3.6 - Oper erişim seviyeleri

UnrealIRCd ‘de birkaç oper seviyesi vardır ve bunların herbirine yetki eklemesi (örneğin /gline kullanma yetkisi gibi) yapabilirsiniz, böylelikle her opere ihtiyacı olduğu erişimi sağlayabilirsiniz.

Bu oper bloğundaki oper flagları ile kontrol edilir. Daha fazla bilgi için oper bloğuna bakın.

3.7 - Oper komutları

UnrealIRCd’de, birçok etkili oper komutu vardır. Bunlar Kullanıcı & Oper Komutları kısmında açıklanmıştır, kurulumdan sonra okumak isteyebilirsiniz :).

3.8 - SSL

Açılımı Secure Socket Layer olan SSL ile güvenli şifrelenmiş bağlantılar yapabilirsiniz. Bu sunucu<->sunucu trafiğini şifrelemek için kullanılabilir, fakat aynı zamanda istemci<->sunucu trafiği de şifrelenebilir. SSL özelliğini korsanlığa (veri korsanlığı) karşı korunmada veya güvenlik için kullanabilirsiniz.

Bu özelliği kullanabilmeniz için IRC sunucunuzun SSL desteği ile derlenmiş olması gerekmektedir. SSL portunu listen::options::ssl yönergesi ile belirtebilirsiniz.

SSL portundan normal bağlantı sağlayamazsınız (bu yüzden SSL portunu 6667 olarak belirtmeyin!), aynı zamanda SSL protokolunu destekleyen bir yazılım kullanmanız gerekmektedir.

SSL desteği olan yazılımlar: XChat, irssi, mIRC (6.14 ve üzeri, aynı zamanda birkaç ek adım gerektirmektedir)

SSL desteği olmayan yazılımlar için ise stunnel gibi bir gecit kullanabilirsiniz, aşağıda örnekte bir stunnel.conf verilmiştir (stunnel 4.x için):

       client = yes
       [irc]
       accept = 127.0.0.1:6667
       connect = irc.myserv.com:6697

Eğer 127.0.0.1'e 6667 portundan bağlanırsanız, trafiğiniz şifrelenecektir ve irc.myserv.com port 6697 'ye yönlendirilecektir. (SSL portu).

Aynı zamanda sunuculara bağlanırken sertifakaları doğrulamalısınız ve körü körüne onaylamamalısınız aksi takdirde "aktif veri korsanlığı" saldırılarına karşı korunmanız hala zayıf kalacaktır. Bu konu bu başlığın konusunun dışında bir konudur. (SSL hakkında bilgi edinin, bize sormayın). [mIRC ve xchat yazılımları sertifikayı onaylayıp onaylamayacağınıza dair bir pop up açmaktadır, dolayısıyle bu iyidir.]

3.9 - IPv6

UnrealIRCd IPv6 özelliğini, beta15'den beri devamlı olarak desteklemektedir.
Bu özelliği kullanabilmeniz için işletim sisteminizin IPv6 özelliğini desteklemesi ve UnrealIRCd'de ./Config sırasında IPv6 desteğini aktif etmeniz gerekmektedir.

Microsoft'un w2k/XP için deneme aşamasında olan IPv6 uygulaması olmasına rağmen, bu (henüz) UnrealIRCd tarafından desteklenmemektedir.

3.10 - Zip links

Zip links sunucu<->sunucu linkleri için aktif edilebilir, bu özellikle data zlib kullanılarak sıkıştırma yapılır. Bu özellik sayesinde bant genişliğinin 60-80% 'i saklanabilir... Bu nedenle bu özellik, küçük bant genişlikli linkler için veya çok kullanıcılı linkler için oldukça kullanışlıdır.

Zip links desteğini aktif etmek için ./Config sırasında karşılaşacağınız zlib sorusuna YES cevabı vermeniz ve bunu link::options::zip ile belirtmeniz gerekmektedir.(her iki tarafta da)

3.11 - Dinamik DNS/IP link desteği

UnrealIRCd'in, dinamik DNS (blah.dyndns.org gibi) kulanan dinamik IP'li kullanıcılara yardımcı olan birkaç (yeni) güzel özellikleri vardır. Eğer iki dinamik DNS kullanan hostu linkliyorsanız, bunu link::options::nodnscache ve link::options::nohostcheck ile belirtmelisiniz.

3.12 - Anti-Flood özellikleri

Throttling
Throttling bir kullanıcının sunucunuzdan bağlantısını kesmesinin ve yeniden sunucunuza bağlanmasının ne kadar hızla gerçekleşebileceğini sınırlayabilmenizi sağlayan bir metotdur. Bunu konfigürasyon dosyasında ki set::throttle bloğunda belirtebilirsiniz.Burada X, YY saniye içinde ki aynı IP ‘ye sahip bağlantı sayısıdır.
Kanal Modları
Aynı zamanda flood saldırılarına karşı çok etkili olan kanal modları da vardır. Bazıları:
K = /knock kullanılamaz kanal, N = Nick değiştirelemez kanal, C = CTCP’lerin izinli olmadığı kanal, M = sadece kayıtlı nicklerin konuşabildiği kanal, j = süreye ilişkin giriş kısıtlama (kullanıcı-başına)
beta18’deki gibi aynı zamanda daha da geliştirilmiş olan +f kanal modu vardır...
f kanal modu
Kanalı flood saldırılarına karşı korumak için script ve bot kullanmak yerine bu özellik kullanılabilir.
+f modunun kullanımına bir örnek: *** Blah sets mode: +f [10j]:15
Bunun manası bu kanal, her 15 saniye için 10 giriş izinlidir, eğer limit aşılırsa kanal otomatik olarak +i moduna alınacaktır.
Belirtilen flood tipleri mevcuttur:

tip: | isim: | sabit eylem: | diğer eylem(ler): | yorumlama
c | CTCP | otomatik +C | m, M |
j | join | otomatik +i | R |
k | knock | otomatik +K |  | (sadece yerel bağlantıları kapsar)
m | mesaj/notice | otomatik +m | M |
n | nickdeğişiklikleri | otomatik +N |  |
t | text | kick | b | eski +f'de olduğu gibi kullanıcı-başına mesaj/notice. kullanıcı atılır veya banlanır.

Örnek:

    *** ChanOp sets mode: +f
    [20j,50m,7n]:15
    <ChanOp> lalala
    *** Evil1 (~fdsdsfddf@Clk-17B4D84B.blah.net) has joined
    #test
    *** Evil2 (~jcvibhcih@Clk-3472A942.xx.someispcom) has joined #test
    *** Evil3 (~toijhlihs@Clk-38D374A3.aol.com) has joined #test
    *** Evil4 (~eihjifihi@Clk-5387B42F.dfdfd.blablalba.be) has joined
    #test
    -- snip XX lines --
    *** Evil21 (~jiovoihew@Clk-48D826C3.e.something.org) has
    joined #test
    -server1.test.net:#test *** Channel joinflood detected
    (limit is 20 per 15 seconds), putting +i
    *** server1.test.net sets mode: +i
    <Evil2> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
    <Evil12> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
    <Evil15> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
    <Evil10> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
    <Evil8> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
    -- snip XX lines --
    -server1.test.net:#test *** Channel msg/noticeflood
    detected (limit is 50 per 15 seconds), putting +m
    *** server1.test.net sets mode: +m
    *** Evil1 is now known as Hmmm1
    *** Evil2 is now known as Hmmm2
    *** Evil3 is now known as Hmmm3
    *** Evil4 is now known as Hmmm4
    *** Evil5 is now known as Hmmm5
    *** Evil6 is now known as Hmmm6
    *** Evil7 is now known as Hmmm7
    *** Evil8 is now known as Hmmm8
    -server1.test.net:#test *** Channel nickflood detected
    (limit is 7 per 15 seconds), putting +N
    *** server1.test.net sets mode: +N

Gerçekte daha karışık, daha komplike bir şekil alabilir:
Ayrı ayrı belirtmek yerine, flood tiplerini başka bir biçimde de belirtebilirsiniz, örneğin: +f [20j#R,50m#M]:15
Bu; eğer join limiti aşılırsa kanalın +R moduna (burada limit 15 saniye içinde 20 join) ve eğer mesaj limiti aşılırsa kanalın +M moduna (burada limit 15 saniye içinde 50 mesaj) alınmasını sağlayacaktır.
Aynı zamanda “X dakika sonra modu kaldır” özelliği de vardır: +f [20j#R5]:15 limit aşıldığı takdirde kanal +R moduna alınacaktır ve 5 dakika sonra kanal –R moduna alınacaktır.
Bir sunucu için, belirli bir süre sonra modun kaldırılması özelliği, (set::modef-default-unsettime) başlangıç değeri olarak bir değere sahip olabilir, yani eğer +f [20j]:15 olarak belirtirseniz bu sunucu tarafından +f [20j#i10]:15, olarak algılanabilir, bu sadece bir başlangıç değeridir, hala [20j#i2]:15 olarak belirtebilirsiniz. Aynı zamanda; ör: [20j#i0]:15 şeklinde belirterek modun kaldırılması özelliğini iptal edebilirsiniz.
Aynı zamanda eski +f modu (kullanıcı başına mesaj floodu) 't' olarak mevcuttur, +f 10:6 modu +f [10t]:6 olarak yorumlanır ve +f *20:10 modu +f [20t#b]:10 olarak yorumlanır. Ircd, bu modu kullanıldığı anda otomatik olarak yeni +f modu tipine çevirecektir. Not: ‘t’ ban’ları için ban kaldırma zamanı yoktur.(Ör: [20t#b30]:15 işlevi yoktur).
Bir kanalda +f modundan en iyi şekilde yararlanmak nelere dayanır... kanalın kaç kullanıcısı var? Kanalınız kullanıcıların çokça mesajlaşması gerektiği bir kanal mı (ör: trivia) veya kullanıcılar sık sık popup kullanıyorlar mı? Bu tarz bir ana kanal mı veya auto-join kanalı mı? vs..
Bütün kanallar için iyi olabilecek mükemmel bir +f modu kullanımı yoktur ama başlangıç için aşağıdaki örneğe bakıp ihtiyaçlarınıza göre değiştirebilirsiniz:
+f [30j#i10,40m#m10,7c#C15,10n#N15,30k#K10]:15
her 15 saniye için 30 join, limit aşılırsa kanal otomatik olarak 10 dakikalığına +i moduna alınır
her 15 saniye için 40 mesaj, eğer limit aşılırsa kanal otomatik olarak 10 dakikalığına +m moduna alınır
her 15 saniye için 7 CTCP, eğer limit aşılırsa kanal otomatik olarak 15 dakikalığına +C moduna alınır
her 15 saniye için 15 nick değişimi, eğer limit aşılırsa kanal otomatik olarak 15 dakikalığına +N moduna alınır
her 15 saniye için 30 knock, eğer limit aşılırsa kanal otomatik olarak 10 dakikalığına +K moduna alınır
Eğer söz konusu kanal büyük bir kanal ise (ör: kullanıcı sayısı>75) join duyarlılığını (örneğin: 50) ve mesaj limitini (örneğin: 60 veya 75) arttırabilirsiniz.
Özellikle modun kaldırılma süresi bir deneme yanılma işidir.. Böyle düşünebilirsiniz.. Eğer kanalda duruma el koyabilecek bir op olmazsa, kanalı 15 dakikalığına kitlemeli miyim (=kullanıcılar için hoş olmaz) veya 5 dakikalığına (=saldırıyı yapanlar 5 dakika bekleyip daha sonra saldırıya devam edebilirler). Bu aynı zamanda flood tipine de bağlıdır, kullanıcıların kanala girememesi (+i) veya kanalda konuşamaması (+m) nick değiştirememelerinden (+N) veya kanala CTCP (+C) gönderememelerinden daha kötü bir durumdur bu nedenle herbir flood tipi için ayrı ayrı mod kaldırılma süresi belirtmek isteyebilirsiniz
j kanal modu
+f modu join flood’ları engelleme özelliğini de kapsamaktadır, bununla birlikte bu özellik "geniş kapsamlıdır". Örneğin, eğer 5:10 belirtilirse ve 5 farklı kullanıcı 10 saniye içinde kanala girerse, flood koruması tetiklenecektir. +j kanal modu farklıdır. Bu mod kullanıcı-başına esasıyla çalışır. Join flood saldırılarına karşın korunma amacından ziyade, join-part flood saldırılarından korunma amacıyla tasarlanmıştır (revolving door floods). Mod: X join (giriş) sayısını belirtmek üzere ve Y saniye sayısını belirtmek üzere X:Y olarak belirtilir. Eğer bir kullanıcı bu limit aşarsa , onun kanala girişi engellenecektir.

3.13 - Ban tipleri

Ana bantipleri ve gizlenmiş (cloaked) hostlar
UnrealIRCd +b nick!user@host gibi ana bantiplerini desteklemektedir.
Aynı zamanda, eğer bir kullanıcı 'rox-ACB17294.isp.com' gibi bir gizlenmiş hosta sahipse ve siz *!*@rox-ACB17294.isp.com şeklinde bir ban belirtmişseniz, bu durumda kullanıcı -x (böylelikle hostu 'dial-123.isp.com' olacaktır(örneğin)) moduna geçse dahi belirtilen ban hala eşleşecektir. Banlar herzaman gerçek ve gizlenmiş hostlarla eşleşir.
Bununla birlikte IP ban da vardır (ör : *!*@128.*).
Gizlenmiş IP’lere ban için birkaç açıklama gereklidir:
Eğer kullanıcının IP’si 1.2.3.4 ise gizlenmiş IP’si 341C6CEC.8FC6128B.303AEBC6.IP olabilir.
Eğer *!*@341C6CEC.8FC6128B.303AEBC6.IP şeklinde ban atarsanız bu ban *!*@1.2.3.4 şekline eşdeğerdir (bu açıktır...)
Eğer *!*@*.8FC6128B.303AEBC6.IP şeklinde ban atarsanız bu ban *!*@1.2.3.* şekline eşdeğerdir.
Eğer *!*@*.303AEBC6.IP şeklinde ban atarsanız bu ban *!*@1.2.* şekline eşdeğerdir.
Bu bilgilendirme atılacak bir banın ne kadarlık bir kapsaması olduğuna karar verirken size yardımcı olacaktır.
Genişletilmiş bantipleri
Genişletilmiş banlar ~[!]<tip>:<parametre> şeklindedir. Mevcut tipler:

tip: | isim | açıklama:
~q | quiet | Bu ban ile eşleşen kullanıcı kanala girebilir ancak +v veya daha yükseğine sahip değilse konuşamaz. Ör: ~q:*!*@blah.blah.com
~n | nickchange | Bu ban ile eşleşen kullanıcı +v veya daha yükseğine sahip değilse nick değiştiremez. Ör: ~n:*!*@*.aol.com
~c | [prefix]channel | Eğer kullanıcı belirtilen kanalda ise ban konulan kanala giremez. Bununla birlikte burada önek olarak (+/%/@/&/~) belirtilebilir.Önek belirtilirse kanalda belirtilen öneke sahip veya daha yükseğine sahip olan kullanıcı kanala giremez. Ör: +b ~c:#lamers, +e ~c:@#trusted
~r | realname | Eğer kullanıcının realname kısmı eşleşirse kullanıcı kanala giremez. Ör: ~r:*Stupid_bot_script* NOT: alt çizgi ('_') hem boşluk (' ') hemde ('_') ile eşleşir, bu sebepten bu ban 'Stupid bot script v1.4' ile eşleşecektir.

Bu ban tipleri aynı zamanda kanal kabul modunda da (+e) desteklenmektedir.
Aynı zamanda Moduller ile de başka ban tipleri de eklenebilir.

3.14 - Spamfilter

Spamfilter spam,reklam,worm ve diğer türlerde ki istenmeyen durumlara karşı yeni bir sistemdir. Badwords sistemi ile benzer çalışır fakat birçok avantajı vardır.

Spamfilter kullanımı aşağıda gösterilmiştir:
/spamfilter [add|del|remove|+|-] [tip] [eylem] [tklsüresi] [sebep] [düzenli-ifade]

[tip] | Hedef tipini belirtir:
Karakter: | Konfig.Dosyasında Tanımı: | Açıklama:
c | channel | Kanal mesajları
p | private | Özel mesajlar (kullanıcı->kullanıcı)
n | private-notice | Özel notice
N | channel-notice | Kanala notice
P | part | Part sebebi
q | quit | Quit sebebi
d | dcc | DCC dosya ismi
a | away | Away mesajı
t | topic | Belirtilen topic
u | user | Kullanıcı banı, nick!user@host:realname ile eşleşecektir
Çoklu hedefler belirtebilirsiniz, cpNn gibi.
[eylem] | Eşleşme gerçekleştiği takdirde uygulanacak eylem (sadece 1 eylem belirtilebilir).
kill | Kullanıcıya kill atılır
tempshun | Kullanıcının o anlık oturumuna shun atılır (eğer yeniden bağlanırsa shun kalkacaktır)
shun | Hosta shun atılır
kline | Host için kline eklenir
gline | Host için gline eklenir
zline | Host için zline eklenir
gzline | Host için gzline (global zline) eklenir
block | Sadece mesaj bloklanır
dccblock | Kullanıcı işaretlenir böylelikle kullanıcı DCC gönderimi yapamaz
viruschan | Bütün kanallardan çıkartılır, set::spamfilter::virus-help-channel ile belirtilen kanala giriş yaptırılır, PONG, ADMIN , ve set::spamfilter::virus-help-channel ile belirtilen kanala msg/notice hariç hiçbir komutu kullanamaz
[tklsüresi] | Spamfilter tarafından eklenen *line/shun için geçerli olma süresidir, başlangıç değeri için '-' kullanın veya atlayın (Ör: eğer eylem = 'block' ise)
[sebep] | Block/*line/shun sebebidir. Burada belirtilen sebep içinde boşluk kullanamazsınız, alt çizgiler ('_') boşluk olarak değerlendirilir. Ve çift altçizgi ('__') ('_') olarak değerlendirilir. Yine aynı şekilde başlangıç değeri için, '-' kullanın.
[düzenli ifade] | bu kısım, hangi ifadenin veya 'yasak kelime'nin kullanıldığında belirtilen eylemin uygulanacağını bildirilen kısımdır.

İşte bir örnek: /spamfilter add pc gline - - Come watch me on my webcam
Eğer metin come watch me on my webcam (özel mesajda veya kanal mesajında) ise mesaj bloke edilecek ve ardından gline eklenecektir.
Diğer bir örnek: /spamfilter add pc block - - come to irc\..+\..+
Burda belirtilen ifade Hi, come to irc.blah.net metniyle eşleşecektir.vs..
Ve süre/sebep belirtilmiş bir örnek:
/spamfilter add p gline 3h Please_go_to_www.viruscan.xx/nicepage/virus=blah Come watch me on my webcam
Eğer özel mesajda come watch me on my webcam metnine rastlanırsa kullanıcı 3 saat süreliğine belirtilen Please go to www.viruscan.xx/nicepage/virus=blahsebebinden dolayı gline'lı olarak kalacaktır .
/spamfilter komutuyla eklenmiş spam filtreleri bütün ağ boyunca geçerlidir. Kullanıcı/kanal +G modunda olsun olmasın muhakkak çalışacaktır, sadece operler ve servisler (uline) filtrelemeden etkilenmezler.

Aynı zamanda spam filtrelerini konfigürasyon dosyasından da ekleyebilirsiniz fakat bunlar yerel sunucuda geçerli olacaktır(bütün ağ kapsamında değil). Bu spamfilter { } bloğunun kullanımı burada açıklanmıştır.
Örnek:

    spamfilter {
    	regex "//write \$decode\(.+\|.+load -rs";
    	target { private; channel; };
    	reason "Generic $decode exploit";
    	action block;
    };

set::spamfilter::ban-time spamfilter ile eklenen *line/shun için ban süresinin default değerini değiştirebilmenize olanak sağlar.(default değeri: 1 gün)
set::spamfilter::ban-reason Default değeri olarak bir sebep belirtmenize olanak sağlar.(default değeri: 'Spam/advertising')
set::spamfilter::virus-help-channel belirtilen 'viruschan' eylemi için bir kanal belirtmenize olanak sağlar. (default: #help)
set::spamfilter::virus-help-channel-deny yukarıda belirttiğiniz kanala yapılacak bütün normal girişleri bloklamanıza olanak sağlar.(default değeri: no)

3.15 - CIDR

UnrealIRCd şimdi CIDR (Classless Interdomain Routing) özelliğini de desteklemektedir. CIDR IP dizilerine ban atmanıza olanak sağlar. Unreal CIDR desteği hem IPv4 hem de IPv6 için geçerlidir. CIDR maskeleri allow::ip, ban user::mask, ban ip::mask, except ban::mask, except throttle::mask ve except tkl::mask (gzline, gline ve shun için) yönergeleri içinde kullanılabilir. Ek olarak yine CIDR maskeleri /kline, /gline, /zline ve /shun komutları kullanılırken de belirtilebilir. Unreal standart IP/bit sözdizimini kullanır, ör. 127.0.0.0/8 (127.0.0.0 - 127.255.255.255 arasındaki bütün IP'lerle eşleşir).

3.16 - Nick Karakter Grupları

UnrealIRCd şimdi belirtilen karakter grubu/dil ile o gruba/dile ait karakterlerden oluşabilen nick kullanımını da desteklemektedir. Bunu set::allowed-nickchars ile yapabilirsiniz.
Bütün olası seçeneklerin tablosu:

İsim: | Açıklama: | Karakter seti/encoding:
catalan | Katalancaya ilişkin karakterler | iso8859-1 (latin1)
danish | Dancaya ilişkin karakterler | iso8859-1 (latin1)
dutch | Flemenkçeye ilişkin karakterler | iso8859-1 (latin1)
french | Fransızcaya ilişkin karakterler | iso8859-1 (latin1)
german | Almancaya ilişkin karakterler | iso8859-1 (latin1)
swiss-german | İsviçre-Alman diline ilişkin karakterler (no es-zett) | iso8859-1 (latin1)
icelandic | Izlandacaya ilişkin karakterler | iso8859-1 (latin1)
italian | İtalyancaya ilişkin karakterler | iso8859-1 (latin1)
spanish | İspanyolcaya ilişkin karakterler | iso8859-1 (latin1)
swedish | İsveç diline ilişkin karakterler | iso8859-1 (latin1)
latin1 | catalan, danish, dutch, french, german, swiss-german, spanish, icelandic, italian, swedish karakter gruplarına ilişkin bütün karakterler | iso8859-1 (latin1)
hungarian | Macarcaya ilişkin karakterler | iso8859-2 (latin2), windows-1250
polish | Lehçeye ilişkin karakterler | iso8859-2 (latin2)
romanian | Romenceye ilişkin karakterler | iso8859-2 (latin2), windows-1250, iso8859-16
latin2 | hungarian, polish, romanian karakter gruplarına ilişkin bütün karakterler | iso8859-2 (latin2)
polish-w1250 | Lehçeye ilişkin karakterler, windows biçiminde(maalesef iso'ya nazaran daha çok karşılaşılır) | windows-1250
slovak-w1250 | Slovakçaya ilişkin karakterler, windows biçiminde | windows-1250
czech-w1250 | Çek diline ilişkin karakterler, windows biçiminde | windows-1250
windows-1250 | lehçe-w1250, slovakça-w1250, çek-w1250, macarca, romence | windows-1250
greek | Yunancaya ilişkin karakterler | iso8859-7
turkish | Türkçeye ilişkin karakterler | iso8859-9
russian-w1251 | Rusçaya ilişkin karakterler | windows-1251
belarussian-w1251 | Belarusçaya ilişkin karakterler | windows-1251
ukrainian-w1251 | Ukraynacaya ilişkin karakterler | windows-1251
windows-1251 | rusça-w1251, belarussian-w1251, ukraynaca-w1251 | windows-1251
hebrew | İbraniceye ilişkin karakterler | iso8859-8-I/windows-1255
chinese-simp | Basitleştirilmiş Çinceye ilişkin karakterler | Multibyte: GBK/GB2312
chinese-trad | Geleneksel Çinceye ilişkin karakterler | Multibyte: GBK
chinese-ja | Japoncaya ilişkin karakterler (Hiragana/Pinyin) | Multibyte: GBK
chinese | çince-* | Multibyte: GBK
gbk | çince-* | Multibyte: GBK

NOT 1: Bazı kombinasyonlar problemlere neden olabilir. Örneğin, latin* ve chinese-* dillerinin kombinasyonunda Unreal hata verebilir. Diğer karakter setlerinin kombinasyonu da görüntü problemlerine neden olabilir, eğer latin1/latin2/yunanca/diğer gibi uyumsuz grupların kombinasyonunu kullanırsanız Unreal bir uyarı mesajı verecektir.

NOT 2: Karakter haritaları US-ASCII tablosuna göre hazırlanmıştır, bunun manası ise şudur: o" ile O" karakterleri aynı karakterler olarak yorumlanmaz. Bu nedenle birisi B"ar nickini kullanırken aynı anda bir başkası da BA"r nickini kullanabilir. Bu kısa bir süre sonra çözülemeyecek, mevcut sistemin ve IRCd standartlarının, bir sınırlamasıdır. Kişiler bu sınırlamadan haberdar olmalılardır. Bu anlatılanlar kanal isimleri içinde geçerlidir.

NOT 3: Temel nick karakterleri (a-z A-Z 0-9 [ \ ] ^ _ - { | }) herzaman kullanılabilir ve kapsam içindedir.

Örnek 1, batı avrupa kullanıcıları için:

    set { allowed-nickchars { latin1; };
    };

Örnek 2, eğer çok sayıda çinli kullanıcınız varsa:

    set { allowed-nickchars {
    chinese-simp; chinese-trad; }; };

3.17 - CGI:IRC Desteği

UnrealIRCd CGI:IRC bağlantıları için host yanıltma özelliğini destekler. Bunun manası belirli CGI:IRC ağ geçitlerini "güvenilir" olarak işaretleyebilirsiniz böylelikle belirtilen ağ geçidinden bağlanan kullanıcıların kullandıkları CGI:IRC ağ geçidinin sahip olduğu host/ip'si yerine kullanıcıların gerçek host/ip'si görülecektir.

Yapılandırma hakkında bilgi edinmek için cgiirc bloğuna bakın.

3.18 - Zaman Senkronizasyonu

Zamanlamanın doğru olmasının IRC sunucular açısından son derece önemlidir. Zamanlamanın sunucularda doğru olmaması, kanal arasında eş zamansızlığa, masum insanların sunucudan bağlantısının kesilmesine (kill), bazı kanalların /LIST komutu sorgusunda listede bulunmamasına sebep olabilir, kısaca istenmeyen durumlar meydana gelebilir.

UnrealIRCd kendi bünyesinde zaman senkronizasyonu özelliğine bir bakıma destekler, fakat optimal değildir (hala birkaç saniye uyumsuzluk yaşanabilir), bu da büyük zaman farklarına yol açabilir. Eğer yapabilirseniz, bir zaman senkronizyonu programı kullanmanız önerilir, *NIX platformunda ntpd gibi veya Windowsta zaman senkronizyon servisi gibi. (eğer böyle bir yazılım kullanırsanız, Unreal’in zaman senkronizasyon özelliğini devre dışı bırakabilirsiniz).

UnrealIRCd (default olarak) başlatıldığı anda zaman senkronizyonunu sağlar. Çoklu zaman sunucularına istek gönderir ve ilk aldığı cevaba göre (en hızlı olanı) dahili ircd saatini ayarlar (sistem saatini DEĞİL). Eğer herhangi bir sebepten dolayı 3 saniye içinde zaman sunucusundan cevap alınamazsa, IRCd açılmaya devam edecektir. (bu olaya nadiren rastlanır)

Zaman senkronizasyonu set::timesynch bloğu ile yapılandırılır, daha fazla bilgi için set dökümanına bakın..

3.19 - Diğer Özellikler

UnrealIRCd buraya sığamayacak kadar çok özelliğe sahiptir... Bu özellikleri kendiniz bulacaksınız.

4.0 - unrealircd.conf dosyasının konfigürasyonu

İlk olarak, iyi bir unrealircd.conf oluşturmak biraz zaman alacaktır, 10 – 60dak gibi. Yapabildiğiniz kadar çabuk bir biçimde boot etmeyi deneyebilirsiniz ve daha sonra geniş olarak konfigürasyon dosyasını inceleyebilirsiniz, veya adım adım ana kısımları öğrenebilirsiniz ki bu tercih edilen yoldur. ;P. Eğer bir sorunla karşılaşırsanız, yardım istemeden önce yazımınızı (syntax), klavuzu ve FAQ kısmını kontrol edin.

4.1 Açıklamalı Konfigürasyon Dosyası

Yeni sistem blok-tabanlı bir format kullanır. Yeni biçimde herbir girişin, veya bloğun kendine özgü bir formatı vardır. Biçim genel olarak şu şekildedir:

    <blok-ismi> <blok-değeri> {
    	<blok-yönergesi> <yönerge-değeri>;
    };

<blok-ismi> bloğun tipidir, me veya admin gibi. <blok-değeri> kimi zamanlarda özel bir değer olabilir, /oper login gibi, fakat kimi zamanlarda da ban user ‘da olduğu gibi alt bir tip olacaktır.

<blok-yönergesi> bloğa özgü özel bir değişkendir ve <yönerge-değeri> ise birleşik değerdir. Eğer <yönerge-değeri> ,boşluk karakterini içeriyorsa veya bir açıklama tarzı bir ifade içeriyorsa , çift tırnak içerisinde belirtilmelidir. Eğer tırnak karakterini çift tırnak içine alınmış bir ifade içinde kullanmak istiyorsanız \" kullanın, bu tırnak karakteri olarak algılanacaktır.

Bir <blok-yönergesi> kendi içinde yönergelere sahip olabilir. Bazı bloklarda yönerge bulunmaz ve sadece <blok-değeri> ile belirtilir, include bloğunda olduğu gibi. Aynı zamanda sabit belirli bir formatı yoktur, bunun manası sözü edilen blok 1 satır olarak da görülebilir veya 1 satırdan fazla da olabilir. Normal kullanım formatı (dosyada kullanılacak format) yukarıdaki gibidir, çünkü bunun okunması kolaydır.

Not: konfigürasyon dosyası büyük ve küçük harf duyarlıdır, yani BLOK-İSMİ yazımı blok-ismi yazımıyla eş değildir. Konfigürasyon dosyasında, yapılan girişlerden bahsederken özel bir notasyon kullanılır. Örneğin, yukarıda ki örnek için bu notasyon <blok-ismi>::<blok-yönergesi> şeklindedir ve eğer bu yönergenin alt bir bloğu varsa bunun içinde diğer bir :: ekleyip ardından alt yönergenin ismini ekleyebilirsiniz.

Yönerge ismi belirtilmeden gösterim şekli ise <blok-ismi>:: şeklindedir, bu bir <blok-değeri>'de olabilir, veya alt bloklardan herhangi birini de belirtebilir.

Açıklama yaparken desteklenen 3 tip vardır:

# 1 satırlık açıklama
// 1 satırlık açıklama
/* 1 veya daha fazla
satırlık açıklama */

Şimdi konfigürasyon dosyasının nasıl işlediğini biliyorsunuz, doc/example.conf dosyasını UnrealIRCd 'in bulunduğu klasöre (ör: /home/user/Unreal3.2) kopyalayın ve unrealircd.conf olarak yeniden isimlendirin. Konfigürasyon dosyanızı oluşturmak için bütün blok tipleri ve ayarlamalar için adım adım ilerlemeniz ve bu klavuzu referans almanız önerilir.

4.2 - Me Bloğu GEREKLİ (Önceden bilinen M:Line)

Kullanımı:

    me {
    	name <sunucu-ismi>;
    	info <sunucu-için-açıklama>;
    	numeric <sunucu-numerik-değeri>;
    };

Bu değerler çok açıktır. name ile sunucu ismi belirtilir, info ile sunucu için bir açıklama belirtilir, numeric ile ise sunucuyu tanıtan sayısal bir değer belirtilir. Bu değer 0 ile 254 arasında olmak zorundadır ve burda belirtilen sayısal değere ağda ki diğer hiçbir sunucu sahip olamaz.

Örnek:

    me {
    	name "irc.foonet.com";
    	info "FooNet Server";
    	numeric 1;
    };

4.3 - Admin Bloğu GEREKLİ (Önceden bilinen A:Line)

Kullanımı:

    admin {
    	<metin>;
    	<metin>;
    };

Admin bloğu /admin sorgusunda görüntülenecek metni belirler. Burada ki satırları istediğiniz oranda çoğaltabilirsiniz ve bu satırlar istediğiniz bilgiyi içerebilir, ancak genel olarak minimum admin nicki ile email adresi girilir. Diğer bilgiler ise yazmak istediğiniz herhangi diğer bir iletişim bilgileri de olabilir.

Örnek:

    admin {
    	"Bob Smith";
    	"bob";
    	"widely@used.name";
    };

4.4 - Class Bloğu GEREKLI (Önceden bilinen Y:Line)

Kullanımı:

    class <isim> {
    	pingfreq <ping-frekansı>;
    	connfreq <bağlantı-frekansı>;
    	maxclients <maximum-istemci>;
    	sendq <send-queue>;
    	recvq <recv-queue>;
    };

Class blokları bağlantıların yerleştirileceği sınıfları belirler (örneğin allow bloğuyla gelen bağlantılar veya link bloğuyla gelen sunucu bağlantıları gibi.), genel olarak çoklu class blokları kullanılır.(ör: sunucular için, kullanıcılar, operler için).

name "clients" veya "servers" gibi bir tanımlayıcı isimdir, bu isim bu sınıfı allow/link/oper/vs. bloklarıyla ilişkilendirmek için kullanılır

pingfreq sunucudan gelen PING'ler arasında ki saniye olarak süredir.(90 ile 180 arasında ki bir değer önerilir.)

connfreq sunucular için kullanılır ve eğer otomatik bağlantı aktif ise bağlantı denemeleri arasında ki saniye olarak süredir

maxclients bu sınıfta maksimum (toplamda) kaç istemci/sunucu sayısı olabileceğini belirler

sendq gönderim dizisi içinde ne kadar miktarda veri olabileceğini belirtir. (düşük bant genişlikli sunucular için çok yüksektir, istemciler (clients) için ise orta bir değerdir.)

recvq alınan veri dizisinde ne kadar miktarda veri olabileceğini belirler ve bu flood kontrolu için kullanılır. (bu değer sadece normal kullanıcılara uygulanır, 3000-8000 arasında bir değeri deneyebilirsiniz, default değer 8000'dir.).

Örnekler:

    class clients {
    	pingfreq 90;
    	maxclients 500;
    	sendq 100000;
    	recvq 8000;
    };

    class servers{
    	pingfreq 90;
    	maxclients 10; /* Bir kerede linkleyebileceğimiz max sunucu sayısı */
    	sendq 1000000;
    	connfreq 100; /* herbir bağlantı girişimi arasında ki saniye olarak süre */
    };

4.5 - Allow Bloğu GEREKLİ (Önceden bilinen I:Line)

Kullanımı:

    allow {
    	ip <kullanıcı@ip-bağlantı-maskesi>;
    	hostname <kullanıcı@host-bağlantı-maskesi>;
    	class <bağlantı-sınıfı>;
    	password <bağlantı-şifresi> { <auth-tipi>; };
    	maxperip <ip-başına-max-bağlantı>;
    	redirect-server <yönlendirilecek-sunucu>;
    	redirect-port <yönlendirilecek-port>;
    	options {
    		<tercih>;
    		<tercih>;
    		...
    	};
    };

Allow bloğu ile sunucunuza kimlerin bağlanabileceğini belirtebilirsiniz, bir veya daha fazla allow bloğunuz olabilir.

Eşleşme hakkında
Giriş kontrolu ip eşleşmeleri veya host eşlemeleri ile yapılır. Yani "hostname *@*" ;ve "ip *@1.2.3.4" ise bu herzaman eşleşecektir. Aynı zamanda allow blokları yukarıdan aşağıya doğru okunarak değerlendirilir, bu nedenle genel *@* allow bloklarından sonra açık host/ip 'ler belirtmelisiniz. Ek olarak sadece IP tabanlı eşleşme yapmasını istediğiniz bir blok oluşturmak isterseniz, hostname kısmına geçersiz herhangi birşey belirtin, "hostname NOBODY;" gibi, bu bloğun sadece IP tabanlı eşleşme yapmasına olanak sağlayacaktır.

ip
IP maskesi kullanıcı@ip formundadır, kullanıcı kısmı burada idente karşılık gelir ve genellikle * olarak belirtilir, ip ise ip kalıbıdır. Birkaç örnek: *@* (herhangi bi yerden), *@192.168.* (sadece ip adresi 192.168 ile başlayanlar), vs..

host
yine hostmaskesi kullanıcı@host formundadır. kullanıcı kısmı genelde * olarak belirtilir. Birkaç örnek: *@* (heryerden), *@*.wanadoo.fr (sadece wanadu.fr 'den).

password (isteğe bağlı)
eğer belirtilirse bağlanabilmek için şifre gerekir. Aynı zamanda burada yeniden şifreleme metodu ile oluşturdugunuz bir şifre de belirtebilirsiniz.

class
Bu allow bloğunu kullanan bağlantıların yerleştirileceği sınıfı belirtir.

maxperip (isteğe bağlı, ancak önerilir)
Sunucu için IP başına nekadar bağlantıya izin verileceğini belirtir.(ör: maxperip 4;).

redirect-server (isteğe bağlı)
Eğer belirtilen sınıf full ise, kullanıcılar burada belirtilen sunucuya yönlendirilirler.(eğer istemci yazılımı da destekliyorsa [mIRC 6 destekliyor]).

redirect-port (isteğe bağlı)
Eğer redirect-server belirtilmişse bu kısma portu belirtebilirsiniz, aksi takdirde 6667 olarak varsayılacaktır

options bloğu (isteğe bağlı)
Geçerli tercihler:
useip hostname yerine herzaman IP görüntülenir
noident ident kullanılmaz fakat client'in belirlediği username kullanılır
ssl sadece SSL ile bağlanan istemciler bağlanabilir
nopasscont eğer şifre belirtilmemişse eşleşme devam eder.

Örnekler:

    allow {
    	ip *;
    	hostname *;
    	class clients;
    	maxperip 5;
    };

    allow {
    	ip *@*;
    	hostname *@*.passworded.ugly.people;
    	class clients;
    	password "f00Ness";
    	maxperip 1;
    };

4.6 - Listen Bloğu GEREKLI (Önceden bilinen P:Line)

Kullanımı:

    listen <ip:port> {
    	options {
    		<tercih>;
    		<tercih>;
    		...
    	};
    };

Bu blok IRCD'in hangi portları dinleyeceğini belirtmenizi sağlar. Eğer seçilmesi gereken hiçbir seçenek yoksa, bu bloğu sadece listen <ip:port>; şeklinde belirtebilirsiniz.

ip and port
Kullanılabilir bütün IP'lere bağlanmak için IP kısmını * olarak belirtebilirsiniz, veya bağlanılacak tek IP belirtebilirsiniz.(çoğunlukla shell sağlayıcıları için gerekir). Belirtilecek port ise dinlemek istediğiniz porttur. Tek port yerine belirli port aralıklarını da belirtebilirsiniz. Örneğin 6660-6669 şeklinde belirttiğiniz zaman 6660 dan 6669 (dahil) 'a kadar bütün portları belirtmiş olursunuz. IPv6 kullanıcıları için aşağıda açıklama yapılmıştır.

IPv6 kullanıcıları için bilgi
Eğer IPv6 desteği açık bir sunucunuz varsa IP'yi parantez ifadesi içinde belirtmelisiniz. [::1]:6667 gibi. Eğer IPv6 kullanıyorsanız ve belirli bir IPv4 adresini dinlemek istiyorsanız ::ffff:ipv4ip şeklinde belirtme yapmalısınız. Örnek: [::ffff:203.123.67.1]:6667 ile 203.123.67.1 IP'sini 6667 portu üzerinden dinlemek için. Elbette burada sadece * da belirtebilirsiniz.

options bloğu (isteğe bağlı)
Kullanılacak port için özel tercihler de belirtebilirsiniz, geçerli tercihler:

clientsonly | sadece istemciler için
serversonly | sadece sunucular için
java | CR javachat desteği
ssl | SSL kullanan bağlantılar için

Örnekler:

    listen *:6601 {
    	options {
    		ssl;
    		clientsonly;
    	};
    };

Veya tercih belirtilmemiş şekil:

listen *:8067;
listen 213.12.31.126:6667;
listen *:6660-6669;

4.7 - Oper Bloğu ÖNERİLİR (Önceden bilinen O:Line)

    oper <isim> {
    	from {
    		userhost <hostmaskesi>;
    		userhost <hostmaskesi>;
    	};
    	password <şifre> { <auth-tipi>; };
    	class <class-ismi>;
    	flags <flaglar>;
    	flags {
    		<flag>;
    		<flag>;
    		...
    	};
    	swhois <whois bilgisi>;
    	snomask <snomask>;
    	modes <modlar>;
    	maxlogins <num>;
    };

Oper bloğu IRC Operatörleri atamanızı sağlar. oper:: kısmı /oper kullanımında ki login ismini belirtir. oper::from::userhost kısmı ile belirtilecek kullanıcı@host maskesi kullanıcının eşleşeceği maskedir, burada birden çok oper::from::userhost belirtebilirsiniz. oper::password kısmında belirttiğiniz şifre ise kullanıcının belirteceği şifredir, oper::password:: kısmında ise bu şifre için bir auth metodu belirtebilirsiniz, kullanılan auth tipleri: crypt, md5 ve sha1, ripemd-160. Eğer düz-metin bir şifre kullanmak istiyorsanız bu alt bloğu kullanmayın.

Lütfen login ismi kısmının ve şifre kısmının büyük-küçük harfe duyarlı olduğunu unutmayın

oper::class yönergesinde ise oper bloğunun kullanacağı daha önceden anlatılmış olan class ismi belirtilir.

oper::flags yönergesinin iki formatı vardır. Eğer eski stil oper flaglarını kullanmak istiyorsanız, örneğin; OAa, bunu flags <flags>metodu ile belirtebilirsiniz, eğer yeni stili kullanmak istiyorsanız, örneğin; services-admin, bunu flags { <flag>; } metodu ile belirtebilirsiniz. Aşağıda (her iki format için) flaglar ve işlevleri listelenmiştir.

Eski Flag | Yeni Flag | Açıklama
o | local | Sizi local operator yapar
O | global | Sizi global operator yapar
C | coadmin | Sizi coadmin yapar
A | admin | Sizi admin yapar
a | services-admin | Sizi servisler admini yapar
N | netadmin | Sizi ağ admini yapar
r | can_rehash | /rehash komutunu kullanabilme yetkisi verir
D | can_die | /die komutunu kullanabilme yetkisi verir
R | can_restart | /restart komutunu kullanabilme yetkisi verir
h | helpop | Opere +h (helpop) kullanıcı modunu verir
w | can_wallops | /wallops ile mesaj gönderebilme yetkisi verir
g | can_globops | /globops ile mesaj gönderebilme yetkisi verir
c | can_localroute | Yerel /SQUIT ve /CONNECT komutlarını kullanabilme yetkisi verir
L | can_globalroute | Global /SQUIT ve /CONNECT komutlarını kullanabilme yetkisi verir
k | can_localkill | Yerel /kill komutu kullanabilme yetkisi verir
K | can_globalkill | Global /kill komutu kullanabilme yetkisi verir
b | can_kline | /kline komutunu kullanabilme yetkisi verir
B | can_unkline | /kline -u@h komutunu kullanabilme yetkisi verir(kline silme yetkisi)
n | can_localnotice | Yerel sunucu noticeleri gönderebilme yetkisi verir
G | can_globalnotice | Global sunucu noticeleri gönderebilme yetkisi verir
z | can_zline | /zline komutunu kullanabilme yetkisi verir
t | can_gkline | /gline, /shun ve /spamfilter komutlarını kullanabilme yetkisi verir
Z | can_gzline | /gzline komutunu kullanabilme yetkisi verir
W | get_umodew | Oper açtığında kullanıcının +W modunu almasını sağlar
H | get_host | Oper açtığında kullanıcının oper hostu almasını sağlar
v | can_override | OperOverride kullanabilme yetkisi verir
q | can_setq | +q kullanıcı modunu kullanabilme yetkisi verir
X | can_addline | /addline komutunu kullanabilme yetkisi verir
d | can_dccdeny | /dccdeny ve /undccdeny komutlarını kullanabilme yetkisi verir

Belirli flaglar default olarak diğer flagları da verir:

local | global | admin/coadmin | services-admin | netadmin
can_rehash | can_rehash | can_rehash | can_rehash | can_rehash
helpop | helpop | helpop | helpop | helpop
can_globops | can_globops | can_globops | can_globops | can_globops
can_wallops | can_wallops | can_wallops | can_wallops | can_wallops
can_localroute | can_localroute | can_localroute | can_localroute | can_localroute
can_localkill | can_localkill | can_localkill | can_localkill | can_localkill
can_kline | can_kline | can_kline | can_kline | can_kline
can_unkline | can_unkline | can_unkline | can_unkline | can_unkline
can_localnotice | can_localnotice | can_localnotice | can_localnotice | can_localnotice
| can_globalroute | can_globalroute | can_globalroute | can_globalroute
| can_globalkill | can_globalkill | can_globalkill | can_globalkill
| can_globalnotice | can_globalnotice | can_globalnotice | can_globalnotice
|  | global | global | global
|  | can_dccdeny | can_dccdeny | can_dccdeny
|  |  | can_setq | can_setq
|  |  |  | admin
|  |  |  | services-admin

oper::swhois yönergesi oper whois bilgisine ekstra bir satır eklemenize olanak sağlar. [isteğe bağlı]

oper::snomask yönergesi ise oper açıldığında hangi snomaskların alınacağını belirlemenizi sağlar. Kullanılabilir SNOMASKlar için Bölüm 3.3'e bakın. [isteğe bağlı]

oper::modes yönergesi ise oper açıldığında alınacak modları belirlemenizi sağlar. [isteğe bağlı]

oper::maxlogins yönergesi ise belirtilen hosttan max kaç oper logini olabileceğini belirlemenizi sağlar. Örneğin bunu 1 olarak belirtmişseniz belirttiğiniz hosttan sadece tek bir kullanıcı oper açabilir. [isteğe bağlı]

Örnek:

    oper bobsmith {
    	class clients;
    	from {
    		userhost bob@smithco.com;
    		userhost boblaptop@somedialupisp.com;
    	};
    	password "f00";
    	flags {
    		netadmin;
    		can_gkline;
    		can_gzline;
    		can_zline;
    		can_restart;
    		can_die;
    		global;
    	};
    	swhois "Example of a whois mask";
    	snomask frebWqFv;
    };

OperOverride hakkında kısa bir bilgilendirme:
OperOverride ile: +ikl modlarında olan kanallara girebilirsiniz veya banları yok sayıp kanallara giriş yapabilirsiniz (ilk önce /invite komutuyla kendinizi davet etmeniz gerekir), bir kanalda kendinizi op yapabilirsiniz vs.
can_override oper flagı, oper yetkisini kötüye kullanma girişimlerinin önüne geçmek için eklenmiştir. Default ayarı olarak can_override flagını eklemedikçe, hiç bir oper override yapma yetkisine sahip değildir.

4.8 - DRpass Bloğu ÖNERİLİR (Önceden bilinen X:Line)

Kullanımı:

    drpass {
    	restart <restart-şifresi> { <auth-tipi>; };
    	die <die-şifresi> { <auth-tipi>; };
    };

Bu blok ile /restart ve /die şifrelerini drpass::restart ve drpass::die yönergeleriyle belirtebilirsiniz. drpass::restart:: ve drpass::die:: kısımları bu şifreler için auth tipini belirtmenize olanak verir. Geçerli auth tipleri: crypt, md5 ve sha1, ripemd-160.

Örnek:

    drpass {
    	restart "I-love-to-restart";
    	die "die-you-stupid";
    };

4.9 - Include Yönergesi

Kullanımı:
include <dosya-ismi>;

Bu yönergeyle yüklenecek ayrı bir konfigürasyon dosyası belirtebilirsiniz. Bu dosya konfigürasyon bloklarından herhangi birini içerebilir veya diğer herhangi bir dosya da olabilir. Dosya isminde birçok dosyayı tek seferde yükleyebilmek için (?) (*) (!) işaretlerinin kullanımı desteklenmektedir.

örnek 1: bir network (ağ) dosyası

    include mynetwork.network;

Ayrı bir network dosyası kullanmak istiyorsanız bu şekilde belirtebilirsiniz. Network dosyası artık gerekli değildir; bütün network ayarları direkt olarak unrealircd.conf'ta belirtilebilmektedir. Veya bu ayarları include ifadesi ile belirttiğiniz, yüklenecek dosya içinde de belirtebilirsiniz.

örnek 2: aliases

    include aliases/ircservices.conf

Bu yönergeye diğer bir örnek ise alias bloklarını içeren dosyaların belirtilmesi örneğidir, UnrealIRCd bir çok servis ile uyumlu olan aliaslar içerir:

- aliases/ircservices.conf (IRCServices, Daylight)
- aliases/epona.conf (Epona)
- aliases/anope.conf (Anope)
- aliases/auspice.conf (Auspice)
- aliases/generic.conf (Magick, Sirius, Wrecked)
- aliases/cygnus.conf (Cygnus)
- aliases/operstats.conf (OperStats)
- aliases/genericstats.conf (GeoStats, NeoStats)

4.10 - LoadModule Yönergesi GEREKLİ

Kullanımı:
loadmodule <dosya-ismi>;

Modüllerin neden kullanışlı olduklarını öğrenmek için buraya tıklayın.

Unreal3.2 ile birlikte gelen standart modüller:

commands.so / commands.dll - Bütün komutlar (henüz hepsi değil, ama sonuç olarak hepsi olacak GEREKLİ
cloak.so / cloak.dll - Gizleme modülü GEREKLİ (veya herhangi bir gizleme modülü)

Bu modüllerin yüklendiğinden emin olmanız gerekir:

    loadmodule
    "src/modules/commands.so";
    loadmodule "src/modules/cloak.so";

veya windows için:

    loadmodule "modules/commands.dll";
    loadmodule "modules/cloak.dll";

4.11 - Log Bloğu ÖNERİLİR

Kullanımı:

    log <dosya-ismi> {
    	maxsize <max-dosya-boyutu>;
    	flags {
    		<flag>;
    		<flag>;
    		...
    	};
    };

Log bloğu farklı amaçlar için farklı kayıt dosyaları tahsis etmenize olanak sağlar. log:: kayıt dosyasının ismini içerir. log::maxsize ise isteğe bağlı bir yönergedir, dosya bu yönergede belirtilen boyuta ulaştığında temizlenir ve dosyaya yeniden yazım başlar. Buraya belirteceğiniz değerde megabyte için MB, kilobyte için KB, gigabyte için GB şeklinde kullanım yapabilirsiniz. log::flags ile ne tür bilginin kaydedileceğini belirtebilirsiniz. Aşağıda geçerli mevcut flagların listesi verilmiştir.

Aynı zamanda farklı şeyleri farklı kayıt dosyalarında tutmak için birden fazla log bloğu oluşturabilirsiniz.

Mevcut Flaglar:

errors | self explanatory
kills | /kill noticelerini kaydeder
tkl | *line, shun ve spamfilter (ekleme/kaldırma/zamanaşımı) bilgilerini kaydeder
connects | kullanıcı giriş/çıkışlarını kaydeder
server-connects | sunucu bağlantılarını/çıkışlarını kaydeder
kline | /kline komutunun kullanımlarını kaydeder
oper | oper açma denemelerini kaydeder (hem başarılı olanları hem de başarısız olanları)
sadmin-commands | /sa* (samode, sajoin, sapart, vs.) komutlarının kullanımlarını kaydeder
chg-commands | /chg* (chghost, chgname, chgident, vs.) komutlarının kullanımlarını kaydeder
oper-override | operoverride kullanımlarını kaydeder
spamfilter | spamfilter eşleşmelerini kaydeder

Örnek:

    log ircd.log {
    	maxsize 5MB;
    	flags {
    		errors;
    		kills;
    		oper;
    		kline;
    		tkl;
    	};
    };

4.12 - TLD Bloğu İSTEĞE BAĞLI (Önceden bilinen T:Line)

Kullanımı:

    tld {
    	mask <hostmaskesi>;
    	motd <motd-dosyası>;
    	rules <kurallar-dosyası>;
    	shortmotd <kısamotd-dosyası>;
    	opermotd <opermotd-dosyası>;
    	botmotd <botmotd-dosyası>;
    	channel <kanal-ismi>;
    	options {
    		ssl;
    	}
    };

Tld bloğu kullanıcıların hostuna göre, kullanıcılara, belirli bir motd dosyası, kurallar dosyası veya kanal ataması yapmanızı sağlar. Farklı diller için farklı motdler istiyorsanız, tld bloğu kullanışlıdır. tld::mask ile belirttiğiniz kullanıcı@host maskesi kullanıcının kullanıcı adı(username) ve host (hostname) kısmıyla uyuşmalıdır. Belirttiğiniz hostmaskesine görüntülenecek motd, kısamotd, opermotd, botmotd ve kurallar dosyalarını sırasıyla tld::motd, tld::shortmotd, tld::opermotd, tld::botmotd, and tld::rules kısımlarında belirleyebilirsiniz. tld::shortmotd, tld::opermotd ve tld::botmotd kısımları isteğe bağlıdır. tld::channel kısmı da isteğe bağlıdır, bu belirtilen hostmaskesine sahip kullanıcıların bağlandıkları anda girecekleri kanalı belirler. Eğer bu belirtilirse default oto giriş kanalı, belirtilen hostmaskesinde ki kullanıcılar için geçerli olmayacaktır. tld::options bloğu ise ek olarak seçenek belirtmenizi sağlar, şu an için tek mevcut seçenek ssl seçeneğidir.

TLD girişleri eşleşmesi yukarıdan aşağıya doğrudur.

Örnek:

    tld {
    	mask *@*.fr;
    	motd "ircd.motd.fr";
    	rules "ircd.rules.fr";
    };

4.13 - Ban Nick Bloğu İSTEĞE BAĞLI (Önceden bilinen Q:Line)

Kullanımı:

    ban nick {

    	mask <nick>;
    	reason <yasaklama-için-sebep>;
    };

Ban nick bloğu bir nickin sunucuda kullanımını yasaklamanıza olanak sağlar. ban::mask kısmında birden çok nick belirtilebilmesi için (*), (!), (?) işaretleri kullanılabilir ve ban::reason kısmında ise bu yasaklama için gerekçe belirtilir. Çoğunlukla bu bloklar Network Servislerinin kullandığı nicklerin kullanımını yasaklamak için kullanılır.

Example:

    ban nick {
    	mask "*C*h*a*n*S*e*r*v*";
    	reason "Reserved for Services";
    };

4.14 - Ban User Bloğu İSTEĞE BAĞLI (Önceden bilinen K:Line)

Kullanımı:

    ban user {
    	mask <hostmaskesi>;
    	reason <ban-için-sebep>;
    };

Bu blok belirtilen kullanıcı@host hostmaskesine sahip kullanıcıların sunucuya girişlerini engellemek için kullanılır. ban::mask kısmında belirtilecek kullanıcı@host maskesinde (?), (*), (!) işaretleri kullanılabilir, ve ban::reason kısmında ise ban için sebep belirtilir. Not, burada atılacak ban yerel bir bandır, kullanıcı ağdaki diğer bir sunucuya bağlantı sağlayabilir.

Örnek:

    ban user {
    	mask *tirc@*.saturn.bbn.com;
    	reason "Idiot";
    };

4.15 - Ban IP Bloğu İSTEĞE BAĞLI (Önceden bilinen Z:Line)

Kullanımı:

    ban ip {
    	mask <ipmaskesi>;
    	reason <ban-için-sebep>;
    };

Ban ip bloğu belirtilen ip maskesinin sunucuya erişimini yasaklamak için kullanılır. Bu bağlantı deneyen kullanıcıları ve sunucuları da içerir. ban::mask parametresi (?), (*), (!) işaretlerini de içerebilecek bir IP'dir, ban::reason kısmında ise ban gerekçesi belirtilir. Bu ban sunucuları da kapsadığından çok dikkatli kullanılmalıdır.

Örnek:

    ban ip {
    	mask 192.168.1.*;
    	reason "Get a real ip u lamer!";
    };

4.16 - Ban Server Bloğu İSTEĞE BAĞLI (Önceden bilinen q:Line)

Kullanımı:

    ban server {
    	mask <sunucu-ismi>;
    	reason <ban-için-sebep>;
    };

Bu blok belirtilen sunucunun ağa bağlantısını engellemek için kullanılır. Eğer belirtilen sunucu direkt olarak sunucunuza linklenirse, link reddedilir. Eğer belirtilen sunucu uzak sunucuya linklenirse, yerel sunucunun ağdan bağlantısı kesilir. ban::mask kısmında bağlantısı engellenecek sunucu ismi belirtilir, burada (?), (*), (!) işaretleri kullanılabilir ve ban::reason kısmında ise bu engelleme için gerekçe belirtilir.

Örnek:

    ban server {
    	mask broken.server.my.network.com;
    	reason "Its broken!";
    };

4.17 - Ban RealName Bloğu İSTEĞE BAĞLI (Önceden bilinen n:Line)

Kullanımı:

    ban realname {
    	mask <realname-maskesi>;
    	reason <ban-için-sebep>;
    };

Ban realname bloğu bir kullanıcıyı, GECOS kısmı esas alınarak, banlamanıza olanak sağlar. Bu clone saldırılarını durdurmada yardımcı olacaktır, çünkü çoğunlukla saldırılarda ki clone botlar aynı realname 'e sahiptir. ban::mask kısmında banlanacak realname belirtilir. Bu kısımda (*), (?), (!) işaretleri kullanılabilir. ban::reason kısmında ise ban gerekçesi belirtilir.

Örnek:

    ban realname {
    	mask "Bob*";
    	reason "Bob sucks!";
    };

4.18 - Ban Version Bloğu İSTEĞE BAĞLI

Kullanımı:

    ban version {
    	mask <versiyon-maskesi>;
    	reason <ban-için-sebep>;
    	action [kill|tempshun|shun|kline|zline|gline|gzline];
    };

Ban version bloğu bir kullanıcıya, kullandığı IRC client yazılımı esas alınarak, ban atmanıza olanak verir. Bu, kullanıcıların CTCP version 'a karşı verdikleri cevap kullanılarak yapılır. Bu yüzden eğer kullanıcı CTCP version'a cevap vermezse ban işlevi geçerli olmayacaktır. Bu özellik kötü niyetli scriptleri bloke etmek için tasarlanmıştır. ban::mask kısmında banlanacak versiyon belirtilir. Bu kısımda (?), (*), (!) işaretleri kullanılabilir. ban::reason kısmında ise ban gerekçesi belirtilir. Aynı zamanda ban::action kısmında, kill default değeri olmak üzere, tempshun/shun/kline/zline/gline/gzline eylemlerini de, (*@IPADDR) şeklinde uygulanmak üzere belirtebilirsiniz. Burada atılacak banın süresi set::ban-version-tkl-time kısmında belirtilen değerdir ve default değeri 1 gündür.

Örnek:

    ban version {
    	mask "*SomeLameScript*";
    	reason "SomeLameScript contains backdoors";
    };

    ban version {
    	mask "*w00tZombie*";
    	reason "I hate those hundreds of zombies";
    	action zline;
    };

4.19 - Ban Exceptions Bloğu İSTEĞE BAĞLI (Önceden bilinen E:Line)

Kullanımı:

    except ban {
    	mask <hostmaskesi>;
    };

Except ban bloğu, ban atılsa dahi, atılan ban kaldırılmaksızın sunucuya giriş yapabilecek kullanıcı@host 'ları belirtmenizi sağlar. Belirli bir ISP için bütün ip'lere ban atmak istediğinizde bu özellik yararlı olacaktır, çünkü o ISP üzerinden bağlantı sağlayan, sunucuya girebilmelerini istediğiniz kullanıcıların bu blok ile sunucuya girişleri mümkün olacaktır. except::mask yönergesi ile sunucuya bu şekilde girmelerine izin verilecek kullanıcıların maskelerini kullanıcı@host şeklinde belirtebilirsiniz.

Örnek:

    except ban {
    	mask myident@my.isp.com;
    };

4.20 - TKL Exceptions Bloğu İSTEĞE BAĞLI

Kullanımı:

    except tkl {
    	mask <hostmaskesi>;
    	type <tip>;
    	type {
    		<tip>;
    		<tip>;
    		...
    	};
    };

Except tkl bloğu , belirtilen tip(ler)de atılan bir ban kaldırılmaksızın, sunucuya giriş yapabilecek kullanıcı@host 'ları belirtmenizi sağlar. Eğer belirli bir ISP için bütün IPlere ban atmak istiyorsanız ve hala bu ISP üzerinden belirli kullanıcıların girebilmesini istiyorsanız bu blokla bunu mümkün kılabilirsiniz. except::mask yönergesi ile bağlantısına izin verilecek kullanıcı@host maskesi belirtilir. except::type yönergesi ile hangi bandan etkilenilmeyeceği belirtilir. Geçerli tipler: gline, gzline, qline, gqline, ve shun, eğer type {} formatı kullanılırsa birden fazla tip belirtilebilir.

Örnek:

    except tkl {
    	mask myident@my.isp.com;
    	type gline;
    };

4.21 - Throttle Exceptions Bloğu İSTEĞE BAĞLI

Kullanımı:

    except throttle {
    	mask <ipmaskesi>;
    };

Except throttle bloğu ile throttling sisteminden etkilenmiyecek IP maskelerini belirtebilirsiniz. Bu blok ancak throttling özelliğini aktif ederseniz işlem görecektir. except::mask yönergesi ile bu sistemden etkilenmeyecek IP maskesi belirtilir.

Örnek

    except throttle {
    	mask 192.168.1.*;
    };

4.22 - Deny DCC Bloğu İSTEĞE BAĞLI (Önceden bilinen dccdeny.conf)

Kullanımı:

    deny dcc {
    	filename <bloke-edilecek-dosya-ismi>;
    	reason <bloke-için-gerekçe>;
    	soft [yes|no];
    };

Deny dcc bloğu sunucu üzerinden DCC yoluyla gönderilmesine izin verilmeyecek dosya isimlerini belirtmenize olanak sağlar. Bu trojanların ve virüslerin yayılmasını engellemeye yardımcı olacaktır.

deny::filename yönergesi ile gönderimine izin verilmeyecek dosya ismi belirtilir, burada (?), (*), (!) işaretleri kullanılabilir, deny::reason yönergesi ile gönderimi bloklama gerekçesi belirtilir.

Aynı zamanda birde deny::soft seçeneği vardır, eğer bu yönerge değeri 'yes' olarak belirtilirse karşı taraf dosyayı /DCCALLOW +göndermeyi-deneyen-nick komutuyla alabilir. Daha fazla bilgi için dccallow.conf dosyasına göz atın.

Örnek

    deny dcc {
    	filename virus.exe;
    	reason "This is a GD Virus";
    };

    deny dcc {
    	filename "*.exe";
    	reason "Executable content";
    	soft yes;
    };

4.23 - Deny Version Bloğu İSTEĞE BAĞLI (Önceden bilinen V:Line)

Kullanımı:

    deny version {
    	mask <sunucu-ismi>;
    	version <versiyon-numarası>;
    	flags <derleme-flagları>;
    };

Bu blok, bir sunucudan gelecek linki, sunucunun kulandığı Unreal versiyonuna ve derleme zamanı flag seçeneklerine göre reddetmenize olanak sağlar. Bu blok format olarak biraz kompleks bir yapıya sahiptir ama düzenlemesi o kadar zor değildir. deny::mask yönergesi ile linki, kullandığı unreal versiyonu sebebiyle reddedilecek sunucu maskesi belirtilir, burada (?), (*), (!) işaretleri kullanılabilir. deny::version yönergesi ile sözü edilen unreal versiyonunun protokol numarası belirtilir.

Örneğin, 3.0 versiyonu için bu numara 2301, 3.1.1/3.1.2 için 2302, 3.2 için 2303 olarak belirtilebilir. Bu parametrenin ilk karakteri olarak >, <, =, ! işaretleri belirtilebilir. Bu karakterle IRCd'e, belirtilecek versiyonu nasıl yorumlağacağı bildirilir. Eğer ilk karakter olarak > işareti belirtilmişse, versiyon numarası belirtilen versiyondan büyük olan bütün versiyonların linki reddedilecektir. Eğer ilk karakter olarak < işareti belirtilmişse, versiyon numarası belirtilen versiyondan küçük olan bütün versiyonların linki reddedilecektir. Eğer ilk karakter olarak = işareti belirtilmişse sadece o versiyonun linki reddedilecektir, ve eğer ! işareti belirtilmişse ilk karakter olarak, belirtilen versiyon haricinde ki bütün versiyonların linki reddedilecektir. deny::flags yönergesi ile sunucunun olabilecek veya olamayacak derleme zamanı flagları belirtilir. Flaglar aralarında boşluk olmadan ardarda belirtilir, eğer başında ! karakteri belirtilirse, belirtilen flaglar haricindeki flaglara sahip versiyonların linki reddedilecektir. Eğer ! işareti yoksa sadece belirtilen flaglarla derlenmiş versiyona sahip sunucuların linki reddedilecektir.

4.24 - Deny Link Bloğu İSTEĞE BAĞLI (Önceden bilinen D/d:Line)

Kullanımı:

    deny link {
    	mask <sunucu-ismi>;
    	rule <ifade>;
    	type <reddetme-tipi>;
    };

Bu blok bir sunucudan gelecek linkin belirli kurallara göre reddedilmesine olanak sağlar. deny::mask yönergesi ile belirtilecek kurallarla örtüşen sunucu ismi maskesi belirtilir, burada (!),(*),(?) işaretleri kullanılabilir. deny::rule yönergesi çok kompleks bir yapıya sahiptir. Bu yönerge sayesinde linki çok büyük bir ayrıntıyla kontrol edebilirsiniz. Bu yönerge ile 4 operator belirtilebilir, connected(<sunucumaskesi>), eğer belirtilen sunucumaskesi bağlı olan bir sunucu ile eşleşirse bu yönergenin dönüş değeri lojik 1'dir, directcon(<sunucumaskesi>), eğer belirtilen sunucu maskesi direkt bağlantı ile sunucuya linkli ise bu yönergenin dönüş değeri lojik 1'dir, via(<viamaskesi>,<sunucumaskesi>), eğer belirtilen sunucumaskesi, viamaskesi ile eşleşmiş bir sunucu tarafından bağlantı kuruyorsa bu yönergenin dönüş değeri lojik 1'dir, ve directop(), eğer link /connect komutu ile direkt olarak gerçeklendiyse dönüş değeri yine lojik 1'dir. Bu operatörler && (ve) ve || (veya) karakterleri ile birleştirilebilir, öğeler gruplama sağlamak için parantez içinde de belirtilebilir. Ek olarak bir operatörden önce ! karakteri belirtilirse bu, bu karakter kullanılmadan önce ki dönüş değeri 1 ise bunu 0 yapar. Eğer dönüş değeri lojik olarak 1se link reddedilecektir. deny::type yönergesi iki farklı değere izin verir, auto (otomatik bağlantılar, /connect hala kullanılabilir) ve all (bütün bağlantı denemeleri).

4.25 - Deny Channel Bloğu İSTEĞE BAĞLI (Önceden bilinen chrestrict.conf)

Kullanımı:

    deny channel {
    	channel "<kanal-maskesi>";
    	reason <yasaklama-için-gerekçe>;
    	redirect "<kanal-ismi>";
    	warn [on|off];
    };

Deny channel bloğu, kullanıcıların belirli kanallara girmesini engellemenize olanak sağlar. deny::channel yönergesi ile girilemeyecek kanal maskesi belirtilir, burda (*),(?),(!) işaretleri kullanılabilir. deny::reason yönergesi ile kanala neden girilemeyeceğinin gerekçesi belirtilir. Ek olarak, deny::redirect yönergesini de kullanabilirsiniz. Eğer bu yönerge ile bir kanal ismi belirtirseniz, kullanıcı deny::channel yönergesi ile belirttiğiniz kanala girmeyi denerse otomatik olarak deny::redirect yönergesinde belirttiğiniz kanala yönlendirilecektir. Aynı zamanda deny::warn yönergesini de ,belirtilen kanala girme denendiğinde, operlere uyarı gitmesi için (eğer on olarak belirtirseniz) kullanabilirsiniz.

Örnek

    deny channel {
    	channel "#unrealsucks";
    	reason "No it don't!";
    };

    deny channel {
    	channel "#*teen*sex*";
    	reason "You == dead";
    	warn on;
    };

    deny channel {
    	channel "#operhelp";
    	reason "Our network help channel is #help, not #operhelp";
    	redirect "#help";
    };

4.26 - Allow Channel Bloğu İSTEĞE BAĞLI

Kullanımı:

    allow channel {
    	channel "<kanal-maskesi>";
    };

Allow channel bloğu ile kullanıcıların girebileceği belirli kanallar belirtebilirsiniz. allow::channel yönergesi ile kanal maskesi belirtilir, burada (*),(?),(!) işaretleri kullanılabilir.

Örnek:

    allow channel {
    	channel "#something";
    };

4.27 - Allow DCC Bloğu İSTEĞE BAĞLI

Kullanımı:

    allow dcc {
    	filename "<dosyaismi-maskesi>";
    	soft [yes|no];
    };

Allow dcc bloğu , deny dcc bloğunun kapsamı dışında tutulacak dosya isimleri belirtebilmenize olanak sağlar. Burada (*),(?),(!) işaretleri kullanılabilir. Eğer allow dcc::soft yönergesini 'yes' olarak belirtirseniz 'soft dcc bans' listesi kullanılır, eğer 'no' olarak belirtirseniz normal ('hard') dcc ban listesi kullanılır.

Örnek:

    allow dcc {
    	filename "*.jpg"; /* Görüntü dosyaları genelde güvenilirdir. */
    	soft yes;
    };

4.28 - Vhost Bloğu İSTEĞE BAĞLI (Önceden bilinen vhosts.conf)

Kullanımı:

    vhost {
    	vhost <vhost>;
    	from {
    		userhost <hostmaskesi>;
    		userhost <hostmaskesi>;
    		...
    	};
    	login <login-ismi>;
    	password <şifre> { <auth-tipi>; };
    	swhois "<swhois bilgisi>";
    };

Vhost bloğu, /vhost komutuyla host alabilmek için kullanılacak login/şifreyi belirlemenize olanak sağlar. vhost::vhost parametre olarak user@host biçiminde olabilir veya sadece host biçiminde de olabilir. Bu yönergeyle kullanıcının /vhost komutunu kullandığında alacağı hostu belirtebilirsiniz. vhost::from::userhost yönergesiyle vhost kullanım hakkı olacak user@host 'ları belirtebilirsiniz, burda belirteceğiniz maskenin vhost komutunu kullanacak kullanıcının maskesiyle eşleşmesi gereklidir. Birden fazla hostmaskesi belirtebilirsiniz. vhost::login yönergesi ile kullanıcının girmesi gereken login ismini, vhost::password yönergesi ile kullanıcının girmesi gereken şifreyi belirtebilirsiniz. vhost::password:: yönergesi ile belirtilen şifre için auth tipini de belirtebilirsiniz. Geçerli auth tipleri: crypt, md5, and sha1, ripemd-160. Son olarak vhost::swhois yönergesi, vhost kullanacak kullanıcının whois bilgisine ekstra bir satır eklemenize olanak sağlar, kullanımı ise oper::swhois yönergesindeki kullanım şekli ile aynıdır.

Örnek:

    vhost {
    	vhost my.own.personal.vhost.com;
    	from {
    		userhost my@isp.com;
    		userhost myother@isp.com;
    	};
    	login mynick;
    	password mypassword;
    	swhois "Im Special";
    };

4.29 - Badword Bloğu İSTEĞE BAĞLI (Önceden bilinen badwords.*.conf)

Kullanımı:

    badword <type> {
    	word <eşleşecek-metin>;
    	replace <yerine-gelecek-metin>;
    	action <replace|block>;
    };

Badword bloğu, kullanıcı ve kanal modu olan +G modu için gönderimi engellenecek "badwords" (kötü kelimeler) listesini yönetmenize olanak sağlar. badword:: yönergesi ile tip belirtilir, geçerli tipler: channel, message, quit ve all. channel: kanal modu +G için "badwords" listesi için, message: kullanıcı modu +G için "badwords" listesi için, quit: çıkış mesajlarını sansürlemek için, ve all: her 3 liste için kullanılabilir. badword::word yönergesi ile sade bir kelime belirtebilirsiniz veya bir ifade (regex) de belirtebilirsiniz. badword::replace ile badword::word yönergesiyle belirtilen ifade veya kelime eşleşmesi gerçekleşmesi durumunda, bu ifade veya metnin yerine gönderilecek metni belirtebilirsiniz. Eğer badword::replace yönergesi belirtilmezse, metin eşleşmesi durumunda metin <censored> ile değiştirilecektir. badword::action yönergesi ile, kötü kelimeler listesi içinde bulunan bir ifade kullanılması halinde uygulanacak eylem belirtilir. Eğer burda replace belirtilirse ifade badword::replace yönergesiyle belirtilen metinle değiştirilecektir, eğer block belirtilirse ifade bloklanacaktır. Eğer burda hiçbirşey belirtmezseniz geçerli eylem replace eylemi olacaktır.

Örnek:

    badword channel {
    	word shit;
    	replace shoot;
    };

4.30 - ULines Bloğu İSTEĞE BAĞLI (Önceden bilinen U:Line)

Kullanımı:

    ulines {
    	<sunucu-ismi>;
    	<sunucu-ismi>;
    	...
    };

Ulines bloğu, belli sunuculara ekstra yetkiler vermenize olanak sağlar. Bu sadece servisler ve stats sunucuları için kullanılmalıdır. Normal bir sunucu burda belirtilmemelidir.

Örnek

    ulines {
    	services.mynetwork.com;
    	stats.mynetwork.com;
    };

4.31 - Link Bloğu İSTEĞE BAĞLI (Önceden bilinen C/N/H:Lines)

Kullanımı:

    link <sunucu-ismi> {
    	username <kullanıcımaskesi>;
    	hostname <ipmaskesi>;
    	bind-ip <bağlanılacak-ip>;
    	port <bağlantı-için-kullanılacak-port>;
    	password-connect <bağlantı-için-gereken-şifre>;
    	password-receive <onaylanacak-şifre> { <auth-tipi>; };
    	hub <hub-maskesi>;
    	leaf <leaf-maskesi>;
    	leafdepth <depth>;
    	class <sınıf-ismi>;
    	ciphers <ssl-anahtarları>;
    	options {
    		<tercih>;
    		<tercih>;
    		...
    	};
    };

Bu sunucuları linklemek için gerekli bloktur, lütfen burda yazılan açıklamaları okumaya zaman ayırın, çünkü bu zor işlemlerden bir tanesidir ve kullanıcılar genellikle bu kısımda hata yaparlar ;P

İlk olarak sunucu-ismi ile uzak sunucu ismi belirtilir, uzak sunucu ismi, o sunucunun me { } bloğunda belirtilen isimdir, hub.blah.com gibi (IP olamaz ve uzak sunucunun hostname'inden farklı olabilir).

username
Eğer kimlik denetimi için sunucunuzda identi kullanıyorsanız bu kısmı belirtebilirsiniz, normalde "*" olarak belirtilir.

hostname
Uzak sunucunun IP'si veya hostudur. Bu hem bağlantı hem de kimlik denetimi/doğrulaması için kullanılır. Birkaç örnek:

1.2.3.4 | normal IP
hub.blah.com | sadece giden bağlantılar için, gelen bağlantılarda, link::options::nohostcheckhost yönergesi ile belirtilmeden, kabul edilemez
* | doğru şifre kullanıldığı sürece link hangi hostname'den gelirse gelsin bağlanmasına izin verilecektir
::ffff:1.2.3.4 | ipv6 özelliğini kullanan bir sunucuyu ipv4 özelliğini kullanan bir sunucuya linklemek için kullanılır

bind-ip (isteğe bağlı)
Belirli bir IP'ye bağlamak için kullanılabilir (ör: 192.168.0.1) , hemen hemen neredeyse hiç kullanılmaz.

port
Link için bağlantı portu.

password-connect
Uzak sunucuya bağlanmak için gerekli olan şifre, sade-metin şeklinde olmalı.

password-receive
Gelen linkleri doğrulamak (onaylamak) için gerekli şifre. Geçerli metodların biri ile yeniden şifrelenebilir.(geçerli metodlar: crypt, md5, sha1, ripemd-160). Şifre olarak sade-metin belirtmek için auth-tipi parametresini kullanmayın. Bu şifre genellikle uzak sunucuya bağlanmak için gerekli olan şifre ile aynıdır.

hub vs leaf
Birçok sunucunun linklendiği sunucu bir hubdur, leaf ise tek bir linke sahiptir...Bir sunucu ya hubdur, yada leafdir, bu 2 seçeneği beraber kullanamazsınız.

hub (isteğe bağlı)
hub olarak bağlanacak sunucuların maskesidir (ör: *.my.net).

leaf (isteğe bağlı)
leaf olarak bağlanacak sunucuların maskesidir.

leaf-depth (isteğe bağlı)
Eğer bu belirtilirse leaf de belirtilmelidir. Belirtilen sunucu için sıçrama sayısıdır.

class
Sunucunun bulunacağı sınıftır (class), genellikle bunun için ayrı bir sunucu sınıfı kullanılır (server class).

compression-level (isteğe bağlı)
Bu link için sıkıştırma düzeyini belirtir (1-9 arasında olmalıdır). Sadece, daha önceden link::options::zip yönergesi belirtildiyse kullanılır.

ciphers (isteğe bağlı)
Bu linkte kullanılacak SSL anahtarlarını belirtir. Mevcut geçerli anahtarları görmek için `openssl ciphers` komutunu kullanın. Anahtarlar : işareti ile ayrılarak ayrı ayrı belirtilebilir.

options bloğu
Sunucuyla bağlantı sırasında bir veya daha çok tercih kullanılır, bazen de gerekmez.

ssl | Eğer SSL portundan bağlanıyorsanız bu seçeneği tercih edebilirsiniz.
autoconnect | Sunucu, bağlanmayı otomatik olarak deneyecekse (bunu tek taraflı olarak aktif etmeniz önerilir leaf->hub) bu seçeneği tercih edebilirsiniz.
zip | Eğer sıkıştırılmış linkler istiyorsanız (derleme sırasında belirtilmeli + her iki tarafta da tercih edilmeli) bu seçeneği tercih edebilirsiniz.
nodnscache | giden sunucu bağlantısında IP gizlemesinin olmasını istemiyorsanız bu seçeneği tercih edebilirsiniz. Bunu eğer host sık sık değişiyorsa kullanın (dyndns.org gibi).
nohostcheck | uzakta host (link::hostname yönergesi ile belirtilen host)doğrulaması yapılsın istemiyorsanız bu seçeneği tercih edebilirsiniz. Bunu eğer host sık sık değişiyorsa kullanın (dyndns.org gibi).
quarantine | Bu sunucuda ki operler GLOBAL oper yetkilerine sahip olamazlar, linkleri test etmek gibi eylemlerde kullanılır.

Örnek:

    link hub.mynet.com {
    	username *;
    	hostname 1.2.3.4;
    	bind-ip *;
    	port 7029;
    	hub *;
    	password-connect "LiNk";
    	password-receive "LiNk";
    	class servers;
    	options {
    		autoconnect;
    		ssl;
    		zip;
    	};
    };

4.32 - Alias Bloğu İSTEĞE BAĞLI

Kullanımı [standard alias]:

    alias <isim> {
    	target <yönlenilecek-nick>;
    	type <alias-tipi>;
    	spamfilter <yes|no>;
    };

(Not: aynı zamanda UnrealIRCd'in sahip olduğu standart alias dosyalarını görmek için buraya tıklayın.)

Alias bloğu [standard alias] bir kullanıcıya bir komutu yönlendirmenize olanak sağlar, örneğin /chanserv komutu chanserv nickli kullanıcıya mesaj gönderir. alias:: ile alias olacak komut ismi belirtilir(ör: chanserv), alias::target yönergesi ile hedef olarak komutun yönlendirileceği nick veya kanal belirtilir, eğer alias:: kısmı belirtilen hedef ile aynı olacaksa, bu durumda alias::target belirtilmeyebilir. alias::type yönergesi ile alias'ın tipi belirtilir, geçerli tipler: services (hedef servisler kullanıcısı ise), stats (hedef istatistik sunucusu kullanıcısı ise), normal (hedef ağdaki herhangi bir sunucudaki herhangi bir kullanıcı ise), ve channel (hedef bir kanal ismi ise). Eğer alias::spamfilter (isteğe bağlı) yönergesi değeri 'yes' olarak belirtilirse, spam filtre sistemi gönderilecek mesajı kontrol edecektir, bu yönerge için default değeri 'no' 'dur.
Alias bloğunun, aşağıda açıklandığı üzere, diğer bir formatı da vardır.

Kullanımı [command alias]:

    alias <isim> {
    	format <düzenli-ifade> {
    		target <yönlenilecek-nick>;
    		type <alias-tipi>;
    		parameters <parametre-dizisi>;
    	};
    	format <düzenli-ifade> {
    		command <komut>;
    		type real;
    		parameters <parametre-dizisi>;
    	};
    	format <düzenli-ifade> {
    		...
    	};
    	type command;
    	spamfilter <yes|no>;
    };

Alias bloğunun bu formatta kullanımı size daha geniş bir etki alanı sağlar. Örneğin /identify gibi bir alias oluşturabilirsiniz. alias:: yukarıda anlatıldığı ile aynı formdadır, alias komutunun ismidir. alias::format ile, alias komutuna gönderilecek metinle karşılaştırılması yapılacak ifade belirtilir, alias komutunun, gönderilecek metine göre farklı şeyler yapmasını birden fazla alias::format yönergesi belirterek sağlayabilirsiniz. alias::format::target yönergesiyle bu alias komutunun yönlendirileceği hedef belirtilir, "gerçek alias" ta bu yönerge yerine alias::format::command yönergesi kullanılır. alias::format::type ile yönlendirilecek mesajın tipini belirtebilirsiniz, burada aynı zamanda tip olarak "gerçek alias" için "real" olarak belirtme yapabiliriz. alias::format::parameters bu aliasa gönderilecek parametreleri belirtmenizi sağlar. Bu parametreleri % işaretini takip eden bir sayıyla belirtebilirsiniz, örneğin %1 ilk parametreyi temsil eder. Bütün parametreleri belirli bir parametreden sona doğru belirtmek için % işareti, ardından gelen bir sayı ve ardından da - işaretini belirterek sağlayabilirsiniz, örneğin %2- bütün parametreleri 2. parçadan itibaren sona doğru belirtir. Komutlar için alias bloğunun kullanımına örnekler için, doc/example.conf dosyasına bakın.

4.33 - Help Bloğu İSTEĞE BAĞLI

Kullanımı:

    help <komut> {
    	<metin-dizisi>;
    	<metin-dizisi>;
    	...
    };

(Note: normally you just include help.conf)

Help bloğu /helpop komutunda kullanılmak üzere girişler oluşturmanıza olanak sağlar. help:: /helpop ile belirtilmesi gereken parametre değeridir, eğer bu kısım belirtilmezse metin dizileri tek /helpop komutu kullanımında (parametresiz kullanımında) görüntülenecektir. Bu blokta belirtilen metin dizileri /helpop komutunun belirtilen parametre ile kullanılması durumunda kullanıcıya gönderilecektir.

4.34 - Official Channels Bloğu İSTEĞE BAĞLI

Kullanımı:

    official-channels {
    	"#channel" { topic "The default topic"; };
    };

Bu blokta belirtilecek kanallar; kanallarda kullanıcı bulunmasa dahi /list komutu uygulandığında kanal listesinde gözükecektir. topic ise isteğe bağlı olarak belirtilebilir. Burda belirtilen topic sadece kanalda kullanıcı bulunmadığında ve /list komutunun uygulanması durumunda gösterilecektir.

Örnek:

    official-channels {
    	"#Help" { topic "The official help channel, if nobody is present type
    /helpop helpme"; };
    	"#Home";
    	"#Main" { topic "The main channel"; };
    };

4.35 - Spamfilter Bloğu İSTEĞE BAĞLI

Spamfilter bloğu ile lokal (yerel) spam filtreleri ekleyebilirsiniz. (ağ çapında değil).
Spam filtreleri hakkında daha fazla bilgi edinmek için Özellikler - Spamfilter bölümüne bakınız.

Kullanımı:

    spamfilter {
    	regex <kelime>;
    	target { <hedef(ler)> };
    	action <eylem>;
    	reason <sebep>;
    	ban-time <süre>;
    };

regex ile filtrelenecek ifade belirtilir.
target ile hedef(ler) belirtilir, olası hedef tiplerini görmek için buraya tıklayınız. (ör: 'channel')
action ile uygulanacak eylem belirtilir, olası eylem tiplerini görmek için buraya tıklayınız. (ör: 'gline').
reason isteğe bağlı: yasaklama (ban) veya bloke etme gerekçesi belirtilir. eğer belirtilmezse default değeri gerekçe olarak görüntülenecektir.
ban-time isteğe bağlı: *line ban veya shun için süre belirtmenize olanak sağlar, eğer belirtilmezse default değeri uygulanır.(default değeri: 1 gün).

Örnekler:

    spamfilter {
    	regex "Come watch me on my webcam";
    	target { private; channel; };
    	action gline;
    	reason "You are infected, please go to
    www.antivirus.xx/blah/virus=GrrTrojan";
    	ban-time 6h;
    };

    spamfilter {
    	regex "come to irc\..+\..+";
    	target { private; channel; };
    	action gline;
    	action gline;
    	reason "No spamming allowed";
    };

4.36 - Cgiirc Bloğu İSTEĞE BAĞLI

Cgiirc bloğu, güvendiğiniz CGI:IRC ağ gecitleri için, host spoofing özelliğini yapılandırmanıza olanak sağlar (daha fazla bilgi).

Kullanımı:

    cgiirc {
    	type <webirc|old>;
    	username <maske>; /* isteğe bağlı */
    	hostname <maske>;
    	password <şifre>; /* sadece webirc tipi için */
    };

type ya 'webirc' ya da 'old' olarak belirtilir.
username kısmı ident ile eşleşir(eğer kullanılıyorsa). eğer belirtilmezse, değer, "*" olarak varsayılır.
hostname eşleşmeye karşı düşecek maskedir.
password webirc şifresidir, sadece type kısmında 'webirc' değerinin belirtilmesi durumunda kullanılır.

'webirc' metoduyla nasıl yapılandırılır (önerilen metod)
CGI:IRC konfigürasyon dosyanızda (cgiirc.conf) webirc_password kısmında uygun bir şifre belirtin.
Daha sonra unrealircd.conf dosyanızın içinde cgiirc bloğuna bu hostu ve şifreyi ve cgi::type yönergesiyle de "webirc" değerini belirtin.
Örnek:
CGI:IRC konfigürasyon dosyanıza (cgiirc.conf) ekleyeceğiniz kısım:

    webirc_password = LpT4xqPI5

daha sonra, unrealircd.conf dosyanıza ekleyeceğiniz cgiirc bloğu:

    cgiirc {
    	type webirc;
    	hostname "1.2.3.4";
    	password "LpT4xqPI5";
    };

'old' metoduyla nasıl yapılandırılır
NOT: İki dezavantajı olması nedeniyle bu metod önerilmez. Dezavantajları: bu metod spoof için gönderilecek IP/host 'u bir sunucu şifresi gibi gönderir, yani bir CGI:IRC kullanıcısı bağlantı için bir sunucu şifresi belirtemez. Ek olarak erişim kontrolu sadece IP-tabanlıdır ve 'webirc' metodunda olduğu gibi ekstradan bir şifre gerektirmez. Kısacası eğer gerçekten geçerli bir sebebiniz yoksa bu metodu kullanmayın.
CGI:IRC konfigürasyon dosyanızda (cgiirc.conf) set realhost_as_password kısmınının değerini 1 olarak belirtin.
Daha sonra bu hosta izin vermek için unrealircd.conf dosyanıza cgiirc bloğunu ekleyin.
Örnek:
CGI:IRC konfigürasyon dosyanıza (cgiirc.conf) ekleyeceğiniz kısım:

    realhost_as_password =
    1

Daha sonra unrealircd.conf dosyanıza ekleyeceğiniz cgiirc bloğu:

    cgiirc {
    	type old;
    	hostname "1.2.3.4";
    };

4.37 - Set Bloğu GEREKLİ (Önceden bilinen unrealircd.conf/networks file)

Tek sunuculu ağlarda, bütün set deyimlerini unrealircd.conf dosyanızda belirtebilirsiniz. Çok sunuculu ağlarda ise her bir sunucu için ayrı bir set dosyası kullanmanız önerilir.

Eğer sunucunuz bir ağa bağlı ise, bu durumda ağ ile aynı Set ayarlarını kullanacaksınız. Bu sebeple böyle bir durumda include yönergesiyle yüklenecek bir ağ dosyası oluşturmanız daha mantıklıdır. Aşağıda mevcut bütün set yönergelerini ve açıklamalarını bulabilirsiniz.

Dökümanın bu kısmında ayarların / yönergelerin <blok-ismi>::<blok-yönergesi> formatında olduğundan bahsetmek istiyoruz. Bu format direkt olarak konfigürasyon dosyasında belirtilemez. Dolayısıyla konfigürasyon dosyasında belirtilebilmesi için aşağıdaki formata çevirilmesi ZORUNLUDUR.

Kullanımı:

    set {
    	<giriş> <değer>;
    	<giriş> <değer>;
    	...
    };

Set bloğuyla sunucuda kullanılacak özellikler/tercihler teker teker belirtirilir. Her bir girişin farklı anlamı vardır ve bu nedenle herbiri aşağıda açıklanmıştır. Bazı yönergelerin ise, yine açıklanacak, alt blokları vardır. Bütün özelliklerin karşılanması için birçok set ifadesi vardır, bütün ifadeler aşağıda listelenmiştir, herbiri 1 set ifadesi altında belirtilebilir.
Örnek:

    set {
    	kline-address my@emailaddress.com;
    	auto-join #welcome;
    	options {
    		hide-ulines;
    	};
    	hosts {
    		local LocalOp.MyNet.com;
    		global globalop.mynet.com;
    	};
    };

Eğer set ifadelerini ayırmak istiyorsanız, aşağıdaki formatı kullanabilirsiniz.
Örnek:
set { options { hide-ulines; no-stealth; }; };

set::kline-address <email-adresi>;
Burada iletişim için, K:line'lar ile ilgili soruların/sorunların gönderileceği, email adresi belirtilir. Burada belirtilen adres K:line komutu uygulandığında sunucudan bağlantısı kesilen kullanıcıya görüntülenecektir. Bu değer belirtilmek zorundadır.

set::gline-address <email-adresi>;
Burada iletişim için, G:line'lar ile ilgili soruların/sorunların gönderileceği, email adresi belirtilir.

set::modes-on-connect <+modlar>;
Kullanıcının sunucuya bağlandığı anda alacağı modları belirtir.

set::snomask-on-connect <+modlar>
Kullanıcının sunucuya bağlandığı anda alacağı snomaskları belirtir.

set::modes-on-oper <+modlar>;
Oper açıldığı anda alınacak modları belirtir.

set::snomask-on-oper <+modlar>;
Oper açıldığı anda alınacak snomaskları belirtir.

set::modes-on-join <+modlar>;
Kanalın, kanal ilk olarak (oluşturulduğu) kullanıldığı anda, alacağı modları belirtir. Bu yönergeyle mevcut bütün modlar belirtilemez, +qaohvbeOAzlLk modları bu yönergeyle verilemez.

set::restrict-usermodes <modlar>
Burada belirtilen modların kullanıcılar tarafından kullanımını kısıtlar ( + veya - kullanmayın).
Örneğin modes-on-connect kısmında +G modunu ve restrict-usermodes kısmında da yine G modunu belirtirseniz, bütün kullanıcılar, sunucuya bağlandıkları anda +G modunu alacaklardır ve bu modu -G yaparak kaldıramayacaklardır.

set::restrict-channelmodes <modlar>
Burada belirtilen kanal modlarının kullanıcılar tarafından kullanımını kısıtlar ( + veya - kullanmayın).
Örneğin modes-on-join kısmında +G modunu ve restrict-channelmodes kısmında da yine G modunu belirtirseniz, oluşturulacak bütün yeni kanallar +G modunu alacaklardır ve bu mod -G yaparak kaldırılamayacaktır.

set::restrict-extendedbans <tipler|*>
Kullanıcıların kapsamlı ban (extended ban) atmalarını kısıtlar. Eğer ("*") belirtilirse kullanıcılar hiçbir tipte kapsamlı ban atamaz, eğer bir tip belirtilirse sadece belirtilen kapsamlı ban tipi kullanılamaz.(ör: "qc").

set::auto-join <kanal(lar)>;
Kullanıcın sunucuya bağlandığı anda girmeye zorlanacağı kanal(lar)ı belirtir. Birden çok kanal belirtmek için kanalları virgül ile ayırın.
[Not: tırnak işareti kullanmayı unutmayın, auto-join "#kanal"; gibi]

set::oper-auto-join <kanal(lar)>;
Kullanıcının /oper açtığı anda girmeye zorlanacağı kanal(lar)ı belirtir. Birden çok kanal belirtmek için kanalları virgül ile ayırın.
[Not: tırnak işareti kullanmayı unutmayın, oper-auto-join "#kanal"; gibi]

set::anti-spam-quit-message-time <zaman-değeri>;
/quit mesajının görüntülenebilmesi için, bir kullanıcının sunucuya ne kadar süre bağlı kalması zorunda olduğunu belirtmenize olanak sağlar.(zaman değeridir). Spam'ı engellemek için kullanılır. Burada belirtilecek zaman değeri için; d günü, h saati, m dakikayı ve s ise saniyeyi temsil eder. Örneğin 1d2h3m gibi bir değerin anlamı 1 gün, 2 saat ve 3 dakikadır.

set::prefix-quit <çıkış-mesajı-için-önek>;
Burda belirtilen önek çıkış mesaj metninin başlangıcına eklenir. Eğer burda değer 0 olarak belirtilirse standart olarak "Quit:" kullanılır.

set::static-quit <çıkış-mesajı>;
Kullanıcıların, ağdan çıkarken görüntülenen, çıkış mesajlarını sabitler. Sabitlenecek çıkış mesajlarına HATA mesajları dahil değildir.

set::static-part <no|yes|çıkış-mesajı>;
Eğer değer olarak 'yes' belirtilirse kanaldan çıkışlarda çıkış mesajı (part mesajı) görüntülenmeyecektir, eğer değer olarak 'no' belirtilirse çıkışlarda belirtilen çıkış mesajları olağan şekilde görüntülenecektir, eğer değer olarak bir part mesajı belirtilirse kanallardan çıkarken görüntülenecek çıkış mesajları burda belirtilen çıkış mesajına sabitlenecektir. (ör: static-part "Bye!")

set::who-limit <limit>;
/who komutu kullanımında listelenecek eşleşmelerin max sayısını belirtir. Eğer belirtilmezse listelenecek eşleşmelerin herhangi bir limit olmayacaktır.

set::silence-limit <limit>;
SILENCE listesinde bulunabilecek maksimum giriş sayısını belirler. Eğer bu yönerge belirtilmezse limit 15 olarak varsayılır.

set::maxbans <limit>;
Her kanal için izin verilen max ban (+b) sayısını belirtir. Default değeri 60'dır. Eğer bunu değiştirirseniz, set::maxbanlength yönergesini de gözden geçirdiğinize emin olun.(bir sonraki yönerge).

set::maxbanlength <limit>;
Yukarıdaki yönergeye benzerdir, ancak bütün banların toplamı için maksimum karakter sayısını belirtir, böylelikle basit bir şekilde kanalda belirtilen bir banın (ortalama olarak) maksimum bellekte ne kadar yer kaplayacağını sınırlar.

set::oper-only-stats <stats-listesi>;
/stats komutunda kullanılacak, sadece oper statüsünde olan kullanıcıların kullanabileceği flagları belirtir. Eğer belirtilmezse statü gözetilmeksizin bütün kullanıcılar bütün flagları kullanabilirler. Eğer * olarak belirtilirse bütün flaglar sadece operler tarafından kullanılabilir. Sadece kısa stats flaglarında kullanılabilir.

set::oper-only-stats {<stats-flagı>; <stats-flagı>;};
/stats komutunda kullanılacak, sadece oper statüsünde olan kullanıcıların kullanabileceği flagları belirtir. Sadece uzun stats flagları belirtilebilir.

set::maxchannelsperuser <kanal-sayısı>;
Bir kullanıcının aynı anda bulunabileceği maksimum kanal sayısını belirler.

set::maxdccallow <giriş-sayısı>;
Kullanıcının DCCALLOW listesinde bulunabilecek maksimum giriş sayısını belirler.

set::channel-command-prefix <komut-önekleri>;
Servisler için "kanal komutlarında" kullanılacak önek karakterlerini belirtmenize olanak sağlar. Burda belirtilen karakterlerden herhangi biriyle başlayacak mesaj kullanıcı +d modunda dahi olsa gönderilecektir. Default değeri "`!" olarak belirlenmiştir.

set::allowed-nickchars { <liste> };
Nicklerde farklı karakter gruplarının / dillerin kullanımına olanak sağlar, Nick Karakter Gruplarına bakın.

set::allow-userhost-change [never|always|not-on-channels|force-rejoin]
(+x/-x/chghost/chgident/setident/vhost/vs) gibi komutların ne koşullarda kullanılabileceğini/kullanılamayacağını belirtmenizi sağlar.
never olarak belirtilirse bu komutlardan hiçbiri kullanılamaz, eğer always olarak belirtilirse bu komutlar her durumda kullanılabilir, eğer not-on-channels olarak belirtilirse kullanıcı bu komutları sadece ve sadece hiçbir kanala bağlı değilse kullanabilir, eğer force-rejoin belirtilirse kullanıcı bu komutlardan herhangi birini kullandığında bulunduğu kanallardan çıkıp tekrar girmeye zorlanacaktır.

set::options::hide-ulines;
Eğer belirtilirse Uline olarak belirtilen sunucular, oper statusunde olmayan kullanıcılar tarafından yapılan /links komutu sorgusunda görüntülenmeyecektir.

set::options::flat-map;
Eğer belirtilirse, ağdaki bütün sunucular /map ve /links komutları sorgusunda direkt linkli olarak görünecektir, böylelikle hangi sunucunun hangisine linkli olduğunu göremezsiniz. Bu (D)DoS ataklarına karşı ufak bi önlemdir çünkü kötü niyetli kişiler bu yönergenin belirtilmesiyle 'zayıf nokta'ları kolaylıkla göremeyeceklerdir.

set::options::show-opermotd;
Eğer belirtilirse kullanıcılara, oper hesaplarını açtıklarında, OPERMOTD dosyası gösterilecektir.

set::options::identd-check;
Eğer belirtilirse kullanıcı sunucuya bağlanırken identd sunucusu kontrolünden geçecektir ve bu kontrol kullanıcının username kısmı cevabı olarak geri dönecektir. Eğer bu kontrol sonucunda cevap dönüşü olmazsa kullanıcının username kısmına ~ öneki eklenecektir. Eğer belirtilmezse böyle bir kontrol söz konusu olmayacaktır.

set::options::show-connect-info;
Eğer belirtilirse, bir kullanıcı sunucuya bağlanacağı zaman "ident request", "hostname lookup", vs. gibi ifadeler kullanıcıya gösterilicektir.

set::options::dont-resolve;
Eğer belirtilirse, gelen kullanıcıların hostları çözümlenmez.
Not: Çözümleme işlemi yapılmayacaksa, host tabanlı allow bloklarınız da olamaz.

set::options::mkpasswd-for-everyone;
/mkpasswd bütün kullanıcılar tarafından kullanılabilmesine olanak sağlar.

set::options::allow-part-if-shunned;
Shun'lı kullanıcının /part komutunu kullanabilmesine olanak sağlar.

set::options::fail-oper-warn;
Eğer belirtilirse, /oper komutu kullanımı başarısız olduğu takdirde, kullanıcıya oper denemesinin kayıt edildiğine dair uyarı gönderilir.

set::dns::timeout <zaman-değeri>;
Bir DNS sunucusunun, bağlantısının zaman aşımı olarak değerlendirilip, kesilmemesi için, ne kadarlık bir zaman dilimi içerisinde yanıt göndermesi gerektiğini belirtmenize olanak sağlar. Burada belirtilecek numerik değerde d günü, h saati, m dakikayı, s ise saniyeyi temsil eder, örneğin 1d2h3m olarak belirtilen zaman değeri 1 gün, 2 saat ve 3 dakikayı temsil eder.

set::dns::retries <number-of-retries>;
A numeric value specifying the number of times the DNS lookup will be retried if failure occurs.

set::dns::nameserver <dns-sunucu-ismi>;
DNS aramalarında kullanılacak, sunucunun hostname'ini belirtir.

set::dns::bind-ip <ip>;
Çözümleyici için bağlanılacak IP'yi belirtir, genellikle belirtilmeye gerek duyulmaz.

set::network-name <ağ-ismi>;
Sunucunun bulunduğu ağ adını belirtmeye olanak sağlar. Burda belirtilen ağ ismi ağ üzerinde ki bütün sunucularda aynı belirtilmek zorundadır.

set::default-server <sunucu-ismi>;
Sunucu full kapasitede kullanıcıya sahip olduğunda, bağlanmayı deneyecek kullanıcılara default sunucu adının gösterilmesine olanak sağlar.

set::services-server <sunucu-ismi>;
Servisler sunucusunun ismini belirtir. Gereklidir, eğer servis sunucunuz yoksa, services.sizinaginiz.com gibi bir sunucu ismi belirtmeniz gerekir.

set::stats-server <sunucu-ismi>;
Stats sunucusu botlarının yerleştirileceği sunucu ismini belirtir. Eğer stats sunucunuz yoksa burayı belirtmeyebilirsiniz.

set::help-channel <ağ-yardım-kanalı>;
Ağınız için yardım kanalını (help) belirtmenize olanak sağlar.

set::cloak-keys { "anahtar1"; "anahtar2"; "anahtar3"; };
Hostun gizlenmesi için, yeni hostların oluşturulmasında kullanılacak anahtarları belirtir. Bu anahtarlar ağdaki bütün sunucular için aynı olarak belirtilmelidir. Her bir anahtar en az 5 en çok 100 karakter içerebilir (10-20 arası önerilir) ve anahtarlar küçük karakter olarak (a-z) arası harfleri, büyük karakter olarak (A-Z) arası harfleri ve rakam olarak da (0-9) arası rakamları içerebilir. Bu kriterlerin yüklediğiniz gizleme modülüne göre değişebileceğine dikkat edin.

set::hiddenhost-prefix <önek-değeri>;
Gizlenmiş hostlara eklenecek (+x) öneki belirtmenize olanak sağlar. Burada genellikle ağ ismini simgeleyen 3 veya 4 harf belirtilir.

set::hosts::local <locop-hostu>;
Yerel operatör statüsüne erişen bir kullanıcının alacağı hostu belirtmenize olanak sağlar. İsteğe bağlı olarak buradaki değeri kullanıcı@host olarak belirtebilirsiniz.

set::hosts::global <globop-hostu>;
Global operatör statüsüne erişen bir kullanıcının alacağı hostu belirtmenize olanak sağlar. İsteğe bağlı olarak buradaki değeri kullanıcı@host olarak belirtebilirsiniz.

set::hosts::coadmin <coadmin-hostu>;
Co-admin statüsüne erişen bir kullanıcının alacağı hostu belirtmenize olanak sağlar. İsteğe bağlı olarak buradaki değeri kullanıcı@host olarak belirtebilirsiniz.

set::hosts::admin <admin-hostu>;
Admin statüsüne erişen bir kullanıcının alacağı hostu belirtmenize olanak sağlar. İsteğe bağlı olarak buradaki değeri kullanıcı@host olarak belirtebilirsiniz.

set::hosts::servicesadmin <servicesadmin-hostu>;
Services Administrator statüsüne erişen bir kullanıcının alacağı hostu belirtmenize olanak sağlar. İsteğe bağlı olarak buradaki değeri kullanıcı@host olarak belirtebilirsiniz.

set::hosts::netadmin <netadmin-hostu>;
Net Administrator statüsüne erişen bir kullanıcın alacağı hostu belirtmenize olanak sağlar.İsteğe bağlı olarak burdaki değeri kullanıcı@host olarak belirtebilirsiniz.

set::hosts::host-on-oper-up <yes/no>;
Eğer yes olarak belirtilirse, oper yetkisini açan kullanıcı (eğer H/get_host flagına sahipse), otomatik olarak, statüsüne göre hostunu alacaktır. Eğer no olarak belirtilirse host alma işlemini oper yetkisini açtıktan sonra manual olarak gerçekleştirecektir.

set::ssl::egd <dosya-ismi>;
EGD (Entropy Gathering Daemon) desteğinin aktif olduğunu belirtir. Eğer OpenSSL 0.9.7 veya daha üst bir versiyonunu kullanıyorsanız bu durumda /var/run/egd-pool, /dev/egd-pool, /etc/egd-pool ve /etc/entropy buradaki dosya ismi için default konumlar olarak kabul edilip aranacaktır. Dolayısıyla burada herhangi bir dosya ismi belirtmeyip set::ssl::egd yönergesine herhangi bir değer atamadan kullanabilirsiniz. Eğer OpenSSL 0.9.7 'den daha önceki bir versiyonu kullanıyorsanız yukarıda ki belirtilen yerler haricinde dosya için başka yerlerde belirtebilirsiniz.

set::ssl::certificate <dosya-ismi>;
Sunucu SSL sertifikası dosyasının yerini belirtmenizi sağlar.

set::ssl::key <dosya-ismi>;
Sunucu SSL anahtarı dosyasının yerini belirtmenizi sağlar.

set::ssl::trusted-ca-file <dosya-ismi>;
Güvenilen CA sertifika dosyasının yerini belirtmenizi sağlar.

set::ssl::options::fail-if-no-clientcert;
Sertifakaya sahip olmayan kullanıcıların bağlantısının reddedilmeye zorlanmasını sağlar.

set::ssl::options::no-self-signed;
Self-signed sertifikalı kullanıcıların bağlantılarına izin vermemenizi sağlar.

set::ssl::options::verify-certificate;
Bağlantı yetkilendirilmeden önce Unreal'in kullanılan SSL sertifikasının geçerliliğini doğrulamasına olanak verir.

set::throttle::period <zaman-değeri>
set::throttle::connections yönergesinde belirtilen bağlantı sayısı aşıldığında kullanıcının yeniden bağlanabilmesi için ne kadar süre beklemek zorunda olduğunu belirtir.

set::throttle::connections <miktar>;
Bağlantının throttle sistemine takılması için aynı hosttan kaç kez bağlantı isteği gelmesi gerektiğini belirtir.

set::ident::connect-timeout <miktar>;
Ne kadar saniye beklendikten sonra ident sunucu bağlantısının iptal edileceğini belirtir.(default: 10s).

set::ident::read-timeout <miktar>;
Ne kadar saniye geçtikten sonra yanıt için vazgeçileceğini belirtir. (default: 30s).

set::anti-flood::unknown-flood-bantime <zaman-değeri>;
Bilinmeyen bir bağlantıdan flood saldırısı algılandığı zaman atılacak banın süresini belirler.

set::anti-flood::unknown-flood-amount <miktar>;
Bilinmeyen bir bağlantının gönderdiği veri miktarı burada belirtilen miktarı (KiloByte cinsinden) aştığı zaman sunucudan bağlantısı kesilecektir.(kill)

set::anti-flood::away-flood <miktar>:<periyot>
Away flood koruması: belirtilen 'periyot' başına /away komutu kullanımını belirtilen 'sayı'ya sınırlar. Ancak bu korumanın aktif olabilmesi için config.h dosyasında NO_FLOOD_AWAY'in aktif edilmesi gereklidir. Örnek: away-flood 5:60s; 60 saniye süresince 5 /away komutu kullanılabilir.

set::anti-flood::nick-flood <miktar>:<periyot>
Nickflood koruması: belirtilen 'periyot' başına nick değişimini belirtilen 'sayı'ya sınırlar. Örnek: nick-flood 4:90 90 saniye süresince 4 kez nick değiştirilebilir, default değeri 60 saniye süresince 3 nick değişimidir.

set::default-bantime <süre>
/kline, /gline, /zline, /shun, vs gibi yasaklama (ban) komutlarının zaman belirtilmeden kullanıldığında (/gline *@some.nasty.isp gibi), banın ne kadar süre geçerli olacağını belirtir. Örnek: default-bantime 90d;

set::modef-default-unsettime <değer>
Kanalmodu +f için değişikliğin ne kadar süre süreceğini belirtmenizi sağlar. Eğer değer olarak örneğin 10 belirtirseniz bu durumda +f [5j]:15 gibi bir mod uygulaması [5j#i10]:15 şeklinde yorumlanacaktır.

set::modef-max-unsettime <değer>
Kanalmodu +f kullanılırken (ör. +f [5j#i<süre>]:15) belirtilebilecek maksimum süre miktarını (dakika cinsinden) belirlemenizi sağlar. Bu değer 0 ile 255 arasında olabilir. Default değeri ise 60'dır (=1 saat).

set::ban-version-tkl-time <değer>
Ban version bloğunda zline/gline/vs. gibi bir 'eylem' belirtildiğinde bu eylem ile atılacak yasaklamanın (ban) ne kadar süreli aktif kalacağını belirtmenize olanak sağlar. Default değeri 86400'dür (1 gün).

set::spamfilter::ban-time <değer>
Yukarıda anlatılan ile aynıdır ancak bu sefer belirtilecek değer spamfilter tarafından *line/shun eylemleri uygulandığında geçerlidir.

set::spamfilter::ban-reason <gerekçe>
Spamfilter tarafından eklenen girişlerde gösterilecek sebebi belirlemenize olanak sağlar.

set::spamfilter::virus-help-channel <kanal>
Spamfilter'da 'viruschan' eylemi için kullanılacak kanalı belirtir.

set::spamfilter::virus-help-channel-deny <yes|no>
Eğer yes (veya 1) olarak belirtilirse, virus-help-channel ile belirtilen kanala normal bir kullanıcı girmeyi denerse kullanıcıya 'invite only' gibi bir ibare gönderilir. Sadece operler, spamfilter sistemi tarafından saptanan kullanıcılar ve kanala /invite komutuyla davet edilecek kullanıcılar giriş yapabilir.

set::spamfilter::except <hedef(ler)>
Bu yönergeyle belirtilecek hedef(ler) spam filtrelemesinden muaf tutulacak(lar)dır, aralarına virgül konularak birden fazla hedef belirtilebilir. Ör: except "#help,#spamreport"

set::check-target-nick-bans <yes|no>
Kullanıcı(lar) nick(ler)ini değiştirdiği zaman, yeni nick için yasaklama (ban) olup olmadığının kontrol edilmesine olanak sağlar. Eğer yeni nick adına yasaklama mevcutsa nick değişimine izin verilmeyecektir. Default değeri yes 'dir.

set::timesynch::enabled <yes|no>
Sunucu başlatılırken zaman senkronizasyonu özelliğini açık ya da kapalı olarak belirtmenize olanak sağlar. Default değeri yes’dir.

set::timesynch::server <IP>
Senkronizasyonun sağlanacağı sunucuları belirtmenizi sağlar. Burada 4 IP’yi aralarında virgül kullanarak belirtebilirsiniz. Burada belirtilen sunucular NTP protokolu versiyon 4’ü desteklemek zorundadırlar. Default olarak 3 zaman sunucusu kullanılır (US, EU, AU). Bu sunuculara istek paralel olarak gönderilir, en hızlı cevap gönderen kazanır.

set::timesynch::timeout <süre>
Sunucudan gelecek cevap için maksimum bekleme süresini belirtmenize olanak sağlar. Burada 1 ve 5 arasında bir değer belirtilmelidir, beşten büyük sayılar belirtilemez. Default değeri 3’tür ve eğer iyi bir sebebiniz yoksa bunu değiştirmeyin.

5 – Ek Dosyalar

Konfigürasyon dosyasına ek olarak MOTD, OperMOTD, BotMOTD ve Rules dosyaları gibi birkaç dosya daha vardır. Aşağıda bu dosyalar ve kullanımları listelenmiştir.
Motd dosyaları (bütün tiplerde ki) ve kurallar (rules) dosyaları aynı zamanda bir tld bloğu ile de belirtilebilir.

ircd.motd | /motd komutu sorgusunda ve kullanıcı sunucuya bağlandığı an görüntülenir.(eğer ircd.smotd belirtilmediyse)
ircd.smotd | Sadece sunucuya bağlantı sırasında görüntülenir.(kısa MOTD)
ircd.rules | /rules komutu sorgusunda görüntülenir
oper.motd | /opermotd sorgusunda ve kullanıcı oper açtığında görüntülenir
bot.motd | /botmotd komutu sorgusunda görüntülenir

6 – Kullanıcı & Kanal Modları

Mod | Açıklama
Kanal Modları
A | Sadece +A kullanıcı moduna sahip kullanıcılar (admin) girebilir
a <nick> | Belirtilen nick kanalda kick komutuna karşı korumaya sahip olur.
b <nick!kullanıcı@host> | Belirtilen maske kanalda yasaklanır (ban)
c | Kanal icerisinde renk kullanimini engeller
C | CTCP içerikli metinlerin gönderimini engeller
e <nick!kullanıcı@host> | Belirtilen maske kanalda yasaklı (ban) listesinde olsa dahi kanala girebilir
f [<numara><tip>]:<saniye> | Kanal flood koruma modu. Daha fazla açıklama için. Daha fazla bilgi için bölüm 3.12'ye bakın
G | Badword Bloğunda belirtilen kötü kelimelerin (badwords) sansürleneceği kanal
h <nick> | Belirtilen nick halfop statüsüne sahip olur
i | Sadece davetle girilebilen kanal
I <nick!kullanıcı@host> | Belirtilen maskeye sahip olan kullanıcılar, kanal +i modunda olsa dahi kanala girebilirler
j <giriş:saniye> | Belirtilen saniyede bir kanala giris yapilmasini saglar
K | /knock komutu kullanılamaz kanal
k <anahtar> | Kanala giriş için anahtar gereken kanal
l <##> | Kanala girebilecek maksimum kullanıcı sayısını belirler
L <kanal> | +l ile belirtilen kanala girebilecek maksimum kullanıcı sayısı aşıldığında, kullanıcıların yönlendirileceği kanalı belirtir
M | Yalnızca kayıtlı ve tanıtılmış nick (+r) kullanan kullanıcıların konuşabileceği kanal
m | Yalnızca +v/o/h modlarına sahip kullanıcıların konuşabileceği kanal
N | Nick değiştirilemez kanal
n | Dışarıdan gönderilen mesajların kabul edilmediği kanal
O | Yalnızca +O modunda ki kullanıcıların (IRCOp) girebileceği kanal
o <nick> | Kanalda belirtilen kullanıcıya operatör statüsü verir
p | Özel bir kanal
q <nick> | Kanalda belirtilen nicke founder (kanal sahibi) statüsü verir
Q | Kick atılamayan kanal (U:Line sunucular atabilir)
R | Sadece kayıtlı (+r) kullanıcıların girebileceği kanal
S | Renkli yazıların, renk kodlarından arındırılıp kanala gönderilmesini sağlar
s | Gizli kanal
t | Topiğin sadece operatör statüsünde ki kullanıcılar tarafından değiştirilebileceği kanal
T | NOTICE komutunun kullanılamayacağı kanal
u | Auditorium – /names ve /who #kanal komutları sorgusunda yalnızca kanal operatörleri görüntülenir
V | /invite komutu kullanılamaz kanal
v <nick> | Kanal +m modunda olsa dahi konuşabilecek kullanıcıları belirtmenizi sağlar
z | Sadece Güvenli Bağlantı (SSL) kullananların girebileceği kanal

Mod | Açıklama
Kullanıcı Modları
A | Server Administrator Statüsündeki kullanıcı (Oper Bloğunda belirtilir)
a | Services Administrator Statüsündeki kullanıcı (Oper Bloğunda belirtilir)
B | Bot statüsündeki kullanıcı
C | Co Administrator Statüsündeki kullanıcı (Oper Bloğunda belirtilir)
d | Kanalda yazılan mesajları görmenizi engeller
G | Badwords bloğunda belirtilen kötü kelimeler kullanıldığında sansürlenir
g | GlobOps ve LocOps mesajlarını görmenizi sağlar
H | IRCOp statüsüne sahipseniz /whois /who sorgusunda bu statünüz görünmez.(Sadece IRCop)
h | Yardim görevlisi statüsü verir.(HelpOp)(Oper Bloğunda belirtilir)
i | Görünmez kullanıcı (/who sorgusunda görünmeyen kullanıcı)
N | Network Administrator Statüsündeki kullanıcı (Oper Bloğunda belirtilir)
O | Local IRC Operator Statüsündeki kullanıcı (Oper Bloğunda belirtilir)
o | Global IRC Operator Statüsündeki kullanıcı (Oper Bloğunda belirtilir)
p | /whois sorgusunda bulunduğunuz kanalları gizler
q | Sadece U:Lines ile belirtilen sunucular tarafından kanallardan atılabilirsiniz.(Sadece Services Administrator Statüsündeki kullanıcılar kullanabilir)
R | Sadece nicki kayitli (+r) olan kullanıcılardan mesaj almanızı sağlar
r | Kayıtlı kullanıcı
S | Servisler için koruma modu
s | Sunucu mesajlarını görmenizi sağlar (daha fazla bilgi için bölüm 3.3'e bakın)
T | CTCP metinlerinin size gönderimini engeller
t | /vhost kullandığınızı belirtir
V | Kullanıcının WebTV kullandığını belirtir
v | Bloke edilmiş DCC mesajlarını görmenizi sağlar
W | Size /whois çekildiğinde whois çekeni görmenizi sağlar. (Sadece IRCOp statüsündeki kullanıcılar kullanabilir)
w | Wallop mesajlarını görmenizi sağlar
x | Gizlenmiş host kullandığınızı belirtir
z | Güvenli bağlantı (SSL) kullanıldığını belirtir

7 – Kullanıcı & Oper Komutları Tablosu

NOT: /helpop dökümanı bu dökümandan daha günceldir, bir komut hakkında bilgi almak için the /helpop komut (veya operseniz /helpop ?komut) komutunu kullanın.

Komut | Açıklama | Kimler Kullanabilir
nick <yeninick> | Sunucudaki rumuzunuzu degistirir. Bulundugunuz butun kanallarda rumuzunuzun degisimi haber verilir | Herkes
whois <nick> | Belirtilen nick için; kullanıcı ismi, host, bulunduğu kanallar vs. gibi bilgileri görüntüler | Herkes
who <maske> | Kullanıcılarla ilgili bilgileri gösterir. Maske kısmına nick, #kanal, hostmaskesi (*.attbi.com gibi) belirtilebilir | Herkes
whowas <nick> <max cevap sayısı> | Sunucudan çıkmış bir nick için geçmiş whois bilgilerini görüntüler. <max cevap sayısı> kısmı isteğe göre belirtilebilir ve kaç tane kaydın görüntüleneceğini belirler. | Herkes
ison <nick1 nick2 nick3 ...> | Belirtilen kullanıcı veya kullanıcıların online olup olmadıklarını gösterir | Herkes
join <kanal1,kanal2, ...> | Belirtilen kanal yada kanallara girmenize olanak sağlar. Birden fazla kanal belirterek birdefada belirttiğiniz bütün kanallara girebilirsiniz. /join 0 komutu ise bütün kanallardan ayrılmanızı sağlar. | Herkes
cycle <kanal1, kanal2, ...> | Belirtilen kanal(lar)da çık-gir (cycle) yapmanıza olanak sağlar. | Herkes
motd <sunucu> | Belirtilen sunucu için motd dosyasının görüntülenmesine olanak sağlar. | Herkes
rules <sunucu> | Belirtilen sunucunun kurallar(rules) dosyasının görüntülenmesine olanak sağlar | Herkes
lusers <sunucu> | Belirtilen sunucu için çevrimiçi (online) kullanıcı sayısı, en fazla baglanan kullanıcı sayısı bilgileri yerel sunucu ve de tum ağ icin belirtir. | Herkes
map | Ağ haritasını görüntüler | Herkes
quit <sebep> | Belirtilen sebep ile IRC oturumunuzun sonlandırılmasına olanak sağlar. Eğer bir sebep belirtirseniz bu bulundugunuz bütün kanalda görüntülenir | Herkes
ping <kullanıcı> | Belirtilen kullanıcıya PING göndermenize olanak sağlar. Bağlantıyı ve gecikmeyi kontrol etmek için kullanılır. | Herkes
version <nick> | Belirtilen nicke CTCP Version sorgusu gönderir. Eğer client bunun için yapılandırılmışsa nickden versiyon cevabı alınır. | Herkes
links | Ağa linkli bütün sunucuların listesini görüntüler | Herkes
Admin <sunucu> | Belirtilen sunucu hakkında yöentimsel bilgi görüntülenir. | Herkes
userhost <nick> | Belirtilen nickin kullanıcı hostu görüntülenir | Herkes
topic <kanal> <topic> | Topic <kanal> belirtilen kanalın o anki topic bilgisini görüntüler. Topic <kanal> <topic> ise belirtilen kanalın topic bilgisinin değiştirilmesine olanak sağlar. | Herkes
invite <nick> <kanal> | Belirtilen kanala belirtilen nicki davet etmek için kullanılır. (komutu kullanın kanalda operator olması şarttır.) | Kanal Operatorleri
kick <kanal, kanal> <kullanıcı, kullanıcı> <sebep> | Belirtilen kullanıcıyı yada kullanıcıları belirtilen kanaldan yada kanallardan belirtilen sebepten dolayı atmanıza olanak sağlar. | Kanal Operatorleri
away <sebep> | Sebep ile kullanıldığında sizi (away), yani uzakta olarak belirtir. Eğer sebep belirtmezseniz (away) den çıkmış olursunuz. | Herkes
Watch +-<nick> +-<nick> | Watch UnrealIRCd 'de yeni bir uyarı sistemidir. Bu sistem eski-stil uyarı sistemine nazaran daha hızlıdır ve ağ kaynaklarını daha az kullanır. Watch (izleme) listenize eklediğiniz nick IRC oturumu açtığında veya kapadığında sunucu size uyarı mesajı gönderecektir. İzleme listeniz her oturum açıp kapamanızda sıfırlanır, bu sebepten sunucuya her bağlandığınızda izleme listenizi yeniden düzenlemelisiniz. | Herkes
helpop ?<komut> or !<komut> | HelpOp IRC Sunucu yardımı almak için yeni bir sistemdir. /HELPOP ? <komut> veya /HELPOP ! <soru> şeklinde kullanabilirsiniz. /HELPOP komutunda "?" kullanılmasıyla yardım sistemine bilgi isteği gönderilir eğer bir sonuca ulaşamazsanız '!' işareti ile kullanmayı deneyin. Bu durumda belirttiğiniz konu veya soru direkt olarak çevirimiçi help operatörlerine iletilecektir. Eğer ne ? işareti ne de ! işareti kullanmazsanız, bu durumda bilgi isteğiniz yardım sistemine gönderilecek ve eğer sonuç alınamazsa direkt olarak çevirimiçi help operatörlerine iletilecektir. | Herkes
list <dizgi> | Eğer bir maske belirtmezseniz, aktüel kanal listesi görüntülenir. Aşağıda kullanabileceğiniz dizgiler ve bunların kullanılması durumunda görüntülenecek kanal listesinde hangi kanalların görüntüleneceği açıklanmıştır. >sayı içerisinde belirttiğiniz <sayı>'dan fazla kullanıcıya sahip olan kanallar listelenir. <sayı içerisinde belirttiğiniz <sayı>'dan az kullanıcıya sahip olan kanallar listelenir. C>sayı son <sayı> dakika içerisinde oluşturulmuş kanalları listeler. C<sayı son <sayı> dakikanın öncesinde oluşturulmuş kanalları listeler. T>sayı kanal topiği son <sayı> dakikadan önce atılmış kanalları listeler. T<sayı kanal topiği son <sayı> dakika içerisinde atılmış olan kanalları listeler. *maske* belirtilen *maske* ile eşleşen kanalları listeler !*maske* belirtilen *maske* ile eşleşmeyen kanalları listeler | Herkes
Knock <kanal> <mesaj> | Davetsel (invite only) konumunda olan bir kanal için knock komutunu kullanarak, kanala giriş için sizi kanala davet etmelerini isteyebilirsiniz. Eğer kanal +K +V modlarında ise bu komut işlem görmeyecektir. Aynı zamanda kanaldan banlı iseniz bu komut yine işlem görmeyecektir | Herkes
setname | Sunucuya tekrar bağlanmaya gerek kalmadan kullanıcıların isim kısımlarını değiştirmelerine olanak sağlar | Herkes
vhost <login> <şifre> | Hostname kısmınızı daha önceden belirtilen, sunucu tarafından sağlanan bir sahte hostla gizlemenize olanak sağlar. | Herkes
mode <kanal/nick> <mod> | Belirtilen kanal veya nick için kullanılan modları düzenlemeye/değiştirmeye olanak sağlar. Mevcut kullanıcı ve kanal modları listesi için Kullanıcı & Kanal Modları kısmına bakın. | Herkes
credits | UnrealIRCd'in oluşturulmasında yardımı bulunan kişilerin listesini görüntüler | Herkes
license | GNU lisansını görüntüler | Herkes
time <sunucu> | Belirtilen sunucunun tarihini ve zamanını gösterir. | Herkes
botmotd <sunucu> | Sunucunun bot.motd dosyasını görüntüler | Herkes
identify <şifre> | Nickinizi tanıtmanız için servisler sistemine şifrenizi gönderir. | Herkes
identify <kanal> <şifre> | Belirtilen kanalın founderi olarak tanıtılmanız için servisler sistemine şifrenizi gönderir. | Herkes
dns <tercih> | Sunucunun DNS önbelleklemesi hakkında bilgi görüntülenir. Birçok yazılım DNS komutuna sahiptir (bu dns komutu değildir fakat), bu yüzden /raw DNS yazarak kullanın. Operler l karakterini DNS önbellekleme girişlerinin listesini görebilmek için ilk parametre olarak belirtebilirler. | Herkes
userip <nick> | Belirtilen nickin IP Adres bilgisini gösterir. | Herkes
oper <kullanıcı adı> <şifre> | Oper Bloğunda belirtilen nick ve şifre ile bu komutla belirtilen kullanıcı adı ve şifre uyuştuğu takdirde kullanıcının oper statüsüne geçmesine olanak sağlar | IRC Operatörler
wallops <mesaj> | +w kullanıcı modunda olan bütün kullanıcılara belirtilen mesajı gönderir | IRC Operatörler
globops <mesaj> | Bütün IRC Operatörlere belirtilen mesajı gönderir | IRC Operatörler
chatops <mesaj> | +c kullanıcı modununda olan bütün IRC Operatörlere belirtilen mesajı gönderir | IRC Operatörler
locops <mesaj> | Yerel (local) IRC Operatörlere belirtilen mesajı gönderir | IRC Operatörler
adchat <mesaj> | Bütün adminlere belirtilen mesajı gönderir | IRC Operatörler
nachat <mesaj> | Net Admin statüsündeki bütün adminlere belirtilen mesajı gönderir | IRC Operatörler
kill <nick> <sebep> | Belirtilen nickin ağdan bağlantısını keser | IRC Operatörler
kline [+|-]<kullanıcı@host | nick> [<ban süresi> <gerekçe>] | Belirtilen hostmaskesini sunucudan banlar. Kline global bir yasaklama (ban) değildir. ban süresi a) saniye cinsinden bir değer, b) bir zaman değeri, '1d' gibi (1 gün) veya c) kalıcı olması için '0' gibi bir değer olabilir. Süre ve sebep isteğe bağlıdır, eğer belirtilmezlerse set::default-bantime yönergesi ile belirlenmiş olan süre ban süresi olarak geçerlidir ve sebep olarak da 'no reason' görüntülenecektir. Bir kline'ı kaldırmak için /kline -kullanıcı@host komutunu kullanın | IRC Operatörler
zline [+|-]<*@ip> [<ban süresi> <gerekçe>] | Belirtilen IP adresini yerel sunucudan banlar (global değildir). Daha fazla kullanım bilgisi için kline kısmına bakın. Bir zline'ı kaldırmak için /zline -*@ip komutunu kullanın | IRC Operatörler
gline [+|-]<kullanıcı@host | nick> [<ban süresi> <gerekçe>] | Belirtilen kullanıcı@host ile eşleşme gerçekleştiği sürece ağda bulunan hiç bir sunucuya bağlantı sağlanamaz. Daha fazla kullanım bilgisi için kline kısmına bakın. Bir gline'ı kaldırmak için /gline -kullanıcı@host komutunu kullanın. | IRC Operatörler
shun [+|-]<kullanıcı@host | nick> [<shun süresi> <gerekçe>] | Belirtilen maskenin hiçbir komutu kullanamamasını ve hiçbir şekilde mesaj gönderememesini sağlar. Shun bütün ağın bütün sunucularında geçerlidir (gline gibi). Daha fazla kullanım bilgisi için kline kısmına bakın. Bir shun'ı kaldırmak için /shun -kullanıcı@host komutunu kullanın. | IRC Operatörler
gzline [+|-]<ip> <ban süresi> :<gerekçe> | Ağın bütün sunucularında geçerli olacak bir zline ekler. Daha fazla kullanım bilgisi için kline kısmına bakın. Bir gzline'ı kaldırmak için /gzline -*@ip komutunu kullanın. | IRC Operatörler
rehash <sunucu> –<flaglar> | Belirtilen sunucunun konfigürasyon dosyasının yeniden okunmasını sağlar. Mevcut flaglar: -motd - Sadece bütün MOTD ve RULES dosyaları yeniden okunur. (tld {} bloğu kapsamında ki dosyalar) -opermotd - Sadece OPERMOTD dosyası yeniden okunur -botmotd - Sadece BOTMOTD dosyası yeniden okunur -garbage - Çöp toplaması yapılır | IRC Operatörler
restart <şifre> <gerekçe> | IRCD işlemini yeniden başlatır. Eğer drpass { } bloğu belirtilmişse şifrenin de belirtilmesi gereklidir. Aynı zamanda gerekçe kısmı ile bir sebep de belirtebilirsiniz. | IRC Operatörler
die <şifre> | IRCD işlemini sonlandırır. Eğer drpass { } bloğu belirtilmişse şifrenin de belirtilmesi gereklidir. | IRC Operatörler
lag <sunucu> | Bu komut IRC Sunucusu için bir Traceroute veya Sonar gibi düşünülebilir. Örnek olarak /LAG irc.fyremoon.net olarak bu komutu belirttiğinizde belirtilen sunucuya ulaşmak için geçilen bütün sunuculardan komut cevaplanacaktır. Bu komut gecikmenin hangi sunucudan kaynaklandığını bulmak için faydalıdır | IRC Operatörler
sethost <yenihost> | Kullandığınız host kısmını (vhost) istediğiniz bir host ile değiştirebilmenize olanak sağlar. | IRC Operatörler
setident <yeniident> | Kullandığınız ident kısmını istediğiniz bir ident ile değiştriebilmenize olanak sağlar | IRC Operatörler
chghost <nick> <yenihost> | Sistemde bulunan bir kullanıcının kullandığı host kısmını değiştirebilmenize olanak sağlar | IRC Operatörler
chgident <nick> <yeniident> | Sistemde bulunan bir kullanıcının kullandığı ident kısmını değiştirebilmenize olanak sağlar | IRC Operatörler
chgname <nick> <yeniisim> | Sistemde bulunan bir kullanıcının kullandığı isim kısmını değiştirebilmenize olanak sağlar | IRC Operatörler
squit <sunucu> | Belirtilen sunucunun ağdan bağlantısını keser | IRC Operatörler
connect <sunucu> <port> <sunucu> | Eğer sadece tek sunucu belirtilirse bulunduğunuz sunucuyu belirtilen sunucuya bağlamayı deneyecektir. Eğer iki sunucu belirtilirse, belirtilen iki sunucuyu birbirlerine bağlamayı deneyecektir. İlk olarak leaf olan sunucuyu ikinci olaraksa hub olan sunucuyu belirtin. | IRC Operatörler
dccdeny <dosya-maskesi> <gerekçe> | Belirtilen maskeyle eşleşen dosya isimleri için DCC engeli koyar. Bu dosyaların gönderimi engellenir. | IRC Operatörler
undccdeny <dosya-maskesi> | Belirtilen maskeyle eşleşen dosya isimleri için DCC engelini kaldırır | IRC Operatörler
sajoin <nick> <kanal>, <kanal> | Bir kullanıcıyı belirtilen kanal(lar)a girmeye zorlar. Sadece Services & Network Admin statüsünde ki IRC operatörler kullanabilir | IRC Operatörler
sapart <nick> <kanal>, <kanal> | Bir kullanıcıyı belirtilen kanal(lar)dan ayrılmaya zorlar. Sadece services & network Admin statüsünde ki IRC operatörler kullanabilir. | IRC Operatörler
samode <kanal> <mod> | Network & Services Admin statüsünde ki IRC Operatörlerin kanalda operatör olmadan kanal modlarını değiştirebilmelerine olanak sağlar. | IRC Operatörler
rping <sunucumaskesi> | Sunucular arasında ki var olan gecikmeyi milisaniyeler mertebesinde görüntülenmesine olanak sağlar | IRC Operatörler
trace <sunucumaskesi|nick> | Bir kullanıcı (nick) için kullanıldığında, belirtilen nick için gecikme ve sınıf bilgisini görüntüler. Eğer bir sunucu için kullanılırsa, belirtilen sunucu için sınıf/versiyon/link bilgisini görüntüler. | IRC Operatörler
opermotd | Sunucunun OperMotd dosyasını görüntüler | IRC Operatörler
addmotd :<metin> | Motd dosyasının sonuna belirtilen metni ekler | IRC Operatörler
addomotd :<metin> | OperMotd dosyasının sonuna belirtilen metni ekler | IRC Operatörler
sdesc <açıklama> | Server Admin statusunde ki IRC Operatörlerin, sunucunun yeniden başlatılması gerekmeden, açıklama satırını değiştirebilmelerine olanak sağlar. | IRC Operatörler
addline <metin> | unrealircd.conf'a belirtilen metni ekler | IRC Operatörler
mkpasswd <şifre> | Sade metin halindeki bir şifreyi, unrealircd.conf'a eklemek için, yeniden şifreler (encrypt) | IRC Operatörler
tsctl offset +/- <zaman> | IRCD'in dahili saatini ayarlar (Ne işe yaradığını TAM ANLAMIYLA bilmiyorsanız KULLANMAYIN) | IRC Operatörler
tsctl time | TS Raporunu görüntüler | IRC Operatörler
tsctl alltime | Bütün sunucular için TS Raporunu görüntüler | IRC Operatörler
tsctl svstime <timestamp> | Bütün sunucular için TS zamanını belirtmenize sağlar (Ne işe yaradığını TAM ANLAMIYLA bilmiyorsanız KULLANMAYIN) | IRC Operatörler
htm <tercih> | Yüksek trafik moduna ilişkin özelliklerin kontrol edilmesini sağlar. Yüksek Trafik Modu (HTM) list whois who vs. gibi belirli kullanıcı komutlarını deaktif eder. tercih kısmında: -ON Sunucuyu Yüksek Trafik Moduna (HTM) girmeye zorlar -OFF Sunucuyu Yüksek Trafik Modundan (HTM) çıkmaya zorlar -NOISY Sunucunun HTM'ye girişinde ve HTM'den çıkışında kullanıcılara/yöneticilere bildiri mesajı gönderilmesini sağlar -QUIET Sunucunun HTM'ye girişinde ve HTM'den çıkışında kullanıcılara/yöneticilere bildiri mesajı gönderilmemesini sağlar -TO <değer> Sunucuya HTM'yi hangi gelen veri hızında aktif edeceğini belirtir | IRC Operatörler
stats <flag> | B - banversion - Yasaklı versiyonların listelenmesini sağlar b - badword - Kötü kelimelerin (badwords) listelenmesini sağlar C - link - Link bloğunda (bloklarında) belirtilmiş içerikler görüntülenir d - denylinkauto - deny link (otomatik olarak reddedilen) bloğunda (bloklarında) belirtilmiş içerikler görüntülenir D - denylinkall - deny link (hepsi) bloğunda (bloklarında) belirtilmiş içerikler görüntülenir e - exceptthrottle - except throttle bloğunda (bloklarında) belirtilmiş içerikler görüntülenir E - exceptban - except ban ve except tkl bloklarında belirtilmiş içerikler görüntülenir f - spamfilter - filtrenen içeriklerin listesi görüntülenir (spamfilter) F - denydcc - Deny dcc bloğu (blokları) içerikleri görüntülenir G - gline - gline ve gzline listesi görüntülenir Genişletilmiş Flaglar: [+/-mrs] [maske] [sebep] [ekleyen] m belirtilen maskeyle eşleşen/eşleşmeyen (+ veya - belirtilmesine göre) gline'lar listelenir r belirtilen sebep ile eşleşen/eşleşmeyen gline'lar listelenir s belirtilen [ekleyen] ile eşleşen/eşleşmeyen gline'lar listelenir I - allow - Allow bloğu (blokları) içerikleri görüntülenir j - officialchans - Resmi kanallar (official channels) listesi görüntülenir K - kline - ban user/ban ip/except ban blokları içerikleri listelenir. Ayrıca bu bloklarda belirtilmemiş ancak kline zline vs. gibi ban komutlarıyla atılmış *line'larda listelenir. l - linkinfo - link bilgisi görüntülenir L - linkinfoall - Mevcut bütün linklerin bilgileri görüntülenir M - command - Kullanılan her komutun ve kaç kez kullanıldıklarının listesi görüntülenir n - banrealname - Ban realname bloğu (blokları) içeriği görüntülenir O - oper - Oper bloğu (blokları) içeriği görüntülenir P - port - Portlarla ilgili bilgi görüntülenir q - sqline - SQLINE listesi görüntülenir Q - bannick - Ban nick bloğu (blokları) içeriği görüntülenir r - chanrestrict - channel deny/allow blokları içerikleri görüntülenir R - usage - Kullanım bilgisi görüntülenir S - set - Set bloğu içeriği görüntülenir s - shun - Shun listesi görüntülenir Genişletilmiş Flaglar: [+/-mrs] [maske] [sebep] [ekleyen] m belirtilen maskeyle eşleşen/eşleşmeyen (+ veya - belirtilmesine göre) shun'lar listelenir r belirtilen sebep ile eşleşen/eşleşmeyen shun'lar listelenir s belirtilen [ekleyen] ile eşleşen/eşleşmeyen shun'lar listelenir t - tld - tld bloğu (blokları) içeriği görüntülenir T - traffic - Sunucu Trafik bilgisi görüntülenir u - uptime - Sunucunun ne kadar süredir hizmet verdiği ve bağlantı sayısı görüntülenir U - uline - Uline bloğu içeriği görüntülenir v - denyver - Deny version bloğu içeriği görüntülenir V - vhost - Vhost bloğu içeriği görüntülenir X - notlink - Link bloğunda var olan fakat henüz linki gerçekleşmemiş sunucular listesi görüntülenir Y - class - Class bloğu içeriği görüntülenir z - zip - SZiplinked sunucular hakkında ki sıkıştırma bilgisi görüntülenir Z - mem - Bellek kullanım bilgisi görüntülenir | Herkes
module | Yüklü olan bütüm modüllerin listesinin görüntülenmesini sağlar | Herkes
close | Tanımlanamayan bütün bağlantıların IRC Sunucusu ile bağlantılarını kesmenize olanak sağlar. | IRC Operatörler

8 – Güvenlik İçin Tavsiyeler/Kontrol Listesi

Eğer güvenlik ile ilgileniyorsanız (ki ilgilenmelisiniz!), bu bölüm mevcut riskler hakkında genel bir bilgi edinmenize yardımcı olacaktır. Bu sebeple ağınızı daha güvenli bir hale getirmek amacıyla adım adım ilerleyeceğiniz bir "kontrol listesi" kullanabilirsiniz.

Listedeki öğeler popularite/risk düzeyi/genelde kullanılan saldırı metodları sırasıyla dizilmiştir:

8.1 Şifreler

Belirteceğiniz oper şifrelerinin, link şifrelerinin vs. daha güvenli olması için:
- harf ve rakam kombinasyonlarından oluşan şifreler ("Whbviwf5" gibi) veya uzun şifreler kullanın ("blaheatsafish", "AlphaBeta555" gibi).
- Link/oper şifrelerini mail hesabınızın şifreleriyle veya bu tarz kullandığınız başka hesapların şifreleriyle aynı şifreler olarak BELİRTMEYİN.

8.2 Ircd ile alakalı olmayan zayıflıklar

UnrealIRCd 'in ircd ile alakalı olmayan bir zayıflıktan dolayı hacklenmesi olasılığı, UnrealIRCd'de bulunan bir bugdan dolayı hacklenmesi olasılığına nazaran çok daha büyüktür. Örnek olarak http, smtp, dns ve ftp sunucularınızı aynı konumdan koşturuyorsanız büyük bir hacklenme riskine sahipsiniz demektir. Aynı zamanda eğer çok kullanıcılı bir sistemde iseniz (ör: shell aldıysanız) bu durumda ise yerel exploitlere karşı hacklenme riskiniz olacaktır. Bu sebepten dolayı shell sağlayıcınızı seçerken dikkatli olun.

8.3 Konfigürasyon dosyası ve yetkilendirme

Herzaman home dizininizin ve UnrealIRCd'in bulunduğu dizinin doğru yetkilendirmeye sahip olduğundan emin olun. Aksi takdirde yerel bir kullanıcı konfigürasyon dosyanızı basitlikle elde edebilir ve şifreleri görebilir...Eğer bundan emin değilseniz kısaca: chmod -R go-rwx /path/to/Unreal3.2 komutunu kullanın.Hiçbir zaman UnrealIRCd'i webroot veya bu türden paylaştırılmış bir dizinde bulundurmayın ve yedekleme için doğru yetkilendirmeye sahip olduğunuzdan da emin olun.
Aynı zamanda mümkün olduğunca yeniden şifrelenmiş (encrypted) şifreler kullanın, Eğer OpenSSL desteği ile derleme yaptıysanız size şifreleme metodu olarak sha1 veya ripemd160 metodunu kullanmanızı öneririm, diğer bir metod olarak md5 metodunu da kullanabilirsiniz. Eğer daha önce kullandığınız 3.2.1 veya daha önceki versiyonlarda belirttiğiniz yeniden şifrelenmiş şifreler varsa (oper bloklarında) size bu şifreleri yeniden şifrelemenizi (sadece /mkpasswd komutunu kullanarak) öneririm, çünkü 3.2.1 'de bazı önemli anti-crack özellikleri ilk kez kullanıldı.
Bu anlatılanların 'güvenlik için diğer bir katman' olduğunu unutmayın, eğer zayıf şifreler kullanıyorsanız, bunlar kolaylıkla çözülebilir. Eğer birisi konfigürasyon dosyanızı eline geçirirmeyi başarırsa, bu dosyada bir saldırganın saldırıyı yapmasına yardımcı olacak bir çok bilginin mevcut olduğunu da unutmayın. (link::password-connect gibi).

8.4 Kullanıcı kaynaklı problemler

Yöneticinizleri herzaman akıllıca seçin, ve bir zincirin zayıf halkası kavramını da unutmayın. Çok dikkatli olabilirsiniz ve hatta bu dökümanda yazılan herşeyi uygulamış olabilirsiniz, fakat yönetici olarak seçtiğiniz arkadaşlarınızdan birisi aptalca bir hareket yapabilir. Bu hareket sizin kontrolunuz altında gelişmeyebilir. Bu hareket apaçık olarak şifre belirtmesi, harddiskini netbios/kazaa/morpheus aracılığıyla paylaşıma açması gibi eylemler olabilir. Sadece yapmanız gereken kime hangi yetkileri vereceğinizi belirlerken dikkatli olmak. (oper::flags).

8.5 SSL/SSH & sniffing

Bir oper olarak ve sunucular arası bağlantılarda SSL kullanmanız sizi "veri korsanlığı"na karşı koruyacaktır. Veri korsanlığı saldırganın kullanıcı ile sunucu arasında bir konumu hacklemesiyle mümkün olur, böylelikle saldırgan bütün ağ trafiğini görebilir, bütün konuşmaları görebilir ve bütün şifreleri yaklayabilir. Yine aynı sebepten dolayı herzaman telnet yerine SSH kullanın.

8.6 Denial of Service attacks (DoS) [or: veya: hubumu nasıl koruyabilirim?]

Birçok ağ bir floodun veya (D)DoS saldırısının ne kadar "eğlenceli" olduğu konusunda tecrübe sahibi olmuştur, yinede bu saldırılardan doğacak zararı azaltmak için birşeyler yapabilirsiniz. Birçok ağ bir hub sunucusuna sahiptir, ve birçok kişinin gözden kaçırdığı nokta hub olan sunucunun saldırılara karşı korunmasının oldukça kolay olduğudur.
Burada açıklayacağım:
1. Hub ismini varolmayan bir hostname olarak belirtin, ör 'hub.yournet.com', fakat
bu belirttiğiniz hostname için bir dns kaydı eklemeyin. Böylelikle saldırgan hostu
çözemeyecek ve böylelikle flood yapamayacaktır. Daha sonra huba sunucuları sadece
IP'yi belirterek linkleyin.
Örnek 1: link visibiblename.yournet.com { hostname 194.15.123.16; [vs] };.
Örnek 2: link visibiblename.yournet.com { hostname thehostnamethatworks.yournet.com; [vs] };.
Bir dipnot düşmek gerekirse, son örnekte belirttiğiniz sunucu isimlerinin zone transferlerine izin vermeyeceğinden emin olun, fakat bu bu konunun çok dışında bir olay ;).
2. Diğer bir önemli adım ise, normal kullanıcıların '/stats c' komutunu kullanmalarını engellemenizdir
aksi takdirde saldırgan kolaylıkla link bloğunun içeriğini listeleyebilecektir. Eğer bu konuda endişeleriniz
varsa (benim gibi) bunu set { oper-only-stats "*"; }; yönergesiyle kolaylıkla sağlayabilirsiniz. Böylelikle
normal kullanıcılar tarafından bütün stats flaglarının kullanımını engellemiş olacaksınız. Eğer böyle yapmak istemiyorsanız en azından "CdDlLXz" flaglarının kullanımını engelleyin. Bu konuyla ilgili daha fazla bilgi bir sonraki bölümde bulunmaktadır.
Elbette bu anlatılan adımlar bu atakların sürekli olarak uygulanması halinde (ör: bir kaç ay) başlangıca göre daha düşük oranda yararlı olacaktır, çünkü IP'ler bazı kötü niyetli kullanıcılar tarafından bilinebilir.. Aynı zamanda saldırganların, bu adımları uygulasanız dahi, hala hub olmayan sunuculara saldırabileceklerini gözardı etmeyin, fakat bu 1 veya 2 zayıf noktadan (hublara) saldırmaya kıyasla daha fazla çaba gerektirir, aynı zamanda böylelikle hubunuz & servisleriniz canlı kalacaktır :).

8.7 Bilgilendirme

STATS
/stats komutu çok bilgi verici bir komuttur, olabildiğince bu komutun kullanımını kısıtlamak isteyebilirsiniz. Bu konuda kendinize sormanız gereken soru "kullanıcılarımın görmelerini istediklerim bilgiler neler?" sorusudur. Birçok büyük ağ bu soruya "hiçbir şey" olarak cevap verir, bazıları ise '/stats g' ve '/stats k' harici kullanımları kısıtlar. Size bütün stats flaglarının oper olmayanlar tarafından kullanımını engellemek için set { oper-only-stats "*"; }; yapmanızı öneririm, fakat bunu yapmak istemiyorsanız, '/stats' yazarak mevcut bütün flagların listesine bir göz atmanızı öneririm.(eğer kuşkucuysanız, sadece kısıtlayın.. neden bütün bilgileri görme ihtiyacı duysunlar?)
Birkaç örnek vermek gerekirse:
- /stats o: oper nicklerini ve hostmaskelerini gösterir.
- /stats c: sunucu linkleri hakkında bilgi verir.
- /stats g, /stats k: genellikle proxy ile bağlanmayı deneyen saldırganların listesini görüntüler.
- /stats E, /stats e: bir saldırgan bu flagı kullanabilirse buradaki hostmaskelerini kullanabilir
- /stats i, /stats y: izinli bağlantı sağlayan hostları bulmasında saldırgana yardımcı olabilir.
- /stats P: Sadece sunucu bağlantılarının gerçekleştiği portları bulmasında saldırgana yardımcı olabilir
vs vs...
MAP / LINKS
Birçok kişi /map veya /links komutunu deaktif etmenin bir yolu olup olmadığını sormuştur. Bizim buna cevabımız; böyle bir şey yapmak saçmadır ve güvenlik için yanlış bir yaklaşımdır, açıklamama izin verin... Kullanıcılar tarafından kullanılan sunucuları gizlemek, kullanıcıların zaten üzerinde bulundukları sunucuları bilmelerinden dolayı yararsızdır. Bu konu için bölüm 8.6'ya bakın.
Şimdi ne yapaBİLİRSİNİZ? 3.2.1 verisyonundan beri 'flat map' özelliği mevcuttur (set::options::flat-map), bu özellik bütün sunucuları /map be /links komutu uygulamalarında direkt linkli olarak gösterecektir, böylelikle kullanıcılar hangi sunucunun hangisine linkli olduğunu anlayamayacaklardır... Bu korunma ve güvenlik için iyi bir özelliktir çünkü bu özellikle aynı zamanda 'zayıf nokta'lar kolaylıkla belirlenemeyecektir. Bu yüzden bu özelliği kullanmanız önerilir. Fakat bu korumanında kusursuz olmadığını unutmayın... Eğer bir ayrılma (split) meydana gelirse bu durumda kötü niyetli kullanıcılar hangi sunucunun hangisine linkli olduğunu görebilir.
NORMAL KULLANICILAR & SNOMASK
Birçok kişi tarafından bilinmeyen bir özellikte, normal kullanıcıların bazı snomaskları kullanabilmesidir, +s +sk gibi. Bu yolla kullanıcılar rehash, kill ve diğer tipte bazı mesajları görebilirler.
Bunu önlemek için set::restrict-usermodes yönergesini: set { restrict-usermodes "s"; }; şeklinde belirtebilirsiniz.
Elbette bu anlatıların hepsi "bilgi gizleme" olarak nitelendirilir, dolayısıyla bu "gerçek" güvenlik değildir. Fakat bu sunucunuzun hacklenmesi için gerekecek çabayı arttırmaya yöneliktir.

8.8 Exploitlere karşı korunma

Yığın tabanlı exploitlerin çalışmasını zorlaştıracak kernel yamaları vardır. Bu iyidir, fakat bu sizin ana odak noktanız olmamalıdır, diğer başka yollarla exploit saldırılarına uğrayabileceğinizi unutmayın ve bu büyük bir risktir.. çeşitli sebeplerle.
Yapmanız gereken tek şey vardır, HERZAMAN EN SON VERSİYONU KULLANIN, bunun için unreal-notify mailinglist listesine abone olun böylelikle yayınlanan yeni versiyon duyurularını alabilirsiniz. (unreal-uyarısı sadece yeni versiyon duyuruları içindir, dolayısıyla her X ayda 1 mail gönderilir.)

8.9 Özet

Umarım, hiçbir zaman %100 güvende olamayacağınızı anlamışsınızdır. Siz (ve biz) burda belirtilmeyen bütün açıkları bulup&onaracağız, bir saldırganın ihtiyacı olduğu tek şey sadece 1 açıkla bir sunucu bulmaktır. Burada açıklananlar mevcut riskleri minimuma indirmenize yardımcı olacaktır. Ağ güvenliğiniz için zaman ayırın ve yöneticilerinizi eğitin. Birçok kişi hacklenene kadar güvenliğe önem vermez, böyle bir tutum sergilemeyin :).

9 – Sıkça sorulan Sorular (FAQ)

FAQ kısmına çevirimiçi olarak buradan ulaşabilirsiniz.

A Düzenli İfadeler

Düzenli ifadeler Unreal'de bir çok yerde kullanılır, badwords, spamfilter ve aliases'lerde olduğu gibi. Düzenli ifadeler kalıp eşleşmesi için kullanılan çok kompleks araçlardır. Bunlar bazen "regexp" bazen de "regex" olarak kullanılır. Unreal bu ifadeler için TRE düzenli ifadeler kütüphanesini kullanır. Bu kütüphane çok kompleks ve kimi zaman karışık olabilecek ileri düzey ifadeleri destekler. Aşağıda anlatılanlar regexp'nin çalışma mantığı hakkında size bilgi verecektir. Eğer regexp kullanımı hakkında daha fazla bilgiye sahip olmak istiyorsanız ve bu konuyla ilgileniyorsanız burayı tıklayın (TRE homepage).

A.1 Değişmezler

Değişmezler bir regexp'nin en temel bileşenidir. Basit olarak değişmezler sade-metinde görülen karakterlerdir. Örneğin; "test" ifadesi 4 adet değişmez içerir: "t", "e", "s", "t". Unreal'de değişmezler büyük-küçük karakter duyarlı değildir, dolayısıyla örnekde verilen ifade "TEST" ile de eşdeğerdir. "Meta karakter" olmayan bütün karakterler değişmez sayılır. Aynı zamanda bir karakteri tersbölü (\) karakterini kullanarak da değişmez yapabilirsiniz. Örneğin nokta (.) bir metakarakterdir. Eğer . 'yı bir değişmez olarak kullanmak isterseniz yapmanız gereken .'yı \. olarak belirtmektir ve Unreal bunu nokta olarak yorumlayacaktır. Aynı zamanda ASCII karakter 3 (renk) gibi bir karakteri de kontrol etmek isteyebilirsiniz. Bunu \x şeklinde bildiri yaparak sağlayabilirsiniz. Örneğin \x3 olarak bildiri yaptığınızda bu ASCII karakter 3'e (renk). Burada \x ifadesinden sonra onaltılık bir sayıda belirtebilirsiniz ve bu \x0'dan \xFF 'e kadar belirtilebilir.

A.2 Nokta İşleci

Nokta işleci (.) "herhangi bir karakter"le eşleşme için kullanılır. Herhangi bir değere sahip tek bir karakterle eşleşir. Örneğin, "a.c" düzenli ifadesi "abc", "adc" vs. gibi ifadelerle eşleşecektir. Fakat "abd" ile eşleşemeyecektir çünkü "a" ve "c" birer değişmezdir ve karşılaştıracak ifadeyle bunların eşleşmesi zorunludur.

A.3 Yineleme İşleçleri

Regex'de ençok yapılan hatalardan biri yineleme işleçlerinin tam anlamıyla joker karakterler olarak kullanılmasıdır. Bu doğrudur, * ve ? karakterleri joker karakterler olarak kullanılabilir ancak bunların regexdeki manası tam anlamıyla joker karakterler değildir. Ek olarak, düzenli ifadeler daha ileri düzeyde yineleme metodlarını da destekler.

En temel yineleme işleci ? işlecidir. Sıfır veya bir kere eşleşme işlecidir. Joker karakter olarak kullanımında, örneğin "a?c" ifadesinde yineleme işleci "a"yı takip eden ve "c"den önce gelen herhangi bir karakterle eşleşecektir. Fakat regexdeki kullanımında anlamı farklıdır. Bu durumda "a?c" ifadesi "ac" ifadesi ve "c" ifadesi haricinde hiçbir ifadeyle eşleşmeyecektir. Dolayısıyle ? işleci; belirtilen düzenli ifadede kendinden önce gelen karakterin eşeleşecek ifadede var olup olmamasına göre eşleşme yapacaktır. Eğer düzenli ifadede bu işleç joker karakter olarak kullanılmak istenirse bu durumda aynı ifadeyi "a.?c" şeklinde belirtmeniz gerekir. Bu durumda ? işleci "a"yı takip eden ve "c"den önce gelen herhangi bir karakterle eşleşecektir.

Bir yineleme işleci de * işlecidir. Aynı şekilde bu işleçte joker karakter olarak kullanılabilir. Aynı zamanda sıfır veya daha fazlasıyla eşleştirme işlecidir. * işleci; belirtilen düzenli ifadede kendinden önce gelen karakterin 0 ya da daha fazla bulunması durumlarıyla eşleşir. Örneğin "a*c" düzenli ifadesi "c" ile sonlandırılmış 0 veya daha fazla "a" içeren ifadelerle işleşecektir. Misal "aaaaaac" ifadesiyle eşleşir. Eğer joker karakter olarak kullanılmak istenirse "a.*c" şeklinde belirtmeniz gerekecektir.

+ işlecinin yorumlanması * işlecinin yorumlanmasına çok benzer. Ancak sıfır veya daha fazlazıyla değil 1 veya daha fazlasıyla eşleştirme işlecidir. "a+c" düzenli ifadesi "ac" veya daha fazla ardarda "a" içeren "aaaaaaaaac" gibi bir ifadeyle eşleşecektir.

En ileri düzeyde yineleme işleci ise sınırlı sayıda yineleme işlecidir. Bir sınırlı sayıda yineleme işleciyle kendinden önce gelen karakterin kaç kez tekrarlanacağını kesin olarak belirtebilirsiniz. Örneğin, 8 a içeren veya en az 8 a bulunduran veya 3-5 a bulunduran bir ifadeyle eşleştirme yapabilirsiniz. Temel kullanımı {M,N} şeklindedir, burada M sınırlamada belirtilecek sayılardan küçüğünü, N ise büyüğünü temsil etmektedir. Örneğin 3 ve 5 arasındaki bir sayıda a içeren bir eşleşme için "a{3,5}" şeklinde belirtmelisiniz. Bununla birlikte M sayısı N sayısına eşit olamaz. Bu durumda eğer tam 8 a içeren bir eşleşme için "a{8]" şeklinde belirtmelisiniz. Bu "aaaaaaaa" ile eşleşmeye denktir. En az 8 a içeren bir ifadeyle eşleşme için "a{8,}" şeklinde belirtmelisiniz.

Default olarak, bütün yineleme işleçleri aç gözlüdür. Temel olarak bunun anlamı bir yineleme işleci olabildiğince çok karakterle eşleşir. Bu bir örnekle daha iyi açıklanabilir.

Aşağıdaki ifade gibi bir metnimiz olsun:
HELLO
Belirtilen düzenli ifade de aşağıdaki olsun:
.+L

Bu örnekte, .+ işlecinin "HE." ile eşleşeceğini düşünmelisiniz. Bununla birlikte bu doğru değildir. Çünkü + işleci aç gözlüdür, dolayısıyla "HEL." ile eşleşecektir. Bunun sebebi, bu işlecin giriş metninde bulunan eşleşecek en büyük parçayı seçmesidir. Bu örnekte bu işleç "HEL" parçasıyla eşleşti. Metin "HELLO" olduğundan, "HEL" ifadesini bir "L" takip ettiğinden, eşleşme gerçekleşti. Bununla birlikte bazen de bir işleç, yineleme işlecinden sonra ? karakteri kullanılarak bu durumdan kurtarılabilir. Yukarıdaki örneğe göre düzenli ifade ".+?L" şeklinde değiştirilirse bu durumda .+? işleci "HE" ile eşleşecektir. ? karakteri herhangi bir yineleme işlecine eklenebilir: ??, *?, +?, {M,N}?.

A.4 Parantez İfadeleri

Parantez ifadeleri kullanmak "veya" operatörü oluşturmak için uygun bir yoldur. Örneğin, eğer "bir a ile veya a b ile eşleş" şeklinde söylemek istiyorsanız. Parantez ifadeleri ismini ([]) karakterlerinin kullanılmasından alır. Temel kullanımıyla parantez ifadeleri bir seri karakteri içerebilir. Böylelikle bu karakterler aralarında "veya" operatörü varmış gibi değerlendirilir. Bir örnek olarak, "[abc]" ifadesi "a,", "b," veya "c." ile eşleşir. Bu nedenle "a[bd]c" düzenli ifadesi ise "abc" ve "adc" eşleşir fakat "acc." ile eşleşmez.

Bu ifadeler uygulamada ençok bir harf veya bir rakam kontrolunde kullanılır. Birer birer belirtmekten, yani "[0123456789]" şeklinde belirtmekten daha ziyade parantez ifadeleri içinde aralık belirtebilirsiniz. Bu aralıkları başlangıç değeri ve bitiş değeri arasına - karakteri koyarak belirtebilirsiniz. Böylelikle bir rakam kontrolu için en basit şekliyle "[0-9]" şeklinde belirtme yapabilirsiniz. Bu türdeki belirtme harfler için ve ASCII değerleri içinde geçerlidir. Eğer bir harf eşleşmesi yapmak istiyorsanız basitçe "[a-z]" şeklinde belirtebilirsiniz, Unreal büyük-küçük harf duyarlılığına sahip olmadığından bu bütün (büyük/küçük) karakterleri kapsayacaktır. Aynı zamanda aynı ifadede çoklu aralıklar da belirtebilirsiniz. Bir harfle veya bir rakamla eşleşme yapmak istiyorsanız, "[0-9a-z]" şeklinde belirtmelisiniz. - karakterinin parantez ifadelerinde özel bir karakter olduğunu unutmayın. - değişmeziyle bir eşleşme yapmak istiyorsanız, bu değişmezi parantez ifadesinin ya ilk karakteri olarak ya da son karakteri olarak belirtin. Örneğin "[0-9-]" ifadesi herhangi bir rakam veya - karakteriyle eşleşecektir.

Bunları daha da sadeleştirmek için, parantez ifadelerinde kullanılmak üzere "karakter sınıfları" vardır. Bu karakter sınıfları ihtiyaç duyulan belirli aralıkları tanımlamak için kullanılır. Karakter sınıfları parantez ifadesi içinde, isimlerinin başına ve sonuna : karakteri eklenerek kullanılır. Örneğin "[0-9]" gibi bir ifade "[:isdigit:]" şeklinde yazılabilir. Aşağıda mevcut karakter sınıfları ve işlevler belirtilmiştir:

- `alnum` - sadece alfanumerik karakterler
- `alpha` - alfabetik karakterler
- `blank` - boşluk karakterleri
- `cntrl` - kontrol karakterleri
- `digit` - onluk tabanda rakam değerleri (0 'dan 9 'a kadar)
- `graph` - boşluk karakteri hariç bütün basılabilir karakterler
- `lower` - sadece küçük harfleri gözönünde bulunduran kriter
- `print` - boşluk karakteri dahil bütün basılabilir karakterler
- `punct` - boşluk karakteri ve alfanumerik karakterler hariç basılabilir karakterler
- `space` - white-space characters
- `upper` - sadece büyük harfleri göz önünde bulunduran kriter
- `xdigit` - onaltılık tabanda rakam değerleri

Karakter sınıfları ile ilgili bir diğer önemli nokta ise, karakter sınıfları parantez ifadesi içinde tek eleman olmalı, yani başka bir elemanla birlikte kullanılamaz. Örneğin, "[:isdigit:-]" geçersiz bir kullanımdır. Bunun için "[[:isdigit:]-]" şeklinde kullanın.

Parantez ifadelerinin son özelliği olumsuzlamadır. Bazı zamanlarda "bu karakterler haricinde herhangi bir karakter" gibi bir ifadeyi belirtmek isteyebilirsiniz. Örneğin eğer "harf olmayan" bir karakteri kontrol etmek isterseniz, burada a-z harici karakterlerden bahsedildiği açıktır, bunu ifadenin başına ^ karakterini ekleyerek belirtebilirsiniz. Dolayısıyla bu durumda "[^a-z]" ifadesi harf olmayan herhangi bir karakterle eşleşir. - karakterinde olduğu gibi, eğer ^ karakterini bir değişmez olarak belirtmek isterseniz, bu değişmezi ilk karakter pozisyonunda kullanmayın, "[a-z^]" ifadesinde olduğu gibi kullanın. Karakter sınıfları içinde aynı uygulama geçerlidir, "[^[:isdigit:]]" ifadesiyle rakam olmayan bütün karakterler belirtilmiştir.

A.5 Demirleme İşleçleri

Demirleme işleçleri dizilerinin belirtilemeyeceği koşullarda, bazı genel parantez ifadeleri için kısayollar belirtmek için kullanılır.

^ karakteri belirtilecek düzenli ifadenin başında kullanıldığında, eşleşme yalnızca kontrol edilen metnin belirtilen düzenli ifade ile başlamasıyla gerçekleşecektir. Örneğin düzenli ifade "test" olarak belirtilirse bu ifade "test" ifadesini içerdiğinden, "this is a test" metni ile eşleşecektir. Ancak düzenli ifadeyi "^test" olarak belirtirseniz bu sefer eşleşme gerçekleşebilmesi için metin "test" ile başlamak zorundadır. Ek olarak $ karakteri ise belirtilecek düzenli ifadenin sonunda kullanıldığında, eşleşme yalnızca kontrol edilen metnin belirtilen düzenli ifade ile sonlandığı durumlarda gerçekleşecektir. Örnek olarak "^test$" düzenli ifadesi, yalnızca "test." metniyle eşleşecektir.

Diğer bütün demirleme işleçleri belirli bir karakterin başına \ konulmasıyla kullanılır. Örneğin, bir kelimenin başını ve sonunu kontrol etmek için, \< ve \> kullanabilirsiniz.

Geriye kalan demirleme işleçleri ise biri pozitif biri negatif değeri temsil etmek üzere 2 formdadır. Bu işleçler aşağıda listelenmiştir:

- `\b` - Kelime sınırı
- `\B` - Non-word boundary
- `\d` - Rakam karakterleri (`[[:digit:]]` ifadesine denktir)
- `\D` - Rakam olmayan karakterler (`[^[:digit:]]` ifadesine denktir)
- `\s` - Boşluk karakteri (`[[:space:]]` ifadesine denktir)
- `\S` - Boşluk-olmayan karakter (`[^[:space:]]` ifadesine denktir)
- `\w` - İşaret karakterleri (`[[:alnum:]_]` ifadesine denktir)
- `\W` - İşaret-olamayan karakterler (`[^[:alnum:]_]` ifadesine denktir)

A.6 Veya İşleci

Veya işleci | karakteridir. Örneğin "a veya b" gibi bir ifade belirtmek için "a|b" bildirimini yapabilirsiniz.

A.7 Gruplama İşleçleri (Alt İfadeler)

Gruplama işleçleri alt ifadelerdir. Bir alt ifade oluşturmanın 2 yolu vardır. 2 metod "grup adresleme işleci" açısından bakıldığında farklılık göstermektedir. Grup adresleme işleci kullanan bir alt ifade bildirmek için, açık parantez yerine "(?:" ifadesini kullanın. Örneğin "([a-z])" ifadesini bir alt ifade olarak bildirmek için "(?:[a-z])" şeklinde belirtmelisiniz. Bütün yineleme işleçleri alt ifadelerde "alt ifadenin 1 veya daha fazla tekrarlanması" şeklinde kullanılabilir. Örneğin "[0-9][a-z][0-9]" gibi bir düzenli ifademiz varsa ve bu ifadenin iki kez tekrarlanması durumlarında eşleşme yapmak istiyorsak bunu "([0-9][a-z][0-9]){2}" şeklinde belirtebilirsiniz.

A.8 Grup Adresleme İşleci

Grup adresleme işleçleri düzenli ifadenin önceden belirtilmiş bir alt ifadesiyle bir adresi eşleştirmenize olanak sağlar. Bir grup adresleme işlecini tersbölü karakteri (\) ve ardından da 0-9 arasında bir rakam belirterek kullanabilirsiniz, örneğin \1. \0 grup adresleme işleci özel bir işleçtir, bu işleçle düzenli ifadenin tamamını kapsatabilirsiniz. Grup adresleme işleçlerinden, aynı diziyi 2 kere içeren bir metni eşleştirmek istediğinizde faydalanabilirsiniz. Örneğin, nick!user@host gibi bir maske olsun. Ve "[0-9][a-z]{5}" düzenli ifadesi ile eşleşen bir nick ve kullanıcı adı kullanan bir trojan olsun ve aynı nicki ve identi kullansın. Bu durumda "[0-9][a-z]{5}![0-9][a-z]{5}@.+" ifadesi ile eşleşme yapamazsınız çünkü bu ifade nick ve ident kısmının farklı oldugu durumlara izin verebilir. Örneğin nick labcde ve identte 2fghij olabilir. Grup adresleme işleçleri ile bu limtlemenin üstesinden gelebilirsiniz. Bunun için (bu örnek için) "([0-9][a-z]{5})!\1@.+" şeklinde ifade belirtmeniz yeterli olacaktır.

9 tane grup adresleme işleci olduğundan (?:) notasyonu kullanışlıdır. Bu size grup adresleme işleci boşa kullanılmaksızın alt ifade oluşturmanıza izin verir.

A.9 Büyük/Küçük Harf Duyarlılığı

Bahsedildiği üzere, Unreal bütün düzenli ifadeleri büyük/küçük harf duyarsız olarak kullanır. Bunun için temel gerekçe; bir ifadeyle daha fazla eşleşme yapmak isteyebilirsiniz. Örneğin "www.test.com" metnini bloklamak isteyebilirsiniz, bunun için “WWW.TEST.COM” ifadesini belirtmek zorunda kalmayacaksınız.. Bununla birlikte, büyük/küçük harf duyarlılığının aktif olması gereken durumlar da olabilir. Örneğin belirli trojanların eşleşmesinde. Bu durumda büyük/küçük harf duyarlılığını aktif edebilirsiniz. Bu duyarlılığı açmak için "(?-i)" ifadesini, kapamak için ise "(?i)" ifadesini kullanabilirsiniz. Örneğin, "(?-i)[a-z](?i)[a-z]" ifadesi yalnızca küçük harflerle eşleşecektir.