English | German | Spanish | Hungarian | French | Greek | Dutch | Russian | Turkish

UnrealIRCd
http://www.unrealircd.com
Verzió: 3.2.9
Utolsó dokumentáció frissítés: 2010-11-15

Fő fejlesztő/karbantartó: Syzop
Fejlesztők: binki
Korábbi fejlesztők és hozzájárulók: Stskeeps, codemastr, Luke, aquanight, WolfSage, McSkaf, Zogg, NiQuiL, assyrian, chasm, DrBin, llthangel, Griever, nighthawk
Dokumentáció: CKnight^ (kezdeti dokumentáció), Syzop (jelentős újraírás), codemastr, és sok más hozzájáruló
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.

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 kivétel blokk -=- (E:Line)
---4.20. TKL kivétel blokk
---4.21. Throttle kivétel 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)
---4.38. Files blokk
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 (GYIK)
10. Modulok
---10.1. m_nopost
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.unrealircd.org címen (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 Services-zel!). A fórumokat is használhatod a http://forums.unrealircd.com címen. Ha találsz egy valódi hibát (például egy összeomlá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:

Windows:

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:

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).

Tipp: Ha *NIX alatt vagy, és új álcázási kulcsokat kell készítened, futtathatod az './unreal gencloak' parancsot is a parancsértelmeződben, ami 3 véletlenszerű sztringet írat ki erre a célra.

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 kevés modult tartalmaz. Vess egy pillantást az www.unrealircd.com -> modules oldalra, 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 is 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
cCTCP-kautomatikus +Cm, M 
jbelépésekautomatikus +iR 
kbekopogásokautomatikus +K (csak helyi kliensekét számolja)
müzenetek/értesítésekautomatikus +mM 
nnickváltásokauto +N  
tszövegkirúgásbfelhaszná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>:<paraméter> alakúak.
Ezek a típusok a hagyományos nick!user@host maszktól eltérő kitiltásokat vagy felmentéseket tesznek lehetővé. Arra is szolgálnak többek között, hogy pl. elnémítsanak felhasználókat.

Az alábbiakban felsoroljuk, hogy mely ban típusok milyen műveletekre vannak hatással:

típus:névmagyarázat:
~qné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
~nnévváltásAz erre a banra illő emberek nem válthatnak nicknevet, hacsak nincs +v módjuk vagy annál magasabb. Pl.: ~n:*!*@*.aol.com
~jjoinHa illik egy felhasználóra, nem léphet be a csatornára. Minden más megtehet, ha már be volt lépve a csatornára, mint pl. beszélni vagy nevet változtatni. Pl.: ~j:*!*@*.aol.com
Hasznos lehet, ha meg akarjuk akadályozni egy adott internet-szolgáltatóhoz tartozó felhasználók belépését, miközben megengedjük, hogy a már belépettek szabadon beszélgethessenek/nevet váltsanak, például egy /INVITE után.

Az alábbi ban típusok új feltétel használatára adnak lehetőséget:

type:névmagyarázat:
~ccsatornaA felhasználó nem léphet be a csatornára, ha belépett a megadott csatornára. 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
~rvalós névHa 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.
~RregisztráltHa egy felhasználó azonosította magát a services-ben (általában a NickServnél), és illeszkedik erre a nicknévre, akkor erre a banra is illeszkedik. Vagyis ez igazán csak a ban felmentésekre jó (+e).
Pl.: az +e ~R:Nick engedélyezi a belépést Nick számára, függetlenül más kitiltásoktól, amennyiben azonosította magát a NickServnél, és a Nick nevet használja.

Halmozni is lehet az első csoportbeli kiterjesztett banokat a második csoportbeliekkel, pl. a +b ~q:~c:#lamers elnémít minden olyan felhasználót, aki a #lamers csatornára lépett be.

