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:
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!
Telepítési útmutatások
Linux:
Windows:
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.
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.
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).
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.
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.
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.
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. :)
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:6697Ekkor 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ó].
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.
A zip linkek bekapcsolhatóak a szerver<->szerver linkekben, a zlib használatával tömörít adatokat. Megspórolhat 60-80% sávszélességet... Úgyhogy eléggé hasznos az alacsony sávszélességű linkekhez vagy olyanokhoz, ahol nagy mennyiségű felhasználó van; sokat segíthet a linkeléskor, mert rengeteg adat küldődik el a felhasználókról, csatornákról stb.
A zip link támogatással történő fordításhoz válaszolj Yes-t a ./Config zlib-es kérdésében, valamint a konfigurációban állítsd be a link::options::zip opciót (mindkét oldalon).
3.11 - Dinamikus DNS-sel/IP-vel linkelések támogatása
Az UnrealIRCd néhány (új) hasznos funkcióval segíti azokat a felhasználókat, akiknek dinamikus IP-jük van, és dinamikus DNS-t használnak (mint a valami.dyndns.org). Ha két dinamikus DNS-sel rendelkező gépet linkelsz, állítsd be a link::options::nodnscache és a link::options::nohostcheck opciókat.
3.12 - Árasztásvédelmi lehetőségek
Elfojtás
Az elfojtás (throttling) egy módszer annak korlátozására, hogy egy felhasználó milyen gyorsan bonthatja a kapcsolatot
és kapcsolódhat újra szerveredre. Beállíthatod a set::throttle blokkban, hogy X kapcsolatot engedélyezzen YY másodperc alatt ugyanarról az IP-ről.
Csatornamódok
Vannak csatornamódok is, amelyek nagyon hatásosak lehetnek árasztások (floodok) ellen. Hogy néhányat megnevezzünk:
K = nincs /knock (bekopogás), N = nincsenek nickváltások, C = nincsenek CTCP-k, M = csak regisztrált felhasználók beszélhetnek, j = belépések számának szabályozása (felhasználónkénti alapon)
A beta18 óta egy sokkal fejlettebb, +f csatornamód is használható...
Az f csatornamód
A csatornabeli áradatok elleni védelem most már beleépült az ircd-be ezen csatornamódként, hogy ne kelljen scripteket és a botokat használni.
Egy példa a +f módra: *** Blah sets mode: +f [10j]:15
Ez azt jelenti, hogy 10 belépés engedélyezett a csatornára 15 másodpercenként. Ha a korlátot túllépik, a +i csatornamód lesz automatikusan beállítva.
A következő árasztástípusok állnak rendelkezésre:
típus: | név: | alapért. tevékenység: | más elérhető tevékenységek: | megjegyzés |
c | CTCP-k | automatikus +C | m, M | |
j | belépések | automatikus +i | R | |
k | bekopogások | automatikus +K | (csak helyi kliensekét számolja) | |
m | üzenetek/értesítések | automatikus +m | M | |
n | nickváltások | auto +N | ||
t | szöveg | kirúgás | b | felhasználónkénti üzenetek/értesítések, mint a régi +f. Kirúgja vagy kitiltja a felhasználót. |
*** 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: +NValójában sokkal haladóbb, bonyolultabb is lehet:
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év | magyarázat: |
~q | némaság (quiet) | Az erre a banra illő emberek beléphetnek, de nem beszélhetnek, hacsak nincs +v módjuk vagy annál magasabb. Pl.: ~q:*!*@blah.blah.com |
~n | névváltás | Az erre a banra illő emberek nem válthatnak nicknevet, hacsak nincs +v módjuk vagy annál magasabb. Pl.: ~n:*!*@*.aol.com |
~j | join | Ha 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. |
type: | név | magyarázat: |
~c | csatorna | A 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 |
~r | valós név | Ha egy felhasználó valós neve illik a banra, nem léphet be. Pl.: ~r:*Stupid_bot_script* MEGJEGYZÉS: az aláhúzás ('_') mind a szóközre (' ') és az aláhúzásra ('_') is illik, így ez a ban illik a 'Stupid bot script v1.4'-re. |
~R | regisztrált | Ha 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. |
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:
| |||||||||||||||||||||||||||||||||
[tevékenység] | meghatározza az elvégzendő tevékenységet (csak 1 tevékenység adható meg)
| |||||||||||||||||||||||||||||||||
[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 |
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.
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: |
catalan | Katalán karakterek | iso8859-1 (latin1) |
danish | Dán karakterek | iso8859-1 (latin1) |
dutch | Holland karakterek | iso8859-1 (latin1) |
french | Francia karakterek | iso8859-1 (latin1) |
german | Német karakterek | iso8859-1 (latin1) |
swiss-german | Svájci német karakterek (nincs es-zett) | iso8859-1 (latin1) |
icelandic | Izlandi karakterek | iso8859-1 (latin1) |
italian | Olasz karakterek | iso8859-1 (latin1) |
spanish | Spanyol karakterek | iso8859-1 (latin1) |
swedish | Svéd karakterek | iso8859-1 (latin1) |
latin1 | catalan, danish, dutch, french, german, swiss-german, spanish, icelandic, italian, swedish | iso8859-1 (latin1) |
hungarian | Magyar karakterek | iso8859-2 (latin2), windows-1250 |
polish-iso | Lengyel karakterek (megjegyzendő, hogy a polish-w1250 gyakoribb!) | iso8859-2 (latin2) |
romanian | Román karakterek | iso8859-2 (latin2), windows-1250, iso8859-16 |
latin2 | hungarian, polish-iso, romanian | iso8859-2 (latin2) |
polish-w1250 | Lengyel karakterek, windowsos változat | windows-1250 |
slovak-w1250 | Szlovák karakterek, windowsos változat | windows-1250 |
czech-w1250 | Cseh karakterek, windowsos változat | windows-1250 |
windows-1250 | polish-w1250, slovak-w1250, czech-w1250, hungarian, romanian | windows-1250 |
greek | Görög karakterek | iso8859-7 |
turkish | Török karakterek | iso8859-9 |
russian-w1251 | Orosz karakterek | windows-1251 |
belarussian-w1251 | Fehérorosz karakterek | windows-1251 |
ukrainian-w1251 | Ukrán karakterek | windows-1251 |
windows-1251 | russian-w1251, belarussian-w1251, ukrainian-w1251 | windows-1251 |
hebrew | Héber karakterek | iso8859-8-I/windows-1255 |
chinese-simp | Egyszerűsített kínai | Több-bájtos: GBK/GB2312 |
chinese-trad | Hagyományos kínai | Több-bájtos: GBK |
chinese-ja | Japán hiragana/pinyin | Több-bájtos: GBK |
chinese | chinese-* | Több-bájtos: GBK |
gbk | chinese-* | Több-bájtos: GBK |
1. MEGJEGYZÉS: Ügyeljünk arra, hogy néhány kombináció problémákat okozhat. Például ha keverjük a latin* és chinese-* nyelveket, azt IRCd nem tudja megfelelően kezelni, és az Unreal hibaüzenetet fog kiírni. Más karakterkészletek együttes használata lehet, hogy megjelenítési problémákat okoz, ezért az Unreal figyelmeztetést fog adni, ha keverünk latin1, latin2, greek vagy más nem kompatibilis csoportokat.
2. MEGJEGYZÉS: A kis- és nagybetűk leképezése (vagyis annak megállapítása, hogy egy bizonyos kisbetűs karakternek melyik a nagybetűs párja) US-ASCII szerint történik. Ez azt jelenti, hogy az o" és az O" karakterek nem lesznek "azonosnak" tekintve, ezért lehet valakinek a nickje B"ar, és egyidőben egy másiknak BA"r. Ez egy korlátozása a jelenlegi rendszernek és az IRCd szabványoknak, amely nem oldható meg egyhamar. A felhasználóknak ennek tudatában kell lenniük. Megjegyzendő, hogy ez a korlátozás csatornákra is vonatkozott, amikben mindig közel minden karakter engedélyezett volt, és mindig US-ASCII kis- és nagybetű leképezés volt végrehajtva.
3. MEGJEGYZÉS: Az alapvető nickbeli karakterek (a-z A-Z 0-9 [ \ ] ^ _ - { | }) mindig megengedettek/beleszámítanak a karakterkészletbe.
1. Példa: nyugat-európai népeknek:set { allowed-nickchars { latin1; }; };2. Példa: ha főleg kínai felhasználóink vannak, és a "rendes" kínai karaktereket szeretnénk engedélyezni:
set { allowed-nickchars { chinese-simp; chinese-trad; }; };
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.
A pontos idő nagyon fontos az IRC szervereken. Pontos idő nélkül a csatornákon desynch problémák léphetnek fel, ártatlan felhasználók kaphatnak kilövést, helytelenül jelenhetnek meg csatornák a /LIST-ben, egyszóval: óriási baj származhat belőle.
Az UnrealIRCd-nek van egy kis beépített időszinkronizáció támogatása. Bár nem optimális (az idő még mindig eltérhet néhány másodpercet), a legtöbb esetben megszabadít az időkülönbségtől. Lehetőség szerint még mindig javasolt valamilyen időszinkronizáló szoftver futtatása, pl. *NIX alatt az ntpd vagy a Windows időszinkronizáló szolgáltatása (ebben az esetben kikapcsolhatjuk az Unreal időszinkronizálását, erről bővebben később).
Az UnrealIRCd (alapból) azt csinálja, hogy indításkor végrehajt egy egyszeri időszinkronizálást. Elküld (alapértelmezésben) egy lekérdezést több időszervernek, és amikor megkapja a legelső (leggyorsabb) választ, hozzáigazítja a belső ircd órát (NEM a rendszerórát). Ha valamilyen okból az időszervertől nem kap választ 3 másodpercen belül, az IRCd ennek ellenére folytatja az indulást (ilyennek ritkán kellene történnie).
Az időszinkronizáció beállítható (és kikapcsolható) a set::timesynch blokkban, lásd a set leírását további információkért.
3.19 - További jellegzetességek
Az UnrealIRCd-nek rengeteg funkciója van, ezért itt nincs minden megemlítve... Rájössz majd magadtól is.
4.0 - Az unrealircd.conf fájlod beállítása
Először is, az első unrealircd.conf-unk elkészítése komoly időt vesz igénybe (mondjuk, 15-60 percet). Egy jó unrealircd.conf még ennél is többet. Nem érdemes kapkodnunk, hogy az IRCd-nk minél hamarabb elinduljon, inkább menjünk végig a dolgokon lépésről lépésre. Ha problémánk van, ellenőrizzük a szintaktikát, nézzük át ezt a kézikönyvet, és nézzünk bele a GYIK-ba is, mielőtt segítségért fordulnánk vagy hibát jelentenénk.
4.1 A konfigurációs formátumról
Az új rendszer egy blokk alapú formátumot használ. Az új formátumban minden bejegyzésnek vagy blokknak meghatározott formája van, amely így néz ki:
<blokknév> <blokkérték> { <blokk-direktíva> <direktívaérték>; };
A <blokknév> a blokk típusa, mint például a "me" vagy az "admin". A <blokkérték> néha meghatároz egy értéket, mint például az /oper loginhoz, de néha egy altípus lesz, mint a "ban user"-ben.
A <blokk-direktíva> egy egyszerű változó, amelyet a blokk határoz meg, és a <direktívaérték> a hozzátartozó érték. Ha a <directívaérték> szóközöket tartalmaz vagy olyan karaktereket, amelyek megjegyzéseket fejeznek ki, idézőjelek közé kell tenni. Ha az idézett szövegen belül egy idézőjel karaktert szeretnénk írni, használjunk \"-t, és idézőjelként lesz értelmezve.
Egy <blokk-direktíva> is tartalmazhat direktívákat saját magán belül, ilyen esetben lesz egy saját pár kapcsoszárójele maga körül. Néhány blokknak nincs direktívája, és csak <blokkérték> formában határozzuk meg, mint az "include"-t. Az is megjegyzendő, hogy nincs kötött forma, tehát az egész blokk megjelenhet egy sorban vagy akár több sorban is. A fenti formát használják általában (és ebben a fájlban is ezt alkalmazzuk), mert könnyen olvasható.
Megjegyzés: a konfigurációs fájl jelenleg kis- és nagybetűérzékeny, eképpen a BLOKKNÉV nem ugyanaz, mint a blokknév. Van egy általános jelölési rendszer, amit arra használunk, hogy a konfigurációs fájl bejegyzéseiről beszéljünk. Például, hogy a fenti példabeli <direktívanév>-ről beszéljünk, azt mondjuk, hogy <blokknév>::<blokk-direktíva>, és ha a direktívának van egy alblokkja, amire utalni szeretnénk, tegyünk hozzá egy másik dupla kettőspontot (::) és az aldirektíva nevét.
Ha egy névtelen direktíváról szeretnénk beszléni, írjuk azt, hogy <blokknév>::, ami ebben az esetben <blokkérték>-et jelent, vagy lehet egy alblokk névtelen bejegyzése is.
Háromféle megjegyzéstípus támogatott:
# Egysoros megjegyzés
// Egysoros megjegyzés
/* Többsoros
megjegyzés */
Most, hogy tudjuk, hogyan működik, másoljuk a doc/example.conf-ot az UnrealIRCd könyvtárba (pl.: /home/felhasznalo/Unreal3.2) és nevezzük át unrealircd.conf-ra (VAGY készítsünk egy saját unrealircd.conf-ot a semmiből). Javasolt, hogy menjünk végig lépésről lépésre az egyes blokktípusokon és a konfigurációs fájlunk beállításain, valamint használjuk ezt a kézikönyvet segédletként.
4.2 - Me blokk KÖTELEZŐ (Előzőleg M:Line néven ismert)
Szintaktika:
me { name <szerver-neve>; info <szerver-leírása>; numeric <szerver-azonosítószáma>; };
Ezek az értékek meglehetősen egyértelműek. A name beállítja a szerver nevét, az info a szerver info sorának (rövid leírásának) megadására szolgál, a numeric meghatározza a szerver azonosítószámát. Ez utóbbi szám legyen 0 és 254 között, és minden szerveren EGYEDINEK kell lennie, vagyis ugyanazon a hálózaton SEMELYIK más szervernek nem lehet ugyanaz az azonosítószáma.
Példa:
me { name "irc.valaminet.com"; info "ValamiNet Szerver"; numeric 1; };
4.3 - Admin blokk KÖTELEZŐ (Előzőleg A:Line néven ismert)
Szintaktika:
admin { <szövegsor>; <szövegsor>; };
Az admin blokk meghatározza, hogy milyen szöveg jelenjen meg az /admin parancsra. Annyi sort írhatsz, amennyit akarsz, és mind tetszőleges szöveget tartalmazhatnak, de szabványszerű legalább az adminisztrátor nicknevét és email címét feltüntetni. Rajtad áll, hogy milyen további információkat írsz ide.
Példa:
admin { "Bob Smith"; "bob"; "szeleskorben@hasznalt.nev"; };
4.4 - Class blokk KÖTELEZŐ (Előzőleg Y:Line néven ismert)
Szintaktika:
class <name> { pingfreq <ping-gyakoriság>; connfreq <kapcsolódási-gyakoriság>; maxclients <kliensek-maximális-száma>; sendq <küldési-sor-mérete>; recvq <fogadási-sor-mérete>; };
A class blokkok olyan osztályok, amelyekben a kapcsolatok elhelyeződnek (például az allow blokkokból vagy szerverek a link blokkokból); általában több class blokkot szokás beállítani (pl. egy-egy a szervereknek, klienseknek és az opereknek).
A name egy leíró név, például "clients" (kliensek) vagy "servers" (szerverek), erre az osztálynévre hivatkoznak az allow, link, oper stb. blokkok.
A pingfreq a szerver által küldött PING-ek közötti idő másodpercekben (egy 90 és 180 közötti érték javasolt).
A connfreq csak szerverekre használható, és a kapcsolódási kísérletek közötti időt jelenti másodpercekben, ha az autoconnect engedélyezve van.
A maxclients meghatározza, hogy maximálisan (összesen) hány kliens/szerver tartozhat ebbe a kapcsolati osztályba.
A sendq meghatározza azt az adatmennyiséget, amennyi megengedett a küldésre várakozó üzenetek sorában [send queue] (legyen nagyon magas alacsony sávszélességű szerverekhez, közepes a kliensekhez).
A recvq meghatározza azt az adatmennyiséget, amennyi megengedett a fogadásra váró üzenetek sorában [receive queue]; ezt használjuk az árasztások szabályozására (csak normál felhasználókra vonatkozik, 8000 ajánlott, ez az alapértelmezés is; kísérletezhetsz 3000-8000 közötti értékekkel).
Példák:
class clients { pingfreq 90; maxclients 500; sendq 100000; recvq 8000; }; class servers{ pingfreq 90; maxclients 10; /* Az egyszerre linkelhető szerverek maximális száma */ sendq 1000000; connfreq 100; /* A kapcsolódási kísérletek közötti idő másodpercekben */ };
4.5 - Allow blokk KÖTELEZŐ (Előzőleg I:Line néven ismert)
Szintaktika:
allow { ip <user@ip-kapcsolati-maszk>; hostname <user@host-kapcsolati-maszk>; class <kapcsolati-osztály>; password <kapcsolódási-jelszó> { <hitelesítés-típusa>; }; maxperip <ip-nkénti-kapcsolatok-száma>; 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:
ezen a porton csak kliensek kapcsolódhatnak | |
ezen a porton csak szerverek kapcsolódhatnak | |
CR javachat támogatás | |
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:
/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:
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"; };
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";
Szintaktika:
log <fájlnév> { maxsize <max-fájl-méret>; flags { <flag>; <flag>; ... }; };
A log blokkal különböző naplófájlokat rendelhetsz különböző célokhoz. A log:: tartalmazza a naplófájl nevét. A log::maxsize egy nem kötelező direktíva, meghatározhatod vele a naplófájl maximális méretét, amelynek elérésével az állomány kiürül, és újraindul a naplózás. Használhatsz mértékegységeket is a méretmegadáshoz: MB-t a megabájtokhoz, KB-t a kilobájtokhoz és GB-t a gigabájtokhoz. A log::flags meghatározza, milyen típusú információ kerüljön ebbe a naplóba. Az alábbiakban láthatod a rendelkezésre álló flagek listáját.
Lehet egyszerre több log blokkod is, hogy különböző dolgokat különböző naplófájlokba naplózzanak.
Felhasználható flagek:
errors | nyilvánvaló |
kills | naplózza a /kill értesítéseket |
tkl | naplózza a *line-okat (/kline, /zline, etc), a shunokat és a spamszűrőket (hozzáadás/törlés/lejárat) |
connects | naplózza a felhasználói kapcsolódásokat/kilépéseket |
server-connects | naplózza a szerverek kapcsolódásait/kilépéseit |
oper | naplózza az operelési kísérleteket (a sikerteleneket és a sikereseket is) |
sadmin-commands | naplózza a /sa* (samode, sajoin, sapart stb.) használatokat |
chg-commands | naplózza a /chg* (chghost, chgname, chgident stb.) használatokat |
oper-override | naplózza az operoverride-ok használatát |
spamfilter | naplózza a spamszűrők találatait |
Példa:
log ircd.log { maxsize 5MB; flags { errors; kills; oper; 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 = LpT4xqPI5Majd 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 = 1Majd 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; };
ircd.motd | Megjelenik az /motd parancs kiadásakor és (ha az ircd.smotd nem létezik) amikor egy felhasználó csatlakozik |
ircd.smotd | Csak kapcsolódáskor jelenik meg (rövid MOTD) |
ircd.rules | Megjelenik a /rules parancs kiadásakor |
oper.motd | Megjelenik az /opermotd parancs kiadásakor vagy /oper-eléskor |
bot.motd | Megjelenik a /botmotd parancs kiadásakor |
6 – Felhasználói és csatornamódok
Mód |
Leírás |
Csatornamódok |
|
A |
Csak adminisztrátorok léphetnek be |
a <nick> |
Csatorna adminná teszi a felhasználót |
b <nick!user@host> |
Kitiltja a megadott felhasználót a csatornáról |
c |
ANSI szín nem küldhető a csatornára |
C |
A CTCP nem engedélyezett a csatornán |
e <nick!user@host> |
Kitiltás alóli kivétel – Ha valakire ráillik ez a maszk, akkor is beléphet a csatornára, ha egy létező kitiltás nem engedi be |
f [<szám><típus>]:<mp> |
Árasztásvédelem csatornákra. Lásd a fenti 3.12-es szekciót egy részletesebb leíráshoz. |
G |
G-osztályúvá teszi a csatornát. Ellenőrzi a badword blokkokban felsorolt szavakat, és kicseréli őket a megadott szavakkal |
h <nick> |
Féloperátori beosztást ad a felhasználónak |
i |
Meghívás szükséges |
I <nick!user@host> |
Meghívás alóli kivételek (invite exceptions avagy "invex") - ha valaki illik erre a maszkra, átugorhatja a +i igényeit, hogy beléphessen a csatornára. |
j <belépés:mp> |
Leszabályozza a felhasználónkénti belépéseket legfeljebb belépés számú belépésre mp másodperc alatt |
K |
A /knock nem megengedett |
k <kulcs> |
Beállít egy kulcsot, amely szükséges a belépéshez |
l <##> |
Beállítja a felhasználók legnagyobb megengedett számát |
L <csatorna> |
Ha a +l által beállított számot elérték, a felhasználók erre a csatornára lesznek küldve |
M |
Csak regisztrált nicknevű (+r) felhasználók beszélhetnek |
m |
Moderált csatorna. Csak +v/o/h felhasználók beszélhetnek |
N |
A névváltások nem engedélyezettek |
n |
Nem küldhető üzenet a csatornán kívül |
O |
Csak IRCopok léphetnek be |
o <nick> |
Csatorna operátori beosztást ad a felhasználónak |
p |
Zártkörűvé teszi a csatornát |
q <nick> |
Beállítja a csatorna tulajdonosát |
Q |
Csak U:Line-os szerverek rúghatnak ki felhasználókat |
r |
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:
|
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.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.8. Sebezhetőségek elleni védelem
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.
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 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 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.
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}?.
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:
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 ^ 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:
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.