UnrealIRCd - 3.2 - Hivatalos dokumentáció

English | German | Spanish | Hungarian | French | Greek | Dutch | Russian | Turkish
UnrealIRCd
http://www.unrealircd.com
Verzió: 3.2.5
Utolsó dokumentáció frissítés: 2006-06-15
Fő fejlesztők: Stskeeps / codemastr / Syzop / Luke
Munkatársak: McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk
Dokumentáció: CKnight^ / Syzop
Magyar fordítás: AngryWolf

E dokumentáció megtekintéséhez az alábbiakban felsorolt kompatibilis böngészők egyikére van szükséged. Friss dokumentációkat találsz a http://www.vulnscan.org/UnrealIRCd/unreal32docs.html címen, és egy GYIK-et a http://www.vulnscan.org/UnrealIRCd/faq/ oldalon.

Kompatibilis böngészők:

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

TÁRGYMUTATÓ / TARTALOMJEGYZÉK
1. Bevezetés és megjegyzések
---1.1. Megjegyzések a 3.1.x-ről 3.2-re frissítésről és a verziók keveréséről
---1.2. Megjegyzések a 3.2-es verziók közötti frissítésről
2. Telepítés
3. Jellegzetességek
-- 3.1. Álcázás
-- 3.2. Modulok
-- 3.3. Snomaszkok
-- 3.4. Álnevek
-- 3.5. Helpop
-- 3.6. Operátori hozzáférési szintek
-- 3.7. Operátori parancsok
-- 3.8. SSL
-- 3.9. IPv6
-- 3.10. Zip linkek
-- 3.11. Dinamikus DNS-sel/IP-vel linkelések támogatása
-- 3.12. Árasztásvédelmi lehetőségek
-- 3.13. Ban típusok
-- 3.14. A spamszűrő
-- 3.15. CIDR
-- 3.16. Karakterkészletek nicknevekhez
-- 3.17. CGI:IRC támogatás
-- 3.18. Időszinkronizáció
-- 3.19. További jellegzetességek
4. Az unrealircd.conf fájlod beállítása
---4.1. A konfigurációs formátumról
---4.2. Me blokk -=- (M:Line)
---4.3. Admin blokk -=- (A:Line)
---4.4. Class blokk -=- (Y:Line)
---4.5. Allow blokk -=- (I:Line)
---4.6. Listen blokk -=- (P:Line)
---4.7. Oper blokk -=- (O:Line)
---4.8. DRpass blokk -=-(X:Line)
---4.9. Include direktíva
---4.10. Loadmodule direktíva
---4.11. Log blokk
---4.12. TLD blokk -=- (T:Line)
---4.13. Ban nick blokk -=- (Q:Line)
---4.14. Ban user blokk -=- (K:Line)
---4.15. Ban IP blokk -=- (Z:Line)
---4.16. Ban server blokk -=-(q:Line)
---4.17. Ban realname blokk -=- (n:Line)
---4.18. Ban version blokk
---4.19. Ban exception blokk -=- (E:Line)
---4.20. TKL exception blokk
---4.21. Throttle exception blokk
---4.22. Deny DCC blokk -=- (dccdeny.conf)
---4.23. Deny version blokk -=- (V:Line)
---4.24. Deny link blokk -=- (D:Line / d:Line)
---4.25. Deny channel blokk -=- (chrestrict.conf)
---4.26. Allow channel blokk
---4.27. Allow DCC blokk
---4.28. Vhost blokk -=- (vhost.conf)
---4.29. Badword blokk -=- (badwords.conf)
---4.30. Uline block -=- (U:Line)
---4.31. Link block -=- (C/N/H:Line-ok)
---4.32. Alias blokk
---4.33. Help blokk
---4.34. Official channels blokk
---4.35. Spamfilter blokk
---4.36. Cgiirc blokk
---4.37. Set blokk -=- (networks/unrealircd.conf)
5. További fájlok
6. Felhasználói és csatornamódok
7. Felhasználói és operátori parancsok
8. Biztonsági tippek/ellenőrzőlista
---8.1. Jelszavak
---8.2. Nem ircd-vel kapcsolatos sebezhetőségek
---8.3. Engedélybeállítások és a konfigurációs fájlok
---8.4. Felhasználószintű problémák
---8.5. SSL/SSH és a szimatolások
---8.6. Denial of Service támadások (DoS) [avagy: hogyan védd meg a hubodat]
---8.7. Információközlés
---8.8. Sebezhetőségek elleni védelem
---8.9. Összegzés
9. Gyakran Ismételt Kérdések (FAQ)
A. Reguláris kifejezések
---A.1. Konstansok
---A.2. A pont operátor
---A.3. Ismétlő operátorok
---A.4. Zárójeles kifejezések
---A.5. Tesztek
---A.6. Alternálás
---A.7. Alkifejezések
---A.8. Visszautalások
---A.9. Kis-nagybetű érzékenység

1.0 – Bevezetés és megjegyzések

Ez a dokumentum az UnrealIRCd-vel való kizárólagos használatra készült. E dokumentum más szoftvercsomaggal való használata és a dokumentum más szoftvercsomaggal történő terjesztése szigorúan tilos az UnrealIRCd Fejlesztői Csapat írásos engedélye nélkül. Ez a dokumentum másolható, nyomtatható, sokszorosítható és közzétehető tetszés szerinti alkalommal, feltéve, hogy azt az UnrealIRCD-hez használod, és nem módosítod. – Copyright UnrealIRCd Fejlesztői Csapat 2002-2006

Kérlek, olvasd el ezt a kézikönyvet, mielőtt segítséget kérsz, és BIZTOSAN bele akarsz nézni a GYIK-ba is, mivel a kérdéseid/problémáid 80%-a meg van válaszolva benne. Ha az nem oldotta meg a problémádat, segítséget kérhetsz az irc.ircsystems.net-en (6667-es port) az #unreal-support csatornán. (Megjegyzendő, hogy MEGKÖVETELJÜK a dokumentáció és a GYIK elolvasását, és csak az UnrealIRCd-vel kapcsolatban segítünk, nem a Servicessel!). Ha találsz egy valódi hibát (például egy ütközést), jelentsd a http://bugs.unrealircd.org-on!

1.1 – Megjegyzések a 3.1.x-ről 3.2-re frissítésről és a verziók keveréséről

Abban az esetben, ha az Unreal3.1.x-ről Unreal3.2-re frissítesz, észre fogod venni, hogy az egész konfigurációs fájl megváltozott, és talán nehéznek látod először, de ha egyszer átváltottál, sokkal jobbnak fogod találni!

Ezenkívül ne felejtsd el elolvasni a jellegzetességekről szóló 3. részt, mert bár néhányukról tudsz, amelyek az Unreal3.1.x-ben is megtalálhatóak, de van számos újdonság is!

A legjobb, ha nem keversz/linkelsz 3.1.x-et 3.2-vel, de ha nagyon akarod, legaláb egy 3.1.4-es vagy 3.1.5.1-ös erősen ajánlott.

1.2 – Megjegyzések a 3.2-es verziók közötti frissítésről

A frissítés javasolt módja:
Linux:

- Nevezd át a régi UnrealIRCd könyvtáradat. (Máskülönben felül fogod írni a következő lépésben.)
- Csomagold ki az új UnrealIRCd verziót, valamint futtasd a ./Config és a make parancsot.
- Másold a régi konfigurációs fájlokat az új könyvtárba. (unrealircd.conf, motd, szabályok, server.* [SSL tanúsítványok], hálózati fájl stb.)

Windows:

- Másold át minden konfigurációs fájlodat egy ideiglenes helyre.
- Távolítsd el az összes előzőleg telepített Unreal verziót.
- Futtasd az Unreal új verziójának telepítőjét.
- Másold a régi konfigurációs fájlokat az új könyvtárba.

Kérlek, a .RELEASE.NOTES-t is olvasd el, hogy lásd, milyen változások történtek. Ha bármilyen változást tapasztalsz (vagy hibát) a régi és új verziók között, FELTÉTLENÜL OLVASD EL A KIADÁSI JEGYZÉKET, mielőtt hibaként jelented!

2.0 - Telepítés

Tesztelt és támogatott operációs rendszerek:

- *NIX verziók:
  - Linux (2.2.*, 2.4.*, 2.6.*)
  - FreeBSD (4.*, 5.*)
  - NetBSD (2.*)
  - OpenBSD (3.7, 3.8)
  - Solaris (9, 10)
- Windows verzió:
  - Windows 2000 (Pro, Server, Advanced Server)
  - Windows XP (Home, Pro)
  - Windows 2003
- Tesztelt architektúrák:
  - ia32 (i386, i486, i586, i686)
  - ia64
  - amd64
  - alpha

Ha van egy működő Unreal3.2-d más operációs rendszereken, kérlek, küldd a részleteket a coders@lists.unrealircd.org címre.

Telepítési útmutatások
Linux:

1. gunzip -d Unreal3.2.X.tar.gz
2. tar xvf Unreal3.2.X.tar
3. cd Unreal3.2
4. ./Config
5. Válaszolj ezekre a kérdésekre a legjobb tudásod szerint. Általában, ha nem vagy biztos a válaszban, az alapértelmezett érték is pont jó!
6. make
7. Most hozd létre az unrealircd.conf-odat és más konfigurációs fájlokat, lásd a 4. részt.

Windows:

1. Futtasd az Unreal telepítőt.
2. Most hozd létre az unrealircd.conf-odat és más konfigurációs fájlokat, lásd a 4. részt.

3.0 - Jellegzetességek

Néhány főbb és hasznosabb jellegzetességről adunk magyarázatot ebben a részben. Általános áttekintést nyújt, és néha utal a konfigurációs fájlra is (olyasmire, amiről talán még semmit sem tudsz).

Ezt a részt kihagyhatod, azonban erősen ajánlott elolvasni a telepítés előtt vagy után, mert máskülönben nem fogsz megérteni olyan fogalmakat, mint az "álcázás", "snomaszkok" stb.

3.1 - Álcázás

Az álcázás (cloaking) egy módszer a felhasználók valós gazdaneveinek elrejtésére. Például, ha a valódi gazdaneved d5142341.cable.wanadoo.nl, (a join, part, whois stb. üzenetekben) rox-2DCA3201.cable.wanadoo.nl-ként lesz megjelenítve. Ez a funkció hasznos annak a megelőzésére, hogy a felhasználók egymást árasszák (floodolják), mivel így nem látják a valódi gazdanevet ill. IP címet.

Ez a +x felhasználói móddal vezérelhető (például: /mode nickneved +x), az adminok erőltethetik a +x alapértelemzésbeli engedélyezését is, vagy beállíthatják, hogy a mód soha ne legyen eltávolítható.

Az álcázott gazdanevet egy álcázó modul állítja elő (egyet szükséges betöltened), az Unreal jelenleg 1 ilyen hivatalos modult tartalmaz:
cloak: Ez a hivatalos álcázó modul a 3.2.1 óta, sokkal biztonságosabb, mint a régi algoritmus; belsőleg használ md5-öt, és 3 kulcsot igényel (set::cloak-keys::), amelyek mindegyike kis- (a-z), nagybetű (A-Z) valamint szám (0-9) karakterekből áll [pl.: "AopAS6WQH2Os6hfosh4SFJHs"]. Az example.conf-ban találsz példát.

Az álcázási kulcsoknak egy hálózat MINDEN SZERVERÉN azonosnak KELL lenniük. Továbbá a kulcsokat tartsd TITOKBAN, mert ha valaki ismeri a kulcsokat, visszafejtheti az eredeti gazdanevet (ami a +x felhasználói módot hasznavehetetlenné teszi).

3.2 - Modulok

Az UnrealIRCd támogatja a modulokat, ami hasznos, mert:
- Betölthetsz, újratöltetsz és eltávolíthatsz modulokat, miközben az ircd fut (a /rehash-sel). Így hibákat lehet javítani illetve új dolgokat hozzáadni az újraindítás szükségessége nélkül!
- Mások készíthetnek (nem hivatalos, angol nevén: 3rd party) modulokat, amelyek új parancsokat, felhasználói és akár csatornamódokat is tartalmazhatnak.
Az UnrealIRCd önmagában csak egy kevés modullal rendelkezik. Vess egy pillantást a www.unrealircd.com -> modules oldalára, vagy használd a google keresőt nemhivatalos modulok keresésére.

Legalább 2 modult be kell töltened, különben az ircd nem fog elindulni!
- a commands modult: commands.so (commands.dll windows alatt)
- egy álcázó modult: rendszerint cloak.so (cloak.dll windows alatt).

3.3 - Snomaszkok

A snomaskok vagy szerverüzenet-maszkok (server notice mask) a felhasználói módok egy különleges fajtához tartozik, amelyekkel beállíthatod, hogy milyen típusú szerverüzeneteket szeretnél fogadni (leggyakrabban operátorok használják).

Ezek beállítására a /mode nickneved +s SNOMASZK parancs szolgál. Példa: /mode nickneved +s +cF
Egyes snomaskok eltávolítására a következőhöz hasonló parancsot használj: /mode nickneved +s -c
Vagy minden snomaskot törölhetsz a /mode nickneved -s paranccsal.

A jelenleg rendelkezésre álló snomaskok az alábbiak:
c - helyi kapcsolódások
F - távoli kapcsolódások (kivéve U:line-os szerverekről)
f - árasztásokról szóló értesítések
k - kill értesítések [*]
e - szem (eyes) értesítések
j - selejt (junk) értesítések
v - vhost értestések
G - gline/shun értesítések
n - helyi névváltásokról szóló értesítések
N - távoli névváltásokról szóló értesítések
q - letiltott (Q:line-os) nevek visszautasításáról szóló értesítések
s - egyéb szerverüzenetek [*]
S - spamfilter értesítések
o - /oper-elésekről szóló értesítések
[*: ezt a snomaskot nem csak ircopok használhatják]

Beállíthatod, hogy milyen snomaskokat kapj meg automatikusan (set::snomask-on-connect) és melyeket operátorrá váláskor (set::snomask-on-oper, oper::snomask)

Alapértelmezésben, ha a felhasználó egyszerűen csak a +s módot állítja be, bizonyos snomaszkok lesznek beállítva. Közönséges felhasználóknak a +ks, operátoroknak a +kscfvGqo snomaszkok.

3.4 - Álnevek

Az álnevek (alias) szerverszintű álparancsok beállítására szolgálnak. Például az "/ns identify blah" parancsot továbbíthatjuk a nickservnek (úgy lesz lefordítva, hogy "privmsg nickserv identify blah"). Ennél összetettebb álneveket is készíthetünk, mint pl. a /register, amely a ChanServhez továbbítódik, ha az első paraméter #-tel kezdődik, és a NickServ-hez, ha nem.

Álnevek az alias blokkban állíthatóak be a konfigurációs fájlban, és külön betölthetünk egy olyan fájlt is, amiben alapértelmezett álnevek vannak a leggyakrabban használt szolgáltatásokhoz.

3.5 - Helpop

Az UnrealIRCd rendelkezik egy beépített súgórendszerrel, ami elérhető a /helpop-pal. A /helpop parancs teljes mértékben konfigurálható a help blokkal a konfigurációs fájlban. Ezenkívül van hozzá egy help.conf fájl is, amelyben az összes parancsról található alapvető tájékoztatás.
Például a /helpop chmodes egy áttekintést ad az UnrealIRCd összes csatornamódjáról.
Emlékezz arra, hogy ha ircop (helpop) vagy, a kulcsszó elé egy '?' karaktert kell tenni, tehát a /helpop helyett /helpop ? lesz és a /helpop chmodes helyett /helpop ?chmodes stb..

3.6 - Operátori hozzáférési szintek

Számos operátori szint létezik az UnrealIRCd-ben, és további jogokat tehetsz hozzájuk (például a /gline használatához), így minden operátornak megadhatod a szükséges jogokat.

Ezeket az oper flagekkel vezérelheted az oper blokkban; további információért lásd az oper blokkot.

3.7 - Operátori parancsok

Az UnrealIRCd egy halom rendkívül hatásos operátori paranccsal rendelkezik, amelyekre a Felhasználói és operátori parancsok részben adunk magyarázatot, érdemes elolvasni őket a telepítés után. :)

3.8 - SSL

Az SSL a biztonságos kapcsolati réteget (Secure Socket Layer) rövidíti, amellyel létrehozhatsz biztonságos, titkosított kapcsolatokat. Ezzel titkosítható a szerver<->szerver forgalom, de a kliens<->szerver forgalom is lehet titkosított. Rendszerint arra használható, hogy védelmet nyújtson a hallgatózás ellen, valamint hitelesítésre.

Ehhez szükséges, hogy az IRC szervered SSL támogatással legyen lefordítva. Egy SSL port indításához a listen::options::ssl-t kell beállítanod.

SSL portra nem kapcsolódhatsz a szokásos módszerrel (ezért ne is állítsd be a 6667-es port ssl-re!), kell hozzá egy kliens vagy egy tunnel, ami érti az SSL protokollt.

SSL-t támogató kliensek: XChat, irssi, mIRC (6.14 és frissebb, kell hozzá néhány további lépés is).

Azokhoz a kliensekhez, amelyek nem támogatják az SSL-t, használhatsz egy tunnelt, mint az stunnel, íme egy stunnel.conf példa (stunnel 4.x-re):

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

Ekkor ha a 127.0.0.1-re kapcsolódsz a 6667-es porton, a forgalmad titkosított lesz, és továbbítódik az irc.myserv.com 6697-es portjára (egy SSL portra).

Nem árt, ha a tanúsítványokat is érvényesíted, amikor szerverekre kapcsolódsz, és nem csak vakon elfogadod őket (mint az stunnel példában), különben továbbra is sebezhető maradhatsz a "tevékeny szimatolás" jellegű támadásokkal szemben, (ssl átirányítások), viszont ez túlságosan témán kívüli, hogy itt magyarázzuk el. (Tanulj az SSL-ről, ne minket kérdezz.) [A mIRC és az xchat megjelenít egy ablakot a tanúsítványok engedélyezéséről/visszautasításáról, tehát ez jó].

3.9 - IPv6

Az UnrealIRCd támogatja az IPv6-ot, és a beta15 óta stabilnak tűnik.
Ehhez az OPR-ben kell, hogy legyen IPv6 támogatás, valamint az UnrealIRCd-ben is engedélyezned kell az IPv6 támogatást a ./Config-oláskor.

Bár a microsoftnak van egy kísérleti IPv6 megvalósítása w2k/XP-re, az UnrealIRCd azt (még) nem támogatja.

3.10 - Zip linkek

A zip linkek bekapcsolhatóak a szerver<->szerver linkekben, a zlib használatával tömörít adatokat. Megspórolhat 60-80% sávszélességet... Úgyhogy eléggé hasznos az alacsony sávszélességű linkekhez vagy olyanokhoz, ahol nagy mennyiségű felhasználó van; sokat segíthet a linkeléskor, mert rengeteg adat küldődik el a felhasználókról, csatornákról stb.

A zip link támogatással történő fordításhoz válaszolj Yes-t a ./Config zlib-es kérdésében, valamint a konfigurációban állítsd be a link::options::zip opciót (mindkét oldalon).

3.11 - Dinamikus DNS-sel/IP-vel linkelések támogatása

Az UnrealIRCd néhány (új) hasznos funkcióval segíti azokat a felhasználókat, akiknek dinamikus IP-jük van, és dinamikus DNS-t használnak (mint a valami.dyndns.org). Ha két dinamikus DNS-sel rendelkező gépet linkelsz, állítsd be a link::options::nodnscache és a link::options::nohostcheck opciókat.

3.12 - Árasztásvédelmi lehetőségek

Elfojtás
Az elfojtás (throttling) egy módszer annak korlátozására, hogy egy felhasználó milyen gyorsan bonthatja a kapcsolatot és kapcsolódhat újra szerveredre. Beállíthatod a set::throttle blokkban, hogy X kapcsolatot engedélyezzen YY másodperc alatt ugyanarról az IP-ről.
Csatornamódok
Vannak csatornamódok is, amelyek nagyon hatásosak lehetnek árasztások (floodok) ellen. Hogy néhányat megnevezzünk:
K = nincs /knock (bekopogás), N = nincsenek nickváltások, C = nincsenek CTCP-k, M = csak regisztrált felhasználók beszélhetnek, j = belépések számának szabályozása (felhasználónkénti alapon)
A beta18 óta egy sokkal fejlettebb, +f csatornamód is használható...
Az f csatornamód
A csatornabeli áradatok elleni védelem most már beleépült az ircd-be ezen csatornamódként, hogy ne kelljen scripteket és a botokat használni.
Egy példa a +f módra: *** Blah sets mode: +f [10j]:15
Ez azt jelenti, hogy 10 belépés engedélyezett a csatornára 15 másodpercenként. Ha a korlátot túllépik, a +i csatornamód lesz automatikusan beállítva.
A következő árasztástípusok állnak rendelkezésre:

típus: | név: | alapért. tevékenység: | más elérhető tevékenységek: | megjegyzés
c | CTCP-k | automatikus +C | m, M |
j | belépések | automatikus +i | R |
k | bekopogások | automatikus +K |  | (csak helyi kliensekét számolja)
m | üzenetek/értesítések | automatikus +m | M |
n | nickváltások | auto +N |  |
t | szöveg | kirúgás | b | felhasználónkénti üzenetek/értesítések, mint a régi +f. Kirúgja vagy kitiltja a felhasználót.

Példa:

    *** 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
    -- levágva XX sor --
    *** 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
    -- levágva XX sor --
    -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