Modulokkal további kiterjesztett ban típusok is bevezethetők.

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:
cchannelCsatornabeli üzenet
pprivatePrivát üzenet (két felhasználó között)
nprivate-noticePrivát értesítés
Nchannel-noticeCsatornabeli értesítés
PpartCsatornáról lelépés indoka
qquitKilépési indok
ddccDCC fájlnév
aawayTávolléti üzenet
ttopicTémabeállítás
uuserFelhaszná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)
killkilövi a felhasználót
tempshunshunolja a felhasználó jelenlegi kapcsolatát (ha újrakapcsolódik, a shun megszűnik)
shunshunolja a felhasználót
klinekline-t helyez a hostra
glinegline-t helyez a hostra
zlinezline-t helyez a hostra
gzlinegzline-t (globális zline-t) helyez a hostra
blockcsak blokkolja az üzenetet
dccblockmegjelöli a felhasználót DCC blokkolásra (nem küldhet DCC-ket)
viruschanlelé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
warnértesítést küld az IRCOpoknak (spamszűrő snomask), és tájékoztatja a felhasználót, hogy az üzenetét lehallgatták. További lépéseket nem tesz, az üzenetet nem blokkolja.
[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)

Lassú spamszűrők érzékelése
A spamszűrő regexek jelentősen lelassíthatják az IRCd-t. Ez attól függ, milyen regexet használsz (és a regex motor hogyan kezeli). Némelyek elég gyorsak, és az UnrealIRCd ezret is lefuttat belőlük másodpercenként. Mások túlságosan lassúak lehetnek, több másodperc futtatási időt is igényelhetnek, és lefagyaszthatják az IRCd-t.
Ennek megóvása érdekében az Unreal-nak van lassú spamszűrő érzékelője (Slow Spamfilter Detection): valahányszor egy spamszűrő lefut, az UnrealIRCd ellenőrzi, mennyi idő kell neki, hogy lefusson. Ha átlép egy bizonyos küszöbszintet, az IRCd figyelmeztetést küld, esetleg le is törli a spamszűrőt.
A figyelmeztetést a set::spamfilter::slowdetect-warn direktívával állíthatjuk be (alapértelmezés: 250ms), az automatikus törlést pedig a set::spamfilter::slowdetect-fatal direktívával (alapértelmezés: 500ms). Mindkét direktíva beállítható 0-ra (nullára), ami letiltja a lassú spamszűrők érzékelését.
Jelenleg ez a funkció nem elérhető Windows alatt.

3.15 - CIDR

Az UnrealIRCd most már támogatja a CIDR-t is (Classless Interdomain Routing - osztálynélküli körzetek közti forgalomirányítás). A CIDR alkalmas IP tartományok kitiltására. Az egyes ISP-knek (Internet Service Provider - internet-szolgáltató) CIDR használatával osztanak ki IP-ket, ezért azzal, hogy CIDR alapú kitiltásokat lehet beállítani, egyszerűen kitilthatunk egy ISP-t. Az Unreal IPv4-re és IPv6-ra is támogatja a CIDR-t. CIDR maszkokat a következő direktívákban használhatunk: allow::ip, oper::from::userhost, ban user::mask, ban ip::mask, except ban::mask, except throttle::mask és except tkl::mask (ez utóbbinál gzline-ra, gline-ra és shun-ra). Ezenkívül a CIDR használható még a /kline, a /gline, a /zline, a /gzline és a /shun parancsokban. Az Unreal a szabványos, IP/bitek alakú 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:
catalanKatalán karakterekiso8859-1 (latin1)
danishDán karakterekiso8859-1 (latin1)
dutchHolland karakterekiso8859-1 (latin1)
frenchFrancia karakterekiso8859-1 (latin1)
germanNémet karakterekiso8859-1 (latin1)
swiss-germanSvájci német karakterek (nincs es-zett)iso8859-1 (latin1)
icelandicIzlandi karakterekiso8859-1 (latin1)
italianOlasz karakterekiso8859-1 (latin1)
spanishSpanyol karakterekiso8859-1 (latin1)
swedishSvéd karakterekiso8859-1 (latin1)
latin1catalan, danish, dutch, french, german, swiss-german, spanish, icelandic, italian, swedishiso8859-1 (latin1)
hungarianMagyar karakterekiso8859-2 (latin2), windows-1250
polish-isoLengyel karakterek (megjegyzendő, hogy a polish-w1250 gyakoribb!)iso8859-2 (latin2)
romanianRomán karakterekiso8859-2 (latin2), windows-1250, iso8859-16
latin2hungarian, polish-iso, romanianiso8859-2 (latin2)
polish-w1250Lengyel karakterek, windowsos változatwindows-1250
slovak-w1250Szlovák karakterek, windowsos változatwindows-1250
czech-w1250Cseh karakterek, windowsos változatwindows-1250
windows-1250polish-w1250, slovak-w1250, czech-w1250, hungarian, romanianwindows-1250
greekGörög karakterekiso8859-7
turkishTörök karakterekiso8859-9
russian-w1251Orosz karakterekwindows-1251
belarussian-w1251Fehérorosz karakterekwindows-1251
ukrainian-w1251Ukrán karakterekwindows-1251
windows-1251russian-w1251, belarussian-w1251, ukrainian-w1251windows-1251
hebrewHéber karakterekiso8859-8-I/windows-1255
chinese-simpEgyszerűsített kínaiTöbb-bájtos: GBK/GB2312
chinese-tradHagyományos kínaiTöbb-bájtos: GBK
chinese-jaJapán hiragana/pinyinTöbb-bájtos: GBK
chinesechinese-*Több-bájtos: GBK
gbkchinese-*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 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>;
	ipv6-clone-mask <bitek-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;).

