/* * example.conf Daniel Hawton avagy Osiris jóvoltából (osiris@unrealircd.org). * A magyar fordítást AngryWolf készítette. * $Id$ * * Felhasználható Unreal3.2 és későbbi verziókhoz * * Oké, emberek! Ez az új példa konfiguráció. A kinézete nagyon hasonló * a C++-hoz, olyasformán. Mindenesetre itt az ideje végigmennünk rajta. Eleinte * nehéz nekilendülni, de kis gyakorlással és olvasgatással meg fogjuk érteni. * * Csak másoljuk be ezt a fájlt a fő unrealircd könyvtárunkba, és nevezzük * 'unrealircd.conf'-nak. * * MEGJEGYZÉS: Minden sor, kivéve a nyitó { sort, ;-vel végződik, beleértve * a záró } sort is. Az IRCd figyelmen kívül hagyja a megjegyzéssorokat. * * KÉRLEK, OLVASD EL A doc/unreal32docs.html-T! Az online verzió is elérhető * a www.vulnscan.org/UnrealIRCd/unreal32docs.html címen. * Rengeteg információt tartalmaz a konfigurációs fájlról: tájékoztatást ad * minden blokkról, változóról stb. * Ha megpróbálod szerkeszteni ezt a fájlt anélkül, hogy megfelelően elolvastad * volna a dokumentációt, jó eséllyel kanyarodsz a biztos kudarc felé! */ /* Megjegyzések típusai */ #1. Megjegyzéstípus (Shell típusú) // 2. Megjegyzéstípus (C++ stílusú) /* 3. Megjegyzéstípus (C stílusú) */ #ezeket a sorokat az ircd figyelmen kívül hagyja. /* * Az UnrealIRCd támogat modulokat, néhányuk betöltése kötelező is. * Legalább a parancsokat biztosító és egy álcázó modulra lesz szükségünk. */ /* *NIX-BAN vegyük ki a megjegyzésből a következő két sort: */ //loadmodule "src/modules/commands.so"; //loadmodule "src/modules/cloak.so"; /* Windows-BAN vegyük ki a megjegyzésből a következő két sort: */ //loadmodule "modules/commands.dll"; //loadmodule "modules/cloak.dll"; /* * Azt is megtehetjük, hogy befűzünk más konfigurációs fájlokat. * A help.conf tartalmazza az összes /helpop szöveget. A badwords.*.conf * fájlok tartalmazzák az összes csúnyaszó bejegyzést a +G módhoz... * A spamfilter.conf néhány jó szabályt a jelenlegi trójai vírusokra. * Valószínűleg be akarjuk tölteni őket: */ include "help.conf"; include "badwords.channel.conf"; include "badwords.message.conf"; include "badwords.quit.conf"; include "spamfilter.conf"; /* * ÚJ: me {} * RÉGI: M:Line * A me {} határozza meg ennek a szervernek a nevét, a leírását és az unrealbeli * szerverazonosító-számát. A szintaktikája a következő: * me { * name "szerver.név"; * info "A szerver leírása"; * numeric (szerverazonosító*); * }; * Ha linkelünk, ezt az azonosítószámot nem használhatja semmilyen más szerver * a hálózaton. */ me { name "irc.valaminet.com"; info "ValamiNet Szerver"; numeric 1; }; /* * ÚJ: admin {} * RÉGI: A:Line * Ez a blokk információt ad a szerver adminisztrátorairól. Annyi sort tehetünk * az admin { alá, amennyit kívánunk. * A szintaktikája a következő: * admin { * "első sor"; * "második sor"; * [stb] * }; */ admin { "Bob Smith"; "bob"; "szeleskorben@hasznalt.nev"; }; /* * ÚJ: class {} * RÉGI: Y:line (a régi zavarbaejtő volt) * Ezek az osztályokat állítják be. Az osztályok a kapcsolatok egy csoportjának * beállításai. Például a szerver kapcsolatokat, ahelyett, hogy egy kliens * osztályába kerülnének, beleirányítjuk a szerverek osztályába. Szintaktika: * class (osztálynév) * { * pingfreq (hány másodpercenként pingeljünk egy felhasználót/szervert); * maxclients (mennyi kapcsolat lehet ebben az osztályban); * sendq (egy kapcsolat küldési sorának maximális mérete); * recvq (egy kapcsolat fogadási sorának maximális mérete [árvízvédelem]); * }; */ class clients { pingfreq 90; maxclients 500; sendq 100000; recvq 8000; }; class servers { pingfreq 90; maxclients 10; /* Legfeljebb ennyi szervert linkelhetünk egyszerre */ sendq 1000000; connfreq 100; /* Ennyi másodpercet várjon, mielőtt újra kapcsolódik */ }; /* * ÚJ: allow {} * RÉGI: I:Line * Ez a kapcsolatok engedélyezését határozza meg... * Alapvetően kliensekre használjuk; megengedi nekik, hogy kapcsolódjanak, így * némileg van lehetőség a szabályozásra, valamint jelszót is beállíthatunk. * A szintaktika a következő: * allow { * ip (ip maszk az engedélyezéshez); * hostname (gazdanév maszk); * class (osztály, ahová küldjük őket [lásd: class {}]); * password "(jelszó)"; (nem kötelező) * maxperip (mennyi kapcsolatot engedjünk ip címenként); (nem kötelező) * }; */ allow { ip *@*; hostname *@*; class clients; maxperip 5; }; /* Jelszavas allow blokk */ allow { ip *@255.255.255.255; hostname *@*.jelszavas.csunya.emberkek; class clients; password "V4lami"; maxperip 1; }; /* * ÚJ: allow channel {} * RÉGI: chrestrict * Megengedi egy felhasználónak, hogy belépjen egy csatornára... * mint egy csatornáról letiltás alóli kivétel. * Szintaktika: * allow channel { * channel "csatornanév"; * }; */ allow channel { channel "#AWarezSzívás"; }; /* * ÚJ: oper {} * RÉGI: O:Line * Definiál egy IRC operátort * Az IRC operátorok feladata, hogy épségben tartsák a szervert; rendszerint * ügyelnek a karbantartottságára és arra, hogy kapcsolatban maradjon * a hálózattal. A szintaktika a következő: * oper (bejelentkezőnév) { * class (osztály, ahová berakjuk őket; ha eddig más osztályban voltak, * átteszi őket ebbe az új osztályba); * from { * userhost (azonosító@gazdanév); * userhost (azonosító@gazdanév); * }; * flags * { * (flagek ide*); * }; * VAGY * flags "régi típusú flagek, mint pl. OAaRD"; * }; */ /* Az oper flagek listáját lásd a doc/unreal32docs.hu.html#operblock szekcióban * [ERŐSEN ajánlott elolvasni] */ oper bobsmith { class clients; from { userhost bob@smithco.com; }; password "f00"; flags { netadmin; can_zline; can_gzline; can_gkline; global; }; }; /* * ÚJ: listen {} * RÉGI: P:Line * Meghatároz egy olyan portot, amelyet az ircd megnyit, és engedélyt ad * a felhasználóknak/szervereknek, hogy kapcsolódjanak a szerverre. * A szintaktika a következő: * listen (ip cím):(portszám) * { * options { * (opciók ide); * }; * }; * vagy egy síma portnyitáshoz: * listen (ip):(port); * * MEGJEGYZÉS: ipv6-os ip-kre (3ffe:b80:2:51d::2 stb.) használjuk a * listen [ip]:port; * szintaktikát. Az is működik. */ /* Opciók a listenhez: RÉGI | ÚJ S serversonly C clientsonly J java s ssl * standard */ /* MEGJEGYZÉS SSL PORTOKRA: az SSL portok eléggé szabványosítatlanok, emellett * sok a magas SSL port. Néhányan azt mondják, a 994-en célszerű futtatni, * mert az a hivatalos SSL port... de a rendszergazdát igényel! Ezenkívül, * a 194 a hivatalos irc port, de láttunk valaha egy ircd-t azon futni? * Így mi a javaslatunk az, hogy használjuk a 6697-et SSL-hez, ezt használja * jónéhány hálózat, és ezt ismeri fel például a StunTour is. * Szabadon megnyithatunk annyi SSL portot, amennyit akarunk, de ha a 6697-et * (is) használjuk, kicsit segítjük a világot szabványosodni ;). */ listen *:6697 { options { ssl; clientsonly; }; }; listen *:8067; listen *:6667; /* MEGJEGYZÉS: Ha egy több IP címes IRCd shellen vagyunk, előfordulhat, hogy * "Address already in use" ("A cím már használatban van") hibaüzeneteket * találunk a naplóban, és az ircd nem indul el. Ez azt jelenti, hogy * az ircd-nek egy meghatározott IP címre KELL bindelnie a "*" helyett * vagyis például így: * listen 1.2.3.4:6667; * Természetesen cseréljük ki az IP címet arra az IP-re, amelyet nekünk * osztottak ki. */ /* * ÚJ: link {} * RÉGI: C/N:Line-ok * Ez a blokk "igen"-t mond egy szerver kapcsolódására. * MEGJEGYZÉS: MINDKÉRT SZERVEREN KELL EGY LINK {} BEÁLLÍTÁS A HELYES * KAPCSOLÓDÁSHOZ! * A szintaktika a következő: * link (szervernév) * { * username (felhasználónév, * is működik); * hostname (ip cím/gazdanév maszk); * bind-ip (amilyen IP címre bindeljen kapcsolódáskor, vagy *); * port (port, ahová kapcsolódjon, ha van); * hub (Ha ez egy hub; * működik, vagy szervermaszkokat is beírhatunk); * [vagy leaf *;] * password-connect "(elküldendő jelszó)"; * password-receive "(fogadandó jelszó)"; * class (osztály, ahová betesszük a szervereket); * options { * (opciók ide*); * }; * // Ha SSL-t használunk, kiválaszthatjuk, milyen rejtjelező algoritmusok * // legyenek használatban SSL módban. Listát kapunk az "openssl ciphers" * // paranccsal. Az egyes algoritmusokat :-tal válasszuk el. * * ciphers "DES-CBC3-MD5"; * * }; */ /* opciók: RÉGI | ÚJ S ssl Z zip N/A autoconnect N/A quarantine N/A nodnscache */ link hub.sajatnet.com { username *; hostname 1.2.3.4; bind-ip *; port 7029; hub *; password-connect "LiNk"; password-receive "LiNk"; class servers; options { /* Megjegyzés: szolgáltatások linkelésekor célszerű nem * használni az autoconnect opciót. */ autoconnect; ssl; zip; }; }; /* * * ÚJ: ulines {} * RÉGI: U:Line * Az U-line-ok több hatalmat/parancsot adnak a szervereknek. CSAK * szolgáltatásokat és statisztikákat nyújtó szerverekre érdemes beállítani, * és SOHA rendes UnrealIRCd szerverekre! * A szintaktika a következő: * ulines { * (uline-ra teendő szerver); * (uline-ra teendő szerver); * [stb.] * }; */ ulines { services.roxnet.org; stats.roxnet.org; }; /* * ÚJ: drpass {} * RÉGI: X:Line * Meghatározza a jelszavakat a /die és /restart parancsokhoz. * A szintaktika a következő: * drpass { * restart "(újraindítás jelszava)"; * die "(leállítás jelszava)"; * }; */ drpass { restart "Imádok-újraindítani"; die "Halj-te-buta"; }; /* * ÚJ: log {} * RÉGI: N/A * Megmondja az ircd-nek, hová és mit naplózzon. Annyi naplófájlunk lehet, * amennyit szeretnénk. * * FLAGEK: errors, kills, tkl, connects, server-connects, oper * * Szintaktika: * log "naplófájl" * { * flags * { * (flag); * (flag); * [stb.] * }; * }; */ log "ircd.log" { /* Törölje a naplófájlt, és kezdjen egy újat, ha eléri a 2 MB-ot; * hagyjuk ki ezt a beállításból, ha mindig ugyanazt a naplót * szeretnénk használni */ maxsize 2097152; flags { oper; connects; server-connects; kills; errors; sadmin-commands; chg-commands; oper-override; spamfilter; }; }; /* * ÚJ: alias {} * RÉGI: N/A * Ezzel olyan álparancsokat készíthetünk, mint a /nickserv, /chanserv stb. * FLAGEK: services (szolgáltatás), stats (statisztika), normal (közönséges * felhasználó) * * Szintaxis: * alias "név" { * target "ahová mutasson"; * type álparancstípus; * }; * * [MEGJEGYZÉS: Beilleszthetünk ide egy előre beállított álparancsfájlt is, * lásd: doc/unreal32docs.html, 2.9-es szekció] */ // Ez a /nickserv parancsot a NickServ felhasználóra irányítja, aki a set::services-server szerverre kapcsolódott. /*alias NickServ { target "NickServ"; type services; };*/ // Ha a parancsot ugyanarra a nicknévre szeretnénk irányítani, ami a parancs neve, kihagyhatjuk a nick bejegyzést. //alias ChanServ { type services; }; // A /statserv parancsot a set::stats-server szerveren lévő StatServ felhasználóra irányítja //alias StatServ { type stats; }; // A /superbot parancsot a SuperBot felhasználóra irányítja. //alias SuperBot { type normal; }; /* Szabványos álparancsok */ alias NickServ { type services; }; alias ChanServ { type services; }; alias OperServ { type services; }; alias HelpServ { type services; }; alias StatServ { type stats; }; /* * ÚJ: alias {} * RÉGI: N/A * Ezzel olyan álparancsokat készíthetünk, mint az /identify, /services stb. * * Szintaktika: * alias "név" { * format "formátumsztring" { * target "ahova mutasson"; * type álparancstípus; * parameters "küldendő paraméterek"; * }; * type command; * }; */ /* Ezt azért mutatjuk külön, mert még ha ugyanaz is a neve, mint az előző direktívának, a szintaktikája nagyon * más, habár hasonló feladatot lát el, és a szabványosok álparancsokra van szüksége, hogy működjön. */ /* alias "identify" { format "^#" { target "chanserv"; type services; parameters "IDENTIFY %1-"; }; format "^[^#]" { target "nickserv"; type services; parameters "IDENTIFY %1-"; }; type command; }; */ /* Az alias::format direktíva egy reguláris kifejezés. Az első formátum akkor illeszkedik az /identify parancsra, * ha az első karakter egy #. Azután elküldi ezt a chanserv álparancshoz az IDENTIFY %1- paraméterekkel. * A második formátum akkor illeszkedik az /identify parancsra, ha az első karakter nem egy #. Azután * elküldi a parancsot a nickserv álparancshoz az IDENTIFY %1- paraméterekkel. */ /* Az alias::format::parameters hasonló a scriptnyelvekhez. Az %N (ahol N egy szám) a parancshoz küldött egyik * paramétert ábrázolja (ebben az esetben az /identify-ét). Ha azt írjuk, hogy %N-, a sztring N-edik * paraméterétől az utolsóig minden paramétert fog jelenteni. Megadhatunk egy %n-et is, amely ki lesz cserélve * a felhasználó nicknevével. */ /* Szabványos álparancsok */ alias "services" { format "^#" { target "chanserv"; type services; parameters "%1-"; }; format "^[^#]" { target "nickserv"; type services; parameters "%1-"; }; type command; }; alias "identify" { format "^#" { target "chanserv"; type services; parameters "IDENTIFY %1-"; }; format "^[^#]" { target "nickserv"; type services; parameters "IDENTIFY %1-"; }; type command; }; /* Példa egy valódi álparancsra */ /* A /GLINEBOT parancsot leképezi arra, hogy /GLINE 2d stb... */ alias "glinebot" { format ".+" { command "gline"; type real; parameters "%1 2d Botok tilosak ezen a szerveren, kérlek, olvasd el a faq-ot a http://www.example.com/faq/123 címen"; }; type command; }; /* * ÚJ: tld {} * RÉGI: T:Line * Beállít más motd és rules fájlt * a kliens hostmaszkjára. * A szintaktikája a következő: * tld { * mask (azonosító@gazda); * motd "(motd fájl)"; * rules "(rules fájl)"; * }; */ tld { mask *@*.fr; motd "ircd.motd.fr"; rules "ircd.rules.fr"; }; /* megjegyzés: a fenti példa blokkot akár le is törölhetjük; ebben az esetben * mindenkire az alapértelmezett motd/rules fájlok (ircd.motd, ircd.rules) * lesznek használatban. */ /* * ÚJ: ban nick {} * RÉGI: Q:Line * Kitilt egy nicknevet, így az nem használható. * A szintaktikája a következő: * ban nick { * mask "(kitiltandó nick)"; * reason "(indoklás)"; * }; */ ban nick { mask "*C*h*a*n*S*e*r*v*"; reason "Fenntartva a szolgáltatásoknak"; }; /* * ÚJ: ban ip {} * RÉGI: Z:Line * Megtiltja egy ip-nek, hogy a hálózatra kapcsolódjon. * Szintaktika: * ban ip { mask (ip cím/gazdanévmaszk); reason "(indoklás)"; }; */ ban ip { mask 195.86.232.81; reason "Lecsatolt szerver"; }; /* * ÚJ: ban server {} * RÉGI: Q:Line szerverekre * Megtiltja egy szervernek, hogy a hálózatra kapcsolódjon. * Ha egy szerver távoli szerverre linkel, a helyi szerver * szétkapcsolja a hálózatról. * A szintaktikája a következő: * ban server { * mask "(szervernév)"; * reason "(indoklás)"; * }; */ ban server { mask eris.berkeley.edu; reason "Mars ki innen!"; }; /* * ÚJ: ban user {} * RÉGI: K:Line * Elintézi, hogy egy felhasználó egy bizonyos maszkról ne tudjon kapcsolódni * a szerverünkre. * Szintaktika: * ban user { mask (gazdanévmaszk/ip cím); reason "(indok)"; }; */ ban user { mask *tirc@*.saturn.bbn.com; reason "Idióta"; }; /* * ÚJ: ban realname {} * RÉGI: n:Line * Letiltja egy bizonyos valós név használatát. * Szintaktikája: * ban realname { * mask "(valós név)"; * reason "(indok)"; * }; */ ban realname { mask "Swat Team"; reason "mIRKFORCE"; }; ban realname { mask "sub7server"; reason "sub7"; }; /* * MEGJEGYZÉS MINDEN BANRA: ezek ismételhetőek további bejegyzésekhez! * * ÚJ: except ban {} * RÉGI: E:Line * Elintézi, hogy ne lehessen minket kibannolni. * Szintaktika: * except ban { mask (azonosító@gazda); }; * További gazdákhoz annyiszor ismételjük az except ban {}-t, * amennyiszer szükséges. */ except ban { /* ne tiltsuk ki stskeeps-t */ mask *stskeeps@212.*; }; /* * ÚJ: deny dcc {} * RÉGI: dccdeny.conf * Használjuk dcc küldések blokkolására... Jobban * megállítja a vírusokat. * Szintaktika: * deny dcc * { * filename "blokkolandó fájl (pl. *exe)"; * reason "indok"; * }; */ deny dcc { filename "*sub7*"; reason "Valószínűleg Sub7 Virus"; }; /* * ÚJ: deny channel {} * RÉGI: N/A (ÚJ) * Letiltja bizonyos csatornákon a belépést. * Szintaktika: * deny channel { * channel "(csatorna)"; * reason "indok"; * }; */ deny channel { channel "*warez*"; reason "A warez törvényellenes"; }; /* * ÚJ: vhost {} * RÉGI: Vhost.conf fájl * Beállít egy hamis ip címet közönséges felhasználókon, vagy * olyan operátorokon, akik lusták a /sethost-ot használni :P * Szintaktika: * vhost { * vhost (vhost.com); * from { * userhost (azonosító@gazda, aki használhatja); * }; * login (bejelentkezőnév); * password (jelszó); * }; * azután e vhost használatához adjuk ki * a /vhost (bejelentkezőnév) (jelszó) parancsot IRC-n */ vhost { vhost i.hate.microsefrs.com; from { userhost *@*.image.dk; }; login stskeeps; password moocowsrulemyworld; }; /* Befűzhetünk más konfigurációs fájlokat */ /* include "klines.conf"; */ /* Hálózati beállítások */ set { network-name "ROXnet"; default-server "irc.roxnet.org"; services-server "services.roxnet.org"; stats-server "stats.roxnet.org"; help-channel "#ROXnet"; hiddenhost-prefix "rox"; /* prefix-quit "no"; */ /* Az álcázó kulcsoknak a hálózat minden szerverén azonosnak kell * lenniük. Az álcázott gazdanevek előállításában van szerepük, ezért * legyenek titokban tartva! Mind 3 kulcs legyen egy-egy véletlenszerű * sztring 5-100 karakterből (10-20 karakter kitűnő), valamint * tartalmazniuk kell kisbetűket (a-z), nagybetűket (A-Z) és számokat * (0-9) [ahogy az első kulcsos példában látható]. * TIPP: *NIX alatt az './unreal gencloak' parancsot futtatva * a parancsértelmezőnkben, az Unreal 3 véletlen sztringet * generál nekünk. */ cloak-keys { "aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW"; "írjunk hozzá még egyet"; "írjunk hozzá még egyet"; }; /* gazdanevek opereléskor */ hosts { local "locop.roxnet.org"; global "ircop.roxnet.org"; coadmin "coadmin.roxnet.org"; admin "admin.roxnet.org"; servicesadmin "csops.roxnet.org"; netadmin "netadmin.roxnet.org"; host-on-oper-up "no"; }; }; /* Szerverszintű beállítások */ set { kline-address "állítsuk.be.ezt.az.emailt"; modes-on-connect "+ixw"; modes-on-oper "+xwgs"; oper-auto-join "#operek"; options { hide-ulines; /* Itt engedélyezhetjük az ident ellenőrzést, ha szeretnénk */ /* identd-check; */ show-connect-info; }; maxchannelsperuser 10; /* Legkevesebb ennyi ideig kell a felhasználónak kapcsolatban lennie, * mielőtt engedélyt kap a QUIT üzenetek használatára. Remélhetőleg * ez leállítja a spamot. */ anti-spam-quit-message-time 10s; /* A static-quit a neki megadott üzenetet megjeleníti minden * kilépésben - avagy egyéni kilépési szövegek nem engedélyezettek * a helyi szerveren */ /* static-quit "Kliens kilépés"; */ /* Hasonlóan blokkolható minden lelépési indok, úgy, hogy kivesszük * a megjegyzésből ezt, és "yes"-t írunk vagy megadunk valamilyen * más szöveget (pl. "Bye bye!"), hogy mindig az legyen a lelépés * indoklószövege. */ /* static-part yes; */ /* Ezzel megmondhatjuk, mely statisztikákat szeretnénk csak operátorok * számára engedélyezni. Használjunk *-ot, ha az összeset kívánjuk, * és hagyjuk el a direktívát, ha a felhasználók mindet láthatják. Írjuk * be a "/stats" parancsot a teljes listáért. * Lehet, hogy néhány adminisztrátor törölni fogja a "kGs"-t, hogy a közönséges felhasználók láthassák a kline-okat, gline-okat és * shunokat. */ oper-only-stats "okfGsMRUEelLCXzdD"; /* Elfojtás: ez a példa 60 másodpercenként legfeljebb 3 kapcsolódási * kísérletet engedélyező korlátozást állít be (gazdánként). */ throttle { connections 3; period 60s; }; /* Árasztásellenes védelem */ anti-flood { nick-flood 3:60; /* 3 nicknévváltás 60 másodpercenként (az alapértelmezés) */ }; /* Spamszűrő */ spamfilter { ban-time 1d; /* a spamszűrő által beállított *line-ok alapértelmezett kitiltási ideje */ ban-reason "Spam/Reklámozás"; /* alapértelmezett indok */ virus-help-channel "#help"; /* a "viruschan" tevékenységhez használt csatorna */ /* except "#help"; kivesszük a szűrés alól ezt a csatornát */ }; }; /* * Problémák akadtak, vagy szükség van további segítségre? * 1) www.vulnscan.org/UnrealIRCd/unreal32docs.html * 2) www.vulnscan.org/UnrealIRCd/faq/ <- a kérdéseid 80%-át tartalmazza! * 3) Ha még mindig gondod van, felmehetsz az irc.unrealircd.org #unreal-support * csatornájára. Fontos: kérjük, hogy előbb OLVASD EL A DOKUMENTÁCIÓT és * a GYIK-ot! */