Valójában sokkal haladóbb, bonyolultabb is lehet:
Bizonyos árasztástípusoknál az alapértelmezett tevékenység helyett egy másikat is meghatározhatsz, például: +f [20j#R,50m#M]:15
Ez a csatornát +R-re állítja, ha a belépési határt elérték (>20 belépés 15 másodperc alatt), és +M-re, ha a megengedett üzenetek számát elérték (>50 üzenet 15 másodperc alatt).
Van egy "töröld a módot X perc után" funkció is: a +f [20j#R5]:15 +R-re állítja a csatornát, ha elérték a határt, és -R-et állít be 5 perc után.
A szervernek lehet alapértelmezett módtörlési ideje (set::modef-default-unsettime), vagyis ha azt írod be, hogy +f [20j]:15, átváltozhat +f [20j#i10]:15-re. Ez csak egy alapértelmezés, továbbra is beállíthatsz [20j#i2]:15-öt vagy bármi ehhez hasonlót, és teljesen le is tilthatod a csatornamódok eltávolítását a +f [20j#i0]:15-tel (egy határozott 0-val).
A régi +f mód (felhasználónkénti üzenetáradat) szintén elérhető a 't' tevékenységként, a +f 10:6-ot most már úgy hívjuk, hogy +f [10t]:6, és a +f *20:10 most már +f [20t#b]:10. Jelenleg az ircd automatikusan átalakítja a régi +f módtípusokat az újakra. Megjegyzendő, hogy nincs alapértelmezett törlési idő funkció a 't' banokra (a [20t#b30]:15 nem fog működni).
Az, hogy mi a legjobb +f mód, nagymértékben függ a csatornától... Hány felhasználója van? Van-e rajta olyan játék, ami a felhasználókat sok üzenet küldésére készteti (pl.: trivia), vagy használnak-e gyakran popupokat? Ez egy valamiféle főcsatorna-e, vagy benne van-e az auto-join-ban? Stb.
Nincs tökéletes +f csatornamód, ami minden csatornára jó, de kezdésnek nézd meg a következő példát, és módosítsd az igényeid szerint:
+f [30j#i10,40m#m10,7c#C15,10n#N15,30k#K10]:15
30 belépés 15 másodpercenként, határátlépés esetén a +i csatornamód beállítása 10 percre
40 üzenet 15 másodpercenként, határátlépés esetén +m csatornamód beállítása 10 percre
7 ctcp 15 másodpercenként, határátlépés esetén a +C csatornamód beállítása 15 percre
10 nickváltás 15 másodpercenként, határátlépés esetén a +N csatornamód beállítása 15 percre
30 kopogás 15 másodpercenként, határátlépés esetén a +K csatornamód beállítása 10 percre
Ha ez egy hatalmas felhasználói bázisú csatorna (>75 felhasználóval?), a belépési érzékenységet jobb növelni (például 50-re), és az üzenethatárt is ugyanúgy (például 60-ra vagy 75-re).
A módtörlési idők különösképpen egyéni ízlés dolgai.. olyasmire kellene gondolnod, mint.. mi van, ha nincs elérhető operátor a helyzet kezelésére? Szeretném-e a csatornát lezárni pl. 15 percre (=nem kellemes a felhasználóknak) vagy 5 percre (=feltehetőleg az árasztók csak várni fognak 5 percet, és árasztanak újra)? Függ az árasztás típusától is; ha a felhasználók képtelen belépni (+i) vagy beszélni (+m), az rosszabb, mint ha nem változtathatják meg a neveiket (+N) vagy nem küldhetnek ctcp-ket a csatornára (+C), tehát érdemesebb különböző törlési időket használni.
A j csatornamód
A +f módnak van egy olyan képessége, hogy megakadályozza a join árasztásokat, azonban ez a képesség "globális." Például ha 5:10-re van állítva, és belép 5 különböző felhasználó 10 másodperc alatt, az árasztásvédelem bekapcsol. A +j csatornamód más. Ez a mód felhasználónkénti alapon működik. Ahelyett, hogy a join árasztások ellen védne, arra van tervezve, hogy a join-part árasztásokat gátolja meg (forgóajtós árasztások). A mód egy X:Y alakú paramétert igényel, ahol X a belépések száma, és Y a másodpercek száma. Ha egy felhasználó túllépi ezt a korlátot, nem fog tudni belépni a csatornára.

3.13 - Ban típusok

Alapvető ban típusok és álcázott gazdanevek
Az UnrealIRCd támogatja az olyan alapvető ban típusokat, mint amilyen a +b nick!user@host.
Emellett, ha valakinek a maszkolt gazdaneve 'rox-ACB17294.isp.com', és egy bant helyezel a *!*@rox-ACB17294.isp.com-ra, továbbá ha a felhasználó "-x"-et állít be magán (és a gazdaneve például "dial-123.isp.com"-ra változik), a kitiltás még mindig hatni fog rá. A kitiltásokat a szerver mindig ellenőrzi valós ÉS maszkolt gazdanevekre is.
IP alapú kitiltások is rendelkezésre állnak (pl.: *!*@128.*), és azok is ellenőrzésre kerülnek.
Az álcázott IP-kre vonatkozó kitiltások némi magyarázatot igényelnek:
Ha egy felhasználónak az 1.2.3.4 IP-je van, az álcázott gazdaneve 341C6CEC.8FC6128B.303AEBC6.IP lehet.
Ha kitiltod a *!*@341C6CEC.8FC6128B.303AEBC6.IP-t, akkor a *!*@1.2.3.4-et fogod kitiltani (nyilvánvaló...).
Ha kitiltod a *!*@*.8FC6128B.303AEBC6.IP-t, akkor a *!*@1.2.3.*-ot bannolod.
Ha kitiltod a *!*@*.303AEBC6.IP-t, a *!*@1.2.*-ot bannolod.
Ez az információ hasznos lehet, amikor elhatározod, milyen széles legyen egy kitiltás.
Kiterjesztett ban típusok
A kiterjesztett ban típusok ~[!]<típus>:<valami> alakúak. Jelenleg a következő típusok használhatóak:

típus: | név | magyarázat:
~q | némaság (quiet) | Az erre a banra illő emberek beléphetnek, de nem beszélhetnek, hacsak nincs +v módjuk vagy annál magasabb. Pl.: ~q:*!*@blah.blah.com
~n | névváltás | Az erre a banra illő emberek nem válthatnak nicknevet, hacsak nincs +v módjuk vagy annál magasabb. Pl.: ~n:*!*@*.aol.com
~c | [előtag]csatorna | Ha a felhasználó ezen a csatornán van, nem léphet be. Megadható egy előtag is (+/%/@/&/~), ami azt jelenti, hogy csak akkor fog illeszkedni, ha a felhasználónak olyan vagy annál magasabb jogai vannak a megadott csatornán. Pl.: +b ~c:#lamerek, +e ~c:@#megbizhatoak
~r | valós név | Ha egy felhasználó valós neve illik a banra, nem léphet be. Pl.: ~r:*Stupid_bot_script* MEGJEGYZÉS: az aláhúzás ('_') mind a szóközre (' ') és az aláhúzásra ('_') is illik, így ez a ban illik a 'Stupid bot script v1.4'-re.

Ezek a ban típusok a csatornabeli kivétellistákon (+e) is támogatottak.
A modulok bővíthetik is más típusokkal a kiterjesztett ban típusokat.

3.14 - A spamszűrő

A spamszűrő egy új rendszer a spamok, reklámok, férgek és egyéb dolgok leküzdésére. A csúnyaszórendszerhez hasonló működésű, de több előnye is van.

Spamszűrők a /spamfilter paranccsal vehetőek fel, amely a következő szintaktikát használja:
/spamfilter [add|del|remove|+|-] [típus] [tevékenység] [időtartam] [indok] [regex]

[típus] | meghatározza a célpont típusát:
Karakter: | Konfigurációs elem: | Leírás:
c | channel | Csatornabeli üzenet
p | private | Privát üzenet (két felhasználó között)
n | private-notice | Privát értesítés
N | channel-notice | Csatornabeli értesítés
P | part | Csatornáról lelépés indoka
q | quit | Kilépési indok
d | dcc | DCC fájlnév
a | away | Távolléti üzenet
t | topic | Témabeállítás
u | user | Felhasználó kitiltása, nick!user@host:valósnév alakú illesztési maszk
Egyszerre több célpontot is megadhatsz, például így: cpNn
[tevékenység] | meghatározza az elvégzendő tevékenységet (csak 1 tevékenység adható meg)
kill | kilövi a felhasználót
tempshun | shunolja a felhasználó jelenlegi kapcsolatát (ha újrakapcsolódik, a shun megszűnik)
shun | shunolja a felhasználót
kline | kline-t helyez a hostra
gline | gline-t helyez a hostra
zline | zline-t helyez a hostra
gzline | gzline-t (globális zline-t) helyez a hostra
block | csak blokkolja az üzenetet
dccblock | megjelöli a felhasználót DCC blokkolásra (nem küldhet DCC-ket)
viruschan | lelépteti a felhasználót minden csatornáról, belépteti a `set::spamfilter::virus-help-channel` csatornára, letilt minden parancsot, kivéve a PONG-ot, az ADMIN-t és a `set::spamfilter::virus-help-channel` csatornára küldött üzeneteket/értesítéseket
[időtartam] | A szűrő által felvett *line-ok/shunok időtartama, használj kötőjelet ('-') az alapértelmezéshez vagy a kihagyáshoz (pl.: ha a tevékenység = 'block')
[indok] | a blokkolás/*line/shun indoka.. itt NEM használhatsz szóközöket, de az aláhúzásjelek ('_') szóközökké lesznek alakítva futásidőben. Egy dupla aláhúzás ('__') jelent egy aláhúzást ('_'). Itt is írj kötőjelet ('-') az alapértelmezett indok használatához.
[regex] | ez a tényleges regex vagy "csúnya szó", amelyre végezzük a blokkolást és a tevékenységet

Itt egy példa: /spamfilter add pc gline - - Come watch me on my webcam
Ha a come watch me on my webcam szöveg megtalálható vagy egy privát vagy egy csatornabeli üzenetben, az üzenet blokkolódik és egy gline lesz azonnal felvéve.
Másik példa: /spamfilter add pc block - - come to irc\..+\..+
Ez egy olyan regex, ami illik a Hi, come to irc.blah.net stb. szövegre....
És egy példa az időtartam/indok meghatározására:
/spamfilter add p gline 3h Please_go_to_www.viruscan.xx/nicepage/virus=blah Come watch me on my webcam
Ha a come watch me on my webcam megtalálható egy privát üzenetben, a felhasználó 3 órára gline-ra kerül a Please go to www.viruscan.xx/nicepage/virus=blah indokkal.
A /spamfilter-rel felvett spamszűrők hálózati szintűek. Mindig működnek, tekintet nélkül arra, hogy a felhasználó/csatorna a +G móddal rendelkezik-e, csak operek és uline-ok (servicesek) kivételek a szűrés alól.

Spamszűrőket a konfigurációs fájlban is felvehetsz, de ezek helyi spamszűrők lesznek (nem hálózati szintűek, bár erre használhatod a távoli fájlok betöltését). Ezen spamfilter { } blokkok szintaktikáját itt magyarázzuk.
Példa:

    spamfilter {
    	regex "//write \$decode\(.+\|.+load -rs";
    	target { private; channel; };
    	reason "Általános $decode sebezhetőség";
    	action block;
    };

A set::spamfilter::ban-time lehetővé teszi, hogy módosítsd a spamszűrők által felvett *line-ok/shunok alapértelmezett kitiltási idejét (alapértelmezés: 1 nap)
A set::spamfilter::ban-reason-nel meghatározhatsz egy alapértelmezett indokot (alapértelmezés: 'Spam/advertising')
A set::spamfilter::virus-help-channel-lel meghatározhatod, hogy milyen csatornára történjen a belépés a 'viruschan' tevékenység esetén (alapértelmezés: #help)
A set::spamfilter::virus-help-channel-deny segítségével pedig letilthatod a normál belépéseket a "virus-help-channel"-ben (alapértelmezés: no)

3.15 - CIDR

Az UnrealIRCd-nek most már van támogatása CIDR-re (Classless Interdomain Routing; osztály nélküli, tartományon belüli útvonalválasztás). A CIDR alkalmas IP tartományok kitiltására. Az IP-ket CIDR használatával osztják ki ISP-k (Internet Service Provider, Internetszolgáltató) között, ezért a CIDR alapú kitiltások beállításának képességével egyszerűen kitiltható egy ISP. Az Unreal mind IPv4-re és IPv6-ra is támogatja a CIDR-t. A CIDR maszkok használhatóak az allow::ip, a ban user::mask, a ban ip::mask, az except ban::mask, az except throttle::mask és az except tkl::mask direktívákban (ez utóbbinál gzline-ra, gline-ra és shun-ra). Azonfelül a CIDR használható még a /kline, /gline, /zline, /gzline, and /shun parancsokban. Az Unreal a szabványos IP/bitek szintaktikát használja, pl. 127.0.0.0/8 (illeszkedési tartománya 127.0.0.0 - 127.255.255.255) és fe80:0:0:123::/64 (illeszkedési tartománya fe80:0:0:123:0:0:0:0 - fe80:0:0:123:ffff:ffff:ffff:ffff).

3.16 - Karakterkészletek nicknevekhez

Az UnrealIRCd-nek most már megvan az a képessége, hogy meghatározzuk, milyen karakterkészleteket/nyelveket szeretnénk engedélyezni a nicknevekben. Ezt a set::allowed-nickchars direktívával tehetjük meg.
Egy táblázat az összes választási lehetőségről:

Név: | Leírás: | Karakterkészlet/kódolás:
catalan | Katalán karakterek | iso8859-1 (latin1)
danish | Dán karakterek | iso8859-1 (latin1)
dutch | Holland karakterek | iso8859-1 (latin1)
french | Francia karakterek | iso8859-1 (latin1)
german | Német karakterek | iso8859-1 (latin1)
swiss-german | Svájci német karakterek (nincs es-zett) | iso8859-1 (latin1)
icelandic | Izlandi karakterek | iso8859-1 (latin1)
italian | Olasz karakterek | iso8859-1 (latin1)
spanish | Spanyol karakterek | iso8859-1 (latin1)
swedish | Svéd karakterek | iso8859-1 (latin1)
latin1 | catalan, danish, dutch, french, german, swiss-german, spanish, icelandic, italian, swedish | iso8859-1 (latin1)
hungarian | Magyar karakterek | iso8859-2 (latin2), windows-1250
polish | Lengyel karakterek | iso8859-2 (latin2)
romanian | Román karakterek | iso8859-2 (latin2), windows-1250, iso8859-16
latin2 | hungarian, polish, romanian | iso8859-2 (latin2)
polish-w1250 | Lengyel karakterek, windowsos változat (sajnos gyakoribb, mint az iso) | windows-1250
slovak-w1250 | Szlovák karakterek, windowsos változat | windows-1250
czech-w1250 | Cseh karakterek, windowsos változat | windows-1250
windows-1250 | polish-w1250, slovak-w1250, czech-w1250, hungarian, romanian | windows-1250
greek | Görög karakterek | iso8859-7
turkish | Török karakterek | iso8859-9
russian-w1251 | Orosz karakterek | windows-1251
belarussian-w1251 | Fehérorosz karakterek | windows-1251
ukrainian-w1251 | Ukrán karakterek | windows-1251
windows-1251 | russian-w1251, belarussian-w1251, ukrainian-w1251 | windows-1251
hebrew | Héber karakterek | iso8859-8-I/windows-1255
chinese-simp | Egyszerűsített kínai | Több-bájtos: GBK/GB2312
chinese-trad | Hagyományos kínai | Több-bájtos: GBK
chinese-ja | Japán hiragana/pinyin | Több-bájtos: GBK
chinese | chinese-* | Több-bájtos: GBK
gbk | chinese-* | Több-bájtos: GBK

1. MEGJEGYZÉS: Ügyeljünk arra, hogy néhány kombináció problémákat okozhat. Például ha keverjük a latin* és chinese-* nyelveket, azt IRCd nem tudja megfelelően kezelni, és az Unreal hibaüzenetet fog kiírni. Más karakterkészletek együttes használata lehet, hogy megjelenítési problémákat okoz, ezért az Unreal figyelmeztetést fog adni, ha keverünk latin1, latin2, greek vagy más nem kompatibilis csoportokat.

2. MEGJEGYZÉS: A kis- és nagybetűk leképezése (vagyis annak megállapítása, hogy egy bizonyos kisbetűs karakternek melyik a nagybetűs párja) US-ASCII szerint történik. Ez azt jelenti, hogy az o" és az O" karakterek nem lesznek "azonosnak" tekintve, ezért lehet valakinek a nickje B"ar, és egyidőben egy másiknak BA"r. Ez egy korlátozása a jelenlegi rendszernek és az IRCd szabványoknak, amely nem oldható meg egyhamar. A felhasználóknak ennek tudatában kell lenniük. Megjegyzendő, hogy ez a korlátozás csatornákra is vonatkozott, amikben mindig közel minden karakter engedélyezett volt, és mindig US-ASCII kis- és nagybetű leképezés volt végrehajtva.

3. MEGJEGYZÉS: Az alapvető nickbeli karakterek (a-z A-Z 0-9 [ \ ] ^ _ - { | }) mindig megengedettek/beleszámítanak a karakterkészletbe.

1. Példa: nyugat-európai népeknek:

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

2. Példa: ha főleg kínai felhasználóink vannak, és a "rendes" kínai karaktereket szeretnénk engedélyezni:

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

3.17 - CGI:IRC támogatás

Az UnrealIRCd támogatja a CGI:IRC gazdanév hamisítást, ami azt jelenti, hogy megjelölhetünk bizonyos CGI:IRC átjárókat "megbízhatóként", ezáltal az IRCd a felhasználók valódi gazdanevét/IP címét jeleníti meg mindenhol az IRC-n, és nem a CGI:IRC átjáróét.

Lásd a cgiirc blokkot a beállításának hogyanjáról.

3.18 - Időszinkronizáció

A pontos idő nagyon fontos az IRC szervereken. Pontos idő nélkül a csatornákon desynch problémák léphetnek fel, ártatlan felhasználók kaphatnak kilövést, helytelenül jelenhetnek meg csatornák a /LIST-ben, egyszóval: óriási baj származhat belőle.

Az UnrealIRCd-nek van egy kis beépített időszinkronizáció támogatása. Bár nem optimális (az idő még mindig eltérhet néhány másodpercet), a legtöbb esetben megszabadít az időkülönbségtől. Lehetőség szerint még mindig javasolt valamilyen időszinkronizáló szoftver futtatása, pl. *NIX alatt az ntpd vagy a Windows időszinkronizáló szolgáltatása (ebben az esetben kikapcsolhatjuk az Unreal időszinkronizálását, erről bővebben később).

Az UnrealIRCd (alapból) azt csinálja, hogy indításkor végrehajt egy egyszeri időszinkronizálást. Elküld (alapértelmezésben) egy lekérdezést több időszervernek, és amikor megkapja a legelső (leggyorsabb) választ, hozzáigazítja a belső ircd órát (NEM a rendszerórát). Ha valamilyen okból az időszervertől nem kap választ 3 másodpercen belül, az IRCd ennek ellenére folytatja az indulást (ilyennek ritkán kellene történnie).

Az időszinkronizáció beállítható (és kikapcsolható) a set::timesynch blokkban, lásd a set leírását további információkért.

3.19 - További jellegzetességek

Az UnrealIRCd-nek rengeteg funkciója van, ezért itt nincs minden megemlítve... Rájössz majd magadtól is.

4.0 - Az unrealircd.conf fájlod beállítása

Először is, az első unrealircd.conf-unk elkészítése komoly időt vesz igénybe (mondjuk, 15-60 percet). Egy jó unrealircd.conf még ennél is többet. Nem érdemes kapkodnunk, hogy az IRCd-nk minél hamarabb elinduljon, inkább menjünk végig a dolgokon lépésről lépésre. Ha problémánk van, ellenőrizzük a szintaktikát, nézzük át ezt a kézikönyvet, és nézzünk bele a GYIK-ba is, mielőtt segítségért fordulnánk vagy hibát jelentenénk.

4.1 A konfigurációs formátumról

Az új rendszer egy blokk alapú formátumot használ. Az új formátumban minden bejegyzésnek vagy blokknak meghatározott formája van, amely így néz ki:

    <blokknév> <blokkérték> {
    	<blokk-direktíva> <direktívaérték>;
    };

A <blokknév> a blokk típusa, mint például a "me" vagy az "admin". A <blokkérték> néha meghatároz egy értéket, mint például az /oper loginhoz, de néha egy altípus lesz, mint a "ban user"-ben.

A <blokk-direktíva> egy egyszerű változó, amelyet a blokk határoz meg, és a <direktívaérték> a hozzátartozó érték. Ha a <directívaérték> szóközöket tartalmaz vagy olyan karaktereket, amelyek megjegyzéseket fejeznek ki, idézőjelek közé kell tenni. Ha az idézett szövegen belül egy idézőjel karaktert szeretnénk írni, használjunk \"-t, és idézőjelként lesz értelmezve.

Egy <blokk-direktíva> is tartalmazhat direktívákat saját magán belül, ilyen esetben lesz egy saját pár kapcsoszárójele maga körül. Néhány blokknak nincs direktívája, és csak <blokkérték> formában határozzuk meg, mint az "include"-t. Az is megjegyzendő, hogy nincs kötött forma, tehát az egész blokk megjelenhet egy sorban vagy akár több sorban is. A fenti formát használják általában (és ebben a fájlban is ezt alkalmazzuk), mert könnyen olvasható.

Megjegyzés: a konfigurációs fájl jelenleg kis- és nagybetűérzékeny, eképpen a BLOKKNÉV nem ugyanaz, mint a blokknév. Van egy általános jelölési rendszer, amit arra használunk, hogy a konfigurációs fájl bejegyzéseiről beszéljünk. Például, hogy a fenti példabeli <direktívanév>-ről beszéljünk, azt mondjuk, hogy <blokknév>::<blokk-direktíva>, és ha a direktívának van egy alblokkja, amire utalni szeretnénk, tegyünk hozzá egy másik dupla kettőspontot (::) és az aldirektíva nevét.

Ha egy névtelen direktíváról szeretnénk beszléni, írjuk azt, hogy <blokknév>::, ami ebben az esetben <blokkérték>-et jelent, vagy lehet egy alblokk névtelen bejegyzése is.

Háromféle megjegyzéstípus támogatott:

# Egysoros megjegyzés
// Egysoros megjegyzés
/* Többsoros
megjegyzés */

Most, hogy tudjuk, hogyan működik, másoljuk a doc/example.conf-ot az UnrealIRCd könyvtárba (pl.: /home/felhasznalo/Unreal3.2) és nevezzük át unrealircd.conf-ra (VAGY készítsünk egy saját unrealircd.conf-ot a semmiből). Javasolt, hogy menjünk végig lépésről lépésre az egyes blokktípusokon és a konfigurációs fájlunk beállításain, valamint használjuk ezt a kézikönyvet segédletként.

4.2 - Me blokk KÖTELEZŐ (Előzőleg M:Line néven ismert)

Szintaktika:

    me {
    	name <szerver-neve>;
    	info <szerver-leírása>;
    	numeric <szerver-azonosítószáma>;
    };

Ezek az értékek meglehetősen egyértelműek. A name beállítja a szerver nevét, az info a szerver info sorának (rövid leírásának) megadására szolgál, a numeric meghatározza a szerver azonosítószámát. Ez utóbbi szám legyen 0 és 254 között, és minden szerveren EGYEDINEK kell lennie, vagyis ugyanazon a hálózaton SEMELYIK más szervernek nem lehet ugyanaz az azonosítószáma.

Példa:

    me {
    	name "irc.valaminet.com";
    	info "ValamiNet Szerver";
    	numeric 1;
    };

4.3 - Admin blokk KÖTELEZŐ (Előzőleg A:Line néven ismert)

Szintaktika:

    admin {
    	<szövegsor>;
    	<szövegsor>;
    };

Az admin blokk meghatározza, hogy milyen szöveg jelenjen meg az /admin parancsra. Annyi sort írhatsz, amennyit akarsz, és mind tetszőleges szöveget tartalmazhatnak, de szabványszerű legalább az adminisztrátor nicknevét és email címét feltüntetni. Rajtad áll, hogy milyen további információkat írsz ide.

Példa:

    admin {
    	"Bob Smith";
    	"bob";
    	"szeleskorben@hasznalt.nev";
    };

4.4 - Class blokk KÖTELEZŐ (Előzőleg Y:Line néven ismert)

Szintaktika:

    class <name> {
    	pingfreq <ping-gyakoriság>;
    	connfreq <kapcsolódási-gyakoriság>;
    	maxclients <kliensek-maximális-száma>;
    	sendq <küldési-sor-mérete>;
    	recvq <fogadási-sor-mérete>;
    };

A class blokkok olyan osztályok, amelyekben a kapcsolatok elhelyeződnek (például az allow blokkokból vagy szerverek a link blokkokból); általában több class blokkot szokás beállítani (pl. egy-egy a szervereknek, klienseknek és az opereknek).

A name egy leíró név, például "clients" (kliensek) vagy "servers" (szerverek), erre az osztálynévre hivatkoznak az allow, link, oper stb. blokkok.

A pingfreq a szerver által küldött PING-ek közötti idő másodpercekben (egy 90 és 180 közötti érték javasolt).

A connfreq csak szerverekre használható, és a kapcsolódási kísérletek közötti időt jelenti másodpercekben, ha az autoconnect engedélyezve van.

A maxclients meghatározza, hogy maximálisan (összesen) hány kliens/szerver tartozhat ebbe a kapcsolati osztályba.

A sendq meghatározza azt az adatmennyiséget, amennyi megengedett a küldésre várakozó üzenetek sorában [send queue] (legyen nagyon magas alacsony sávszélességű szerverekhez, közepes a kliensekhez).

A recvq meghatározza azt az adatmennyiséget, amennyi megengedett a fogadásra váró üzenetek sorában [receive queue]; ezt használjuk az árasztások szabályozására (csak normál felhasználókra vonatkozik, 8000 ajánlott, ez az alapértelmezés is; kísérletezhetsz 3000-8000 közötti értékekkel).

Példák:

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

    class servers{
    	pingfreq 90;
    	maxclients 10; /* Az egyszerre linkelhető szerverek maximális száma */
    	sendq 1000000;
    	connfreq 100; /* A kapcsolódási kísérletek közötti idő másodpercekben */
    };

4.5 - Allow blokk KÖTELEZŐ (Előzőleg I:Line néven ismert)

Szintaktika:

    allow {
    	ip <user@ip-kapcsolati-maszk>;
    	hostname <user@host-kapcsolati-maszk>;
    	class <kapcsolati-osztály>;
    	password <kapcsolódási-jelszó> { <hitelesítés-típusa>; };
    	maxperip <ip-nkénti-kapcsolatok-száma>;
    	redirect-server <szerver-az-átirányításhoz>;
    	redirect-port <port-az-átirányításhoz>;
    	options {
    		<opció>;
    		<opció>;
    		...
    	};
    };

Az allow blokkokkal határozhatod meg, kik kapcsolódhatnak a szerverre. Lehet egyszerre több allow blokkod is.

Az illesztésről
Az illeszkedés-keresés úgy történik, hogy az IP cím egyezik VAGY a gazdanév egyezik, vagyis "hostname *@*;" és "ip *@1.2.3.4" azt jelenti, hogy mindig egyezik minden hostra. Ezenkívül az allow blokkok lentről felfelé lesznek olvasva, vagyis a speciális allow blokkokat az általános *@* allow blokk ALATT célszerű elhelyezni, különben a kapcsolatok mindig a *@*-ra fognak illeni. Ha olyan blokkot szeretnél beállítani, ami csak IP-re illik, de gazdanévre nem, valami érvénytelen hostnevet állíts be, mint például "hostname SENKI;".

ip
Az ip maszk megadási formája a user@ip, user az ident név, amely általában *, ip az IP maszk. Példák: *@* (bárhonnan), *@192.168.* (csak 192.168-cal kezdődő IP címekről) stb.

host
Hasonló a fentihez, annyi különbséggel, hogy itt a megadási forma a user@host maszk, ahol a user általában *. Példák: *@* (bárhonnan), *@*.wanadoo.fr (csak a wanadoo.fr-ről).

password (szabadon választható)
Jelszó megadására kötelesít. Itt megadhatsz egy jelszókódolási módot is.

class
Azon kapcsolati osztály nevét határozza meg, amelybe helyezendő a kliens.

maxperip (optional, but recommended)
Meghatározza, hogy egy IP címről maximum hány kapcsolatot engedélyezzen (például: maxperip 4;).

redirect-server (szabadon választható)
Ha a kapcsolati osztály megtelt, továbbítja a felhasználókat erre a szerverre (ha a kliens támogatja [a mIRC 6 igen]).

redirect-port (szabadon választható)
Ha a redirect-server be van állítva, itt megadhatod a portot, különben 6667 lesz feltételezve.

options block (szabadon választható)
Érvényes opciók:
useip mindig IP címet jelenítsen meg gazdanév helyett
noident ne használjon identet, hanem a kliens által megadot felhasználónevet
ssl csak akkor egyezzen, ha a kliens SSL-en keresztül kapcsolódik
nopasscont folytassa a keresést, ha nem adott meg jelszót (így a kliens más kapcsolati osztályba helyezhető, ha jelszót ad meg).

Példák:

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

    allow {
    	ip *@*;
    	hostname *@*.jelszavas.csunya.emberkek;
    	class clients;
    	password "V4lami";
    	maxperip 1;
    };

4.6 - Listen blokk KÖTELEZŐ (Előzőleg P:Line néven ismert)

Szintaktika:

    listen <ip:port> {
    	options {
    		<opció>;
    		<opció>;
    		...
    	};
    };

Ezzel a blokkal állíthatsz be olyan portokat, amelyeken az IRCd figyeli a kapcsolódásokat. Ha nincs szükséged opciókra, megadhatod a link blokkot listen <ip::port>; formában is.

ip és port
Az ip-t beállíthatod *-ra, hogy minden hálózati eszközön figyelje a kapcsolódásokat, vagy megadhatsz IP címet, és akkor csak arra az IP címre bindel (shell szolgáltatóknál rendszerint szükséges). A port annak a portnak a száma, amelyet a szerver megnyit és figyeli rajta a kapcsolódásokat. Beállíthatsz port tartományt is egyetlen szám helyett, például a 6660-6669 minden portot megnyit 6660-tól 6669-ig bezárólag. IPv6 felhasználók: lásd lejjebb.

Információk IPv6 felhasználóknak
Ha IPv6-engedélyezett szervered van, az IP címet szögletes zárójelek között add meg. Példa: [::1]:6667 (a localhost 6667-es portján fog figyelni). Ha IPv6-ot használsz és egy bizonyos IPv4 címet szeretnél használni, ::ffff:ipv4ip formában teheted meg. Például az [::ffff:203.123.67.1]:6667 a 203.123.67.1-es címen, a 6667-es porton fog figyelni. Természetesen használhatsz *-ot is.

options blokk (szabadon választható)
Tetszés szerint beállíthatsz különböző opciókat ehhez a porthoz, érvényes opciók:

clientsonly | ezen a porton csak kliensek kapcsolódhatnak
serversonly | ezen a porton csak szerverek kapcsolódhatnak
java | CR javachat támogatás
ssl | SSL-lel titkosított port

Példák:

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

Vagy ha nincsenek opciók:

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

4.7 - Oper blokk AJÁNLOTT (Előzőleg O:Line néven ismert)

    oper <name> {
    	from {
    		userhost <hostmaszk>;
    		userhost <hostmaszk>;
    	};
    	password <jelszó> { <hitelesítés-típusa>; };
    	class <osztálynév>;
    	flags <flagek>;
    	flags {
    		<flag>;
    		<flag>;
    		...
    	};
    	swhois <whois info>;
    	snomask <snomask>;
    	modes <módok>;
    	maxlogins <szám>;
    };

Az oper blokkal IRC operátorokat állíthatsz be a szerveredhez. Az oper:: értéke adja meg az /oper-hez a bejelentkező nevet. Az oper::from::userhost egy user@host maszk, amelyre a felhasználó kapcsolatának illenie kell. Megadhatsz egynél több hostmaszkot is úgy, hogy több oper::from::userhost-ot használsz. Az oper::password az a jelszó, amit a felhasználónak meg kell adnia, az oper::password:: segítségével kódolhatod a jelszót, érvényes hitelesítési típusok: crypt, md5, sha1, ripemd-160. Ha csak egyszerű szöveg típusú jelszót szeretnél megadni, az alblokkot kihagyhatod.

Megjegyzendő, hogy MIND a bejelentkező név és jelszó a kis- és nagybetűkre érzékenyek.

Az oper::class direktíva meghatározza azt a már létező (a konfigurációban ezen blokk előtt beállított) osztálynevet, amit az oper blokk használ.

Az oper::flags direktívának kétféle formája van. Ha a régi stílusú oper flageket szeretnéd használni, pl. OAa, használd a flags <flagek> formát, ha pedig az új stílust, pl. services-admin, akkor a flags { <flag>; } módszert. Az alábbiakban látható a flagek listája (mindkét formában) és amit csinálnak.

Régi flag | Új flag | Leírás
o | local | Helyi operátorrá tesz
O | global | Globális operátorrá tesz
C | coadmin | Társ-adminisztrátorrá tesz
A | admin | Adminisztrátorrá tesz
a | services-admin | Services adminisztrátorrá tesz
N | netadmin | Hálózati adminisztrátorrá tesz
r | can_rehash | Használhatja a /rehash parancsot
D | can_die | Használhatja a /die parancsot
R | can_restart | Használhatja a /restart parancsot
h | helpop | +h felhasználói flaget kap (helpop)
w | can_wallops | Küldhet /wallops üzeneteket
g | can_globops | Küldhet /globops üzeneteket
c | can_localroute | Szervereket csatlakoztathat helyileg
L | can_globalroute | Szervereket csatlakoztathat globálisan
k | can_localkill | /kill-elhet helyi felhasználókat
K | can_globalkill | /kill-elhet távoli felhasználókat
b | can_kline | Használhatja a /kline parancsot
B | can_unkline | Használhatja a /kline -u@h parancsot
n | can_localnotice | Küldhet helyi körüzeneteket
G | can_globalnotice | Küldhet távoli körüzeneteket
z | can_zline | Használhatja a /zline parancsot
t | can_gkline | Használhatja a /gline, /shun és /spamfilter parancsokat
Z | can_gzline | Használhatja a /gzline parancsot
W | get_umodew | +W felhasználói flaget kap opereléskor
H | get_host | Beállítja a hostneved egy oper hostnévre
v | can_override | Használhat OperOverride-ot
q | can_setq | Használhatja a usermode +q felhasználói flaget
X | can_addline | Használhatja az /addline-t
d | can_dccdeny | Használhatja a /dccdeny-t és az /undccdeny-t

Egyes flagek más flageket is adnak magukon kívül:

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

Az oper::swhois direktívával egy tetszőleges szövegű sorral egészítheted ki az operátor whois információját. [szabadon választható]

Az oper::snomask direktívával előre beállíthatod, hogy az operátor milyen szerverüzenet-maszkokat kapjon opereléskor. A rendelkezésre álló SNOMASKok listáját lásd a 3.3. szekcóban. [szabadon választható]

Az oper::modes direktívával előre beállíthatod, hogy az operátor milyen módokat kapjon opereléskor. [szabadon választható]

Az oper::maxlogins direktívával lekorlátozhatod az egyidejű oper bejelentkezések számát erről a login névről, például ha 1-re állítod, csak 1 személy lehet operátor ezzel a blokkal egyszerre. [szabadon választható]

Példa:

    oper bobsmith {
    	class clients;
    	from {
    		userhost bob@smithco.com;
    		userhost boblaptop@somedialupisp.com;
    	};
    	password "v4lami";
    	flags {
    		netadmin;
    		can_gkline;
    		can_gzline;
    		can_zline;
    		can_restart;
    		can_die;
    		global;
    	};
    	swhois "Példa egy whois maszkra";
    	snomask frebWqFv;
    };

Néhány információ az OperOverride-ról:
Az OperOverride (operátori felülbírálás) olyan dolgokat jelent, mint: belépni egy +ikl csatornára és keresztülmenni a banokon (először azonban /invite-olnod kell magad ehhez), opolni magad a csatornán, stb.
A can_override operflaget azért csináltuk, hogy megkísérelje megállítani az operátori visszaéléseket. Egyetlen operátor sem overrideolhat alapértelmezés szerint, ehhez kifejezetten a can_override flaget kell megadnod nekik.

4.8 - DRpass blokk AJÁNLOTT (Előzőleg X:Line néven ismert)

Szintaktika:

    drpass {
    	restart <újraindítási-jelszó> { <hitelesítés-típusa>; };
    	die <leállítási-jelszó> { <hitelesítés-típusa>; };
    };

Ez a blokk állítja be a /restart és /die jelszavakat rendre a drpass::restart és a drpass::die direktívákkal. A drpass::restart:: és drpass::die:: lehetőséget ad a jelszavak hitelesítési típusának meghatározására. A jelenleg támogatott hitelesítési típusok a crypt, md5, sha1 és ripemd-160.

Példa:

    drpass {
    	restart "Imadok-ujrainditani";
    	die "Halj-te-buta";
    };

4.9 - Include direktíva

Szintaktika:
include <fájlnév>;

Ez a direktíva meghatároz egy fájlnevet, amely külön konfigurációs állományként betöltésre kerül. A fájl tartalmazhat bármilyen típusú konfigurációs blokkot, és betölthet további fájlokat is. Joker karakterek is engedélyezettek a fájlnévben, hogy több fájl is betölthető legyen egyszerre.

1. példa: egy hálózati fájl

    include mynetwork.network;

Ez lenne az utasítás arra, ha külön hálózati fájlt akarnál használni. Külön hálózati fájlokra már nincs szükség; minden hálózati beállítás beszúrható közvetlenül az unrealircd.conf-ba. Vagy rakhatsz egy include utasítást a fájl betöltéséhez.

2. példa: álparancsok

    include aliases/ircservices.conf

Egy másik példa alias blokkok betöltésére, az UnrealIRCd-vel együtt jön néhány fájl, ami(nek kellene, hogy) tartalmazza a megfelelő álparancsokat a legtöbb szolgáltatás programhoz:

- 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 direktíva KÖTELEZŐ

Szintaktika:
loadmodule <fájlnév>;

Lásd itt, miért jók/hasznosak a modulok.

Az Unreal3.2-vel együtt járó szabványos modulok:

commands.so / commands.dll - Minden / parancs (nos, még nem mindegyik, de egyszer majd az lesz) KÖTELEZŐ
cloak.so / cloak.dll - Álcázó modul KÖTELEZŐ (vagy bármilyen más álcázó modul)

Szóval ezt a két modult akarod biztosan betölteni:

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

vagy windows alatt:

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

4.11 - Log blokk AJÁNLOTT

Szintaktika:

    log <fájlnév> {
    	maxsize <max-fájl-méret>;
    	flags {
    		<flag>;
    		<flag>;
    		...
    	};
    };

A log blokkal különböző naplófájlokat rendelhetsz különböző célokhoz. A log:: tartalmazza a naplófájl nevét. A log::maxsize egy nem kötelező direktíva, meghatározhatod vele a naplófájl maximális méretét, amelynek elérésével az állomány kiürül, és újraindul a naplózás. Használhatsz mértékegységeket is a méretmegadáshoz: MB-t a megabájtokhoz, KB-t a kilobájtokhoz és GB-t a gigabájtokhoz. A log::flags meghatározza, milyen típusú információ kerüljön ebbe a naplóba. Az alábbiakban láthatod a rendelkezésre álló flagek listáját.

Lehet egyszerre több log blokkod is, hogy különböző dolgokat különböző naplófájlokba naplózzanak.

Felhasználható flagek:

errors | nyilvánvaló
kills | naplózza a /kill értesítéseket
tkl | naplózza a *line-okat, a shunokat és a spamszűrőket (hozzáadás/törlés/lejárat)
connects | naplózza a felhasználói kapcsolódásokat/kilépéseket
server-connects | naplózza a szerverek kapcsolódásait/kilépéseit
kline | naplózza a /kline használatokat
oper | naplózza az operelési kísérleteket (a sikerteleneket és a sikereseket is)
sadmin-commands | naplózza a /sa* (samode, sajoin, sapart stb.) használatokat
chg-commands | naplózza a /chg* (chghost, chgname, chgident stb.) használatokat
oper-override | naplózza az operoverride-ok használatát
spamfilter | naplózza a spamszűrők találatait

Példa:

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

4.12 - TLD blokk SZABADON VÁLASZTHATÓ (Előzőleg T:Line néven ismert)

Szintaktika:

    tld {
    	mask <hostmaszk>;
    	motd <motd-fájl>;
    	rules <rules-fájl>;
    	shortmotd <rövid-motd-fájl>;
    	opermotd <oper-motd-fájl>;
    	botmotd <bot-motd-fájl>;
    	channel <csatornanév>;
    	options {
    		ssl;
    	}
    };

A tld blokkal motd-ket, szabályokat és egy csatornát rendelhetsz felhasználókhoz a hostjaik alapján. Ez hasznos, ha különböző motd-t szeretnél különböző nyelvekhez. A tld::mask egy user@host maszk, amire a felhasználó usernevének és hostnevének illenie kell. A tld::motd, a tld::shortmotd, a tld::opermotd, a tld::botmotd és a tld::rules rendre azokat az motd, rövid motd, opermotd, botmotd valamint rules fájlokat határozzák meg, amelyek erre a hostmaszkra vonatkoznak. A tld::shortmotd, a tld::opermotd és a tld::botmotd szabadon választható. A tld::channel szintén, ez utóbbival egy olyan csatornanevet határozhatsz meg, ahová a felhasználó kapcsolódáskor lesz beléptetve. Ha ez meg van adva, felülbírálja az alapértelmezett auto join csatornát. A tld::options blokkal további követelményeket állíthatsz be; jelenleg csak a tld::options::ssl, ami a fájlokat csak SSL felhasználóknak jeleníti meg, és a tld::options::remote, ami a fájlokat csak távoli felhasználóknak jeleníti meg, állnak rendelkezésre.

A TLD bejegyzéseket a szerver alulról felfelé történő sorrendben egyezteti.

Példa:

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

4.13 - Ban nick blokk SZABADON VÁLASZTHATÓ (Előzőleg Q:Line néven ismert)

Szintaktika:

    ban nick {

    	mask <nicknév>;
    	reason <letiltás-indoka>;
    };

A ban nick block segítségével letilthatod egy nicknév használatát a szerveren. A ban::mask egy joker karaktereket megengedő maszk, amely egyszerre több nicknévre is illeszthető, és a ban::reason határozza meg a letiltás indokát. Ezek a blokkok leginkább azért hasznosak, hogy a hálózati szolgáltatásokban rendszeresen alkalmazott nicknevek használata letilható legyen.

Példa:

    ban nick {
    	mask "*C*h*a*n*S*e*r*v*";
    	reason "Fenntartva a szolgáltatásoknak";
    };

4.14 - Ban user blokk SZABADON VÁLASZTHATÓ (Előzőleg K:Line néven ismert)

Szintaktika:

    ban user {
    	mask <hostmaszk>;
    	reason <kitiltás-indoka>;
    };

Ezzel a blokkal letiltható egy user@host maszk szerverre történő kapcsolódása. A ban::mask a kitiltandó user@host maszk, amely joker karaktereket is megenged, és a ban::reason a kitiltás indoka. Megjegyzendő, hogy ez csak egy helyi kitiltás, és emiatt a felhasználó még kapcsolódhat a hálózat más szervereire.

Példa:

    ban user {
    	mask *tirc@*.saturn.bbn.com;
    	reason "Idióta";
    };

4.15 - Ban IP blokk SZABADON VÁLASZTHATÓ (Előzőleg Z:Line néven ismert)

Szintaktika:

    ban ip {
    	mask <ip-maszk>;
    	reason <kitiltás-indoka>;
    };

A ban ip blokk letiltja egy IP szerverelérését. Ez magában foglalja mind a felhasználókat és linkelni próbáló szervereket is. A ban::mask paraméter egy IP, amely tartalmazhat joker karaktereket, és a ban::reason a kitiltás indoka. Mivel ez a kitiltás szerverekre is hatással van, célszerű óvatosan használni.

Példa:

    ban ip {
    	mask 192.168.1.*;
    	reason "Szerezz egy valós IP-t, te béna!";
    };

4.16 - Ban server blokk SZABADON VÁLASZTHATÓ (Előzőleg q:Line néven ismert)

Szintaktika:

    ban server {
    	mask <szervernév>;
    	reason <kitiltás-indoka>;
    };

Ez a blokk egy szerver hálózatra kapcsolódási kísérletét tiltja le. Ha a szerver közvetlenül a tiedre kapcsolódik, a linkelés vissza lesz utasítva. Ha egy távoli szerverre linkel, a helyi szerver lekapcsolja a hálózatról. A ban::mask mező egy joker karaktereket megengedő maszk a kapcsolódni próbáló szerver nevére egyeztetéshez, és a ban::reason megadja a kitiltás indokát.

Példa:

    ban server {
    	mask broken.server.my.network.com;
    	reason "Törött!";
    };

4.17 - Ban realname blokk SZABADON VÁLASZTHATÓ (Előzőleg n:Line néven ismert)

Szintaktika:

    ban realname {
    	mask <valós-név-maszk>;
    	reason <kitiltás-indoka>;
    };

A ban realname blokk lehetővé teszi, hogy kitilts egy klients a GECOS (valódi név) mezője alapján. Hasznos a klónáradatok megállítására, mert a klónbotok gyakran használják ugyanazt a valós nevet. A ban::mask a kitiltandó valós név, tartalmazhat joker karaktereket. A ban::reason meghatározza a kitiltás indokát.

Példa:

    ban realname {
    	mask "Bob*";
    	reason "Bob egy szívás!";
    };

4.18 - Ban version blokk SZABADON VÁLASZTHATÓ

Szintaktika:

    ban version {
    	mask <verziómaszk>;
    	reason <letiltás-indoka>;
    	action [kill|tempshun|shun|kline|zline|gline|gzline];
    };

A ban version block lehetővé teszi kliensek kitiltását az általuk használt IRC kliens szoftver alapján. A kliensek CTCP version válaszát használja, ezért ha a kliens nem küld vissza CTCP version-t, a letiltás nem fog működni. Az a célja, hogy meggátolja a rosszindulató scripteket. A ban::mask a letiltandó verziót határozza meg. Tartalmazhat joker karaktereket. A ban::reason a letiltás indoka. Ezenkívül megadhatod a kitiltás típusát is a ban::action blokkal: kill az alapértelmezés, a tempshun csak shunolja a felhasználót, amely kiváló a dinamikus IP-vel rendelkező zombik/botok ellen, mert más, ártatlan felhasználókatra nem lesz hatással. A shun/kline/zline/gline/gzline az adott típusú kitiltást állítja be a felhasználó IP címére (*@IPCÍM), amelynek időtartama beállítható a set::ban-version-tkl-time direktívával; alapértelmezés szerint 1 nap.

Példa:

    ban version {
    	mask "*ValamilyenBenaScript*";
    	reason "A ValamilyenBenaScript kiskapukat tartalmaz";
    };

    ban version {
    	mask "*w00tZombie*";
    	reason "Utálom azt a sok száz zombit";
    	action zline;
    };

4.19 - Ban exceptions blokk SZABADON VÁLASZTHATÓ (Előzőleg E:Line néven ismert)

Szintaktika:

    except ban {
    	mask <hostmaszk>;
    };

Az except ban blokkal határozhatod meg, mely user@host-ok bírálhatnak felül egy szélesebb maszkra beállított kitiltást. Hasznos, ha egy Internet szolgáltató ki van tiltva, de onnan bizonyos felhasználókat még mindig szeretnél kapcsolódni engedni. Az except::mask direktíva a kapcsolódásra engedélyezett kliens user@host maszkját határozza meg.

Példa:

    except ban {
    	mask identnev@sajat.szolgaltatom.com;
    };

4.20 - TKL exceptions blokk SZABADON VÁLASZTHATÓ

Szintaktika:

    except tkl {
    	mask <hostmaszk>;
    	type <típus>;
    	type {
    		<típus>;
    		<típus>;
    		...
    	};
    };

Az except tkl blokkal meghatározhatod, mely user@host-ok bírálhatnak felül egy szélesebb maszkra beállított tkl kitiltást. Hasznos, ha egy Internet szolgáltató ki van tiltva, de még mindig szeretnéd, hogy onnan kapcsolódhassanak bizonyos felhasználók. Az except::mask direktíva a kapcsolódásra engedélyezett felhasználó user@host maszkja. Az except::type meghatározza, hogy milyen letiltást bírálhat felül a kliens. Érvényes típusok: gline, gzline, qline, gqline és shun, amelyek kivételt képeznek a Gline-okra, globális Zline-okra, Qline-okra, globális Qline-okra és shunokra. Ha a type {} formátumot használod, több típust is megadhatsz.

Példa:

    except tkl {
    	mask identnev@sajat.szolgaltatom.com;
    	type gline;
    };

4.21 - Throttle Exceptions blokk SZABADON VÁLASZTHATÓ

Szintaktika:

    except throttle {
    	mask <ipmaszk>;
    };

Az except throttle blokkal határozhatod meg, mely IP címek bírálhatják felül az elfojtási rendszert (throttling system). Csak akkor működik, ha engedélyezted az elfojtást. Az except::mask egy IP maszkot határoz meg, amely nem lesz adott időn belül többszörös kapcsolódás miatt bannolva.

Példa:

    except throttle {
    	mask 192.168.1.*;
    };

4.22 - Deny DCC blokk SZABADON VÁLASZTHATÓ (Előzőleg dccdeny.conf-ként ismert)

Szintaktika:

    deny dcc {
    	filename <blokkolandó-fájlnév>;
    	reason <letiltás-indoka>;
    	soft [yes|no];
    };

A deny dcc blokkal megadhatod olyan fájlok nevét, amelyek nem engedélyezettek a szerveren DCC-n keresztüli küldésre. Ez nagyon hasznos a trójai lovak és vírusok terjesztésének megállítására.

A deny::filename paraméter egy joker karaktereket megengedő maszk annak a fájlnak a nevére, amelynek a küldése letiltandó, és a deny::reason adja meg az indokot, hogy a fájl miért van blokkolva.

Van még egy deny::soft opció is (gyenge letiltás); ha "yes"-re állítod, a dcc mindaddig blokkolva lesz, mígnem a felhasználó kimondottan engedélyezi a /DCCALLOW +küldő-nickneve paranccsal. A dccallow.conf-ban találhatsz egy jó példát dccallow konfigurációra.

Példa:

    deny dcc {
    	filename virus.exe;
    	reason "Ez egy GD Virus";
    };

    deny dcc {
    	filename "*.exe";
    	reason "Futtatható tartalom";
    	soft yes;
    };

4.23 - Deny version blokk SZABADON VÁLASZTHATÓ (Előzőleg V:Line néven ismert)

Szintaktika:

    deny version {
    	mask <szervernév>;
    	version <verziószám>;
    	flags <fordítási-flagek>;
    };

Ezzel a blokkal szerverek linkelését tilthatod le az általuk futtatott Unreal verzió és a fordításidejű opcióik alapján. A blokk formátuma egy kissé összetett, de nem nehéz megérteni. A deny::mask direktíva egy joker karaktereket megengedő maszk arra a szervernévre, amire vonatkozik a letiltás. A deny::version a letiltandó szerverek verzióinak protokollszámát határozza meg.

Például a 3.0-ás verzió a 2301-as, 3.1.1/3.1.2 a 2302-as, valamint a 3.2 a 2303-as protokollszámhoz tartozik. Az első karakter lehet >, <, = vagy !. Ez a karakter mondja meg az IRCd-nek, hogyan értelmezze a verziót. Ha az első karakter >, minden olyan verzió tiltott, ami az utána megadott verziónál nagyobb; ha <, a nála kisebb verziók tiltottak, ha =, csak az a verzió tiltott, és ha !, a megadottat kivéve minden verzió tiltott. A deny::flags direktívával meghatározhatod, hogy milyen fordításidejű opciókat reprezentáló flagei lehetnek vagy nem lehetnek a szervernek. A flagek legyenek egymás mellett, elválasztás nélkül. Ha egy karaktert megelőz egy !, akkor az azt jelenti, hogy ez a flag nem szerepelhet a szerver fordítási flagjei között, ha pedig nincs előtte ! prefix, akkor a szervernek kell, hogy legyen ilyen flagje.

4.24 - Deny link blokk SZABADON VÁLASZTHATÓ (Előzőleg D/d:Line néven ismert)

Szintaktika:

    deny link {
    	mask <szervernév>;
    	rule <crule-kifejezés>;
    	type <letiltás-típusa>;
    };

Ezzel a blokkal meghatározott szabályok alapján tiltható le egy szerver linkelése. A deny::mask egy joker karaktereket megengedő maszk annak a szervernek a nevére, amelyre ezt a szabályt alkalmazod. A deny::rule direktíva nagyon összetett, de hasznos: ún. crule kifejezésekkel részletesen szabályozható a linkelés, és programozásszerű kifejezésekkel állítható fel. Négy operátor áll rendelkezésre: connected(<szervermaszk>), ami igazat ad vissza, ha a szervermaszkra illő szerver kapcsolatban van a hálózattal, directcon(<szervermaszk>), ami igazat ad vissza, ha a szervermaszkra illő szerver közvetlen kapcsolatban van a szerverrel, via(<viamaszk>,<szervermaszk>), ami igazat ad vissza, ha a szervermaszkra illő szervert a viamaszkra illő szerver kapcsolta a hálózatra, és a directop(), ami igazat ad vissza, ha a /connect parancsot kiadó IRC operátor közvetlen kapcsolatban van a helyi szerverrel. Ezek az operátorok összekapcsolhatóak a && (és) valamint a || (vagy) műveletekkel, továbbá az egyes elemek zárójelek közé tehetőek, hogy csoportosíthatóak legyenek. Ezenkívül ha egy operátort megelőz egy ! művelet, azt ellenőrzi, hogy az operátor hamis értéket adott-e vissza. Ha az egész kifejezés igaz értékű, a linkelés le lesz tiltva. A deny::type két különböző értéketű lehet: auto (csak automatikus kapcsolódásokra vonatkozik, a /connect továbbra is működni fog) és all (minden kapcsolódási kísérletre érvényes).

4.25 - Deny channel blokk SZABADON VÁLASZTHATÓ (Előzőleg chrestrict.conf-ként ismert)

Szintaktika:

    deny channel {
    	channel "<csatornamaszk>";
    	reason <letiltás-indoka>;
    	redirect "<csatornanév>";
    	warn [on|off];
    };

A deny channel blokkal tiltható le felhasználók belépése bizonyos csatornákra. A deny::channel direktíva egy joker karaktereket megengedő maszk azokra a csatonákra, amelyekbe a felhasználók nem léphetnek be, és a deny::reason megadja, miért nem engedélyezett a belépés. Továbbá megadhatsz egy deny::redirect paramétert is. Ha megadod, az ezen deny::channel blokkra illő csatornákra belépni próbáló felhasználókat átirányítja a deny::redirect csatornára. És van még egy deny::warn paraméter is, ami (ha "on" értékű) küld egy operátori értesítést (az EYES snomaskra), ha a felhasználó belépéssel próbálkozik.

Példa:

    deny channel {
    	channel "#azunrealegyszopacs";
    	reason "Nem, nem igaz!";
    };

    deny channel {
    	channel "#*teen*sex*";
    	reason "Te == halott";
    	warn on;
    };

    deny channel {
    	channel "#operhelp";
    	reason "A mi hálózati segélycsatornánk a #help, nem az #operhelp";
    	redirect "#help";
    };

4.26 - Allow channel blokk SZABADON VÁLASZTHATÓ

Szintaktika:

    allow channel {
    	channel "<csatornamaszk>";
    };

Az allow channel blokkal meghatározhatod, mely csatornákra léphetnek be a felhasználók, ha a belépést korlátozza egy deny channel blokk. Az allow::channel direktíva egy joker karaktereket megengedő maszk azokra a csatornákra, amelyekre a belépés engedélyezett.

Példa:

    allow channel {
    	channel "#valami";
    };

4.27 - Allow DCC blokk SZABADON VÁLASZTHATÓ

Szintaktika:

    allow dcc {
    	filename "<fájlnév-maszk>";
    	soft [yes|no];
    };

Az allow dcc blokkal adhatsz meg deny dcc blokkokon felüli kivételeket; joker karakterek engedélyezettek. Ha az allow dcc::soft "yes"-re van állítva, a "gyenge dcc letiltások" listájára vonatkozik, ha pedig "no"-ra, a normális ("szigorú") dcc letiltásokéra.

Példa:

    allow dcc {
    	filename "*.jpg"; /* A képek rendszerint biztonságosak */
    	soft yes;
    };

4.28 - Vhost blokk SZABADON VÁLASZTHATÓ (Előzőleg vhosts.conf-ként ismert)

Szintaktika:

    vhost {
    	vhost <vhost>;
    	from {
    		userhost <hostmaszk>;
    		userhost <hostmaszk>;
    		...
    	};
    	login <bejelentkező név>;
    	password <jelszó> { <hitelesítés-típusa>; };
    	swhois "<swhois információ>";
    };

A vhost blokkal állíthatsz be olyan név/jelszó párokat, amelyek a /vhost paranccsal együtt használhatóak virtuális hostnevek szerzéséhez. A vhost::vhost paraméter lehet vagy egy user@host vagy csak egy host, amit a felhasználó sikeres /vhost-olás után kap. A vhost::from::userhost egy user@host-ot tartalmaz, amire a felhasználónak illenie kell, hogy jogosult legyen a vhosthoz. Megadhatsz egynél több hostmaszkot is. A vhost::login a felhasználó bejelentkező neve, és a vhost::password a hozzá tartozó jelszó, amelyeket a felhasználónak be kell írnia. A vhost::password:: arra ad lehetőséget, hogy meghatározd a jelszó kódolásának/hitelesítésének típusát. A jelenleg támogatott típusok a crypt, md5, sha1 és ripemd-160. Végül a vhost::swhois egy kiegészítő sort ad a felhasználó whois adataiba, pontosan úgy, mint az oper blokk oper::swhois direktívájában.

Példa:

    vhost {
    	vhost az.en.sajat.szemelyes.vhostom.com;
    	from {
    		userhost egyik@szolgaltatom.com;
    		userhost masik@szolgaltatom.com;
    	};
    	login nicknevem;
    	password jelszavam;
    	swhois "Én lenni különleges";
    };

4.29 - Badword blokk SZABADON VÁLASZTHATÓ (Előzőleg badwords.*.conf-ként ismert)

Szintaktika:

    badword <típus> {
    	word <illesztési-szöveg>;
    	replace <csereszöveg>;
    	action <replace|block>;
    };

A badword blokkal kezelheted a +G felhasználói és csatornamódhoz használt, "csúnya szavak" szűrésére szolgáló listát. A badword:: meghatározza csúnya szó a típust; érvényes típusok a channel, message, quit és all. A channel a csatornabeli +G listára vonatkozik, a message a felhasználói +G listára, a quit a kilépő üzeneteket cenzúrázza, végül az all mindhárom listára felveszi a csúnya szót. A badword::word lehet egy egyszerű (rész)szó vagy egy reguláris kifejezés, amire a keresést végzi a szerver. A badword::replace az, amire a találatot cseréljük. Ha a badword::replace-t kihagyod, a szó a <censored>-ra lesz cserélve. A badword::action megmondja, mi legyen a teendő, ha egy csúnya szóra találat van. Ha replace az értéke, csere történik; ha block, az egész üzenet blokkolva lesz. Ha nem adsz meg badword::action-t, a replace lesz feltételezve.

Példa:

    badword channel {
    	word szar;
    	replace sz@r;
    };

4.30 - ULines blokk SZABADON VÁLASZTHATÓ (Előzőleg U:Line néven ismert)

Szintaktika:

    ulines {
    	<szervernév>;
    	<szervernév>;
    	...
    };

Ezzel a blokkal különleges képességekkel ruházhatsz fel bizonyos szervereket. Csak olyan szerverekre célszerű használni, mint a szolgáltatások és a statisztikák. Egy normál szerverre nem érdemes beállítani. A blokk minden eleme egy-egy szerver neve, amelyek a különleges jogokat kapják.

Példa:

    ulines {
    	services.sajátnet.com;
    	stats.sajátnet.com;
    };

4.31 - Link blokk SZABADON VÁLASZTHATÓ (Előzőleg C/N/H:Line-okként ismert)

Szintaktika:

    link <szervernév> {
    	username <usermaszk>;
    	hostname <ipmaszk>;
    	bind-ip <ip-ahová-bindeljen>;
    	port <port-ahová-kapcsolódjon>;
    	password-connect <kapcsolódási-jelszó>;
    	password-receive <beérkező-jelszó> { <kódolás-típusa>; };
    	hub <hub-maszk>;
    	leaf <leaf-maszk>;
    	leafdepth <mélység>;
    	class <osztálynév>;
    	ciphers <ssl-kódoló-algoritmusok>;
    	options {
    		<opció>;
    		<opció>;
    		...
    	};
    };

Erre a blokkra van szükséged szerverek linkeléséhez. Kérlek, szakíts egy kis időt ennek az egésznek az elolvasására, mert ez egyike azon legnehezebb dolgoknak, amelyeket a felhasználók gyakran elhibáznak ;P

Először is, a szervernév a távoli szervered neve, az a név, amely a távoli szerver me { } blokkjában van beállítva, mint a hub.blah.com (nem az IP cím, és a gazdanévtől is eltérő lehet).

username
Megadhatod ezt, ha identet használsz a felhasználónevek hitelesítésre, közönséges esetben állítsd "*"-ra.

hostname
A távoli szerver gazdaneve vagy IP címe. Ezt használjuk a kapcsolódáshoz ÉS a beérkező oldal hitelesítéséhez/érvényesítéséhez is. Néhány példa:

1.2.3.4 | közönséges IP
hub.blah.com | gazdanév: csak kimenő kapcsolatokra, nem tud _beérkező_ kapcsolatokat fogadni, amíg a link::options::nohostcheck nincs beállítva
* | KIMENŐ kapcsolatokra alkalmatlan, de bárhonnan fogad szerverkapcsolódást (a megfelelő jelszóval)
::ffff:1.2.3.4 | ipv6-ról ipv4-re linkeléshez.

bind-ip (szabadon választható)
Arra használható, hogy a szerver egy megadott IP-re bindeljen (pl. 192.168.0.1-re), ahonnan kellene kapcsolódnia, szinte soha nincs szükség rá.

port
Azon port száma, ahová kapcsolódjon a szerver (amelyen a távoli szerver figyeli a kapcsolódásokat).

password-connect
A távoli szerverre kapcsolódáskor használt jelszó, egyszerű szövegnek kell lennie.

password-receive
A beérkező linkek érvényesítéséhez használt jelszó, lehet titkosított (érvényes kódolási típusok a crypt, md5, sha1 és ripemd-160). A kódolás-típusa paramétert kihagyhatod, hogy csak egyszerű szöveget használj. Gyakran megegyezik ez a jelszó a password-connect-tel.

hub vs leaf
A hub linkelhet egyszerre több szervert is, amíg a leafnek csak egy linkje lehet... hozzád. Egy szerver vagy hub, vagy leaf, ezek együtt nem használhatóak.

hub (szabadon választható)
Az értéke egy maszk azokra a szerverekre, amelyekre ez a hub kapcsolódhat (pl: *.sajat.net).

leaf (szabadon választható)
Az értéke egy maszk azokra a szerverekre, amelyek felé ez a szerver leafként viselkedik.

leaf-mélység (szabadon választható)
Ha ezt megadod, a leaf opciót is célszerű megadnod. Ez az érték azt a mélységet (ugrások számát) határozza meg, amely alá ez a szerver nem léphet.

class
Azon kapcsolati osztály, ahová helyezzük a szervert. Ehhez gyakran egy külön szerver osztályt szokás használni.

compression-level (szabadon választható)
Megadja ezen link tömörítési szintjét (1-9). Csak akkor szokás használni, ha a link::options::zip be van állítva.

ciphers (szabadon választható)
Meghatározza, milyen SSL kódoló/visszafejtő algoritmusok (cipherek) legyenek használatban ehhez a linkhez. A rendelkezésre álló algoritmusok listájának eléréséhez használd az `openssl ciphers` parancsot. Az algoritmusokat ":"-tal elválasztott felsorolásként add meg.

options blokk
Egy vagy több opció használatának beállítására szolgál. Néha nincs szükség rá.

ssl | ha SSL portra kapcsolódsz.
autoconnect | a szerver próbálkozni fog az automatikus kapcsolódással, a class::connfreq-ben beállított időközönként (a legjobb, ha ezt csak egy oldalról engedélyezed, mint a leaf->hub linkeléseknél)
zip | ha tömörített (zip) linkeket akarsz; ehhez szükség van a szerverbe belefordítt zip link támogatásra + ezen opció beállítására mindkét oldalon
nodnscache | ne használjon gyorsítótárat a kimenő szerverkapcsolat IP címére; használd ezt gyakran változó gazdanevek (például dyndns.org) esetén.
nohostcheck | ne érvényesítse a távoli gazdanevet (link::hostname); használd ezt gyakran változó gazdanevek (például dyndns.org) esetén.
quarantine | a szerver operátorai nem kaphatnak GLOBÁLIS jogosultságokat (ki lesznek lőve), teszt linkekre meg hasonlókra szokás használni

Példa:

    link hub.sajatnet.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 blokk SZABADON VÁLASZTHATÓ

Szintaktika [szabványos álparancsokra]:

    alias <név> {
    	target <ahová-továbbítsa>;
    	type <álparancs-típusa>;
    	spamfilter <yes|no>;
    };

(Megjegyzés: lásd még az include direktívát az UnrealIRCd szabványos álparancsokat tartalmazó fájljairól.)

Az alias blokk [szabványos álparancsokra] lehetővé teszi, hogy parancsokat továbbítsunk egy felhasználóhoz, például hogy a /chanserv üzenetet küldjön a chanserv felhasználónak. Az alias:: megadja azt a parancsnevet, ami lesz az álnév (pl.: chanserv). Az alias::target egy nick- vagy csatornanév, ahová a parancs továbbítva lesz. Ha az alias:: ugyanaz, mint a továbbítási célpont, az alias::target elhagyható. Az alias::type meghatározza az álparancs típusát; érvényes típusok: services (a felhasználó egy szolgáltatás szerveren van), stats (a felhasználó egy statisztikai szerveren van), normal (a felhasználó egy közönséges felhasználó bármilyen szerveren), és channel (a célpont egy csatornanév). Az alias::spamfilter (nem kötelező) "yes"-re állításával bekapcsolható a spamszűrés erre az álparancsra (az alapértelmezés "no").
Az alias blokknak van egy másik célja is, amit az alábbiakban magyarázunk el.

Szintaktika [formázott álparancsokra]:

    alias <név> {
    	/* Felhasználóknak/csatornára küldendő álparancsokra */
    	format <reguláris-kifejezés> {
    		target <ahová-továbbítsa>;
    		type <álparancs-típusa>;
    		parameters <paraméter-sztring>;
    	};
    	/* "Valódi" álparancsokra */
    	format <reguláris-kifejezés> {
    		command <parancs>;
    		type real;
    		parameters <paraméter-sztring>;
    	};
    	/* Stb... Annyi format blokkunk lehet, ahányat szeretnénk.. */
    	format <reguláris-kifejezés> {
    		...
    	};
    	type command;
    	spamfilter <yes|no>;
    };

Amikor az alias blokkot ebben a formában használjuk, lehetőséget ad egy sokkal szélesebb körű alkalmazására. Például készíthetünk olyan álparancsokat is, mint az /identify. Az alias:: ugyanaz, mint fent, az álparancs neve. Az alias::format blokkok értékei reguláris kifejezések, amelyek az álparancshoz küldött szöveggel lesznek összehasonlítva, és ha az egyik illik rá, annak az alias::format-nak az albejegyzései lesznek használatban. Lehet egyszerre több alias::format-unk is, így a parancs különböző dolgokat tehet a neki küldött szövegtől függően. Az alias::format::target az álparancs továbbításának célpontja, de "valódi" álparancsok esetében az alias::format::command használandó. Az alias::format::type megadja, hogy az üzenet milyen típusú célponthoz legyen elküldve; a "Szintaktika [szabványos álparancsokra]" részben korábban említett típusok mellett itt megengedett még a "real" is, "valódi" álparancsokra. Az alias::format::parameters mondja meg, milyen paraméterek legyenek elküldve a felhasználóhoz. Ahhoz, hogy az álparancshoz küldött paraméterek egyikére hivatkozzunk, írjunk egy % jelet egy azt követő számmal, például %1 az első paraméter. Lehetőség van arra is, hogy hivatkozzunk egy adott paramétertől kezdődően az üzenet végéig tartó összes paraméterre, ehhez írjunk be egy % jelet, majd egy számot és egy - jelet, például a %2- visszaadja az összes paramétert a másodiktól kezdődően az utolsóig. Hasonló különleges célt szolgál még a %n is, ami helyettesíti annak a felhasználónak a nevét, aki kiadta a parancsot.
A formázott álparancsokra vonatkozóan példákat találunk a doc/example.conf-ban.

4.33 - Help blokk SZABADON VÁLASZTHATÓ

Szintaktika:

    help <név> {
    	<szövegsor>;
    	<szövegsor>;
    	...
    };

(Megjegyzés: általában elég csak betölteni a help.conf-ot)

A help blokkal készíthetsz bejegyzéseket a /helpop parancshoz. A help:: az az érték, amit a /helpop-nak kell átadni paraméterként; ha a help:: ki van hagyva, a blokk akkor lesz használatban, amikor a /helpop-nak semmilyen paraméter nincs átadva. A help blokk bejegyzései az a szöveget határozzák meg, amely megjelenik a felhasználó előtt, ha a /helpop parancsot adja ki.

4.34 - Official channels blokk SZABADON VÁLASZTHATÓ

Szintaktika:

    official-channels {
    	"#channel" { topic "Az alapértelmezett téma"; };
    };

A hivatalos csatornák (official channels) akkor is megjelennek a /list-ben, ha nincsenek felhasználók a csatornán. A topic kihagyható, és csak akkor mutatja a /list, ha a csatornának 0 felhasználója van.

Példa:

    official-channels {
    	"#Help" { topic "A hivatalos segélycsatorna; ha nincs jelen senki, írd be: /helpop segíts"; };
    	"#Home";
    	"#Main" { topic "A főcsatorna"; };
    };

4.35 - Spamfilter blokk SZABADON VÁLASZTHATÓ

A spamfilter blokkal vehetsz fel helyi spamszűrőket (nem hálózati szintűeket).
Lásd a Jellegzetességek - A spamszűrő szekciót további információért.

Szintaktika:

    spamfilter {
    	regex <szó>;
    	target { <célpont(ok)> };
    	action <tevékenység>;
    	reason <indok>;
    	ban-time <időtartam>;
    };

A regex egy reguláris kifejezés, amely alapján keresünk.
A target meghatározza, hol történjen a szűrés; lásd itt a célpontok lehetséges típusait (példa: "channel").
Az action eldönti, mi történjen találat esetén, lásd itt a lehetséges tevékenységek listáját (példa: "gline").
A reason kihagyható, a kitiltás vagy a blokkolás indoklószövegének beállítására szolgál; ha nincs megadva, az alapértelmezés lesz használatban.
A ban-time sem kötelező, megadja a *line kitiltás vagy shun lejárati idejét; ha kihagyod, az alapértelmezés lesz használatban (1 nap).

Példák:

    spamfilter {
    	regex "Come watch me on my webcam";
    	target { private; channel; };
    	action gline;
    	reason "Fertőzött vagy, kérlek menj el a www.antivirus.xx/blah/virus=GrrTrojan címre!";
    	ban-time 6h;
    };

    spamfilter {
    	regex "come to irc\..+\..+";
    	target { private; channel; };
    	action gline;
    	action gline;
    	reason "A spam nem engedélyezett";
    };

4.36 - Cgiirc blokk SZABADON VÁLASZTHATÓ

A cgiirc blokkal gazdanév-hamisítást állíthatunk be megbízható CGI:IRC átjárókra (további információ).

Szintaktika:

    cgiirc {
    	type <webirc|old>;
    	username <maszk>; /* nem kötelező */
    	hostname <maszk>;
    	password <jelszó>; /* csak a webirc típusra */
    };

A type lehet akár "webirc" vagy "old" (azaz "régi").
A username egyeztetésre kerül az azonosítónévvel (ha van ilyen). Ha nincs megadva, "*" lesz feltételezve.
A hostname a gazdanévre illeszkedő maszk.
A password a webirc jelszó, csak a "webirc" típus esetén használjuk.

Hogyan állítsuk be a 'webirc' módot? (javasolt mód)
A CGI:IRC konfigurációs fájlunkban (cgiirc.conf) beállítjuk a webirc_password-öt egy alkalmas jelszóra.
Ezután az unrealircd.conf-ba teszünk egy cgiirc blokkot, mellyel engedélyezzük ezt a gazdanevet és jelszót, valamint beállítjuk a cgiirc::type-ot "webirc"-re.
Példa:
A CGI:IRC konfigurációs fájlba (cgiirc.conf) írjuk a következőt:

    webirc_password = LpT4xqPI5

Majd az unrealircd.conf-ba tegyünk egy cgiirc blokkot:

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

Hogyan állítsuk be az "old" (régi) módot?
MEGJEGYZÉS: Ez nem javasolt mód, mivel két hátránya van: ez a mód szerverjelszóként küldi el a hamisítandó IP-t/gazdanevet, emiatt nem adhatunk meg szerverjelszót CGI:IRC felhasználóként. Továbbá a hozzáférés-szabályozás csak IP alapú, és nem igényel külön jelszót, mint a 'webirc' mód. Röviden, nem kellene ezt használnunk, hacsak nincs nyomós indokunk rá.
A CGI:IRC beállításfájlban (cgiirc.conf) beállítjuk a realhost_as_password-öt 1-re.
Ezután az unrealircd.conf-ba teszünk egy cgiirc blokkot, hogy engedélyezzük ezt a gazdanevet.
Példa:
A CGI:IRC konfigurációs fájlba (cgiirc.conf) írjuk a következőt:

    realhost_as_password = 1

Majd az unrealircd.conf-ba tegyünk egy cgiirc blokkot:

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

4.37 - Set blokk KÖTELEZŐ (Előzőleg unrealircd.conf-ként/hálózati fájlként ismert)

A set fájl az, ami régebben a networks/unrealircd.conf-unk és a hálózati fájlunk szokott lenni. Egyszerveres hálózatokon, inkább, mint hogy legyen 3 fájlod, egyszerűen beillesztheted a set utasításokat az unrealircd.conf-ba, többszerveres hálózatokon viszont még mindig ajánlott a hálózati fájl használata.

Ha a szervered egy hálózaton van, igen valószínű, hogy alapvetően ugyanazokat a Set beállításokat használjátok. Ezért van több értelme, hogy legyen egy hálózati fájlod, amit betöltesz az include direktívával. Az alábbiakban megtalálod az összes rendelkezésre álló set direktívát.

Ebben a dokumentumban a beállításokra / direktívákra a <blokknév>::<blokk-direktíva> formában hivatkozunk. Ez NEM az a formátum, amelyet beírhatsz a beállításfájlba! Át KELL alakítanod az alábbi példa szerint. Azért jelenítjük meg őket ebben a formában, hogy könnyebben beszélhessünk róluk.

Szintaktika:

    set {
    	<bejegyzés> <érték>;
    	<bejegyzés> <érték>;
    	...
    };

A set block egyedi szervertulajdonságokat állít be. Minden bejegyzés különböző dolgot csinál, ezért mindegyikről adunk leírást. Némely direktívának alblokkjai vannak, amelyekről szintén írunk. Sok set utasítás van, amelyekről beszélhetünk, és minden, lent felsorolt direktíva EGYETLEN set utasításba foglalható. Ha egy direktívának opciói vannak, azok is belefoglalhatóak egyetlen set utasításba.
Példa:

    set {
    	kline-address sajat@emailcimem.com;
    	auto-join #istenhozott;
    	options {
    		hide-ulines;
    	};
    	hosts {
    		local LocalOp.SajatNet.com;
    		global globalop.sajatnet.com;
    	};
    };

Ha most a set utasításokat el szeretnéd különíteni, mondjuk, egyetlen sorba akarnád írni az opciókat, így nézne ki:
Példa:
set { options { hide-ulines; no-stealth; }; };

set::kline-address <email-cím>;
Az az email cím, ahová küldhetők a K:line-nal kapcsolatos kérdések. Ezt az értéket kötelező megadni.

set::gline-address <email-cím>;
Az az email cím, ahová küldhetők a G:line-nal kapcsolatos kérdések.

set::modes-on-connect <+módok>;
Azok a módok, amelyek kapcsolódáskor lesznek beállítva a felhasználókon.

set::snomask-on-connect <+módok>
Azok a snomaskok, amelyek kapcsolódáskor lesznek beállítva a felhasználókon.

set::modes-on-oper <+módok>;
Azok a módok, amelyek /oper-eléskor lesznek beállítva a felhasználókon.

set::snomask-on-oper <+módok>;
Azok a snomaskok, amelyek /oper-eléskor lesznek beállítva a felhasználókon.

set::modes-on-join <+módok>;
Azok a módok, amelyek akkor lesznek beállítva egy csatornán, amikor létrehozzák. Nem minden mód állítható be ezzel az utasítással. A +qaohvbeOAzlLk módok NEM állíthatóak be ezzel az utasítással.

set::restrict-usermodes <módok>
Korlátozza a felhasználókat az itt felsorolt csatornamódok beállításában/törlésében. (Ne használj + vagy - jelet.)
Például beállíthatod a "+G"-t a "modes-on-connect"-ben és a G-t a "restrict-usermodes"-ben, ily módon minden felhasználóra ráeröltetheted a +G módot úgy, hogy ne tudják törölni.

set::restrict-channelmodes <módok>
Korlátozza a felhasználókat az itt felsorolt csatornamódok beállításában/törlésében. (Ne használj + vagy - jelet.)
Például beállíthatod a "+G"-t a "modes-on-join"-ban és a G-t a "restrict-channelmodes"-ben, ily módon minden (új) csatornára ráeröltetheted a +G módot úgy, hogy ne tudják törölni.
MEGJEGYZÉS: lehet, hogy ezek a csatornamódok még mindig használhatóak IRC szolgáltatásokon keresztül az MLOCK alkalmazásával. Sajnos mi nem tudunk sokat tenni ezügyben, a szolgáltatás fejlesztőket kellene megkérned, hogy megvalósítsanak egy restrict-channelmodes funkciót is.

set::restrict-extendedbans <típusok|*>
Nem ad engedélyt a felhasználóknak egyetlen kiterjesztett ban típus használatára sem ("*"), vagy csak bizonyos típusokat utasít vissza (pl.: "qc").

set::auto-join <csatornák>;
Azon csatorná(k), ahová a felhasználó be lesz léptetve kapcsolódáskor. Egynél több csatorna megadásához használj vesszővel elválaszott felsorolást.
[Megjegyzés: ne felejts idézőjelekt hozzátenni, pl. így: auto-join "#csatorna";]

set::oper-auto-join <csatornák>;
Azon csatorná(k), ahová a felhasználó be lesz léptetve /oper-eléskor. Egynél több csatorna megadásához használj vesszővel elválasztott felsorolást.
[Megjegyzés: ne felejts el idézőjeleket hozzátenni, pl. így: oper-auto-join "#csatorna";]

set::anti-spam-quit-message-time <időérték>;
Egy időérték annak az időmennyiségnek a meghatározására, amennyit a felhasználónak el kell tölteni a szerveren, hogy a /quit üzenete megjelenjen. Spamok megelőzésére használható. Az időérték egy numerikus sztring a napot jelentő "d", az órát jelentő "h", a percet jelentő "m" és a másodpercet jelentő "s" karakterekkel. Például az 1d2h3m jelentése 1 nap, 2 óra és 3 perc.

set::prefix-quit <kilépési-üzenet-előtti-szöveg>;
Beállítja, hogy milyen szöveg legyen a kilépési üzenetek elé szúrva. Ha ez az érték 0-ra van állítva, a szabványos "Quit:" lesz használatban.

set::static-quit <kilépési-üzenet>;
Beállít egy statikus kilépési üzenetet, amely mindannyiszor el lesz küldve, valahányszor egy kliens a hálózatból kilép. Ez szükségtelenné teszi az "anti-spam-quit-message-time"-ot éppúgy, mint a "set::prefix-quit"-et. Ez NEM fogja a HIBAÜZENETEKET kicserélni a static-quit üzenettel.

set::static-part <no|yes|lelépési-üzenet>;
A "yes" érték szűr minden lelépési üzenetet, a "no" értékkel a lelépések a szokásos módon működnek, minden más part üzenetként lesz felhasználva (pl.: static-part "Bye!"), de ez meglehetősen idegesítő tud lenni, úgyhogy óvatosan használd.

set::who-limit <határ>;
Beállítja a /who által visszaadott találatok legnagyobb megengedett számát. Ha ezt az opciót kihagyod, nem lesz korlátozás.

set::silence-limit <határ>;
Beállítja a SILENCE lista bejegyzéseinek legnagyobb megengedett számát. Ha ez a direktíva nincs jelen, 15 lesz beállítva.

set::maxbans <határ>;
Beállítja, hogy csatornánként legfeljebb hány kitiltás (+b) megengedett. Az alapértelmezés 60. Ha ezen változtatsz, ne felejts ránézni a maxbanlength direktívára is (lásd alább)!

set::maxbanlength <határ>;
Hasonló a fentihez, de ez a kitiltások karaktereinek számára összesen határoz meg felső határt, vagyis tulajdonképpen korlátozást tesz arra, kb. mekkora lehet az a legnagyobb mennyiségű memória, amit a kitiltások csatornánként lefoglalhatnak. Az alapértelmezés 2048 (bájt). A set::maxbans 60-as alapértékével ez átlagosan 2048:60=34 karaktert enged kitiltásonként.

set::oper-only-stats <flaglista>;
Megad egy elválasztójelek nélküli, stats flagekből álló felsorolást, amely meghatározza, mely stats flageket használhatnak csak operátorok. Hagyd ki ezt az értéket, hogy engedélyezd a felhasználóknak az összes flag használatát, vagy írj *-ot, hogy egy flaget se használhassanak. Itt csak rövid stats flagek adhatóak meg.

set::oper-only-stats {<stats-flag>; <stats-flag>;};
Azon stats flagek listáját határozza meg, amelyeket csak operátorok használhatnak. Ez a megadási mód csak hosszú flagnevekkel működik.

set::maxchannelsperuser <csatornák-száma>;
Meghatározza, hogy egyidejűleg legfeljebb hány csatornára léphet be egyetlen felhasználó.

set::maxdccallow <bejegyzések-száma>;
Meghatározza, hogy legfeljebb hány bejegyzés szerepelhet egy felhasználó DCCALLOW listáján.

set::channel-command-prefix <parancs-előtagok>;
Meghatározza a csatornabeli services parancsok előtag karaktereit. Azok az üzenetek, amelyek az itt megadott karakterek bármelyikével kezdődnek, még olyan kliensekhez is el lesznek küldve, amelyek a +d móddal rendelkeznek. Az alapérték "`!.".

set::allowed-nickchars { <felsorolás> };
Nicknevekben engedélyezendő karakterkészletek / nyelvek, lásd: Karakterkészletek nicknevekben.

set::allow-userhost-change [never|always|not-on-channels|force-rejoin]
Meghatározza, hogy mi történjen, ha az user@host megváltozik (+x/-x/chghost/chgident/setident/vhost/stb. esetén).
A never letiltja mindegyik parancsot, az always akkor is engedélyezi, ha a felhasználó csatorná(k) tagja (szinkronhibát okozhat) [alapértelmezés], a not-on-channels csak akkor engedi, ha nem lépett be egy csatornára sem, és a force-rejoin arra készteti a felhasználót, hogy újra lépjen be minden csatornára, és visszaadja a csatornajogait, ha szükséges.

set::options::hide-ulines;
Ha ez jelen van, az Uline-os szerverek el lesznek rejtve a nem operátorok által kiadott /links lekérdezésekben.

set::options::flat-map;
Ha ez jelen van, a /map-ben és a /links-ben minden szerver úgy jelenik meg, mintha közvetlenül a helyi szerverhez lenne linkelve, ily módon többé nem lesz látható, melyik szerver melyikhez kapcsolódott. Ez egy kis segítség a (D)DoS támadások ellen, mert a rosszindulatú emberek már nem láthatják a "gyenge pontokat".

set::options::show-opermotd;
Ha jelen van, az opermotd el lesz küldve a felhasználóknak minden sikeres /oper-eléskor.

set::options::identd-check;
Ha jelen van, az UnrealIRCd ellenőrizni fogja az identd szerver jelenlétét, és a visszaadott értéket alkalmazza felhasználónévként. Ha nem kap ident választ, vagy az identd szerver nem létezik, a felhasználó által megadott felhasználónév elé egy ~ jelet tesz. Ha ezt az értéket kihagyod, nem végez ilyen ellenőrzést.

set::options::show-connect-info;
Ha jelen van, az "ident lekérdezéseket", "gazdanév kikereséseket" stb. jelző értesítések megjelennek, ha egy felhasználó kapcsolódik.

set::options::dont-resolve;
Ha jelen van, a beérkező felhasználók gazdanevei nem lesznek lekérdezve. Hasznos lehet a kapcsolódások felgyorsításához, ha sok felhasználónak nincs gazdaneve.
Megjegyzendő, hogy a lekérdezések elvégzése nélkül gazdanév alapú allow blokkjaid értelmüket vesztik.

set::options::mkpasswd-for-everyone;
Az /mkpasswd használatát mindenki számára engedélyezi, nem csak operátoroknak. Ezen parancs nem-oper használatáról értesítést küld az EYES snomaskra.

set::options::allow-part-if-shunned;
Engedélyezi a shunolt felhasználóknak a /part használatát.

set::options::fail-oper-warn;
Ha jelen van, a felhasználók értesülni fognak arról, hogy a sikertelen /oper-elési kísérletük naplózva lett.

set::dns::timeout <időérték>;
Egy időérték azon időhossz meghatározására, ami alatt a DNS szervernek válaszolni kell, mielőtt időkifutás történik. Az időérték egy numerikus sztring a napot jelentő "d", az órát jelentő "h", a percet jelentő "m" és a másodpercet jelentő "s" karakterekkel. Például az 1d2h3m jelentése 1 nap, 2 óra és 3 perc.

set::dns::retries <próbálkozások-száma>;
Egy számérték, amely meghatározza, hányszor történjen újrapróbálkozás a DNS lekérdezésben, ha hiba fordul elő.

set::dns::nameserver <dns-szerver-neve>;
Meghatározza a DNS lekérdezésekhez használt szerver gazdanevét.

set::dns::bind-ip <ip>;
Meghatározza azt az IP címet, amelyre bindeljen a szerver a lekérdezésekhez; a lehető legritkábban van szükség rá.

set::network-name <hálózat-neve>;
Meghatározza azon hálózat nevét, amelyen ez a szerver fut. Ez az érték legyen a hálózat minden szerverén pontosan ugyanaz.

set::default-server <szervernév>;
Meghatározza, hogy mi legyen annak az alapértelmezett szervernek a neve, ahová legyenek utasítva a felhasználók, ha ez a szerver tele van.

set::services-server <szervernév>;
Meghatározza azon szerver nevét, ahová a services botok kapcsolódtak. Kötelező; állíts be valami services.sajátnet.com-hoz hasonlóra, ha nincs servicesed.

set::stats-server <szervernév>;
Beállítja azon szerver nevét, ahol a statisztikai bot tartozkodik. Ha nem fut statisztikai szerver, ez az érték kihagyható.

set::help-channel <hálózati-segélycsatorna>;
Beállítja e hálózat segélycsatornájának nevét.

set::cloak-keys { "kulcs1"; "kulcs2"; "kulcs3"; };
Beállítja a +x gazdanevek generálásához használandó kulcsokat. Ezeknek a kulcsoknak a hálózat minden szerverén azonosnak kell lenniük, különben a szerverek nem fognak linkelni. Mind a 3 set::cloak-keys:: érték legyen egy-egy 5-100 karakterből álló sztring (10-20 között kiváló), amely kisbetűkből (a-z), nagybetűkből (A-Z) és számokból (0-9) áll. Megjegyzendő, hogy az általad betöltött álcázó modultól függően más szabályok lehetnek érvényben.

set::hiddenhost-prefix <előtag>;
Meghatározza a rejtett (+x) gazdanevek előtagját. Ez általában a hálózat nevét ábrázoló három vagy négy betű.

set::hosts::local <locop-gazdanév>;
Meghatározza azt a gazdanevet, amit a +x beállításakor kapnak a helyi operátorok. Igény szerint megadható egy username@host ehhez az értékhez.

set::hosts::global <globop-gazdanév>;
Meghatározza azt a gazdanevet, amit a +x beállításakor kapnak a globális operátorok. Igény szerint megadható egy username@host ehhez az értékhez.

set::hosts::coadmin <coadmin-gazdanév>;
Beállítja azt a gazdanevet, amit a +x beállításakor kapnak a társ-adminisztrátorok. Igény szerint megadható egy username@host ehhez az értékhez.

set::hosts::admin <admin-gazdanév>;
Meghatározza azt a gazdanevet, amit a +x beállításakor kapnak az adminisztrátorok. Igény szerint megadható egy username@host ehhez az értékhez.

set::hosts::servicesadmin <servicesadmin-gazdanév>;
Beállítja azt a gazdanevet, amit a +x beállításakor kapnak a services adminisztrátorok. Igény szerint megadható egy username@host ehhez az értékhez.

set::hosts::netadmin <netadmin-gazdanév>;
Beállítja azt a gazdanevet, amit a +x beállításakor kapnak a hálózati adminisztrátorok. Igény szerint megadható egy username@host ehhez az értékhez.

set::hosts::host-on-oper-up <yes/no>;
Ha "yes"-re állítod, a H/get_host operflag figyelembe lesz véve, és a +x automatikusan be lesz állítva /oper-eléskor. Ha "no" az értéke, a felhasználónak saját magának kell beállítania a +x módot, hogy megkapja az operátori gazdanevet.

set::ssl::egd <fájlnév>;
Engedélyezi az EGD (Entropy Gathering Daemon) támogatást. Ha OpenSSL 0.9.7 vagy későbbi verziót használsz, a /var/run/egd-pool, /dev/egd-pool, /etc/egd-pool és /etc/entropy fájlokat keresi alapértelmezésként, így fájlnév nem szükséges, egyszerűen megadhatod a set::ssl::egd-t érték nélkül. Ha az OpenSSL-nek egy 0.9.7-nél régebbi verzióját használod, vagy egy olyan EGD socketet akarsz használni, amely nem a fent felsorolt helyek egyikén található, megadhatod azon UNIX Domain Socket fájlnevét, ahol az EGD figyeli a kapcsolódásokat.

set::ssl::certificate <fájlnév>;
Meghatározza azt a fájlnevet, ahol a szerver SSL tanúsítványa tartozkodik.

set::ssl::key <fájlnév>;
Meghatározza azt a fájlnevet, ahol a szerver privát SSL kulcsa tartozkodik.

set::ssl::trusted-ca-file <fájlnév>;
Meghatározza azt a fájlnevet, ahol a megbízható CA-k tanúsítványai tartózkodnak.

set::ssl::options::fail-if-no-clientcert;
Letiltja a tanúsítvány nélküli kliensek kapcsolódását.

set::ssl::options::no-self-signed;
Elutasítja az önaláírt tanúsítvánnyal rendelkező kliensek kapcsolódásait.

set::ssl::options::verify-certificate;
Megállapítja az SSL tanúsítvány érvényességét, mielőtt engedélyezi a kapcsolatot.

set::throttle::period <időérték>
Meghatározza, mennyi ideig kelljen egy felhasználónak várnia, mielőtt újrakapcsolódik több mint set::throttle::connections alkalommal.

set::throttle::connections <szám>;
Meghatározza, hányszor kelljen egy felhasználónak ugyanarról a gépről kapcsolódnia, hogy a következő kapcsolódása el legyen fojtva.

set::ident::connect-timeout <időérték>;
Azon másodpercek száma, ami után az Unreal hagyjon fel az ident szerverre kapcsolódással (alapértelmezés: 10s).

set::ident::read-timeout <időérték>;
Azon másodpercek száma, ami után az Unreal hagyjon fel az ident válaszra várakozással (alapértelmezés: 30s).

set::anti-flood::unknown-flood-bantime <időérték>;
Meghatározza, mennyi időre legyen kitiltva egy ismeretlen kapcsolatú árasztó.

set::anti-flood::unknown-flood-amount <szám>;
Meghatározza azt az adatmennyiséget (kilobájtokban), amit egy ismeretlen kapcsolatnak el kell küldenie ahhoz, hogy ki legyen tiltva.

set::anti-flood::away-flood <szám>:<időtartam>
Away árasztásvédelem: meghatározza, hogy az /away paranccsal hányszor változtatható meg a távolléti üzenet adott idő alatt. Ehhez szükséges, hogy a NO_FLOOD_AWAY engedélyezve legyen a config.h-ban. Például az away-flood 5:60s; azt jelenti, legfeljebb 5 változtatás engedélyezett 60 másodperc alatt.

set::anti-flood::nick-flood <szám>:<időtartam>
Árasztásvédelem névváltásokra: meghatározza, mennyi névváltás engedélyezett adott idő alatt. Például a nick-flood 4:90 azt jelenti, 4 névváltás 90 másodpercenként. Az alapértelmezés 3 per 60.

set::default-bantime <időérték>
Az alapértelmezett kitiltási idő, amikor a /kline, /gline, /zline, /shun stb. parancsokat idő paraméter nélkül használod (mint pl. /gline *@valamelyik.csúnya.isp). Az alapérték "állandó" (0). Példa: default-bantime 90d;

set::modef-default-unsettime <szám>
Ezzel megadhatod a +f csatornamódhoz használt alapértelmezett törlési időt (percekben). Ha például 10-et állítasz be, a +f [5j]:15 átalakul [5j#i10]:15-re. Alapértelmezés szerint a csatornamódok nem lesznek automatikusan törölve.

set::modef-max-unsettime <szám>
A +f csatornamódhoz használt törlési idő legnagyobb megengedett hossza percekben (itt arról a törlési időről van szó, amit megadunk pl. a +f [5j#i<IDŐ>]:15 paraméterben). Ez egy 0 és 255 közötti érték. Az alapértelmezés 60 (= 1 óra).

set::ban-version-tkl-time <időérték>
Ha megadod az "action"-t (pl. zline, gline stb.) a ban version blokkban, itt beállíthatod, mennyi időre legyen az IP kitiltva. Az alapértelmezés 86400 (1 nap).

set::spamfilter::ban-time <időérték>
Ugyanaz, mint a fenti, de a spamszűrők által beállított *line-okra/shunokra.

set::spamfilter::ban-reason <indok>
A spamszűrők által beállított bejegyzésekhez használt indoklószöveg.

set::spamfilter::virus-help-channel <csatorna>
A spamszűrő "viruschan" tevékenysége által használt csatorna neve.

set::spamfilter::virus-help-channel-deny <yes|no>
Ha "yes"-re (vagy 1-re) van állítva, "invite only"-val válaszol minden közönséges felhasználónak, aki megpróbál belépni a virus-help-channel csatornára. Csak operátorok, spamszűrőkre illő valamint meghívott (/invite-olt) személyek léphetnek be.

set::spamfilter::except <célpont(ok)>
Ezek a célpontok kivételek a spamszűrések alól (nem lesz tevékenység végrehajtva), lehet egyetlen célpont vagy egy vesszővel elválaszott felsorolás. Pl.: except "#help,#spamreport"

set::check-target-nick-bans <yes|no>
Valahányszor a felhasználó nicknevet változtat, ellenőrzi, hogy az ÚJ név le van-e tiltva. Ha igen, nem engedélyezi a nickváltást. Az alapértelmezés "yes".

set::timesynch::enabled <yes|no>
Engedélyezi vagy letiltja az ircd indításkori időszinkronizálását. Az alapértelmezés "yes".

set::timesynch::server <IP>
Ezzel a szerverrel szinkronizálja az időt. Legfeljebb négy IP lehet, vesszőkkel elválasztva. A szervereknek támogatniuk kell az NTP protokoll 4-es verzióját. Az alapértelmezés 3 időszervert használ (US, EU, AU). A lekérdezések párhuzamosan kerülnek elküldésre, a leggyorsabb válasz nyer.

set::timesynch::timeout <időtartam>
Legfeljebb ennyi ideig vár az időszerverek válaszára. Ez egy érték 1 és 5 között; több nem lehet, mert túl nagy pontatlanságot okozna. Ez az érték alapértelmezésben 3, és nem valószínű, hogy érdemes megváltoztatni.

5 – További fájlok

A konfigurációs fájlok mellett az Unreal néhány egyéb fájllal is rendelkezik, mint pl. az MOTD (a nap üzenete), OperMOTD, BotMOTD és Rules (szabályok). Az alábbiakban felsoroljuk ezen fájlok neveit és használatukat.
Megjegyzendő, hogy az motd fájlok (mindegyik típus) és a szabályfájlok megadhatóak egy tld blokkban is, ezek csak az alapértelmezés szerint (és a távoli MOTD-khez/szabályokhoz) használt fájlok.

ircd.motd | Megjelenik az /motd parancs kiadásakor és (ha az ircd.smotd nem létezik) amikor egy felhasználó csatlakozik
ircd.smotd | Csak kapcsolódáskor jelenik meg (rövid MOTD)
ircd.rules | Megjelenik a /rules parancs kiadásakor
oper.motd | Megjelenik az /opermotd parancs kiadásakor vagy /oper-eléskor
bot.motd | Megjelenik a /botmotd parancs kiadásakor

6 – Felhasználói és csatornamódok

Mód | Leírás
Csatornamódok
A | Csak adminisztrátorok léphetnek be
a <nick> | Csatorna adminná teszi a felhasználót
b <nick!user@host> | Kitiltja a megadott felhasználót a csatornáról
c | ANSI szín nem küldhető a csatornára
C | A CTCP nem engedélyezett a csatornán
e <nick!user@host> | Kitiltás alóli kivétel – Ha valakire ráillik ez a maszk, akkor is beléphet a csatornára, ha egy létező kitiltás nem engedi be
f [<szám><típus>]:<mp> | Árasztásvédelem csatornákra. Lásd a fenti 3.12-es szekciót egy részletesebb leíráshoz.
G | G-osztályúvá teszi a csatornát. Ellenőrzi a badword blokkokban felsorolt szavakat, és kicseréli őket a megadott szavakkal
h <nick> | Féloperátori beosztást ad a felhasználónak
i | Meghívás szükséges
I <nick!user@host> | Meghívás alóli kivételek (invite exceptions avagy "invex") - ha valaki illik erre a maszkra, átugorhatja a +i igényeit, hogy beléphessen a csatornára.
j <belépés:mp> | Leszabályozza a felhasználónkénti belépéseket legfeljebb belépés számú belépésre mp másodperc alatt
K | A /knock nem megengedett
k <kulcs> | Beállít egy kulcsot, amely szükséges a belépéshez
l <##> | Beállítja a felhasználók legnagyobb megengedett számát
L <csatorna> | Ha a +l által beállított számot elérték, a felhasználók erre a csatornára lesznek küldve
M | Csak regisztrált nicknevű (+r) felhasználók beszélhetnek
m | Moderált csatorna. Csak +v/o/h felhasználók beszélhetnek
N | A névváltások nem engedélyezettek
n | Nem küldhető üzenet a csatornán kívül
O | Csak IRCopok léphetnek be
o <nick> | Csatorna operátori beosztást ad a felhasználónak
p | Zártkörűvé teszi a csatornát
q <nick> | Beállítja a csatorna tulajdonosát
Q | Csak U:Line-os szerverek rúghatnak ki felhasználókat
R | Egy regisztrált nicknév szükséges a belépéshez
S | Kiszűr minden bejövő színt
s | Titkossá teszi a csatornát
t | Csak csatorna operátorok állíthatnak be témát
T | Nem engedélyezett a NOTICE a csatornán
u | Előadóterem – A `/names` és a `/who #csatorna` csak csatorna operátorokat mutat
V | Az /invite nem megengedett
v <nick> | Beszédjogot ad a felhasználónak. (Beszélhet +m csatornákon)
z | Csak titkos (SSL) kapcsolatú kliensek léphetnek be

Mód | Leírás
Felhasználói módok
A | Szerver admin (az oper blokkban állítható be)
a | Services admin (az oper blokkban állítható be)
B | Botként jelöl meg
C | Társ-admin (az oper blokkban állítható be)
d | Nem fogadsz csatornabeli PRIVMSG-ket (kivéve az olyan szövegűeket, amelyek bizonyos karakterrel kezdődnek, lásd: set::channel-command-prefix)
G | Kiszűr minden csúnya szót a beállítások szerint
g | Küldhet és fogadhat globops és locops üzeneteket
H | Elrejti az IRCop beosztásodat (csak IRCopoknak)
h | Segítségnyújtásra alkalmas (HelpOp) (az oper blokkban állítható be)
i | Láthatatlan (nem jelenik meg a /who-ban)
N | Hálózati adminisztrátor (az oper blokkban állítható be)
O | Helyi IRC operátor (az oper blokkban állítható be)
o | Globális IRC operátor (az oper blokkban állítható be)
p | Elrejti a /whois-odban azokat a csatornákat, ahová beléptél
q | Csak U:Line-ok rúghatnak ki (csak Services adminoknak)
R | Csak regisztrált (+r) felhasználóktól fogadsz PRIVMSG/NOTICE üzeneteket
r | Regisztráltnak tekinti a nickneved
S | Védelmet ad a services kiszolgálóknak
s | Látod a szerver értesítéseit (lásd a 3.3-as szekciót további információért)
T | Nem fogadsz CTCP üzeneteket
t | Jelzi, hogy /vhost-ot használsz
V | WebTV felhasználóként jelöl meg
v | Fogadja a fertőzött DCC-k küldésének elutasításáról szóló értesítéseket
W | Láthatod, ha az emberek /whois-olnak téged (csak IRCopoknak)
w | Fogadja a wallop üzeneteket
x | Rejtett gazdanevet ad a felhasználónak
z | Jelzi, hogy SSL kliens vagy

7 – Felhasználói és operátori parancsok táblázata

MEGJEGYZÉS: a /helpop dokumentáció sokkal frissebb, használd /helpop parancs-ot (vagy a /helpop ?parancs-ot, ha operátor vagy), hogy egy parancsról további információt kapj.

Parancs | Leírás | Használhatja
nick <újnicknév> | Megváltoztatja az online nick nevedet. Értesíti a többieket a nickváltásodról. | Mindenki
whois <nick> | Információt jelenít meg a megadott felhasználóról. Tartalmazza a teljes nevet, gazdanevet, csatornákat, amelyeken tartózkodik a felhasználó, és az operátori beosztást. | Mindenki
who <maszk> | A who felhasználók keresésére alkalmas. A maszk lehet: nicknév, #csatorna, hostmaszk (*.attbi.com). | Mindenki
whowas <nick> <maxválasz> | Információt jelenít meg egy nickről, amely kilépett a hálózatról. A `<max válasz>` mező szabadon választható, és korlátozza a visszaadott bejegyzések számát. | Mindenki
ison <nick1 nick2 nick3 ...> | Ezzel ellenőrizheted egy vagy több felhasználó online állapotát. Egyszerű visszajelzés, legjobb a scripteknek. | Mindenki
join <csatorna1,csatorna2, ...> | Csatornákra való belépésre szolgál. A `/join #csatorna1,#csatorna2,csatorna3` használatával egyidőben több csatornára is beléphetsz. A `/join 0` paranccsal leléphetsz minden csatornáról. | Mindenki
cycle <csatorna1, csatorna2, ...> | Újra beléptet a megadott csatorná(k)ra. Ez a parancs egyenértékű egy PART majd egy JOIN parancs küldésével. | Mindenki
motd <szerver> | Megjeleníti a szerver motd-t. Szervernév megadásával más szervereken lévő motd-ket tekinthetsz meg. | Mindenki
rules <szerver> | Megjeleníti a szerverre vonatkozó szabályokat tartalmazó szöveget (ircd.rules) Szervernév megadásával más szerverek szabályait nézheted meg. | Mindenki
lusers <server> | Megjeleníti a felhasználók jelenlegi és maximális számát, mind a globálisat és a helyit. Szervernév megadásával megnézheted más szerverek statisztikáit. | Mindenki
map | Megjeleníti a hálózati térképet. | Mindenki
quit <indok> | Bontja a kapcsolatodat a szerverrel. Ha megadsz indokot, az fog megjelenni kilépési üzenetként minden csatornán, amelynek tagja vagy. | Mindenki
ping <felhasználó> | Küld egy PING kérést a felhasználónak. Ezzel ellenőrizhető a kapcsolat és a lag. A szerverek időnként pingeket adnak ki, hogy megállapítsák a felhasználók kapcsolatának meglétét. | Mindenki
version <nick> | Küld egy CTCP Version kérést egy felhasználónak. Amennyiben a kliense úgy van beállítva, válaszol egy kliens verziószámmal. | Mindenki
links | Megjelenít egy listát a hálózatra linkelt összes szerverről. | Mindenki
Admin <szerver> | Adminisztratív információt jelenít meg a szerverről. Ha megadsz szervernevet, annak az információit mutatja meg. | Mindenki
userhost <nick> | Megjeleníti a megadott nick userhostját. Általában scriptek használják. | Mindenki
topic <csatorna> <téma> | A `topic <csatorna>` a megadott csatorna jelenlegi témáját jeleníti meg. A `topic <csatorna> <téma>` megváltoztatja a megadott csatorna témáját. | Mindenki
invite <nick> <csatorna> | Meghívja a megadott felhasználót a megadott csatornára. (Csatorna operátornak kell lennie.) | ChanOp
kick <csatorna, csatorna> <felhasználó, felhasználó> <indok> | Kirúg egy vagy több felhasználót egy vagy több csatornáról. Indok is megadható. | ChanOp
away <indok> | Távollevőként jelöl meg téged. Indok is megadható. | Mindenki
Watch +-<nick> +-<nick> | A watch egy új értesítési rendszer az UnrealIRCd-ben, amely gyorsabb és kevesebb hálózati erőforrást használ fel, mint bármely régi típusú változatok. A szerver küld neked egy üzenetet, ha valamely felhasználó, amelynek a nickneve a watch listádon van, be- vagy kijelentkezik. A watch lista CSAK ADDIG MARAD MEG, AMÍG KAPCSOLATBAN VAGY az IRC szerverrel - neked (vagy a scriptednek vagy a kliensednek) minden egyes kapcsolódáskor fel kell venned a nickneveket a watch listára. | Mindenki
helpop ?<téma> vagy !<téma> | A HelpOp egy új rendszer az IRC szerverrel kapcsolatos segítségnyújtásra. Beírhatod vagy a `/HELPOP ? <súgórendszerbeli téma>` vagy a `/HELPOP ! <kérdés>` parancsot. A "?"-lel a /HELPOP-ban a súgórendszernek küldhetsz lekérdezéseket, és ha nem kapsz választ, használhatod a "!"-et, hogy kérdésedet elküldd a Help Operátoroknak. Ha sem a ?-et, sem a !-et nem használod, úgy a parancs előbb a súgórendszerhez fordul, és ha nincs találat, továbbítja a help operátoroknak. | Mindenki
list <keresési szöveg> | Keresési szöveg nélkül a csatornák teljes, szűretlen listáját kapod vissza. Az alábbiakban láthatod, mely opciókat használhatod, és hatásukra a LIST milyen csatornákat ad vissza. `>szám` Listázza a több mint `<szám>` taggal rendelkező csatornákat. `<szám` Listázza a kevesebb mint `<szám>` tagszámú csatornákat. `C>szám` Listázza a <szám> percnél nem régebben létrehozott csatornákat. `C<szám` Listázza a <szám> percnél korábban létrehozott csatornákat. `T>szám` Listázza a <szám> percnél régebbi témájú csatornákat (vagyis nem változott meg elmúlt <szám> percben). `T<szám` Listázza a <szám> percnél újabb témájú csatornákat. `*mask*` Listázza a `*mask*`-ra illő csatornákat. `!*mask*` Listázza a `*mask*`-ra nem illő csatornákat. | Mindenki
Knock <csatorna> <üzenet> | Lehetőséget nyújt arra, hogy "bekopogj" egy meghívásos csatornán és belépési engedélyt kérj. Nem fog működni, ha a +K vagy +V csatornamódok egyike be van állítva a csatornán, és akkor sem, ha ki vagy tiltva. | Mindenki
setname | Lehetőséget ad a felhasználóknak a "valós nevük" megváltoztatására; újrakapcsolódás nélkül | Mindenki
vhost <bejelentkezőnév> <jelszó> | Elrejti a gazdanevedet a szerver által nyújtott vhost használatával. | Mindenki
mode <csatorna/nick> <mód> | Csatorna- és felhasználói módok beállítására szolgál. Lásd a Felhasználói és csatornamódok listáját. | Mindenki
credits | Listát ad mindazokról az emberekről, akik segítettek az UnrealIRCd megalkotásában. | Mindenki
license | Megjeleníti a GNU licenszet. | Mindenki
time <szerver> | Megjeleníti a szerver dátum- és időbeállítását. Szervernév megadásával más szerverek beállítait tekintheted meg. | Mindenki
botmotd <szerver> | Megjeleníti a nap bot üzenetét. Szervernév megadásával más szervereket kérdezhetsz le. | Mindenki
identify <jelszó> | Elküldi a jelszavad a szolgáltatás rendszerhez a nickneved azonosítására. | Mindenki
identify <csatorna> <jelszó> | Elküldi a jelszavad a szolgáltatás rendszerhez, hogy a csatorna alapítójaként azonosítsd magad. | Mindenki
dns <opció> | Információt küld az IRC szerver DNS gyorsítótáráról. Megjegyzendő, hogy mivel a legtöbb kliensnek van beépített DNS parancsa, valószínűleg a `/raw DNS`-t kell beírnod, hogy ezt a parancsot használd. Az operátorok egy "l"-t is beírhatnak a parancs első paramétereként, hogy a DNS gyorsítótár bejegyzéseiről kapjanak listát. | Mindenki
userip <nick> | Visszaadja a megadott felhasználó IP címét. | Mindenki
oper <azonosító> <jelszó> | Ez a parancs egy felhasználónak operátori beosztást ad, ha illik egy oper blokkra. | IRCop
wallops <üzenet> | Üzenetet küld az összes +w módú felhasználónak. | IRCop
globops <üzenet> | Üzenetet küld minden IRCopnak. | IRCop
chatops <üzenet> | Üzenetet küld minden +c módú IRCopnak | IRCop
locops <üzenet> | Üzenetet küld minden helyi IRCopnak. | IRCop
adchat <üzenet> | Üzenetet küld minden adminisztrátornak. | IRCop
nachat <üzenet> | Üzenetet küld minden hálózati adminnak. | IRCop
kill <nick> <indok> | Eltávolít egy felhasználót a hálózatról. | IRCop
kline [+|-]<user@host | nick> [<időtartam> <indok>] | Kitiltja a hostmaszkot arról a szerverről, ahonnan a parancsot kiadod. A kline nem globális kitiltás. Az időtartam a kitiltás lejárati ideje, és egyike a következőknek: a) egy érték másodpercekben, b) egy időérték, pl. "1d" (1 nap), vagy c) "0" az állandó kitiltáshoz. Az idő és az indok nem kötelező, ha kihagyod őket, a set::default-bantime (alapértelmezés: 0/állandó) és "no reason" (nincs indok) lesz használatban. Egy kline eltávolításához használd a `/kline -user@host` parancsot. | IRCop
zline [+|-]<*@ip> [<időtartam> <indok>] | Kitilt egy IP címet arról a helyi szerverről, ahonnan a parancsot kiadod (nem globális). Lásd a kline-t további szintaktikai információért. Használd a `/zline -*@ip` parancsot az eltávolításhoz. | IRCop
gline [+|-]<user@host | nick> [<időtartam> <indok>] | Globális kitiltást állít be mindazokon a személyeken, akikre a maszk illik. Lásd a kline-t további szintaktikai információért. Használd a `/gline -user@host` parancsot az eltávolításhoz. | IRCop
shun [+|-]<user@host | nick> [<időtartam> <indok>] | Megakadályozza, hogy egy felhasználó BÁRMILYEN parancsot végrehajtson ill. beszéljen. A shunok globálisak (mint a gline-ok). Lásd a kline-t további szintaktikai információért. Használd a `/shun -user@host` parancsot az eltávolításhoz. | IRCop
gzline [+|-]<ip> <időtartam> :<indok> | Globális zline-t állít be. Lásd a kline-t további információért. Használd a `/gzline -*@ip` parancsot az eltávolításhoz. | IRCop
rehash <szerver> –<flagek> | Újratölti a szerver beállításfájlját. Szervernév megadásával távoli szerverek beállításait töltheted újra. Néhány flag is rendelkezésre áll. Ezek a következők: -motd - Csak az összes MOTD és RULES fájlt töltse újra (a tld {}-ket is beleértve) -opermotd - Csak az OPERMOTD fájlt töltse újra -botmotd - Csak a BOTMOTD fájlt töltse újra -garbage - Kikényszeríti a szemétgyűjtést | IRCop
restart <jelszó> <indok> | Újraindítja az IRCD processzust. Jelszó akkor szükséges, ha van drpass { }. Megadhatsz indokot is. | IRCop
die <jelszó> | Leállítja az IRCD processzust. Jelszó akkor szükséges, ha van drpass { }. | IRCop
lag <szerver> | Ez a parancs olyan, mint egy hanglokátor vagy útvonalkövető IRC szerverekhez. Beírod, hogy `/LAG irc.fyremoon.net`, és minden olyan szervertől választ kapsz, amelyeken áthalad, tartalmazva az időt, stb. Hasznos, ha meg akarod keresni, hol van lag, vagy a TS (timestamp, időbélyeg) hol utazik a jövőbe/múltba. | IRCop
sethost <új gazdanév> | Megváltoztatja a vhostodat (virtuális gazdanevedet) arra, amire akarod. | IRCop
setident <új azonosító> | Megváltoztatja az azonosítónevedet arra, amire akarod. | IRCop
chghost <nick> <új gazdanév> | Megváltoztatja egy, a rendszeren jelenleg tartozkodó felhasználó gazdanevét. | IRCop
chgident <nick> <új azonosító> | Megváltoztatja egy, a rendszeren jelenleg tartozkodó felhasználó azonosítónevét. | IRCop
chgname <nick> <új név> | Megváltoztatja egy, a rendszeren jelenleg tartozkodó felhasználó valós nevét. | IRCop
squit <server> | Bontja egy szerver kapcsolatát a hálózatról. | IRCop
connect <szerver> <port> <szerver> | Ha csak egy szervert adsz meg, azt a szervert, amelyiken RAJTA vagy, megpróbálja csatlakoztatni a megadott szerverhez. Ha 2 szerver van megadva, a két szervert kísérli meg csatlakoztatni egymáshoz. A leaf szervert írd be először, és a hubot másodiknak. | IRCop
dccdeny <fájlmaszk> <indok> | Felvesz egy DCCDENY-t (DCC letiltást) a megadott fájlmaszkra, ezzel megakadályozza maszkra illő fájlok küldését. | IRCop
undccdeny <fájlmaszk> | Eltávolítja a DCCDENY-t. | IRCop
sajoin <nick> <csatorna>, <csatorna> | Kikényszeríti egy felhasználó belépést a megadott csatorná(k)ra. Csak services és hálózati admininok vehetik igénybe. | IRCop
sapart <nick> <csatorna>, <csatorna> | Kikényszeríti egy felhasználó lelépését a megadott csatorná(k)ról. Csak services és hálózati adminok vehetik igénybe. | IRCop
samode <csatorna> <mód(ok)> | Lehetőséget nyújt a hálózati és services adminoknak, hogy csatorna operátori jog nélkül változtassanak csatornamódokat. | IRCop
rping <szervermask> | Kiszámítja a szerverek közötti lag mértékét ezredmásodpercekben. | IRCop
trace <szervermaszk|nicknév> | Ha felhasználón alkalmazod, információt ad az osztályáról és a lagjáról. Ha szervert adsz meg, információt jelenít meg az osztályokról, a verziókról és a linkekről. | IRCop
opermotd | Megjeleníti a szerver OperMotd fájlját. | IRCop
addmotd :<szöveg> | Hozzáfűzi a megadott sort az Motd fájl végéhez. | IRCop
addomotd :<szöveg> | Hozzáfűzi a megadott sort az OperMotd fájl végéhez. | IRCop
sdesc <új leírás> | Lehetőséget nyújt a szerver adminoknak a szerverük megnevezésének megváltoztatására az újraindítás szükségessége nélkül. | IRCop
addline <szöveg> | Lehetőséget ad arra, hogy sorokat fűzz az unrealircd.conf-hoz. | IRCop
mkpasswd <jelszó> | Titkosít egy tiszta szövegű jelszót, hogy betehesd az unrealircd.conf-ba. | IRCop
tsctl offset +/- <idő> | Beigazítja az IRCD belső óráját. (NE használd, ha nem érted, PONTOSAN mit csinál.) | IRCop
tsctl time | TS jelentést ad a helyi szerverről (TS = timestamp, időbélyeg). | IRCop
tsctl alltime | TS jelentést ad MINDEN szerverről. | IRCop
tsctl svstime <időbélyeg> | Beállítja minden szerver TS időjét. (NE használd, ha nem érted, PONTOSAN mit csinál.) | IRCop
htm <opció> | Szabályozza a magas forgalmi móddal kapcsolatos beállításokat. A magas forgalmi mód (High Traffic Mode, HTM) alapvetően letilt bizonyos parancsokat, mint a list, whois, who stb., válaszul szerveren kialakult rendkívül magas forgalomra. Az alábbi opciók használhatóak: `-ON` Belép a HTM-be `-OFF` Kilép a HTM-ből `-NOISY` Beállítja a szervert, hogy értesítse a felhasználókat/adminokat, amikor be- ill. kilép a HTM-ből `-QUIET` Beállítja a szervert, hogy NE adjon értesítést, amikor be- ill kilép a HTM-ből `-TO <értékgt;` Beállítja a szervert, hogy milyen mértékű bejövő forgalom esetén hozza működésbe a HTM-et | IRCop
stats <opció> | B - banversion - Elküldi a kitiltott verziók listáját b - badword - Elküldi a csúnyaszavak listáját C - link - Elküldi a link blokkok listáját d - denylinkauto - Elküldi a deny link (auto) blokkok listáját D - denylinkall - Elküldi a deny link (all) blokkok listáját e - exceptthrottle - Elküldi az except throttle blokkok listáját E - exceptban - Elküldi az except ban és except tkl blokkok listáját f - spamfilter - Elküldi a spamszűrők listáját F - denydcc - Elküldi a deny dcc blokkok listáját G - gline - Elküldi a gline és gzline listát Kiterjesztett flagek: [+/-mrs] [maszk] [indok] [beállító] m Visszaadja azon gline-okat, amelyek illenek/nem illenek a megadott maszkra r Visszaadja azon gline-okat, amelyek indokszövege illik/nem illik a megadott indokra s Visszaadja azon gline-okat, amelyek beállítóinak neve illik/nem illik a megadott névre I - allow - Elküldi az allow blokkok listáját j - officialchans - Elküldi a hivatalos csatornák listáját K - kline - Elküldi a ban user/ban ip/except ban blokkok listáját l - linkinfo - Információt küld a linkekről L - linkinfoall - Elküld minden információt a linkekről M - command - Listát küld arról, hányszor használtak minden parancsot n - banrealname - Elküldi a ban realname blokkok listáját O - oper - Elküldi az oper blokkok listáját P - port - Információt küld a portokról q - sqline - Elküldi az SQLINE listát Q - bannick - Elküldi a ban nick blokkok listáját r - chanrestrict - Elküldi a deny/allow channel blokkok listáját R - usage - Információt küld a szerver erőforrás-használatáról S - set - Elküldi a set blokkok listáját s - shun - Elküldi a shun listát Kiterjesztett flagek: [+/-mrs] [maszk] [indok] [beállító] m Visszaadja azon shunokat, amelyek illenek/nem illenek a megadott maszkra r Visszaadja azon shunokat, amelyek indokszövege illik/nem illik a megadott indokra s Visszaadja azon shunokat, amelyek beállítóinak neve illik/nem illik a megadott névre t - tld - Elküldi a tld blokkok listáját T - traffic - Információt küld a forgalomról u - uptime - Megjeleníti a szerver fennlétének idejét és a kapcsolatok legmagasabb számát U - uline - Elküldi az uline blokkok listáját v - denyver - Elküldi a deny version blokkok listáját V - vhost - Elküldi a vhost blokkok listáját X - notlink - Listát küld azokról a szerverekről, amelyek jelenleg nincsenek linkelve Y - class - Elküldi a class blokkok listáját z - zip - Információt küld a zippel linkelt szerverek adattömörítéséről (ha van ziplink támogatás) Z - mem - Információt küld a szerver memóriahasználatáról | Mindenki
module | Listát ad minden betöltött modulról | Mindenki
close | Ez a parancs szétkapcsol minden ismeretlen kapcsolatot az IRC szerverről. | IRCOp

8 – Biztonsági tippek/ellenőrzőlista

Ha aggódsz a biztonság miatt (kellene is!), ez a szekció segít abban, hogy körültekintést kapj a különböző létező veszélyekről és a veszélyességi szintjükről. Vagy használhatod egyfajta "ellenőrzőlistaként" is, amelynek segítségével a (hálózati) beállításaidon végighaladva a dolgokat biztonságosabbá teheted.

A lista sorban a népszerűség, a veszélyességi szint és a leggyakrabban használt támadási módok szerint van rendezve:

8.1. Jelszavak

Használj jó oper jelszavakat, link jelszavakat stb.:
- használj kis- és nagybetűket, számokat ("Whbviwf5") és/vagy valami hosszú szöveget ("blaheatsafish", "AlphaBeta555").
- NE HASZNÁLD a link/oper jelszavaidat semmi másra, legyen az akár az elekronikus postafiókod, botod jelszava, fórumokban stb...

8.2. Nem ircd-vel kapcsolatos sebezhetőségek

Sokkal több esély van arra, hogy a gépedet egy irc(d)-n kívüli sebezhetőséggel törik fel, mint hogy egy UnrealIRCd-beli hibával. Például ha http, dns, smtp és ftp szervereket üzemeltetsz ugyanazon a gépen, a veszély sokkal nagyobb. Ezenkívül, ha többfelhasználós rendszered van (pl.: egy shellt vásároltál), megvan a veszély helyi kiskapukra és rossz fájljogosultsági beállításokra (lásd a következő pontot). Ennek a veszélye elég magas, ezért vigyázz, amikor shell szolgáltatót választasz.

8.3. Engedélybeállítások és a konfigurációs fájlok

Mindig győződj meg arról, hogy a home könyvtáradnak és az UnrealIRCd könyvtárnak megvannak megfelelő engedélybeállításai; a (csoportnak/)többieknek nem kell, hogy olvasásra engedélyük legyen. Különben egy helyi felhasználó símán megkaparinthatja konfigurációs fájlokat, és jelszavakat kereshet bennük... Röviden: használd a chmod -R go-rwx /ahol/van/az/Unreal3.2 parancsot, ha nem vagy biztos a dolgodban.
További ilyen tanácsok: soha ne rakd az UnrealIRCd-t egy weben látható vagy egyéb módon megoszott könyvtárba. És arról is gondoskodj, hogy a biztonsági mentéseid is megkapják a megfelelő engedélybeállításokat. (Elég gyakran megesik, hogy minden biztonságos, mégis megbújik valahol egy mindenki számára olvasható mentes.tar.gz.)
Erősen ajánlott az is, hogy használj titkosított jelszavakat, ahol csak lehetséges. Ha OpenSSL támogatással fordítasz (és így is teszel, mivel érdekel téged a biztonság, igaz?), akkor javaslom, hogy titkosítsd a jelszavaidat sha1 vagy ripemd160 kódolással, különben md5-tel. Továbbá, ha még mindig vannak Unreal3.2.1 vagy későbbi verziókból megmaradt titkosított (oper) blokkjaid, azt tanácsolom, hogy kódold újra ezeket (csak futtasd újra az /mkpasswd parancsot), mert a 3.2.1 bevezetett néhány számottevő, feltörés elleni előrelépést (alapvetően az aktív feltöréseket 14-szeresen lelassítja, ezáltal lehetetlenné teszi a tárolt/nyílt/titkosított szöveges feltöréseket). Ennek ellenére vedd figyelembe, hogy ez csak "egy újabb szintje a biztonságnak", mivel ha gyenge jelszavaid vannak, még mindig feltörhetőek viszonylag könnyen, és ha valamely támadónak sikerül megszereznie a konfigurációs fájlodat, rendszerint más érdekes dolgokat is talál benne, amelyek segítségére lehetnek, például a link::password-connect.

8.4. Felhasználószintű problémák

Mint a legtöbb dolog, ez sem kimondottan az UnrealIRCd-vel kapcsolatos, de...
Mindig figyelmesen válogasd meg az operátoraidat és az adminisztrátoraidat. És emlékezz a leggyengébb láncszem fogalmára is. Akkor is, ha óvatos voltál, és mindent megcsináltál, ami ebben a leírásban van, lehet, hogy a barátod, aki szintén operátor, elkövet valami hülyeséget. Például megosztja a merevlemezét valamilyen programmal, mint pl. a netbios/kazaa/morpheus/.., trójai vírust kap, túl egyszerű jelszót használ, stb. stb... Sajnos, ez nem mindig a te irányításod alatt van.
Egy dolgot viszont megtehetsz, hogy gondosan megválogatod, kinek milyen jogra van szüksége (oper::flags).

8.5. SSL/SSH és a szimatolások

Használj SSL kapcsolatokat a szerverek között valamint operátorként, így megvédheted magad a "szimatolások" ellen. Egy támadó akkor tud szimatolni, ha feltört egy gépet valahol te és az ircd szervered között. Ekkor MINDEN keresztülhaladó hálózati forgalmat meg tud nézni; például figyelhet minden beszélgetést, jelszavakat lophat (operátori bejelentkezésekhez, nickservhez stb.)... Ugyanezen okból mindig használj SSL-t telnet helyett.

8.6. Denial of Service támadások (DoS) [avagy: hogyan védd meg a hubodat]

Rengeteg hálózat tapasztalta már, milyen jó "móka" egy árasztás vagy egy (D)DoS támadás, azonban tehetsz néhány óvintézkedést, hogy az általa okozott kárt lecsökkentsd. A legtöbb hálózatnak van hub szervere, de úgy tűnik, néhányan elfelejtik, hogy meglehetősen könnyű megvédeni a hub szervert a támadásoktól.
Itt elmagyarázom:
1. Állítsd a hub nevét egy nemlétező gazdanévre, pl. "hub.sajátnet.com"-ra, de
de ne csinálj neki dns rekordot. Ily módon a támadó nem tudja feloldani a gazdanevet, és
nem is tudja árasztani. Ezután egyszerűen linkeld a szervereidet a hubra az
IP cím vagy egyéb más, nem nyilvános gazdanév megadásával.
1. Példa: link lathatonev.sajatnet.com { hostname 194.15.123.16; [stb] };.
2. Példa: link lathatonev.sajatnet.com { hostname mukodogazdanev.sajatnet.com; [stb] };.
Mellékesen, az utóbbi példában légy biztos abban, hogy a névszervereid nem engedélyezik a zónaátvitelt, bár ez is nagyon témánkívüli ;).
2. Egy másik fontos lépés, hogy elrejtsd a "/stats c" és egyéb statisztikai információkat, máskülönben a támadók egyszerűen
listát kaphatnak a link blokkokról. Rendszerint, ha paranoiás vagy (mint én), egyszerűen beírhatod,
hogy: set { oper-only-stats "*"; }; és ezzel letilthatsz minden /stats használatot. Vagy ha nem akarod
ezt, akkor legalább a "CdDlLXz" flageket tiltsd le. Erről bővebb információ a következő pontban.
Természetesen ezek a lépések kevésbé hasznosak, ha túl későn történnek meg (pl.: egy hónap után), mintsem
a kezdetektől fogva, mert lehet, hogy az IP címek már ismertek néhány gonosz fickó számára, de mégis... azért megéri megtenni.
Az is megjegyzendő, hogy a támadók még így is eláraszthatnak minden nem hub szervert, de az több erőfeszítést igényel,
mint megtámadni csak 1-2 gyenge pontot (a hubokat), és így a hubjaid valamint a szolgáltatások életben maradnak :).

8.7. Információközlés

STATS
A /stats parancs nagyon informatív, talán célszerűnek tartod olyannyira letiltani a használatát, amennyire csak lehetséges. Azt a kérdést kell feltenned magadban, "mit az, amit megnézhetnek a felhasználók?". A legtöbb nagy hálózat a "semmit" választja, míg mások jobban szeretik megengedni a klienseiknek, hogy kiadják a "/stats g"-t és a "/stats k"-t.
Javaslom, hogy használd a set { oper-only-stats "*"; }; beállítást, hogy minden statisztikát eltilts a nem operátori felhasználóktól, de ha nem akarod ezt, menj végig a "/stats" listán (áttekintést ad az összes lehetséges opcióról), és blokkolj mindent, kivéve, amit engedélyezni akarsz... (ha bizonytalan vagy, csak tiltsd le.. miért kellene, hogy mindezt tudják?).
Hogy néhány példát mondjak:
- /stats o: megmutatja az operátorok nickneveit (helyes betűzéssel) és a hostmaszkokat.
- /stats c: fogalmat ad a szerverlinkekről, és hogy melyeket használd "támasztéknak", stb...
- /stats g, /stats k: rendszeresen használják proxyk távoltartására... így megtudhatják a támadók, milyen proxykat használhatnak.
- /stats E, /stats e: eléggé bizalmas információ, különösen, ha egy támadó használhatja ezeket a címeket
- /stats i, /stats y: segíthet a támadónak olyan hostot keresni, amely sok kapcsolatot engedélyez.
- /stats P: segít neki a csak szerverek részére engedélyezett portok keresésében
stb. stb...
MAP / LINKS
Többen is megkérdezték már, hogy van-e valamilyen módja a /map vagy a /links letiltásának. A mi álláspontunk az, hogy ez ostobaság, és hamis biztonságérzetet ad, hadd magyarázzam el... Elrejteni szervereket, amiket tulajdonképpen a felhasználók használnak, hiábavaló, mivel már régen tudnak a szervereidről (hogyan tudnának különben felmenni rájuk, először is?). Bármely olyan szerverrel kapcsolatban, amelyeken nem akarsz felhasználókat látni, lásd a 8.6. szekciót.
Most mit TEHETSZ? A 3.2.1 óta van egy "flat map" nevű opció (set::options::flat-map), ezzel minden szerver úgy jelenik meg a /map-ben és a /links-ben, mintha közvetlenül lennének kapcsolódva, eképpen a közönséges felhasználók többé nem látják, melyik szerver hová lett linkelve... Ez egy hasznos kiegészítő védelmi réteg lehet, mert a gyerkőcök nem tudják kiszemelni a "gyenge pontokat" a /map-pel vagy a /links-szel. Tehát ennek a használata ajánlott. Megjegyzendő, hogy ez sem bolondbiztos... Ha történik egy szakadás (split), valaki még mindig láthatja, melyik szerver hová volt linkelve, és ez érvényes még néhány más dologra is.
KÖZÖNSÉGES FELHASZNÁLÓK ÉS SNOMASKOK
Van egy funkció, melyet nem ismernek széles körben; ez az, hogy közönséges felhasználók is beállíthatnak néhány korlátozott snomaskot, mégpedig azt, hogy "+s +sk". Ezzel láthatnak olyan dolgokat, mint a beállítások újratöltése, killek és egyéb más üzenetek.
Ennek letiltására használhatod a "set::restrict-usermodes"-t a következőképpen: set { restrict-usermodes "s"; };.
Persze mindezek csak "információrejtések", vagyis nem "valódi" biztonság. Viszont a támadásokat, feltöréseket nehezebbé teszi, több fáradságukba kerül.

8.8. Sebezhetőségek elleni védelem

Vannak kernel patchek, amelyek nehezebbé teszik a szegmens és verem alapú sebezhetőségek működését. Ez szép és jó, azonban ne ez legyen a figyelmed középpontja, sokkal nagyobb veszély van arra, hogy más módon aknázzák ki a szervere(i)det... különböző okok miatt.
Van egy dolog viszont, amit meg kellene tenned, ez pedig az, hogy MINDIG HASZNÁLD A LEGFRISSEBB VERZIÓT, és jelentkezz fel az unreal-notify levelezőlistára most rögtön, hogy megkaphasd a a kiadási közleményeket (az unreal-notify csak kiadási közleményekre van, így csak 1 levelet jelent X havonta). A kiadási közleményben rendszerint világosan fel van tüntetve, ha a kiadás (nagyobb veszélyességű) biztonsági hibák javítását tartalmazza, de egyébként is jó, ha frissítesz.

8.9. Összefoglalás

Mint most már remélhetőleg érted, soha nem lehetsz 100% biztonságban. Neked és nekünk is rentegeg biztonsági lyukat kell megtalálnunk odakint, miközben egy támadónak elég csak 1 szervert megtalálnia 1 lyukkal. Minden, amit itt elmagyaráztunk, azonban SEGÍT megfontoltan minimálissá tenni a veszélyeket. Áldozz egy kevés időt arra, hogy a hálózatodat biztonságossá tedd, és oktasd az operátoraidat. Nagyon sokan nem is törődnek a biztonsággal, egészen addíg, amíg bajba nem kerülnek. Próbáld ezt elkerülni. :)

9 – Gyakran Ismételt Kérdések (FAQ)

A FAQ online elérhető innen.

A Reguláris kifejezések

Reguláris kifejezéseket sok helyen használunk az Unrealben, beleértve a csúnyaszavakat, spamszűrőket és álparancsokat. Ezek segítségével nagyon összetett mintaillesztést tudunk végezni. Néha "regexp"-ként vagy "regex"-ként hivatkozunk rájuk. Az Unreal a TRE reguláris kifejezés könyvtárat használja a regexeihez. Ez a rutinkönyvtár néhány nagyon összetett és haladó kifejezést is támogat, ami zavaró lehet. Az alábbi információk segítenek megérteni, hogyan működnek a regexek. Ha szakmaibb és részletesebb információk érdekelnek az Unreal által használt regexp szintaktikával kapcsolatban, látogassunk el a TRE honlapjára.

A.1 Konstansok

A konstansok a regexp legegyszerűbb elemei. Alapvetően ezek olyan karaktek, amelyeket egyszerű szövegként kezelünk. Például a "teszt" minta öt konstansból, a "t", "e", "s", "z" és "t" karakterekből áll. Az Unrealben a konstansok a kis- és nagybetűkre nem érzékenyek, ezért az előző regex illeszkedik a "teszt"-re valamint a "TESZT"-re is. Minden karakter, ami nem "metakarakter" (avagy különleges jelentésű karakter; ezeket a következő szekciókban tárgyaljuk), konstansként lesz kezelve. Egy karaktert határozottan konstanssá is tehetsz a visszaper (\) jellel. Például a pont (.) egy metakarakter. Ha szeretnénk a mintánkba belevenni egy konstans pontot, használjuk a \. jelölést, és az Unreal ezt pontként (írásjelként) fogja kezelni. Az is lehetséges, hogy egy olyan karaktert akarsz vizsgálni, ami nem írható be könnyen, mondjuk az ASCII kódú 3-as karakter (szín). Inkább, mint hogy egy IRC klienst kelljen használnunk ennek a karakternek az elkészítéséhez, használhatunk egy különleges karaktersorozatot, a "\x"-et. Ha beírjuk, hogy \x3, úgy lesz értelmezve, hogy ő 3-as ASCII karakter. A \x utáni szám hexadecimális ábrázolású, és "\x0"-tól "\xFF"-ig terjedhet.

A.2 A pont operátor

A pont (.) operátort "akármilyen karakter" egyeztetésére használjuk. Egyetlen karakterre illeszkedik, aminek bármilyen értéke van. Például az "a.c" regex illeszkedik a "abc"-re, "adc"-re stb. Viszont nem fog illeszkedni az "abd"-re, mert az "a" és "c" konstansok, amelyeknek pontosan kell illeszkedniük.

A.3 Ismétlő operátorok

Az egyik gyakori hiba, amit az emberek elkövetnek a regexekkel, hogy feltételezik, úgy működnek, mint a joker karakterek, vagyis hogy a * és ? karakterek pontosan úgy illeszkednek, mint egy joker karakterben. Noha ezeknek a karaktereknek valóban hasonló a jelentésük egy regexben, mégsem pontosan ugyanazok. Továbbá a reguláris kifejezések támogatnak más, haladóbb ismétlési módszereket is.

A legegyszerűbb ismétlő operátor a ? operátor. Ez az operátor az előző karakternek 0 vagy 1 előfordulására illeszkedik. Ez az "előző karakternek" az, amiben a reguláris kifejezésbeli ? különbözik a joker karaktertől. Egy joker karakterben az "a?c" kifejezés illeszkedik egy "a"-ra, amelyet bármilyen karakter követ (vagy semmilyen), és ezt egy "c" karakter követi. Egy reguláris kifejezésben más jelentése van. Ott illeszkedik 0 vagy 1 egy "a" betűre, amelyet a "c" követ. Alaptvetően a ? módosítja az "a"-t úgy, hogy megadja, hány "a" fordulhat elő. Ahhoz, hogy a ?-et joker karakterként emuláljuk, a . operátort használjuk. A "a.?c" regex egyenértékű az előzőleg említett joker karakterrel. Olyan "a" betűre illeszkedik, amelyet 0 vagy 1 bármilyen karakter követ (a "?" módosítja a "."-ot), és azt követi egy "c".

A következő ismétlő operátor a *. Ez az operátor szintén hasonlít egy joker karakterre. Az előző karakternek 0 vagy több előfordulására illeszkedik. Megjegyzendő, hogy ez az "előző karakternek" olyasvalami, ami minden ismétlő operátor jellemzője. Az "a*c" illeszkedik 0 vagy több "a"-ra, amelyet "c" követ. Például az "aaaaaac"-re illeszkedik. És mégegyszer, ahhoz, hogy ez az operátor joker karakterként működjön, használjuk az "a.*c" kifejezést, aminek hatására a "*" a "."-ot (bármilyen karakter) módosítja, inkább mint az "a"-t.

A + operátor nagyon hasonló a *-hoz. Viszont ahelyett, hogy 0 vagy több karakterre illeszkedne, illeszkedik 1 vagy több karakterre. Alapvetően az "a*c" illeszkedik a "c"-re (0 "a", amelyet c követ), ugyanakkor az "a+c" nem. Az "a+" azt fejezi ki, hogy kell lennie "legalább" 1 "a"-nak. Így a "c"-re nem illeszkedik, de az "ac"-re és "aaaaaaaaac"-re igen.

A leghaladóbb ismétlő operátor "intervallum" néven ismert. Egy intervallum operátorral pontos megszorítást tehetünk arra, hogy az előző karakterből mennyinek kell lennie. Például lehet, hogy pontosan 8 "a" megkövetelésére van szükségünk, vagy legalább 8 "a"-ra vagy 3 és 5 közötti darabszámú "a"-ra. Egy intervallum operátorral ezek mindegyike megvalósítható. Az alapvető szintaktikája az "{M,N}", ahol M az alsó határ, és N a felső határ. Például 3 és 5 közötti darabszámú "a" egyeztetésére azt írjuk, hogy "a{3,5}". Mindamellett nem kötelező mindkét számot megadni. Ha "a{8}"-at írunk, az azt jelenti, hogy pontosan 8 darab "a"-nak kell lennie. Ezért az "a{8}" megegyezik az "aaaaaaaa"-val. Ahhoz, hogy a "legalább"-os példát valósítsuk meg, alapvetően egy olyan intervallumot adunk meg, aminek csak alsó határa van. Eképpen a legalább 8 "a"-ra azt írjuk, hogy "a{8,}".

Alapértelmezésben mindegyik ismétlő operátor "mohó". A mohóság egy kissé összetett fogalom. Alapvetően azt jelenti, hogy az operátor annyi karakterre illeszkedik, amennyire csak tud. Ezt a legkönnyebb elmagyarázni egy példával.

Mondjuk, van a következő szövegünk:
HELLO
És a következő regexünk:
.+L

Ebben a példában, lehet, hogy azt gondoljuk, hogy a .+ a "HE"-re illeszkedik. Azonban ez helytelen. Mivel a + mohó, a "HEL"-re illeszkedik. Az indok az, hogy a beviteli szöveg legnagyobb egyeztethető részét választja, miközben mégis megengedi a teljes regexnek, hogy illeszkedjen. Ebben a példában azért választotta a "HEL"-t, mert az egyetlen másik követelmény csak az, hogy a ".+"-ra illeszkedő szöveg utáni karakternek "L"-nek kell lennie. Mivel a szöveg "HELLO", a "HEL"-t "L" követi, ezért illeszkedik. Néha viszont jól jön, ha egy operátort nem mohóvá tudunk tenni. Ezt úgy tehetjük meg, hogy "?"-et teszünk az ismétlő operátor után. A fentit módosítva ".+?L"-re, a .+? most már a "HE"-re illeszkedik, mintsem a "HEL"-re, mert nem mohó állapotba helyeztük. A ? bármilyen ismétlő karakter után helyezhető: ??, *?, +?, {M,N}?.

A.4 Zárójeles kifejezések

A zárójeles kifejezések kényelmes módot nyújtanak ahhoz, hogy "vagy" műveletet végezzünk. Például ha azt szeretnénk mondani, hogy "illeszkedjen az a-ra vagy a b-re". A zárójeles kifejezés onnan kapja a nevét, hogy zárójelek ([]) közé tesszük. Az alapvető szintaktikája az, hogy ez a kifejezés magában foglal egy karaktersorozatot. Ezeket a karaktereket majd úgy kezeli, mintha "vagy" lenne közöttük. Például az "[abc]" kifejezés illeszkedik egy "a", egy "b" vagy egy "c" karakterre. Ezért az "a[bd]c" regex illeszkedik az "abc"-re és az "adc"-re, de az "acc"-re nem.

Nagyon gyakori, hogy olyan dolgokat vizsgálunk, mint egy betű vagy egy szám. Inkább, mint hogy például "[0123456789]"-et kelljen írnunk, a zárójel operátor támogat karaktertartományokat. Ezek a tartományok úgy működnek, hogy megadjuk a kezdő- és végpontot, köztük egy kötőjellel. Például egy egyszerűbb módja egy számjegy vizsgálatának az, hogy azt írjuk, "[0-9]". Ugyanezt használhatjuk betűkre is vagy tulajdonképpen az ASCII értékek bármely tartományára. Ha egy betűt szeretnénk egyeztetni, egyszerűen írjunk "[a-z]"-t, mert az Unreal a kis- és nagybetűkre nem érzékeny, ez minden betűre fog illeszkedni. Ugyanaz a kifejezés tartalmazhat több tartományt is. Egy betű vagy egy szám egyeztetésére a "[0-9a-z]"-t írhatjuk. Az egyetlen bonyodalmat az okozhatja, hogy a - egy különleges karakter a zárójeles kifejezésben. A konstans kötőjel egyeztetésére a legegyszerűbb mód az, hogy vagy legelső, vagy legutolsó karakterként tegyük a kifejezésbe. Például a "[0-9-]" illeszkedik egy számjegyre vagy a kötőjelre.

Hogy mégjobban leegyszerűsítsük a dolgokat, számos "karakterosztály" van, amiket zárójeles kifejezésben használhatunk. Ezek a karakterosztályok nélkülözhetővé teszik bizonyos tartományok meghatározását. A karakterosztályokat kettőspontok közé zárva írjuk. Például a "[0-9]" úgy is írható, hogy "[:isdigit:]". Az alábbi lista megmutatja az összes rendelkezésre álló karakterosztályt, és amit csinálnak:

- `alnum` - alfanumerikus karakterek
- `alpha` - alfabetikus karakterek
- `blank` - üres karakterek
- `cntrl` - vezérlőkarakterek
- `digit` - decimális számjegyek (0-tól 9-ig)
- `graph` - minden nyomtatható karakter, kivéve a szóközt
- `lower` - kisbetűk
- `print` - nyomtatható karakterek, beleértve a szóközt is
- `punct` - nyomtatható karakterek, a szóköz és az alfanumerikusok kivételével
- `space` - fehér szóközök
- `upper` - nagybetűk
- `xdigit` - hexadecimális számjegyek

Egy fontos dolog, amit meg kell jegyezni a karakterosztályokról, hogy CSAK egyedül állhatnak a zárójeles kifejezésben. Például az [:isdigit:-] NEM érvényes. Ehelyett ugyanezt a célt elérheted a kifejezések beágyazásával, például a "[0-9-]"-et karakterosztály használatával úgy írhatjuk, hogy "[[:isdigit:]-]".

A zárójeles kifejezés utolsó sajátossága a negálás. Néha hasznos, hogy azt mondhassuk, "bármilyen karaktert, csak ezeket ne". Például ha azt szeretnénk ellenőrizni, hogy a karakter "nem betű", egyszerűbb felsorolni az "a-z"-t, és azt mondani, "ne ezeket", mintsem felsorolni mindezeket a nem betűket. A zárójeles kifejezések lehetővé teszik ennek a kezelését negálás útján. Azzal negáljuk a kifejezést, hogy megadunk egy "^" jelet első karakterként. Például az "[^a-z]" minden nem betűre illeszkedik. Úgy, ahogy a kötőjellel is, ha konstans ^ jelet szeretnénk a kifejezésbe tenni, ne az első pozícióba rakjuk: "[a-z^]". Karakterosztályt is negálhatunk, ehhez szintén beágyazást kell használnunk: például az "[^[:isdigit:]]" minden nem számjegy karakterre illeszkedik.

A.5 Tesztek

A tesztek (assertions) olyan feltételek vizsgálatára adnak lehetőséget, amelyek nem ábrázolhatók karaktersorozatokkal, valamint rövidítést adnak néhány gyakori zárójeles kifejezéshez.

A ^ karakterre úgy hivatkozunk, hogy ő a "bal horgony". Ez a karakter egy karaktersorozat elejére illeszkedik. Ha egyszerűen olyan regexet adunk meg, mint a "teszt", illeszkedni fog például az "ez egy teszt"-re, mivel ez a karaktersorozat tartalmaz "teszt"-et. Viszont néha hasznos, hogy biztosíthassuk, a karaktersorozat ténylegesen a mintával kezdődik. Ezt a ^ segítségével tehetjük meg. Például a "^teszt" azt jelenti, hogy a szövegnek "teszt"-tel kell kezdődnie. Továbbá a $ karakter a "jobb horgony". Ez a karakter a karaktersorozat végére illeszkedik. Így ha azt írjuk, hogy "^test$", akkor a karaktersorozatnak pontosan a "teszt" szónak kell lennie.

Hasonló ellenőrzések léteznek szavakra is. Minden más tesztet egy \ jellel és az azt követő meghatározott karakterrel adunk meg. Például egy szó elejének és végének ellenőrzésére sorban a \< és \> jelöléseket használhatjuk.

A többi teszt mindegyike két alakkal is rendelkezik: egy állítóval és egy tagadóval. Ezek a tesztek az alábbiak:

- `\b` - Szóhatár
- `\B` - Nem szóhatár
- `\d` - Számjegy karakter (azonos a `[[:digit:]]`-tel)
- `\D` - Nem számjegy karakter (azonos a `[^[:digit:]]`-tel)
- `\s` - Szóköz karakter (azonos a `[[:space:]]`-szel)
- `\S` - Nem szóköz karakter (azonos a `[^[:space:]]`-szel)
- `\w` - Szó karakter (azonos az `[[:alnum:]_]`-mal)
- `\W` - Nem szó karakter (azonos az `[^[:alnum:]_]`-mal)

A.6 Alternálás

Az alternálás egy módja annak, hogy "vagy"-ot mondjunk. Az alternáló operátor a függőleges vonás (|). Például ha azt akarjuk mondani, hogy "a vagy b", azt írhatjuk, "a|b". Közönséges betűk esetében ez helyettesíthető egy zárójeles kifejezéssel, de alternálást alkifejezésekkel együtt is használhatunk (amiket a következő szekcióban tárgyalunk).

A.7 Alkifejezések

Alkifejezésnek nevezzük a regex egy olyan részét, amelyet egyetlen egyedként kezelünk. Alkifejezés létrehozására két lehetőség van. Ez a két módszer eltér egymástól, tekintettel a "visszautalásokra", amelyeket a következő részben tárgyalunk. Ha olyan alkifejezést szeretnénk létrehozni, amely visszautalásokat használ, tegyük azt zárójelek () közé. Ha nem akarjuk, hogy visszautalásokat használjon, helyettesítsük a nyitó zárójelet a "(?:" jelöléssel. Például az "([a-z])" és "(?:[a-z])" alkifejezések. Azért hasznosak az alkifejezések, mert műveleteket alkalmazhatsz rajtuk. Mindegyik ismétlő operátor, például amelyeket úgy említettünk, hogy "X vagy több az előző karakterből", használható úgy is, hogy "X vagy több az előző alkifejezésből". Például ha van egy olyan regexünk, hogy "[0-9][a-z][0-9]", amellyel egy számot, egy azt követő betűt, majd megint egy számot egyeztetünk, és később elhatározzunk, hogy ezt a sorozatot kétszer szeretnénk egyeztetni, közönséges módon azt írnánk, "[0-9][a-z][0-9][0-9][a-z][0-9]". Alkifejezésekkel azonban egyszerűen úgy írhatjuk, "([0-9][a-z][0-9]){2}".

A.8 Visszautalások

Visszautalásokkal olyan karaktersorozatra hivatkozhatunk, amelyre a regexp egyik alkifejezése illeszkedik. Egy visszautalást úgy használunk, hogy megadunk egy visszaper (\) jelet és egy azt követő számot 0 és 9 között, például \1. A \0 egy különleges visszautalás, amely az egész kifejezésre hivatkozik, mintsem egy alkifejezésre. A visszautalások akkor hasznosak, ha valami olyasmit akarunk egyeztetni, ami ugyanazt a karaktersorozatot kétszer tartalmazza. Például mondjuk, van egy "nick!user@host"-unk. Tudjuk, hogy van egy trójai program, amely egy olyan nicknevet és felhasználónevet használ, amely a "[0-9][a-z]{5}"-re illeszkedik, és mind a nicknév és felhasználónév ugyanaz. A "[0-9][a-z]{5}![0-9][a-z]{5}@.+" nem lenne jó, mert megengedné, hogy a nicknév és felhasználónév különbözzenek. Például a nicknév lehet 1abcde, és a felhasználónév 2fghij. Visszautalásokkal legyőzhetjük ezt a korlátozást. Ha a "([0-9][a-z]{5})!\1@.+" regexet használjuk, pontosan úgy fog működni, ahogy elvárjuk. Ez a regex megkeresi a megadott alkifejezésre illeszkedő nicknevet, majd egy visszautalást használ arra, hogy a felhasználónévnek ugyannak a szövegnek kell lennie.

Mivel egy reguláris kifejezés legfeljebb 9 visszautalást tartalmazhat, pont ezért hasznos a (?:) jelölés. Ezzel alkifejezést hozhatunk létre anélkül, hogy elpazarolnánk egy visszautalást. Továbbá, mivel a visszautalási információt nem szükséges eltárolni, még gyorsabb is. Emiatt érdemes mindig nem visszautalásos alkifejezéseket használni, amikor visszautalásokra nincs szükség.

A.9 Kis-nagybetű érzékenység

Ahogy említettük, az Unreal alapértelmezés szerint minden regexben a kis- és nagybetűket azonosnak tekinti. Ennek a fő oka az, hogy valahogy sokkal többször fordul elő, amikor kis- és nagybetűkre nem érzékeny keresést kívánunk végezni. Például ha a "www.test.com" szöveget blokkoljuk, feltehetően a "WWW.TEST.COM"-ot is akarjuk. Mindamellett előfordulhatnak olyan esetek is, hogy szükségünk van a kis-nagybetű érzékenységre, például bizonyos trójai programok egyeztetéséhez. Ezért adott egy módszer arra, hogy dinamikusan ki-be kapcsoljuk a kis-nagybetű érzékenységet. A kikapcsolásához egyszerűen azt írhatjuk, hogy "(?-i)", a bekapcsolásához pedig azt, hogy "(?i)". Például az "(?-i)[a-z](?i)[a-z]" illeszkedni fog egy kisbetűre (érzékenységet kikapcsoltuk), amelyet vagy egy kisbetű, vagy egy nagybetű követ (érzékenységet bekapcsoltuk). Továbbá, ahelyett, hogy mindig emlékezni kelljen a beállítás kikapcsolására, amikor végeztünk, megadhatjuk azt is, hogy a beállításváltoztatás csak egy alkifejezésre vonatkozzon, például az "(?-i:[a-z])[a-z]" megegyezik az előző regexszel, mert a -i csak a megadott alkifejezésre vonatkozik.