ipv6-clone-mask (nem kötelező, alapértelmezés a set::default-ipv6-clone-mask)
A klóndetektálást szabályozza. Ha két kliens különböző IPv6 címről kapcsolódik, de csak az utolsó néhány bit különbözik, majdnem garantált, hogy mindkét kliens valójában egy személy. Ez az opció csak az allow::maxperip kényszerítésére van hatással. Például ha 128-as értékűre állítod, akkor minden IPv6 cím egyedinek minősül. A jelenlegi IP lefoglalási irányelv miatt javasolt, hogy a legtöbb általános allow blokk a 64-es értéket használja.

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-ként 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 az operátornak meg kell adnia. Az oper::password::auth-type segítségével megadhatjuk a hitelesítés módját ehhez a jelszóhoz. Ne adjunk meg oper::password::auth-type-ot egyszerű szöveg típusú jelszóhoz! Érvényes hitelesítési típusok: crypt, md5, sha1, ripemd160 és sslclientcert. Bármelyiket is választjuk, az oper::password:: értéke egy hash, amit az mkpasswd segítségével generálunk.

Az sslclientcert egy kivételes hitelesítési típus. Amikor ezt választjuk, az oper::password:: értéke legyen egy fájl útvonal (az UnrealIRCd telepítési célkönyvtárához relatívan), mely tartalmaz egy PEM kódolású SSL tanúsítványt (a nyilvános tanúsítványt, nem pedig egy kulcsot). Ezzel biztosíthatjuk, hogy csak olyan IRC kliens kapcsolódhasson, aki:

  1. SSL-lel kapcsolódik,
  2. benyújtja az egyező kliens tanúsítványt a kapcsolódáskor,
  3. hozzáférése van a tanúsítványhoz tartozó privát kulcshoz.
Természetesen ez a funkció igényli, hogy az UnrealIRCd SSL támogatással legyen fordítva. Továbbá, mivel az SSL tanúsítványokhoz tartozó jelszavak mindig sokkal hosszabbak, mint egy normális emberi jelszó, és sokkal véletlenszerűbbek is, ez a legbiztonságosabb hitelesítési lehetőség. Ahhoz, hogy így jelentkezzünk be operátorként, miután a kliens SSL tanúsítványát megadtuk operátori jelszóként, elég meggyőződni arról, hogy a kliens helyesen lett beállítva, és adjuk ki az
/oper <név> :
parancsot. Az sslclientcert hitelesítési típust felhasználhatjuk a link::password-receive direktívában is biztonságos link blokkokra.

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:

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:
errorsnyilvánvaló
killsnaplózza a /kill értesítéseket
tklnaplózza a *line-okat (/kline, /zline, etc), a shunokat és a spamszűrőket (hozzáadás/törlés/lejárat)
connectsnaplózza a felhasználói kapcsolódásokat/kilépéseket
server-connectsnaplózza a szerverek kapcsolódásait/kilépéseit
opernaplózza az operelési kísérleteket (a sikerteleneket és a sikereseket is)
sadmin-commandsnaplózza a /sa* (samode, sajoin, sapart stb.) használatokat
chg-commandsnaplózza a /chg* (chghost, chgname, chgident stb.) használatokat
oper-overridenaplózza az operoverride-ok használatát
spamfilternaplózza a spamszűrők találatait

Példa:

log ircd.log {
	maxsize 5MB;
	flags {
		errors;
		kills;
		oper;
		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 kivétel blokk SZABADON VÁLASZTHATÓ (Előzőleg E:Line néven ismert)

Szintaktika:

except ban {
	mask <hostmaszk>;
};

Az except ban blokkal határozhatjuk meg, mely user@host-ok bírálhatnak felül egy szélesebb maszkra beállított ban { } blokkot vagy KLINE/ZLINE kitiltást. Hasznos, ha egy internet-szolgáltató ki van tiltva, de bizonyos felhasználók kapcsolódását még mindig szeretnénk onnan engedélyezni. Az except::mask direktíva a kapcsolódásra engedélyezett kliens user@host maszkját határozza meg.

MEGJEGYZÉS: Ha egy hosztot teljesen fel akarunk menteni mindenfajta lehetséges ban alól (kivéve a spamszűrőt), akkor szükségünk van 'except ban' és 'except tkl' blokkokra is.

Példa:

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

4.20 - TKL kivétel 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, shun és all, amelyek kivételt képeznek a Gline-okra, globális Zline-okra, Qline-okra, globális Qline-okra, shunokra, valamint minden banra, kivéve a KLINE/ZLINE-okat. Ha a type {} formátumot használjuk, több típust is megadhatunk.

MEGJEGYZÉS: Ha egy hosztot fel akarunk menteni mindenfajta lehetséges ban alól (kivéve a spamszűrőt), akkor szükségünk van 'except ban' és 'except tkl' blokkra is.

Példa:

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

4.21 - Throttle kivétel 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 szerkesztheted azt a listát, melyet a "csúnya szavak" szűrésére használ a +G felhasználói és csatornamód. A badword:: meghatározza a csúnyaszó típusát, ami eldönti, milyen üzenetekre vonatkozik ez a csúnyaszó szűrő. Az érvényes típusok az alábbiak:

A badword::word lehet egy egyszerű szó vagy reguláris kifejezés arra, hogy mire keressünk. A badword::replace az, amire a találatot cseréljük. Ha a badword::replace-t kihagyjuk, a csereszöveg <censored> lesz. A badword::action megmondja, mi legyen a teendő, ha egy csúnya szóra találat van. Ha az értéke replace 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ó>;
		...
	};
};

Szerverek linkeléséhez erre a blokkra van szükséged. Kérlek, szakíts egy kis időt ennek az egésznek az elolvasására, mert ez az egyik legnehezebb dolog, amit 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.valami.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ó)
Ezzel megadhatjuk, hogy a helyi szerver milyen IP címről kapcsolódjon (pl. 192.168.0.1-ről), 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ó. Hasonló módon titkosítható, mint az oper::password. Még az is megtehető, hogy a sslclientcert hitelesítési típust használjuk. Sőt, ez erősen ajánlott is, mivel fényévekkel jobban ellenáll a brute-force támadásoknak.

hub vs leaf
A hub egyszerre több szervert is linkelhet, míg a leafnek csak egy linkje lehet... hozzád. Egy szerver leaf, ha nincs hub direktívája. Akkor is leaf, ha a leaf direktíva értéke *, vagy a leafdepth értéke 1.

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

leaf (szabadon választható)
Értéke egy maszk olyan szerverekre, amelyekre ez a hub nem kapcsolódhat. A *-nak ugyanolyan hatása van, mintha nem lenne hub direktíva.

leafdepth (szabadon választható)
Ez a direktíva meghatározza, hogy mekkora mélység lehet ezen szerver alatt (csomópontok száma). Például az 1 azt jelenti, hogy a szervernek nem lehet egy linkje sem (vagyis egy leaf), a 2 azt jelenti, hogy ő még linkelhet szervereket, de a hozzá kapcsolódók már nem (vagyis csak leaf szervereket linkelhet). A 0 érték azt jelenti, nincs korlátozás, és ez az alapértelmezés is.

class
Megadja, melyik kapcsolati osztályba helyezzük a linkelt szervert. Ehhez gyakran egy külön szerver osztályt szokás használni.

compression-level (szabadon választható)
Megadja a kapcsolat 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 automatikusan fog próbálkozni a 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 szeretnél; 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>;
};

(Megjegyzendő, hogy a <name> az "alias::" használatára utal.)

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

Az alias blokk [szabványos álparancsokra] lehetővé teszi, hogy parancsokat továbbítsunk egy felhasználóhoz, például a /chanserv üzenetet küld a chanserv felhasználónak.

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 blokk alias::type direktíváját command értékűre állítjuk a fent mutatottak szerint, formázott álparancs lesz belőle. Az ebben a formában használt alias blokk sokkal rugalmasabb. Például készíthetünk vele egy /identify nevű álparancsot.

Példákat a formázott álparancsokra vonatkozóan a doc/example.conf-ban találunk.

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 ill. 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::level-on-join <none|voice|halfop|op|protect|owner>;
Milyen módot kapjon az a felhasználó, aki elsőként lép be egy csatornára. Az alapértelmezés 'op' (csatorna operátor).

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::options::allow-insane-bans;
Engedélyt ad az olyan őrülten széles banokra is, mint a /GLINE *@*.xx. Ezzel nagyon könnyen előfordulhat, hogy véletlenül kitiltunk mindenkit a hálózatról, ezért csak nagyon óvatosan használjuk!

set::nopost::ban-action (igényli az m_nopost modult)
Megmondja, mit tegyen az olyan felhasználókkal, akik HTTP POST parancsot próbálnak kiadni. Az engedélyezett értékek: kill, gline, gzline, kline, zline, shun és tempshun. Az alapértelmezett érték a kill. Ha valamelyik *line értéket vagy shun-t használjuk, fontos tudni, hogy azok a könnyen becsapható felhasználók, akiket egy XPS IRC spammoló támadásra kiállított webhely meglátogatására csaltak rá, a shun vagy *line jellegű tiltást az összes meglévő kapcsolatukon tapasztalni fogják. Az alapértelmezett "kill" érték kivédi az ilyen jellegű baleseteket, de a *line használata — különösen a gzline-é — szükséges lehet bizonyos szituációkban.

set::nopost::ban-reason (igényli az m_nopost modult)
A kitiltás indoka, amikor az m_nopost killel vagy bannol egy felhasználót.

set::nopost::ban-time (igényli az m_nopost modult)
Az m_nopost által beállított shunok, gline-ok, gzline-ok, kline-ok és zline-ok időtartama. Az alapértelmezés 4h.

set::nopost::except-hosts (igényli az m_nopost modult)
Egy lista az m_nopost killjei és *-line-jai alóli kivételekről. Lehetőleg soha ne adjunk meg gazdanév maszkokat ebben az opcióban!

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. (NINCS IMPLEMENTÁLVA)

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ő. (NINCS IMPLEMENTÁLVA)

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

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::default-ipv6-clone-mask
Az alapértelmezett IPv6 klóndetektáló maszk. Lásd az allow::ipv6-clone-mask direktívát. Az alapértelmezett érték ehhez a beállításhoz 64.

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::server-cipher-list <kódoló-algoritmusok>;
Meghatározza, milyen kódoló algoritmusok legyenek engedélyezve, alapértelmezésben az OpenSSL dönti el. Lásd a http://www.openssl.org/docs/apps/ciphers.html oldalt a kódoló algoritmusok meghatározásának hogyanjáról.

set::ssl::renegotiate-bytes <érték>;
Meghatározza, hogy hány bájt után kelljen az SSL viszonynak új kézfogás (pl.: 20m a 20 megabájthoz).

set::ssl::renegotiate-timeout <időérték>;
Meghatározza, hogy mennyi idő múlva kelljen az SSL viszonynak új kézfogás (pl.: 1h az 1 órához).

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::ssl::options::no-starttls;
Letiltja a STARTTLS-t. A STARTTLS megengedi a klienseknek az SSL használatát szokásos (nem SSL) portokon.

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::spamfilter::slowdetect-warn <érték>
Ha egy spamszűrő lefutása több ideig tart, mint a megadott ezredmásodpercek száma, (1000ms = 1 másodperc), akkor minden operátor kap egy figyelmeztető üzenetet (alapérték: 250). Lásd még: Lassú spamszűrők érzékelése.

set::spamfilter::slowdetect-fatal <érték>
Ha egy spamszűrő lefutása több ideig tart, mint a megadott ezredmásodpercek száma, (1000ms = 1 másodperc), akkor a spamszűrő le lesz törölve (alapérték: 500). Lásd még: Lassú spamszűrők érzékelése.

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.

set::pingpong-warning <yes|no>
Ha a NOSPOOF engedélyezett (általában Windowson), küldjön egy figyelmeztetést minden felhasználónak, hogy használják a "/quote pong .." parancsot, ha kapcsolódási problémájuk van. Az alapértelmezés "no".

set::watch-away-notification <yes|no>
Engedélyezi vagy letiltja az AWAY értesítéseket a WATCH-ban. Az alapértelmezés "yes".

4.38 - Files blokk SZABADON VÁLASZTHATÓ

Nem kell TLD blokkot használnunk az MOTD-ket és a szabályokat leíró fájlok alapértelmezett helyeinek megadásához. Ez a blokk szabályozza az alapértelmezett beállításokat rájuk vonatkozóan a PID fájl és az irc.tune fájl mellett. Mindenre, ami itt nincs megadva, a További fájlok szekcióban leírt alapértékek érvényesek.

A relatív útvonalnevek az UnrealIRCD gyökérkönyvtárából kiindulva értendőek, amely rendszerint az unrealircd.conf fájlt tartalmazó könyvtár. Ez a blokk felhasználható arra, hogy több mint egy IRCd-t futtassunk ugyanabból a könyvtárból/gyökérből. Ilyen esetben minden egyes szerverhez állítsunk be legalább egy-egy PID fájlt, illetve tune fájlt!

Szintaxis:

files {
	motd <motd fájl>;
	shortmotd <rövid motd fájl>;
	opermotd <motd fájl az operátoroknak>;
	svsmotd <motd fájl a szolgáltatásoknak>;
	botmotd <motd fájl a botoknak>;

	rules <szabályokat leíró fájl>;

	tunefile <behangoló fájl>;
	pidfile <PID fájl>;
};

Példa:

files {
	motd /etc/motd;

	pidfile /var/lib/run/unrealircd.pid;
};

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.motdMegjelenik az /motd parancs kiadásakor és (ha az ircd.smotd nem létezik) amikor egy felhasználó csatlakozik
ircd.smotdCsak kapcsolódáskor jelenik meg (rövid MOTD)
ircd.rulesMegjelenik a /rules parancs kiadásakor
oper.motdMegjelenik az /opermotd parancs kiadásakor vagy /oper-eléskor
bot.motdMegjelenik 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
Ez a csatorna regisztrált (csak szolgáltatás szerver állíthatja be)
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
Z
A szerver állítja be annak a jelzésére, hogy a csatornán lévő felhasználók mindegyike titkosított (SSL) kapcsolaton van. Csak akkor aktív, ha a +z is be van állítva. Az ULine-okat (pl.: BotServ) figyelmen kívül hagyja a "nem biztonságos felhasználók" számlálásakor. Az továbbra is a szerver adminokra van bízva, hogy biztonságos, szerverek közötti kapcsolatokat hozzanak létre (amit SSL segítségével tehetnek meg, vagy akár VPN-nel, loopback interfésszel, kvantum-titkosítással stb.), az IRCd maga nem fogja, ill. nem tudja detektálni ezt.

 

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 globális IRCopnak. IRCop
chatops <üzenet> Üzenetet küld minden (globális és lokális) 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ölthetjük újra, ill. a -global flaggel a hálózat minden szerverén elvégezhetjük az újratöltést (mindkettőre csak NetAdminok jogosultak). Néhány további flag is rendelkezésre áll. Ezek a következők:
-dns - Újrainicializálja és újratölti a névfeloldót
-motd - Csak az összes MOTD, BOTMOTD, OPERMOTD és RULES fájlt töltse újra (beleértve a tld{} blokkbelieket is)
-garbage - Kikényszeríti a szemétgyűjtést
-ssl - Újratölti az SSL tanúsítványokat
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>
A megadott szöveget hozzáfűzi az unrealircd.conf-hoz. Az az unrealircd-3.2.9 óta ennek a parancsnak a használatához be kell töltenünk az m_addline modult.
IRCop
mkpasswd <hitelesítés-típusa> <jelszó>
Titkosítja a megadott <jelszót> a <hitelesítés-típusa> típusú hasító módszerrel. Lehetséges hasító módszerek:
  • crypt [Windows alatti támogatáshoz SSL szükséges]
  • md5
  • sha1 [SSL-t igényel]
  • ripemd160 [SSL-t igényel]

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 ahol csak lehetséges, használj titkosított jelszavakat. 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.
Egy másik lehetőség, hogy engedélyezed a chroot-olást (csak *NIX esetén), ami biztosíték arra, hogy ha sikerül is a kiaknázás, a támadót bezártad az UnrealIRCd könyvtárba, és nem módosíthat más fájlokat. Ehhez a módszerhez rendszergazdai jogosultságokon kellenek, valamint hogy módosítsd az include/config.h-t (keress rá a CHROOTDIR-re, és állítsd be az IRC_USER és IRC_GROUP makrókat is), aztán fordítsd újra.

Van egy dolog, amit határozottan érdemes megtenned, ez pedig, hogy MINDIG HASZNÁLD A LEGFRISSEBB VERZIÓT, és jelentkezz fel az unreal-notify levelezőlistára most rögtön, hogy megkaphasd 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.

10 – Modulok

Az alábbiakban bemutatunk néhány modult, melyeket egybecsomagoltunk az UnrealIRCd-vel. Jelen pillanatban sajnos csak egy ilyen modul van dokumentálva.

10.1 m_nopost
Ez a modul automatikusan bannol minden olyan felhasználót, aki HTTP-stílusú kéréseket próbál elküldeni. Ezt a modult Syzop írta válaszképpen azokra a Firefox XPS támadásokra, amelyeken keresztül az AJAX-képes böngészők IRC spambotokként voltak képesek működni. Ahhoz, hogy kiválasszuk, mit tegyen az m_nopost, amikor egy ilyen kérést kap, állítsuk be a set::nopost::ban-action és a set::nopost::ban-time beállításokat (és barátaikat)!
Ez a modul az UnrealIRCd 3.2.9 óta új, és bele van fordítva a commands.so-ba. Ennélfogva a legtöbb esetben alapértelmezésben be van töltve.

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 "bá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 gyakran elkövetett hiba a regexeknél az, hogy azt feltételezzük, hogy úgy működnek, mint a joker karakterek. Vagyis hogy a * és ? karakterek pontosan úgy illeszkednek, mint a joker karakterek. 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, fejlettebb 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 olyan "a"-ra, amely után bármilyen karakter áll, és ezt egy "c" karakter követi. Egy reguláris kifejezésben más jelentése van. Ott illeszkedik 0 vagy 1 "a" betűre, amelyet a "c" követ. Alapvetően a ? módosítja az "a"-t úgy, hogy megadja, hány "a" fordulhat elő. Ahhoz, hogy emuláljuk a ?-et mint joker karaktert, 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 egy tetszőleges karakter követ, é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, nem pedig az "a"-t.

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

A legfejlettebb ismétlő operátor az "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 darab "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 oka az, hogy a beviteli szöveg legnagyobb egyeztethető részét választja, miközben továbbra is 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ő karaktersorozat után lévő 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 egy "?"-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:

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:

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.