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

UnrealIRCd
http://www.unrealircd.com
Version: 3.2.6
Laatste documentatie wijziging: 2006-12-22

Hoofd programmeurs: Stskeeps / codemastr / Syzop / Luke
Medewerkers: McSkaf / Zogg / NiQuiL / assyrian / chasm / DrBin / llthangel / Griever / nighthawk
Documentatie: CKnight^ / Syzop
Nederlandse vertaling: Mark (#unreal-dutch op irc.unrealircd.com)

Om dit document te bekijken heb je een geschikte browser nodig, welke hier beneden staan. De meest recente documentatie staat op http://www.vulnscan.org/UnrealIRCd/unreal32docs.html en een FAQ staat op http://www.vulnscan.org/UnrealIRCd/faq/.

Geschikte browsers:

INDEX / INHOUD
1. Introductie & Opmerkingen
---1.1. Opmerkingen voor upgraden/mengen 3.1.x -> 3.2
---1.2. Opmerkingen voor upgraden tussen 3.2 versies
2. Installatie
3. Mogelijkheden
-- 3.1. Cloaking
-- 3.2. Modules
-- 3.3. Snomasks
-- 3.4. Aliases
-- 3.5. Helpop
-- 3.6. Oper toegangsniveau's
-- 3.7. Oper commando's
-- 3.8. SSL
-- 3.9. IPv6
-- 3.10. Zip links
-- 3.11. Dynamische DNS/IP linking ondersteuning
-- 3.12. Anti-flood mogelijkheden
-- 3.13. Ban types
-- 3.14. Spamfilter
-- 3.15. CIDR
-- 3.16. Nick Character Sets
-- 3.17. CGI:IRC ondersteuning
-- 3.18. Tijd synchronisatie
-- 3.19. Andere mogelijkheden
4. Aanpassen van je unrealircd.conf
---4.1. Configuratie bestand uitgelegd
---4.2. Me Block -=- (M:Line)
---4.3. Admin Block -=- (A:Line)
---4.4. Class Block -=- (Y:Line)
---4.5. Allow Block -=- (I:Line)
---4.6. Listen Block -=- (P:Line)
---4.7. Oper Block -=- (O:Line)
---4.8. DRpass Block -=-(X:Line)
---4.9. Include Directive
---4.10. Loadmodule Directive
---4.11. Log Block
---4.12. TLD Block -=- (T:Line)
---4.13. Ban Nick Block -=- (Q:Line)
---4.14. Ban User Block -=- (K:Line)
---4.15. Ban IP Block -=- (Z:Line)
---4.16. Ban Server Block -=-(q:Line)
---4.17. Ban Realname Block -=- (n:Line)
---4.18. Ban Version Block
---4.19. Ban Exception Block -=- (E:Line)
---4.20. TKL Exception Block
---4.21. Throttle Exception Block
---4.22. Deny DCC Block -=- (dccdeny.conf)
---4.23. Deny Version Block -=- (V:Line)
---4.24. Deny Link Block -=- (D:Line / d:Line)
---4.25. Deny Channel Block -=- (chrestrict.conf)
---4.26. Allow Channel Block
---4.27. Allow DCC Block
---4.28. Vhost Block -=- (vhost.conf)
---4.29. Badword Block -=- (badwords.conf)
---4.30. Uline Block -=- (U:Line)
---4.31. Link Block -=- (C/N/H:Lines)
---4.32. Alias Block
---4.33. Help Block
---4.34. Official Channels Block
---4.35. Spamfilter Block
---4.36. Cgiirc Block
---4.37. Set Block -=- (networks/unrealircd.conf)
5. Aanvullende bestanden
6. Gebruikers & Kanaal Modes
7. Gebruikers & Opers commando's
8. Veiligheids tips/checklist
---8.1. Wachtwoorden
---8.2. Niet-IRCd gerelateerde lekken
---8.3. Rechten en het configuratiebestand
---8.4. Gebruikers gerelateerde problemen
---8.5. SSL/SSH & sniffing
---8.6. Denial of Service attacks (DoS) [of: hoe bescherm ik mijn hub]
---8.7. Extra informatie
---8.8. Bescherming tegen exploits
---8.9. Samenvatting
9. Veel gestelde vragen (FAQ)
A. Regular Expressions
---A.1. Letters
---A.2. Dot Operator
---A.3. Repetition Operators
---A.4. Bracket Expressions
---A.5. Assertions
---A.6. Alternation
---A.7. Subexpressions
---A.8. Back References
---A.9. Case Sensitivity

1.0 – Introductie & Opmerkingen

Dit document is uitsluitend geschreven voor gebruik met UnrealIRCd. Gebruik van dit document voor andere software, of verspreiding van dit document samen met andere software is strikt verboden zonder geschreven toestemming van het UnrealIRCd Ontwikkelings Team. Dit document mag zo vaak je wil gekopieërd/geprint/geherproduceerd/gepubliceerd worden, gegeven dat het gebruikt wordt voor UnrealIRCd en er niets aangepast is in welke vorm dan ook. – Copyright UnrealIRCd Development Team 2002-2006

Lees dit document voordat je om hulp vraagt. We raden je ook ten zeerste aan de FAQ te lezen, omdat meer dan 80% van je problemen/vragen hierin behandeld worden. Wanneer je nog steeds hulp nodig hebt, kun je hulp vragen op irc.ircsystems.net (poort 6667), kanaal #unreal-support (Opmerking: We achten het nodig dat je de documentatie en de FAQ leest en we helpen alleen met UnrealIRCd, niet met Services!). Wanneer je een echte bug (zoals een crash) hebt gevonden, meldt deze dan op http://bugs.unrealircd.org.

1.1 – Opmerkingen voor upgraden/mengen 3.1.x -> 3.2

Wanneer je upgrade van Unreal3.1.x naar Unreal3.2 merk je dat het hele configuratiebestand aangepast is. Wellicht vind je dit in het begin moeilijk, maar zodra je omgeschakeld bent, snap je het veel makkelijker!

Vergeet ook niet sectie 3 over Mogelijkheden te lezen. Ondanks dat je sommige wellicht al kent van 3.1.x zijn er ook nieuwe mogelijkheden!

Het is beter om 3.1.x niet te mengen/linken met 3.2, maar wanneer je dit echt wilt, heb je minstens 3.1.4 nodig. Maar 3.1.5.1 wordt ten zeerste aangeraden!

1.2 – Opmerkingen voor upgraden tussen 3.2 versies

De aangeraden manier om te upgraden is:
Linux:

Windows:

Zie ook .RELEASE.NOTES voor de veranderingen. Wanneer je veranderingen (of bugs) tussen verschillende versies merkt, LEES EERST DE RELEASE NOTES VOORDAT JE HET ALS EEN BUG MELDT!

2.0 - Installatie


Getest & Ondersteunde Operating Systems:

Wanneer je Unreal3.2 correct werkend hebt lopen op een ander systeem, meldt de details dan alstublieft naarcoders@lists.unrealircd.org

Installation Instructions
Linux:

  1. gunzip -d Unreal3.2.X.tar.gz
  2. tar xvf Unreal3.2.X.tar
  3. cd Unreal3.2
  4. ./Config
  5. Beantwoord deze vragen zo goed als mogelijk. Wanneer je het niet weet, kun je het beste de standaardwaarde gebruiken.
  6. make
  7. Maak nu je unrealircd.conf en andere configuratiebstanden, zie sectie 4.

Windows:

  1. Voer de Unreal installatie uit.
  2. Maak nu je unrealircd.conf en andere configuratiebstanden, zie sectie 4.

3.0 - Mogelijkheden

De voornaamste/leuke mogelijkheden worden uitgelegd in deze sectie. Het zorgt voor een algemeen overzicht, en verwijst soms naar het configuratiebestand (iets waar je wellicht nog niets over weet)

Je kan deze sectie overslaan, hoewel het aangeraden wordt om deze toch te lezen voor of na installatie zodat je de begrippen 'cloaking', 'snomasks' etc kent.

3.1 - Cloaking

Cloaking is een manier om de echte hostname van gebruikers te verbergen. Als de echte host bijvoorbeeld d5142341.cable.wanadoo.nl is, zal rox-2DCA3201.cable.wanadoo.nl worden gezien (bij joins, parts, whois, etc). Dit is een manier om de gebruikers tegen het flooden door anderen te beschermen, omdat ze de echte host/IP niet kunnen zien.

Dit wordt te werk gesteld door gebruikersmode +x (zoals: /mode jenaam +x). Admins kunnen ook instellen dat +x automatish gezet wordt, of dat gebruikers nooit -x kunnen zetten.

Een verborgen host wordt gemaakt door een "cloaking" module (je moet er een laden). Momenteel wordt er 1 module geleverd:
cloak: Dit is de officiële module sinds 3.2.1. Het is veel veiliger dan het oude algoritme, het gebruikt md5 intern en het eist dat je 3 set::cloak-keys:: gebruikt, bestaande uit een mix van kleine letters (a-z), grote letters (A-Z) en getallen (0-9) [bv: "AopAS6WQH2Os6hfosh4SFJHs"]. Zie Voorbeeld.conf voor een voorbeeld.

Cloak keys MOETEN hetzelfde zijn op ALLE servers in een network. Ook moeten cloak keys geheim blijven, omdat het mogelijk is om de echte hostname te achterhalen wanneer je de keys weet (wat gebruikersmode +x onbruikabar maakt).

3.2 - Modules

UnrealIRCd maakt gebruik van modules, wat handig is omdat:
- Je kan ze laden/herladen/uitladen terwijl de ircd nog loopt (d.m.v. /rehash). Hiermee kun je bugs fixen of nieuwe mogelijkheden toevoegen zonder dat er een herstart nodig is!
- Andere mensen kunnen modules maken met nieuwe commandos, gebruikersmodi en zelfs kanaalmodi
- UnrealIRCd wordt geleverd met maar een paar modules. Kijk eens op www.unrealircd.com -> modules of gebruikt Google om aan modules te komen.

Je moet minstens 2 modules laden, anders start je ircd niet!:
- De commando module: commands.so (commands.dll in Windows).
- Een cloaking module: normaal cloak.so (cloak.dll in Windows).

3.3 - Snomasks

Snomasks zijn server aankondigingen, het is een speciaal soort gebruikersmodes die bepaald welke aankondigingen je krijgt (voornamelijk gebruikt door opers)

Je kan ze instellen door: /mode jenaam +s SNOMASK, bijvoorbeeld: /mode jenaam +s +cF
Om bepaalde snomasks weg te halen, gebruik: /mode jenaam +s -c
Om alle snomasks weg te halen, gebruik: /mode jenaam -s

De op dit moment bruikbare snomasks zijn:
c - lokale connecties
F - "verre" connecties (connecties naar andere servers, behalve U:lined servers)
f - flood aankondigingen
k - kill aankondigingen
e - "eyes" aankondingen
j - "junk" aankondigingen
v - vhost aankondingingen
G - gline/shun aankondingingen
n - lokale verandering van naam aankondingingen
N - "verre" verandering van naam aankondingingen
q - verboden nick (Q:line) aankondingingen
s - ontvang server aankondingingen [*]
S - ontvang spamfilter aankondingingen
o - ontvang oper-worden aankondingingen
[*: deze snomask kan ook gebruikt worden door niet-opers]

Je kan instellen welke snomasks je automatisch krijgt (set::snomask-on-connect) en welke je krijgt zodra je oper wordt (set::snomask-on-oper, oper::snomask)

Standaard wordt, zodra een gebruiker modes +s zet, bepaalde snomasks gezet. Voor niet-opers, snomasks +ks, en voor opers snomasks +kscfvGqo.

3.4 - Aliases

Met aliases kun je alias commando's instellen voor de server. Je kan bijvoorbeeld "/ns identify blah" doorsturen naar NickServ (het wordt dan: PRIVMSG NickServ identify blah). Je kan het ook nog complexer maken, zodat bijvoorbeeld /register naar ChanServ doorgestuurd wordt wanneer het eerste woord met een # begint, en doorgestuurd naar NickServ wanneer dit niet het geval is

Aliassen worden ingesteld door een alias-blok in het configuratiebestand. Je kan ook een standaard bestand laten laden, met de meest gebruikte aliassen bij vaak gebruikte Services

3.5 - Helpop

UnrealIRCd heeft een ingebouwd help-systeem, raadpleegbaar door /helpop. Het /helpop commando is volledig in te stellen door het help-blok in het configuratiebestand. Bijkomend, een help.conf wordt geladen, waarin wat basis hulp staat voro alle commando's.
Bijvoorbeeld /helpop chmodes geeft je een overzicht van alle kanaalmodi die UnrealIRCd heeft.
Vergeet niet dat wanneer je een ircop (helpop) bent, je een vraagteken ('?') moet gebruiken voor elk commando. Dus /helpop chmodes wordt /helpop ?chmodes

3.6 - Oper access levels

Er zijn verschillende oper niveaus in UnrealIRCd, en je kan extra rechten (zoals het gebruik van /gline) toevoegen voor elk niveau. Op deze manier kun je een oper voorzien van alles wat hij/zij nodig heeft.

Dit wordt gedaan door de oper flags in het oper-blok. Zie het oper-blok voor meer informatie

3.7 - Oper commands

UnrealIRCd heeft veel machtige oper commando's welke uitgelegd worden in User & Oper Commands. Je zult deze waarschijnlijk willen doornemen na installatie

3.8 - SSL

SSL staat voor Secure Socket Layer. Met SSL kun je beveiligde verbinden opzetten. Het kan gebruikt worden om server<->server verkeer te beveiligen, maar ook client<->server kan beveiligd worden. Je gebruikt SSL normaal gesproken om sniffen van wachtwoorden tegen te gaan.

Je moet je IRC server compilen (opbouwen) met SSL support. Om een SSL poort in te stellen, moet je set listen::options::ssl gebruiken.

Je kan geen gewone verbinding maken op een SSL poort (dus maak poort 6667 geen SSL!), je hebt een programma nodig dat het SSL protocol snapt.

Programma's die SSL ondersteunen: XChat, irssi, mIRC (6.14 en hoger, maar heeft wat extra stappen nodig)

Voor programma's die SSL niet ondersteunen, kun je een tunnel gebruiken zoals stunnel. Hieronder vind je een stunnel.conf voorbeeld (voor stunnel 4.x):

   client = yes
   [irc]
   accept = 127.0.0.1:6667
   connect = irc.myserv.com:6697
Wanneer je nu een connectie naar 127.0.0.1 poort 6667 maakt, zal al je verkeer ge-encrypt worden en doorgestuurd naar irc.myserv.com poort 6697 (een SSL poort).

Je zult ook de certificaten moeten valideren, en ze niet zomaar moeten accepteren (zoals in het stunnel voorbeeld), anders ben je nog steeds kwetsbaar voor "actief sniffen" (SSL omleidingen). Maar dit dwaalt te ver af om hier uit te leggen (leer over SSL, vraag het ons niet). [mIRC and XChat laten een venster zien wanneer je een certificaat moet accepteren of afwijzen, dus dat is goed].

3.9 - IPv6

UnrealIRCd ondersteunt IPv6, en sinds beta15 is het stabiel.
Je systeem moet ook IPv6 ondersteunen, en je moet IPv6 ondersteuning aanzetten tijdens ./Config.

Hoewel Microsoft een experimentele IPv6 toepassing heeft voor W2K/XP, wordt dit (nog) niet ondersteund door UnrealIRCd

3.10 - Zip links

Zip links kunnen worden aangezet voor server<->server links. Het comprimeert data door gebruik te maken van zlib. Het kan 60 tot 80% bandbreedte besparen.. Dus het is handig voor lage bandbreedte links of links met veel gebruikers. Het kan veel helpen wanneer je linkt vanwege de vele data die verstuurd wordt over elk(e) gebruiker/kanaal/etc.

Om Zip link ondersteuning aan te zetten, moet je "yes" antwoorden voor de zlib vraag in ./Config en link::options::zip gebruiken van beide kanten.

3.11 - Dynamische DNS/IP linking ondersteuning

UnrealIRCd heeft enkele (nieuwe) mogelijkheden, welke mensen met een dynamisch IP helpen (zoals blah.dyndns.org). Wanneer je twee dynamische DNS hosts linkt, gebruik dan link::options::nodnscache en link::options::nohostcheck.

3.12 - Anti-Flood mogelijkheden

Throttling ("Onderdrukken")
Door gebruik te maken van throttling kun je een limiet instellen op hoe vaak een gebruiker een connectie naar je server mag maken en verbreken. Je kan dat er X connecties in YY seconden gemaakt mogen worden vanaf hetzelfde IP door middel van het set::throttle blok. Kanaal modi
Er zijn verschillende kanaal modi welke zeer effectief werken tegen flooden. Om een paar te noemen:
K = /knock niet toegestaan, N = geen naamsveranderingen toegestaan, C = geen CTCPs toegestaan, M = alleen geregistreerde gebruikers mogen praten, j = join throttling (per gebruiker)
Sinds beta18 is er ook een geavanceerdere kanaalmodus +f...
Kanaal modus f
In plaats van het gebruik van scripts of bots om je te beschermen tegen kanaal floods, zit het nu in de ircd ingebouwd.
Bijvoorbeeld: *** Blah sets mode: +f [10j]:15
Dit betekent dat er 10 joins per 15 seconden zijn toegestaan in dit kanaal. Wanneer dit limiet wordt overschreden, wordt het kanaal automatisch op +j gezet.
De volgende floodtypes zijn beschikbaar:
type:naam:standaard actie:andere beschikbare opties:opmerkingen
cCTCPsauto +Cm, M 
jjoinsauto +iR 
kknocksauto +K (alleen voor lokale gebruikers)
mmessages/noticesauto +mM 
nnickchangesauto +N  
ttextkickbper bericht/notice per user, zoals de oude +f. Zal de gebruiker kicken of bannen.

  voorbeeld::

*** 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
-- XX regels weggehaald --
*** Evil21 (~jiovoihew@Clk-48D826C3.e.something.org) has joined #test
-server1.test.net:#test *** Channel joinflood detected (limit is 20 per 15 seconds), putting +i
*** server1.test.net sets mode: +i
<Evil2> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
<Evil12> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
<Evil15> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
<Evil10> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
<Evil8> fsdjfdshfdkjfdkjfdsgdskjgsdjgsdsdfsfdujsflkhsfdl
-- snip XX lines --
-server1.test.net:#test *** Channel msg/noticeflood detected (limit is 50 per 15 seconds), putting +m
*** server1.test.net sets mode: +m
*** Evil1 is now known as Hmmm1
*** Evil2 is now known as Hmmm2
*** Evil3 is now known as Hmmm3
*** Evil4 is now known as Hmmm4
*** Evil5 is now known as Hmmm5
*** Evil6 is now known as Hmmm6
*** Evil7 is now known as Hmmm7
*** Evil8 is now known as Hmmm8
-server1.test.net:#test *** Channel nickflood detected (limit is 7 per 15 seconds), putting +N
*** server1.test.net sets mode: +N
Het kan zelfs nog geavanceerder/complexer:
In plaats van de standaard actie kun je voor sommige floodtypes nog een andere actie instellen, bijvoorbeeld: +f [20j#R,50m#M]:15
Dit zal het kanaal op +R zetten wanneer het joinlimiet is overschreden (>20 joins in 15 seconden), en zal het kanaal op +M zetten wanneer het berichtlimiet is overschreven (>50 messages in 15 seconden).

Er is ook een "verwijder modus na x minuten" mogelijkheid: +f [20j#R5]:15 zal het kenaal +R zetten wanneer het limiet bereikt is, en zal het weer -R zetten na 5 minuten.
Een server kan een standaard unsettime hebben (set::modef-default-unsettime), dus wanneer je +f [20j]:15 gebruikt kan het veranderen in +f [20j#i10]:15, het is gewoon een standaard waarde. Je kan nog altijd [20j#i2]:15 of iets anders gebruiken. Je kan zelfs de standaard waarde niet gebruiken, door +f [20j#i0]:15 (een expliciete 0) te gebruiken.
De oude +f modus (msgflood per gebruiker) is nog steeds beschikbaar als 't', +f 10:6 is nu +f [10t]:6 en +f *20:10 is nu +f [20t#b]:10. Op dit moment zal de ircd automatisch de oude +f modi typen converteren naar de nieuwe. Let op dat er geen unsettime is voor 't' bans ([20t#b30]:15 werkt niet).

Welke +f modus het beste te gebruiken is, hangt af van het kanaal... Hoeveel gebruikers zijn er? Heb je een spel dat de gebruikers veel berichten laat zenden (bv Trivia)? Of gebruiken mensen vaak popups? Is het een standaard kanaal, of joint iedereen automatisch? etc..
Er is geen perfecte kanaalmodus +f dat goed is voor alle kanalen, maar het helpt wanneer je naar het volgende voorbeeld kijkt en het aanpast naar je eigen smaak:
+f [30j#i10,40m#m10,7c#C15,10n#N15,30k#K10]:15
30 joins per 15 seconden, wanneer het limiet overschreden wordt, zet +i gedurende 10 minuten
40 berichten per 15 seconden, wanneer het limiet overschreven wordt, zet +m gedurende 10 minuten
7 ctcps per 15 seconden, wanneer het limiet overschreven wordt, zet +C gedurende 15 minuten
10 naamsveranderingen per 15 secondsen, wanneer het limiet overschreden wordt, zet +N gedurende 15 minuten
30 knocks per 15 seconden, wanneer het limiet overschreven wordt, zet +K gedurende 10 minuten
Wanneer het een groter kanaal betrefd (> 75 gebruikers?), wil je wellicht het join limiet (bijv. naar 50) en het berichtlimiet (bijv naar 60 of 75) verhogen.
Met name de verwijder-modus tijd zijn een kwestie van eigen smaak.. Je moet je bedenken.. Wat als er geen op aanwezig is om te handelen in de situatie, wil ik dan dat het kanaal voor 15 minuten op slot gaat (wat niet leuk is voor de gebruikers), of voor 5 minuten (wellicht wachten de flooders dan gewoon 5 minuten en starten ze weer). Het ligt ook aan het floodtype, gebruikers die niet kunnen joinen (+i) of niet kunnen spreken (+m) is erger dan dat ze hun naam niet kunnen veranderen (+N) of dat ze geen CTCPs naar het kanaal kunnen zenden (+C). Dus wellicht wil je verschillende verwijder-tijden gebruiken.
Kanaal modus j
De modus +f gaat join floods tegen, maar deze mogelijkheid is "global". Bijvoorbeeld, wanneer het gezet is op 5:10 en 5 verschillende gebruikers joinen in 10 seconden, wordt de flood protectie geactiveerd. Kanaal modus +j is anders. Deze werkt per gebruiker. In plaats van het beschermen tegen join floods, is het ontworpen om te beschermen tegen join-part floods ("draaideur floods"). De modus accepteert een parameter in de vorm van X:Y, waar X het aantal joins is, en Y het aantal seconden. Wanneer een gebruiker dit limiet overschrijdt, wordt hem/haar het onmogelijk gemaakt het kanaal opnieuw te joinnen.

3.13 - Ban types

Basis bantypes en cloaked hosts
UnrealIRCd ondersteunt de basis bantypes, zoals +b nick!user@host.
Tevens, wanneer de host van iemand 'rox-ACB17294.isp.com' is, kun je een ban plaatsen op *!*@rox-ACB17294.isp.com. Wanneer de gebruiker zichzelf -x zet (en zijn host bijvoorbeeld dial-123.isp.com wordt), dan is de gezette ban nog steeds effectief. Bans worden altijd gecontroleerd op echte host EN cloaked host.
Ook IP bans zijn mogelijk (bijv: *!*@128.*) en worden ook altijd gecontroleerd.

Bans op cloaked IPs hebben wat uitleg nodig:
Wanneer een gebruiker het IP 1.2.3.4 heeft, zijn cloaked host zou 341C6CEC.8FC6128B.303AEBC6.IP kunnen zijn.
Wanneer je *!*@341C6CEC.8FC6128B.303AEBC6.IP banned, ban je in feite *!*@1.2.3.4 (vanzelfsprekend...)
Wanneer je *!*@*.8FC6128B.303AEBC6.IP banned, ban je *!*@1.2.3.*
Wanneer je *!*@*.303AEBC6.IP banned, ban je *!*@1.2.*
Deze informatie is wellicht hulpzaam wanneer je wilt bepalen hoe ver een ban moet gaan.

Uitgebreide bantypes
Uitgebreide bans zien eruit als ~[!]<type>:<stuff>. Op dit moment zijn de volgende mogelijkheden bescikbaar:
type:naamuitleg:
~qstilteMensen die voldoen aan deze ban kunnen het kanaal joinen, maar kunnen niet spreken, tenzij ze +v of hoger hebben. Bijv: ~q:*!*@blah.blah.com
~nnaamsveranderingMensen die voldoen aan deze ban kunnen hun naam niet veranderen, tenzij ze +v of hoger hebben. Bijv: ~n:*!*@*.aol.com
~c[prefix]kanaalWanneer de gebruiker in het betreffende kanaal zit, kan hij/zij niet joinen. Een voorvoegsel kan tevens gebruikt worden (+/%/@/&/~) wat erop neer komt dat wanneer de gebruiker bepaalde rechten (of hoger) in het kanaal heeft, hij/zij niet kan joinen Bijv: +b ~c:#lamers, +e ~c:@#trusted
~rechte naamWanneer de echte naam van de gebruiker hieraan voldoet, kan hij/zij niet joinen.
Bijv: ~r:*Stupid_bot_script*
Opmerking: een underscore ('_') geldt voor een spatie (' ') en een underscore ('_'), dus deze ban werkt tevens als 'Stupid bot script v1.4'.
Deze bantypes worden ook ondersteund in de kanaal exceptie lijst (+e).
Modules kunnen ook andere uitgebreide ban types toevoegen.

3.14 - Spamfilter

Spamfilter is een nieuw systeem om tegen spam, adverteren, worms en andere dingen te vechten. Het werkt ongeveer zoals het "badword" systeem, maar met enkele voordelen.

Spamfilters worden toegevoegd door het /spamfilter commando, wat de volgende syntax gebruikt:
/spamfilter [add|del|remove|+|-] [type] [action] [tkltime] [reason] [regex]
[type]Specificeert het doel type:
Teken:Heeft nut op:Beschrijving:
ckanaalKanaal bericht
pprivePrive bericht (user->user)
nprive-noticePrive notice
Nkanaal-noticeKanaal notice
PpartPart reden
qquitQuit reden
ddccDCC bestandsnaam
aawayAway bericht
ttopicEen topic instellen
ugebruikergebruikersban ban, zal gecontroleerd worden tegen nick!user@host:realname
Je kan meerdere doelen opgeven, zoals: cpNn
[action]Specificeert de te ondernemen actie (slechts 1 action is mogelijk)
killkillt de gebruiker
tempshunshuns de huidige sessie van de gebruiker (wanneer hij/zij opnieuw verbindt, is de shun weg)
shunzet een shun op de host
klinezet een kline op de host
glinezet een gline op de host
zlinezet een zline op de host
gzlinezet een gzline (global zline) op de host
blockblokkeer het bericht enkel
dccblockmarkeer de gebruiker zodat hij/zij geen DCCs kan verzenden
viruschanpart alle kanalen, join set::spamfilter::virus-help-channel, maak alle commando's behalve PONG, ADMIN en berichten/notices gericht aan set::spamfilter::virus-help-channel onbruikbaar
[tkltime] De duur van een *line/shun toegevoegd door het filter, gebruik '-' om de standaardwaarde te gebruiken (bijv: wanneer action = 'block')
[reason] Block/*line/shun reden.. Je kunt GEEN spaties hierin gebruiken, maar een underscore ('_') zal een spatie worden zodra het uitgevoerd wordt. Een dubbele underscore ('__') zal een underscore ('_') worden. Weer, gebruik '-' voor de standaard reden.
[regex]Dit is de echte regex of "bad word" waarop we actie willen ondernemen

Hier is een voorbeeld: /spamfilter add pc gline - - Come watch me on my webcam
Wanneer de tekstcome watch me on my webcam gevonden wordt in of een prive bericht, of een kanaal bericht, wordt deze geblokkeerd en een gline zal meteen gezet worden.
Nog een voorbeeld: /spamfilter add pc block - - come to irc\..+\..+
Dit is een regex dat voldoet aan Hi, come to irc.blah.net etc...
Nu een voorbeeld met een gespecificeerde tijd/reden:
/spamfilter add p gline 3h Please_go_to_www.viruscan.xx/nicepage/virus=blah Come watch me on my webcam
Wanner come watch me on my webcam gevonden wordt in een prive bericht, zal de gebruiker voor 3 uur een gline krijgen met de reden Please go to www.viruscan.xx/nicepage/virus=blah.

Spamfilters toegevoerd met behulp van /spamfilter gelden op het gehele netwerk. Ze werken altijd, of een gebruiker of kanaal nu modus +G heeft of niet. Alleen opers en U:Lines (Services) vormen een uitzondering.

Je kan ook spamfilters in het configuratiebestand toevoegen, maar deze werken alleen lokaal (niet over het gehele netwerk, hoewel je hiervoor remote includes ("van afstand ingeladen") kunt gebruiken). De syntax van deze spamfilter { } blokken worden hier uitgelegd
Voorbeeld:

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

set::spamfilter::ban-time geeft je de mogelijkheid om de standaardtijd voor *lines/shuns aan te passen (standaard: 1 day)
set::spamfilter::ban-reason geeft je de mogelijkheid een standaardreden op te geven (standaard: 'Spam/advertising')
set::spamfilter::virus-help-channel geeft je de mogelijkheid een kanaal te specificeren dat gejoined wordt door 'viruschan' (standaard: #help)
set::spamfilter::virus-help-channel-deny geeft je de mogelijkheid om normale joins in virus-help-channel te blokkeren (standaard: no)

3.15 - CIDR

UnrealIRCD geeft je nu ook de mogelijkheid om IP reeksen te bannen, door middel van CIDR (Classess Interdomain Routing). IPs worden door ISPs uitgedeeld door middel van CIRD. Dit geeft je de mogelijkheid om heel makkelijk een ISP te bannen. CIDR wordt ondersteund voor zowel IPv4 als IPv6. CIDR masks zijn toegestaan in allow::ip, oper::from::userhost, ban user::mask, ban ip::mask, except ban::mask, except throttle::mask, en except tkl::mask (for gzline, gline en shun). Tevens kan CIDR gebruikt worden met /kline, /gline, /zline, /gzline en shun. UnrealIRCd gebruikt de standaard syntax van IP/bits, zoals 127.0.0.0/8 (komt overeen met 127.0.0.0 - 127.255.255.255), en fe80:0:0:123::/64 (komt overeen met fe80:0:0:123:0:0:0:0 - fe80:0:0:123:ffff:ffff:ffff:ffff).

3.16 - Nick Character Sets

UnrealIRCd geeft je nu ook de mogelijkheid om te specificeren welke charsets/talen gebruikt morgen worden in namen. Dit doe je door middel van set::allowed-nickchars.
Een tabel met alle mogelijke keuzes:
Naam:Beschrijving:Character set/encoding:
catalanCatalaanse lettersiso8859-1 (latin1)
danishDeense lettersiso8859-1 (latin1)
dutchNederlandse lettersiso8859-1 (latin1)
frenchFranse lettersiso8859-1 (latin1)
germanDuitse lettersiso8859-1 (latin1)
swiss-germanZweeds-Duitse letters (geen es-zett)iso8859-1 (latin1)
icelandicIJslandse lettersiso8859-1 (latin1)
italianItaliaanse letters/td>iso8859-1 (latin1)
spanishSpaanse lettersiso8859-1 (latin1)
swedishZweedse lettersiso8859-1 (latin1)
latin1Catalaanse, Deense, Nederlandse, Franse, Duitse, Zweeds-Duitse, Spaanse, IJslandse, Italiaanse en Zweedse lettersiso8859-1 (latin1)
hungarianHongaarse lettersiso8859-2 (latin2), windows-1250
polishPoolse lettersiso8859-2 (latin2)
romanianRoemeense lettersiso8859-2 (latin2), windows-1250, iso8859-16
latin2Hongaarse, Poolse en Roemeenseiso8859-2 (latin2)
polish-w1250Poolse letters, Windows variant (helaas meer voorkomend dan iso)windows-1250
slovak-w1250Slowaakse letters, Windows variantwindows-1250
czech-w1250Tsjechisch characters, Windows variantwindows-1250
windows-1250polish-w1250, slovak-w1250, czech-w1250, Hongaars, Roemeenswindows-1250
greekGriekse lettersiso8859-7
turkishTurkse lettersiso8859-9
russian-w1251Russische letterswindows-1251
belarussian-w1251Wit-Russische letterswindows-1251
ukrainian-w1251Oekrainse letterswindows-1251
windows-1251russian-w1251, belarussian-w1251, ukrainian-w1251windows-1251
hebrewHebreeuwse lettersiso8859-8-I/windows-1255
chinese-simpVereenvoudigd ChineesMultibyte: GBK/GB2312
chinese-tradTraditioneel ChineesMultibyte: GBK
chinese-jaJapans Hiragana/PinyinMultibyte: GBK
chineseChinese-*Multibyte: GBK
gbkChinese-*Multibyte: GBK

Opmerking 1: Let op dat het combineren voor problemen kan zorgen. Bijvoorbeeld het mengen van latin* en chinese-* kan niet goed afgehandeld worden door de IRCd en Unreal zal dan ook een error geven. Het door elkaar gebruiken van andere charsets kan voor problemen worden. UnrealIRCd zal hierom een waarschuwing weergeven wanneer je latin1/latin2/greek/en andere tegenstelde charsets wilt gebruiken.

Opmerking 2: Het herkennen van kleine en grote letters wordt gedaan volgens het US-ASCII systeem. Dit Betekent dat o" en O" niet als dezelfde letter herkend wordt. Daarom kan iemand de naam B"ar hebben, en iemand anders de naam BA"r. Dit is een limitatie van het huidige systeem, en kan op dit moment niet opgelost worden. Let hier goed op. Merk op dat deze limitatie altijd al geeft gegolden voor de namen van kanalen, waarin bijna alle letters zijn toegestaan en US-ASCII altijd is uitgevoerd.

Opmerking 3: De basis letters (a-z A-Z 0-9 [ \ ] ^ _ - { | }) zijn altijd toegestaan.

Voorbeeld 1, voor mensen uit West-Europa:
set { allowed-nickchars { latin1; }; };
Voorbeeld 2, voor wanneer je voornamelijk Chinese gebruikers hebt, en de "normale" chinese letters wil toestaan:
set { allowed-nickchars { chinese-simp; chinese-trad; }; };

3.17 - CGI:IRC ondersteuning

UnrealIRCd ondersteunt voor CGI:IRC host spoofing, wat inhoudt dat je bepaalde CGI:IRC gateways als "trusted" kan bestempelen, zodat de IRCd overal de echte host/ip van de gebruiker laat zien, in plaats van de CGI:IRC gateway.

Zie het cgiirc block voor informatie over het configureren

3.18 - Tijd Synchronisatie

Heb hebben van de juiste tijd is enorm belangrijk voor IRC servers. Zonder de correcte tijd kunnen channels desynchen, ongeschuldige gebruikers gekilled worden, channels komen niet goed in /LIST, samengevat: grote problemen ontstaan.

UnrealIRCd heeft een ingebouwde tijd synchronisatie ondersteuning. Hoewel deze niet optimaal is (kan nog enkele seconden speling zijn), lost het de meeste tijd-gerelateerde problemen op. Als het mogelijk is, wordt je nog steeds aangeraden een tijdsynchronisatie programma te gebruiken zoals ntpd op *UNIX of de tijdsynchronisatie service van Windows (in dat geval kun je Unreals tijdsynchronisatie uitzetten, meer volgt later).

Wat UnrealIRCd probeert (standaard) is het eenmaling instellen van de tijd wanneer ze gestart wordt. Ze stuurt (standaard) een verzoek naar verschillende tijdservers en wanneer ze het eerste (snelste) antwoord ontvangt, past ze de interne IRCd clock aan (NIET de systeem clock). Als, voor welke reden dan ook, Unreal geen antwoord krijgt van de tijdserver binnen 3 seconden, start ze gewoon op zonder tijdsaanpassing (zal vrijwel nooit gebeuren).

Tijd synchronisatie wordt ingesteld (en kan uitgezet worden) door het set::timesynch block, zie de set documentatie voor meer informatie.

3.19 - Andere mogelijkheden

UnrealIRCd heeft heel veel mogelijkheden, dus niet alles staat beschreven hier... Je vindt het vanzelf wel.

4.0 - Aanpassen van je unrealircd.conf

Ten eerste, het maken van je eerste unrealircd.conf kost tijd (zeg 15 tot 60 minuten). Het maken van een goede kost nog meer tijd. Haast je niet om je IRCd online te krijgen, maar doe alles stap voor stap. Wanneer je tegen problemen aanloopt, controleer je syntax, controleer deze handleiding en de FAQ voordat je hulp zoekt of een bug meldt.

4.1 Configuratie bestand uitgelegd

Het nieuwe systeem gebruikt een indeling op basis van blokken. Elke invoer, of blok, heeft een nieuw en specifiek format. Hieronder een voorbeeld:

<block-name> <block-value> {
	<block-directive> <directive-value>;
};

<block-name> staat voor het type blok, zoals me of admin. <block-value> heeft soms een waarde, zoals bij een /oper login. Andere keren is het een onderverdeling, zoals in ban user

<block-directive> is een individuele, specifieke variabele voor het blok, en <directive-value> is de bijhorende waarde. Wanneer <directive-value> spaties, of tekens die een opmerking voorstellen, bevat, moet het tussen aanhalingstekens (" en ") geplaatst worden. Wanneer je een (") wil gebruiken binnen de string, gebruik dan (\").

Een <block-directive> kan verschillende waardes in zich hebben. Wanneer dat zo is, zullen deze waardes tussen accolades geplaatst worden. Sommige blokken hebben geen waardes, en worden alleen gevolgd door <block-value>, bijvoorbeeld een include. Merk ook op dat er geen vaste indeling is, een blok kan op 1 regel of over verschillende regels verdeeld worden. De indeling hierboven is het meest gebruikelijk (en overzichtelijk).

Opmerking: het configuratiebestand is op dit moment hoofdlettergevoelig, dus BLOCK-NAME is niet hetzelfde als block-name. Er is een speciale manier om aan te duiden hoe iets gebruikt moet worden in het configuratiebestand. In het bovenstaande voorbeeld zeg je bijvoorbeeld <block-name>::<block-directive>. Wanneer er nog een waarde bij hoort, voeg je gewoon nog een :: en de naam van de waarde toe.

Wanneer je spreekt over een waarde zonder naam, doe je <block-name>::. Dit betekent in dit geval <block-value>, of het is een waarde die geen naam heeft.

Drie soorten commentaren worden ondersteund:

# Een-lijns commentaar
// Een-lijnscommentaar
/* Meerdere lijnen
    commentaar */

Nu je weet hoe het werkt, kopieer doc/example.conf naar je UnrealIRCd map (bv: /home/user/Unreal3.2) en hernoem het naar unrealircd.conf (OF je maakt een compleet nieuwe unrealircd.conf). Het wordt ten zeerste aangeraden om stap voor stap alle blocken door te werken en de instellingen in je conf. Gebruik deze handleiding als leidraad.

4.2 - Me Block BENODIGD (Dit was de M:Line)

Syntax:

me {
	name <name-of-server>;
	info <server-description>;
	numeric <server-numeric>;
};

De waardes zijn nogal duidelijk. De naam staat voor de naam van de server, info staat voor de informatie lijn van de server, numeric staat voor de numerieke representatie van de server. Dit moet een waarde tussen 0 en 254 zijn, die UNIEK is. Dit betekent dat geen enkele server in je netwerk dezelfde numeric mag hebben.

Voorbeeld:

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

4.3 - Admin Block BENODIGD (Dit was de A:Line)

Syntax:

admin {
	<text-line>;
	<text-line>;
};

Het admin blok vormt de tekst afgebeeld in een /admin commando. Je kan zoveel regels opgeven als je wilt, en ze kunnen bevatten wat je wilt. Het is echter standaard om de naam en het email adres van de admin als minimun te gebruiken.

Voorbeeld:

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

4.4 - Class Block BENODIGD (Dit was de Y:Line)

Syntax:

class <name> {
	pingfreq <ping-frequency>;
	connfreq <connect-frequency>;
	maxclients <maximum-clients>;
	sendq <send-queue>;
	recvq <recv-queue>;
};

Class blokken zijn klassen waarin connections geplaatst worden (bijvoorbeeld vanuit allow blocks, of servers vanuit link blocks). Normaal gesproken heb je meerdere class blocks (bijv: voor servers, gebruikers en opers).

name is de naam van de class, bijvoorbeeld "clients" of "servers". Deze naam wordt gebruikt om deze class aan te duiden in allow/link/oper/etc blocks.

pingfreq is het aantal seconden tussen PINGs van de server (een waarde tussen 90 en 180 wordt aangeraden).

connfreq wordt alleen gebruikt voor servers en is het aantal seconden tussen het proberen te verbinden, wanneer autoconnect aan staat.

maxclients stelt het maximale (totale) aantal van clients/servers in deze class in.

sendq stelt de grootte van data dat in de send queue mag zijn (zeer hoog voor servers met lage bandwidth, gemiddeld voor gebruikers).

recvq stelt de grootte van data dat in de receive queue mag zijn en wordt gebruikt voor flood-controle (alleen van toepassing op gewone gebruikers, probeer waardes tussen 3000 en 8000. 8000 is de standaardwaarde).

Voorbeelden:

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

class servers{
	pingfreq 90;
	maxclients 10; /* Maximaal aantal servers dat we tegelijk gelinkt kunnnen hebben */
	sendq 1000000;
	connfreq 100; /* Hoeveel seconden tussen elke poging om een verbinding te maken */
};

4.5 - Allow Block BENODIGD (Dit was de I:Line)

Syntax:

allow {
	ip <user@ip-connection-mask>;
	hostname <user@host-connection-mask>;
	class <connection-class>;
	password <connection-password> { <auth-type>; };
	maxperip <max-connections-per-ip>;
	redirect-server <server-to-forward-to>;
	redirect-port <port-to-forward-to>;
	options {
		<option>;
		<option>;
		...
	};
};

Door middel van een allow class geef je aan wie er allemaal een connectie mag maken met je server. Je mag meerdere allow blocks hebben.

Matches
De toegangscontrole werkt als volgt: ip komt OF host komt overeen, dus "hostname *@*"; en "ip *@1.2.3.4" betekent dat er altijd een overeenkomst is. Tevens worden de allow blocks van boven naar beneden gelezen, dus je moet de specifieke host/IP allow blocks NA je algemene *@* allow block plaatsen. Wanneer je een allow block wilt dat alleen werkt met een overeenkomstig IP, stel hostname dan in als iets ongeldigs zoals "hostname NOBODY;".

ip
De vorm van de IP mask is user@ip. User is de ident, meestal wordt * gebruikt. IP is de IPmask. Enkele voorbeelden: *@* (iedereen), *@192.168.* (alleen vanaf IPs startende met 192.168), etc.

host
Ook weer een user@host mask. Voor user wordt meestal * gebruikt. Enkele voorbeelden: *@* (iedereen), *@*.planet.nl (alleen vanaf planet.nl).

password (optioneel)
Er is een wachtwoord nodig om een verbinding te maken. Je kan ook een wachtwoord met encryptie gebruiken.

class
De naam van de class waarin de connectie thuis hoort.

maxperip (optioneel, maar wordt aangeraden)
Je kunt een maximaal aantal connecties per IP instellen (bijv. maxperip 4;)

redirect-server (optioneel)
Wanneer de class vol is, worden de gebruikers naar deze server gestuurd (wanneer het programma het ondersteunt [mIRC 6+ does]).

redirect-port (optioneel)
Wanneer je een redirect-server hebt opgegeven, kun je ook een aparte poort opgeven. Wanneer je dit veld leeg laat, wordt poort 6667 genomen.

options block (optional)
geldige opties zijn::
   useip laat altijd het IP zien in plaats van de hostnaam
   noident gebruik geen ident maar gebruik de gebruikersnaam van de client
   ssl alleen geldig wanneer de gebruiker een connectie via SSL gebruikt
   nopasscont ga door met controle wanneer geen wachtwoord opgegeven is (zodat je gebruikers in speciale classes kan stoppen wanneer ze wel een wachtwoord geven).

Voorbeelden:

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

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

 

4.6 - Listen Block BENODIGD (Dit was de P:Line)

Syntax:

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

Dit blok geeft je de mogelijkheid in te stellen op welke poorten de IRCd moet luisteren. Wanneer geen opties nodig zijn, hoef je geen andere waardes te gebruiken. Je kan dan gewoon "listen <ip:port>;" gebruiken.

ip and port
Je kan het IP instellen als *, zodat er op beschikbare IPs geluisterd wordt. Of je geeft 1 IP op (meestal nodig bij shell providers). De poort is de poort waarop geluisterd moet worden. Je kan ook een poortreeks opgeven. Bijvoorbeeld 6660-6669 zal luisteren op de poorten 6660 tot en met 6669. IPv6 gebruikers, zie lager.

Info for IPv6 users
Wanneer je een server met IPv6 ondersteuning hebt, moet je het IP insluiten in haken. zoals [::1]:66667 (luister op localhost op poort 6667). Wanneer je IPv6 gebruikt en je wilt luisteren op een bepaald IPv4 address, moet je ::ffff:IPv4IP gebruiken. Bijvoorbeeld: [::ffff:203.123.67.1]:6667. Dit zorgt ervoor dat je IRCd luistert op 203.123.67.1 op poort 6667. Natuurlijk kun je ook gewoon * gebruiken.

options block (optional)
Je kan ook speciale opties opgeven met betrekking tot de poort. Geldige opties zijn:
clientsonly
poort kan alleen gebruikt worden door gebruikers
serversonly
poort kan alleen gebruikt worden door servers
java
CR javachat ondersteuning
ssl
SSL encrypted poort

Voorbeelden:

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

Of wanneer er geen opties zijn:

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

4.7 - Oper Block AANBEVOLEN (Dit was de O:Line)

oper <name> {
	from {
		userhost <hostmask>;
		userhost <hostmask>;
	};
	password <password> { <auth-type>; };
	class <class-name>;
	flags <flags>;
	flags {
		<flag>;
		<flag>;
		...
	};
	swhois <whois info>;
	snomask <snomask>;
	modes <modes>;
	maxlogins <num>;
};

Het oper block geeft je de mogelijkheid om IRC Operators aan te duiden voor je server. De oper:: geeft de inlog naam voor /oper. De oper::from::userhost is een user@host mask welke de gebruiker moet matchen. Je kan meerdere hostmasks opgeven door meerdere opers::from::userhost toe te voegen. De oper::password> is het wachtwoord van de gebruiker. oper::password:: geeft je de mogelijkheid om een authenticatie-methode op te geven voor het betreffende wachtwoord. Wanneer je een tekst-wachtwoord wilt gebruiken, laat je oper::password:: weg.

Merk op dat zowel de loginnaam als het wachtwoord hoofdlettergevoelig zijn.

oper::class zegt in welke class een oper zich bevindt. Deze class moet boven het oper block zelf staan.

oper::flags heeft 2 verschillende indelingen. Wanneer je de oude manier wilt gebruiken, bijvoorbeeld OAa, gebruik je de flags <flags> methode. Wanneer je de nieuwe manier wilt gebruiken, bijvoorbeeld services-admin, dan moet je de flags { <flag>; } methode gebruiken. Hieronder volgt een lijst met alle mogelijke flags, in beide methodes, en wat ze doen.

Oude Flag
Nieuwe Flag
Beschrijving
o
local
Maakt je een lokale Operator
O
global
Maakt je een globale Operator
C
coadmin
Maakt je een Co-Admin
A
admin
Maakt je een Admin
a
services-admin
Maakt je een Services Admin
N
netadmin
Maakt je een Netwerk Admin
r
can_rehash
Je mag /rehash gebruiken
D
can_die
Je mag /die gebruiken
R
can_restart
Je mag /restart gebruiken
h
helpop
Je krijgt de gebruikersmodus +h (Helpop)
w
can_wallops
Je kan een /wallops zenden
g
can_globops
Je kan een /globops zenden
c
can_localroute
Je kan lokale servers laten verbinden
L
can_globalroute
Je kan globale servers laten verbinden
k
can_localkill
Je kan een /kill uitoefenen op lokale gebruikers
K
can_globalkill
Je kan een /kill uitoefenen op globale gebruikers
b
can_kline
Je kan /kline gebruiken
B
can_unkline
Je kan /kline -user@host gebruiken
n
can_localnotice
Je kan lokale server berichten zenden
G
can_globalnotice
Je kan globale server berichten zenden
z
can_zline
Je kan /zline gebruiken
t
can_gkline
Je kan /gline, /shun en /spamfilter gebruiken
Z
can_gzline
Je kan /gzline gebruiken
W
get_umodew
Je krijgt gebruikersmodus +W wanneer je /oper doet
H
get_host
Je krijgt de speciale oper host
v
can_override
Je kan OperOverride gebruiken
q
can_setq
Je kan gebruikersmodus +q gebruiken
X
can_addline
Je kan /addline gebruiken
d
can_dccdeny
Je kan /dccdeny en /undccdeny gebruiken

Bepaalde flags geven je standaard ook andere flags:

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

oper::swhois geeft je de mogelijkheid een extra regel to the voegen aan de whois van de betreefende oper [optioneel]

oper::snomask geeft je de mogelijkheid in te stellen welke server berichten een oper automatisch ontvangt wanneer hij /oper doet. Voor een lijst van de snomasks, zie Sectie 3.3 [optioneel]

oper::modes geeft je de mogelijkheid een oper verschillende modi te geven wanneer hij /oper doet. [optioneel]

oper::maxlogins limiteert het aantal logins van de betreffende oper. Wanneer je dit bijvoorbeeld op 1 zet, kan maar 1 persoon oper zijn via dit blok. [optioneel]

Voorbeeld:

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

Wat informatie over OperOverride:
OperOverride geeft je de mogelijkheid om bijvoorbeeld een +ikl kanaal te joinen, om bans te omzeilen (je moet jezelf wel eerst /invite'n), jezelf oppen in een kanaal, etc.
De can_override flag is toegevoegd om te proberen het oper-misbruik te stoppen. Geen enkele oper kan standaard overriden, je moet ze dus expliciet de can_override flag geven.

4.8 - DRpass Block AANBEVOLEN (Dit was de X:Line)

Syntax:

drpass {
	restart <restart-password> { <auth-type>; };
	die <die-password> { <auth-type>; };
};

Dit blok zet de benodigde wachtwoorden voor /restart en /die. drpass::restart:: en ::drpass:die:: geven je de mogelijkheid om een authenticatie methode op te geven. crypt, md5, sha1 en ripemd-160 worden ondersteund.

Voorbeeld:

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

4.9 - Include Directive

Syntax:
include <file-name>;

Hiermee kun je externe configuratiebestanden laden. Het bestand mag elk type blok bevatten, en mag ook andere bestanden laden. Wildcards zijn ook toegestaan, zodat je meerdere bestanden tegelijk kan laden.

Voorbeeld 1: een netwerk bestand

include mynetwork.network;

Dit heb je nodig wanneer je een apart netwerk bestand wilt gebruiken. Deze is echter niet meer nodig, je kan alle informatie nu gewoon in unrealircd.conf plaatsen.

Voorbeeld 2: aliases

include aliases/ircservices.conf

Nog een voorbeeld is deze manier om alias blocks te laden. UnrealIRCd wordt geleverd met enkele bestanden welke de juiste aliases voor de meeste services bezitten:

4.10 - LoadModule Directive BENODIGD

Syntax:
loadmodule <file-name>;

Kijk hier waarom modules handig zijn.

Modules die standaard bij Unreal3.2 geleverd worden:

commands.so / commands.dll - Alle / commando's (nou, nog niet alle, maar binnenkort wel) BENODIGD
cloak.so / cloak.dll - Cloaking module BENODIGD (of een andere cloaking module)

Je moet deze modules laden:

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

of voor Windows:

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

4.11 - Log Block AANBEVOLEN

Syntax:

log <file-name> {
	maxsize <max-file-size>;
	flags {
		<flag>;
		<flag>;
		...
	};
};

Het log blok geeft je de mogelijkheid om verschillende dingen naar verschillende logbestanden weg te schrijven. log:: bevat de naam van het bestand. log::maxsize is optioneel. Het geeft je de mogelijkheid aan te geven hoe groot een logbestand maximaal mag worden. Je kan hier een afkorting gebruiken, MB voor megabytes, KB voor kilobytes, GB voor gigabytes. De log::flags geven aan welke gebeurtenissen gelogd moeten worden. Zie de lijst hier beneden

Je mag ook verschillende log blokken hebben, om verschillende dingen op te slaan in verschillende logbestanden.

Beschikbare flags:
errorslogt errors
killslogt /kill berichten
tkllogt informatie over *lines, shuns en spamfilters (toevoegen/verwijderen/verlopen)
connectslogt gebruikers die verbinding maken/verbreken
server-connectslogt server verbindingen/verbrekingen
klinelogt het gebruik van /kline
operlogt /oper pogingen (succesvolle en mislukte)
sadmin-commandslogt het gebruik van /sa* (samode, sajoin, sapart, etc.)
chg-commandslogt het gebruik van /chg* (chghost, chgname, chgident, etc.)
oper-overridelogt het gebruik van operoverride
spamfilterlogt spamfilter matches

Voorbeeld:

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

4.12 - TLD Block OPTIONEEL (Dit was de T:Line)

Syntax:

tld {
	mask <hostmask>;
	motd <motd-file>;
	rules <rules-file>;
	shortmotd <shortmotd-file>;
	opermotd <opermotd-file>;
	botmotd <botmotd-file>;
	channel <channel-name>;
	options {
		ssl;
	};
};

Het TLD blok geeft je de mogelijkheid om een MOTD, rules en kanaal op te geven voor een gebruiker op basis van zijn/haar host. Dit is handig wanneer je MOTDs in verschillende talen wilt gebruiken. De tld::mask is een user@host mask welke de gebruiker moet matchen. De tld::motd, tld::shortmotd, tld::opermotd, tld::botmotd en tld::rules specificeren de motd, shortmotd, opermotd, botmotd en rules bestand welke gebruikt moeten worden voor een bepaalde host. De tld::shortmotd, tld::opermotd en tld::botmotd zijn optioneel. tld::channel is tevens optioneel. Het geeft je de mogelijkheid een gebruiker een kanaal te laten joinen wanneer hij/zij verbinding maakt met je server. Wanneer deze bestaat, zal het standaard auto-join kanaal overschreven worden. Het tld::options blok geeft je de mogelijkheid om extra benodigdheden op te stellen. Op dit moment kun je tld::options::ssl, voor die gebruik maken van een SSL connectie, en tld::options::remote, voor mensen die van een andere server de MOTD vragen, gebruiken.

TLD blokken worden van onder naar boven gelezen.

Voorbeeld:

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

4.13 - Ban Nick Block OPTIONEEL (Dit was de Q:Line)

Syntax:

ban nick {
mask <nickname>; reason <reason-for-ban>; };

Het ban nick blok zorgt ervoor dat een bepaalde naam niet gebruikt mag worden op de server. Wildcards zijn toegestaan in de ban::mask, om meerdere namen in te stellen. ban::reason geeft je de mogelijkheid om een reden te gebruiken. Meestal wordt dit block gebruikt om de namen van meest gebruikte Services te beschermen.

Voorbeeld:

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

4.14 - Ban User Block OPTIONEEL (Dit was de K:Line)

Syntax:

ban user {
	mask <hostmask>;
	reason <reason-for-ban>;
};

Dit blok zorgt ervoor dat je een user@host kan beletten tot het verbinden met de server. Wildcards zijn toegestaan in ban::mask, en ban::reason is de reden tot de ban. Let op; dit is alleen lokaal, dus de gebruiker kan nog wel verbinden met een server elders in het netwerk.

Voorbeeld:

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

4.15 - Ban IP Block OPTIONEEL (Dit was de Z:Line)

Syntax:

ban ip {
	mask <ipmask>;
	reason <reason-for-ban>;
};

Dit blok zorgt ervoor dat je een bepaald IP kan beletten tot het verbinden met de server. Gebruikers en servers zijn hierbij inbegrepen. ban::mask bevat het IP dat je wil bannen, wildcards zijn toegestaan. ban::reason is de reden. Omdat deze ban ook betrekking heeft op servers, moet je voorzichtig zijn met het gebruik ervan.

Voorbeeld:

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

4.16 - Ban Server Block OPTIONEEL (Dit was de q:Line)

Syntax:

ban server {
	mask <server-name>;
	reason <reason-for-ban>;
};

Dit blok zorgt ervoor dat een server niet meer kan verbinden met het netwerk. Wanneer de server naar jouw server linkt, zal de connectie geweigerd worden. Wanneer de server naar een andere server in het netwerk linkt, zal de lokale server de verbinding met het netwerk verbreken. ban::server is de naam van de server die je wil bannen, wildcards zijn toegestaan. ban::reason is de reden van plaatsing.

Voorbeeld:

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

4.17 - Ban RealName Block OPTIONEEL (Dit was de n:Line)

Syntax:

ban realname {
	mask <realname-mask>;
	reason <reason-for-ban>;
};

Het ban realname blok geeft je de mogelijkheid om een gebruiker te bannen op basis van zijn/haar GECOS (realname, echte naam). Dit is bruikbaar om clone floods te stoppen, omdat clones meestal dezelfde realname gebruiken. ban::mask is de realname die je wil bannen, wildcards zijn toegestaan. ban::reason is de reden.

Voorbeeld:

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

4.18 - Ban Version Block OPTIONEEL

Syntax:

ban version {
	mask <version-mask>;
	reason <reason-for-ban>;
	action [kill|tempshun|shun|kline|zline|gline|gzline];
};

Dit blok zorgt ervoor dat je een gebruiker op basis van het IRC programma kan bannen. Het vraagt de CTCP version van de gebruiker, en controleert dan of deze is toegestaan. Wanneer een gebruiker geen CTCP version antwoord heeft, zal de ban niet werken. Dit blok geeft je alleen de mogelijkheid om boosaardige scripts te bannen. ban::mask is de versie die je wil bannen, wildcards zijn toegestaan. ban::Reason is de reden. Je kan ook een actie die ondernomen moet worden instellen, door middel van ban::action. Een kill is de standaardwaarde. tempshun zal de gebruiker alleen deze verbinding /shun'n, wat zeer effectief is zombies/bots met dynamische IPs omdat het geen onschuldige gebruikers zal schaden. shun/kline/zline/gline/gzline zal een ban plaatsen van het opgegeven type op het IP (*@IP). De duur van deze bans kan ingesteld worden door set::ban-version-tkl-time. De standaardwaarde is 1 day.

Voorbeeld:

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

4.19 - Ban Exceptions Block OPTIONEEL (Dit was de E:Line)

Syntax:

except ban {
	mask <hostmask>;
};

Door middel van dit blok kun je een user@host opgeven, welke een ban zal overslaan. Dit is handig wanneer je een ISP wilt bannen, maar enkele gebruikers nog steeds op je netwerk wil toestaan. except::mask bevat de user@host van de gebruiker die je niet wil bannen.

Voorbeeld:

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

4.20 - TKL Exceptions Block OPTIONEEL

Syntax:

except tkl {
	mask <hostmask>;
	type <type>;
	type { 
		<type>;
		<type>;
		...
	};
};

Dit blok zorgt ervoor dat de user@host een tkl ban op een bredere host zal overslaan. Dit is handig wanneer je een ISP wil bannen, maar enkele gebruikers nog steeds op je netwerk wil toestaan. except::mask is de user@host die je wil toestaan. except::type is het type ban dat je wil overslaan. Geldige types zijn gline, gzline, qline, gqline en shun (Glines, Global Zlines, Qlines, Global Qlines, shuns). Wanneer je het formaat { } gebruikt, zijn meerdere types toegestaan.

Voorbeeld:

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

4.21 - Throttle Exceptions Block OPTIONEEL

Syntax:

except throttle {
	mask <ipmask>;
};

Met dit blok kun je een IP mask instellen dat het throttling systeem zal overslaan. Het werkt alleen wanneer je throttling ingeschakeld hebt. except::mask bevat het IP dat niet gebanned moet worden.

Voorbeeld

except throttle {
	mask 192.168.1.*;
};

4.22 - Deny DCC Block OPTIONEEL (Dit was dccdeny.conf)

Syntax:

deny dcc {
	filename <file-to-block>;
	reason <reason-for-ban>;
	soft [yes|no];
};

Door middel van dit blok kun je instellen welke bestandsnamen niet verzonden mogen worden via DCC over de server. Dit is zeer effectief om de verspreiding van trojans en virii te stoppen.

deny::filename geeft aan welke bestandsnaam niet is toegestaan. Wildcards hierin zijn toegestaan. deny::reason is de reden tot het blokkeren.

Er is ook een deny::soft optie; wanneer deze op ýes' staat, wordt de DCC geblokkeerd, tenzij de gebruiker het expliciet toelaat door middel van /DCCALLOW +naam-van-degene-die-zendt. Zie dccallow.conf voor een goede voorbeeld configuratie.

Voorbeeld

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

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

4.23 - Deny Version Block OPTIONEEL (Dit was de V:Line)

Syntax:

deny version {
	mask <server-name>;
	version <version-number>;
	flags <compile-flags>;
};

Dit blok geeft je de mogelijkheid om een server te blokkeren, op basis van de versie die de server draait of welke compile opties gebruikt zijn. Het formaat is misschien een beetje moeilijk, maar makkelijk te snappen. deny::mask is een wildcard op de naam van de server die niet mag linken. deny::version is de protocol-versie die geweigerd moet worden.

Als voorbeeld, 3.0 is 2302, 3.1.1/3.1.2 is 2302 en 3.2 is 2303. Het eerste teken van deze parameter mag >, <, =, of ! zijn. Dit eerste teken zegt UnrealIRCd hoe ze moet omgaan met de versie. Als het eerste teken een > is, worden alle versies groter dan de opgegeven versie geweigerd. Wanneer het een < is, worden alle versies lager geweigerd. Wanneer het een = is, wordt alleen die versie geweigerd. Wanneer je een ! opgeeft, worden alle versies behalve deze geweigerd. deny::flags geeft je de mogelijkheid om aan te geven welke flags wel of niet gebruikt mogen zijn ten tijde van het compilen. De flags moeten achter elkaar geplaatst worden, zonder tussenkomst van andere tekens. Wanneer je een ! als voorvoegsel gebruikt, mag de flag niet gebruikt worden. Wanneer je geen ! gebruikt, moet de server deze flag wel bezitten.

4.24 - Deny Link Block OPTIONEEL (Dit was de D/d:Line)

Syntax:

deny link {
	mask <server-name>;
	rule <crule-expression>;
	type <type-of-denial>;
};

Dit blok geeft je de mogelijkheid om een server te weigeren aan de hand van enkele voorwaardes. deny::mask is een wildcard op de servernaam waarop de regels betrekking moeten hebben. deny::rule is zeer complex. Je krijgt de mogelijkheid om in groot detail op te geven wat je wil. connected(<servermask>) geeft true wanneer een server verbonden is met een server die servermask matcht. directcon(<servermask>) geeft true wanneer de server, die met servermask matcht, direct verbonden is met deze server. via(<viamask>,<servermask>) geeft true wanneer een server, die met servermask matcht, verbonden is met een server die matcht met viamask. Tenslotte, directop() geeft true wanneer een oper die de /connect heeft gegeven daadwerkelijk op deze server zit. Je kan deze 4 vormen door elkaar gebruiken met behulp van && (and/en) en || (or/of). Je kan ze ook tussen haakjes ( '( )' ) zetten, om groepen te vormen. Wanneer een van de vormen vooraf gegaan wordt door een !, wordt er gecontroleerd of de vorm false is. Wanneer de vorm true geeft, wordt de server geweigerd. deny::type bestaat uit 2 vormen, auto (van toepassing op autoconnects, /connect werkt nog steeds), en all (van toepassing op alle verbindingspogingen).

4.25 - Deny Channel Block OPTIONEEL (Previously known as chrestrict.conf)

Syntax:

deny channel {
	channel "<channel-mask>";
	reason <reason-for-ban>;
	redirect "<channel-name>";
	warn [on|off];
};

Je kan met dit blok instellen dat gebruikers sommige kanalen niet mogen gebruiken. deny::channel is de naam van het kanaal dat geweigerd moet worden, en mag wildcards bevatten. deny::reason is de reden tot het weigeren. Optioneel kun je ook deny::redirect instellen. De gebruiker wordt dan naar dit kanaal gestuurd in plaats van naar deny::channel. deny::warn zal, mits het aangezet is, een bericht zenden naar alle opers (door middel van EYES snomask) wanneer een gebruiker het verboden kanaal wil joinen.

Voorbeeld

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

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

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

4.26 - Allow Channel Block OPTIONEEL

Syntax:

allow channel {
	channel "<channel-mask>";
};

Door dit blok geef je gebruikers de mogelijkheid om bepaalde kanalen wel toe te staan. allow::channel is het kanaal dat wel gejoined mag worden, wildcards zijn toegestaan

Voorbeeld:

allow channel {
	channel "#something";
};

4.27 - Allow DCC Block OPTIONEEL

Syntax:

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

Hiermee kun je uitzonderingen voor het denydcc block instellen. Wildcards zijn toegestaan. Wanneer allow dcc:soft op 'yes' staat, valt het onder 'soft dcc bans'. Wanneer het op 'no' staat, valt het onder de normale ('hard') dcc bans.

Voorbeeld:

allow dcc {
	filename "*.jpg"; /* Images are usually safe */
	soft yes;
};

4.28 - Vhost Block OPTIONEEL (Dit was vhosts.conf)

Syntax:

vhost {
	vhost <vhost>;
	from {
		userhost <hostmask>;
		userhost <hostmask>;
		...
	};
	login <login-name>;
	password <password> { <auth-type>; };
	swhois "<swhois info>";
};

Je kan een inlognaam en wachtwoord opgeven, zodat iemand het /vhost commando kan gebruiken. vhost::vhost kan een user@host zijn, of gewoon een host die de gebruiker zal krijgen wanneer hij met succes /vhost uitvoert. vhost::from::userhost bevat een user@host welke de gebruiker moet matchen om in aanmerking te komen voor deze vhost. Je mag meerdere userhosts invoeren. vhost::login is de inlognaam die gebruikt moet worden, en vhost::password is het wachtwoord. Door middel van vhost::password:: kun je een authenticatie type opgeven. Op dit moment kan dat zijn; crypt, md5, sha1 en ripemd-160. Als laatste kun je met vhost::swhois een extra regel toevoegen aan een whois, net zoals de oper::swhois.

Voorbeeld:

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

4.29 - Badword Block OPTIONEEL (Dit was badwords.*.conf)

Syntax:

badword <type> {
	word <text-to-match>;
	replace <replace-with>;
	action <replace|block>;
};

Met dit blok kun je een lijst opstellen van woorden die vervangen moeten worden wanneer gebruikers +G hebben of een kanaal +G heeft. badword:: geeft het type aan; geldige types zijn channel, message, quit en all. channel is voor kanalen met +G, message voor gebruikers met +G, quit om quit berichten te censureren en all voor alle drie deze dingen. badword::word kan gewoon een woord zijn, of een reguliere expressie waarnaar we zoeken. badword::replace is het woord waarmee we badword::word moeten vervangen. Wanneer badword::replace leeg is, zal het woord vervangen worden door <censored>. Met badword::action kun je een actie instellen die ondernomen moet worden wanneer een woord gevonden wordt. Wanneer je hier replace invult, wordt het woord vervangen. Wanneer je block invult, wordt het hele bericht geblokkeerd. Wanneer je badword::action leeg laat, wordt er uitgegaan van replace.

Voorbeeld:

badword channel {
	word shit;
	replace shoot;
};

4.30 - ULines Block OPTIONEEL (Dit was de U:Line)

Syntax:

ulines {
	<server-name>;
	<server-name>;
	...
};

U:lines geven bepaalde servers extra mogelijkheden. Dit moet gebruikt worden voor Services en Stats, dus niet voor normale servers. Elke regel is de naam van de server die extra mogelijkheden ontvangen moet.

Voorbeeld

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

4.31 - Link Block OPTIONEEL (Previously known as C/N/H:Lines)

Syntax:

link <server-name> {
	username <usermask>;
	hostname <ipmask>;
	bind-ip <ip-to-bind-to>;
	port <port-to-connect-on>;
	password-connect <password-to-connect-with>;
	password-receive <password-to-receive> { <auth-type>; };
	hub <hub-mask>;
	leaf <leaf-mask>;
	leafdepth <depth>;
	class <class-name>;
	ciphers <ssl-ciphers>;
	options {
		<option>;
		<option>;
		...
	};
};

Dit blok is nodig voor het linken van servers. Neem de tijd om dit door te nemen, dit is een van de moeilijkste dingen en gebruikers maken hier vaak fouten.

server-name is de naam van de andere server, de naam die de server in zijn me { } block heeft, zoals hub.blah.com (niet het IP en kan verschillen van de hostnaam).

username
Je kan een ident opgeven voor authenticatie, normaal zet je dit op "*".

hostname
De hostnaam of het IP van de andere server. Dit wordt gebruikt voor het verbinden EN de authenticatie van de inkomende connectie. Enkele voorbeelden:
1.2.3.4 gewone IP
hub.blah.com host: alleen voor uitgaand, kan geen _inkomende_ connecties accepteren tenzij link::options::nohostcheck is ingesteld
* kan niet verbinden NAAR maar zal alle server connecties (met het juiste wachtwoord) accepteren
::ffff:1.2.3.4 voor het linken van IPv6 naar IPv4

bind-ip (optional)
Kan gebruikt worden om een specifiek IP te binden (bijv. 192.168.0.1) van waaruit we moeten verbinden. Wordt zelden gebruikt.

port
Poort waar naartoe we moeten verbinden (op welke de andere server luistert).

password-connect
Het wachtwoord voor het verbinden met de andere server, moet gewone tekst zijn.

password-receive
Het wachtwoord dat we ontvangen van de andere server. Kan encrypted zijn (crypt, md5, sha1 of ripemd-160). Je kan de authenticatie parameter weglaten wanneer je gewone tekst wilt gebruiken. Dit wachtwoord is meestal hetzelfde als password-connect.

hub vs leaf
Een hub heeft meerdere servers aan zich gelinkt, een leaf heeft maar 1 server.. naar jou. Een server is altijd een leaf, tenzij je hub instelt. Ze is ook een leaf als je leaf * hebt, of leafdepth 1 is.

hub (optioneel)
De waarde is de mask van de servers waarmee deze hub mag verbinden (bijv. *.my.net)

leaf (optioneel)
De waarde is de mask waartegen deze hub niet> mag verbinden. Als je * instelt krijg je hetzelfde effect als geen hub directive instellen.

leaf-depth (optioneel)
Deze waarde geeft aan hoeveel hops (aantal servers) deze server onder zich mag hebben. Bijvoorbeeld, 1 betekent dat deze server geen enkele andere server onder zich mag hebben (een leaf). 2 betekent dat er gelinkt mag worden naar servers die geen servers onder zich hebben (een hub die alleen leafs linkt). De waarde 0 betekent geen limiet en is de standaard waarde.

class
De class waarin de server geplaatst wordt. Meestal is er een aparte server-class.

compression-level (optioneel)
De waarde is het compressie-level (1-9). Wordt alleen gebruikt wanneer link::options::zip ook wordt gebruikt.

ciphers (optioneel)
Zegt welke SSL sleutels gebruikt moeten worden voor deze link. Om een lijst te krijgen van de beschikbare sleutels, gebruik "openssl ciphers". Sleutels moeten gescheiden worden door een :.

options block
Je kan een of meerdere opties gebruiken. Soms is dit niet nodig.
ssl wanneer je op een SSL poort verbindt.
autoconnect de server zal automatisch proberen te verbinden, tijd staat in je class::connfreq (het werkt het beste wanneer dit van 1 kant wordt ingesteld, zoals leaf->hub).
zip wanneer je gecomprimeerde links wil gebruiken, moet je hiermee compilen + gezet worden op beide servers.
nodnscache sla het IP voor de uitgaande server connectie niet op. Gebruik dit wanneer de host vaak verandert (zoals dyndns.org).
nohostcheck valideer de andere host (link::hostname) niet. Gebruik dit wanneer de host vaak verandert (zoals dyndns.org)
quarantine opers op deze server kunnen geen globale rechten krijgen (alleen lokale), anders worden ze gekilled. Handig voor test servers e.d.

Voorbeeld:

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

4.32 - Alias Block OPTIONEEL

Syntax [standard alias]:

alias <name> {
	target <nick-to-forward-to>;
	type <type-of-alias>;
	spamfilter <yes|no>;
};

(Opmerking: kijk ook hier voor informatie over de standaard alias files van UnrealIRCd)

Met alias blok [standaard alias] kun je een commando van een gebruiker doorsturen naar iemand anders. Bijvoorbeeld /chanserv zendt een bericht naar ChanServ. alias:: is de naam van het commando dat je wil doorsturen (bv chanserv), alias::target is het doel waarnaar het commando gestuurd moet worden. Dit kan een gebruiker of een kanaal zijn. Wanneer alias:: hetzelfde is als het doel, kun je alias::target ook weglaten. alias::type is het type. Geldige types zijn services (doel zit op de services-server), stats (doel zit op de stats-server), normal (doel zit op een willekeurige server) of channel (doel is een kanaal). Wanneer alias::spamfilter (optioneel) op 'yes' staat, worden spamfilters gecontroleerd. Standaard staat dit uit ('no').
Het alias blok heeft nog een doel, wat hieronder wordt uitgelegd.

Syntax [command alias]:

alias <name> {
	/* Voor aliases die gezonden moeten worden naar gebruikers/channels */
	format <regex-expression> {
		target <nick-to-forward-to>;
		type <type-of-alias>;
		parameters <parameter-string>;
	};

	/* Voor 'echte aliases' */	
         format <regex-expression> {	
                 command <command>;	
                 type real;	
                 parameters <parameter-string>;	
         };	
         /* Etc... Je kan zoveel blokken als je wilt instellen.. */


	format <regex-expression> {
		...
	};
	type command;
	spamfilter <yes|no>;
};

Wanneer het alias block gebruikt wordt in dit formaat, heeft het een veel bredere functie. Je kan bijvoorbeeld /identify maken. alias:: is hetzelfde als hierboven, de naam van het alias commando. alias::format is de reguliere expressie die de tekst, meegegeven door het commando, controleert. Wanneer dit matcht, worden de regels eronder uitgevoerd. Je kan meerdere formats opgeven, zodat hetzelfde commando meerdere functies krijgt, afhangend van de tekst die gezonden wordt. alias::format::target is het doel waarnaar het bericht gezonden moet worden. Als een 'echte alias' gebruikt wordt, zal het bericht echter naar alias::format::command gezonden worden. alias::format::type is het type. Behalve de types die we in "Syntax [standard alias" behandeld hebben, is ook het type "real" toegestaan voor "echte aliases". alias::format::parameters is de tekst die gezonden moet worden. Dit is een % gevolgd door een nummer. Wanneer je alles na een bepaald nummer wil zenden, doe het nummer dat je wilt (bijv 2), met een - erachter, dus %2-. Dit stuurt alle tekst vanaf het tweede tot het laatste woord. Je kan ook %n gebruiken om de naam van degene die het commando mee te sturen.

Voor voorbeelden betreffende het gebruik van het alias block, zie doc/example.nl.conf.

4.33 - Help Block OPTIONEEL

Syntax:

help <name> {
	<text-line>;
	<text-line>;
	...
};

(Note: normally you just include help.conf)

Met het help blok kun je dingen toevoegen aan /helpop. help:: is de waarde die moet worden meegegeven aan /helpop, als parameter. Wanneer help:: leeg wordt gelaten, hoeft geen parameter aan /helpop te worden meegegeven. De waardes voor het help blok zijn de teksten die moeten worden weergegeven.

4.34 - Official Channels Block OPTIONEEL

Syntax:

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

Officiële kanalen worden weergegeven in /list, ook als er geen gebruikers in het kanaal zitten. topic is optioneel, en wordt alleen weergegeven in /list wanneer er 0 gebruikers zijn.

Voorbeeld:

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

4.35 - Spamfilter Block OPTIONEEL

Het spamfilter blok laat je lokale spamfilters toevoegen (dus niet over het gehele netwerk).
Zie Features - Spamfilter voor meer informatie over spamfilters.

Syntax:

spamfilter {
	regex <word>;
	target { <target(s)> };
	action <action>;
	reason <reason>;
	ban-time <time>;
};

regex is de regex waaraan voldaan moet worden
target is het doel, zie hier voor een lijst (bijv: 'channel').
action sis de actie die ondernomen moet worden, zie hier voor een lijst (bijv: 'gline').
reason optioneel: geeft een reden, anders wordt de standaardwaarde gebruikt.
ban-time optioneel: geeft de duur aan, standaard 1 dag.

Voorbeelden:

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

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

4.36 - Cgiirc Block OPTIONEEL

The cgiirc block allows you to configure host spoofing for CGI:IRC gateways you trust (more info).

Syntax:

	
cgiirc {	
        type <webirc|old>;	
        username <mask>; /* optioneel */	
        hostname <mask>;	
        password <password>; /* alleen voor het type webirc */	
};

type is ofwel 'webirc' ofwel 'old'.
username wordt gecontroleerd op de ident (als deze er is. Zo niet, dan wordt "*" aangenomen.
hostname wordt de hostnaam op gematched.
password is het webirc wachtwoord, alleen gebruiken bij type 'webirc'.

Hoe te configureren met 'webirc' (aangeraden methode)
In je CGI:IRC configuratiebestand (cgiirc.conf) stel je webirc_password in op een goed wachtwoord.
Daarna voeg je aan unrealircd.conf een cgiirc block toe, om de host en het wachtwoord toe te staan, en stel je cgiirc::type in op 'webirc'.

Voorbeeld:
In je CGI:IRC configuratiebstand (cgiirc.conf) voeg je toe:

webirc_password = LpT4xqPI5
Daarna voeg je dit cgiirc block toe aan je unrealircd.conf:
cgiirc {	
        type webirc;	
        hostname "1.2.3.4";	
        password "LpT4xqPI5";	
};

Hoe te configureren met de methode 'old'
Opmerking: Deze methode wordt niet aangeraden omdat ze 2 nadelen heeft: Deze methode zendt de IP/host om te spoofen als server wachtwoord, wat inhoudt dat je geen server wachtwoord als CGI:IRC gebruiker kan opgegeven. Bijkomend is dat de toegang alleen per IP te bepalen is, en niet met een wachtwoord zoals met de 'webirc' methode. Je moet deze methode dus niet gebruiken, alleen als je er een goede reden voor hebt.

In je CGI:IRC configuratiebestand (cgiirc.conf) zet je realhost_as_password op 1.
Daarna voeg je een cgiirc block toe aan je unrealircd.conf om deze host toe te staan.

Voorbeeld:
In je CGI:IRC configuratiebstand (cgiirc.conf) voeg je toe:

realhost_as_password = 1
Daarna voeg je dit cgiirc block toe aan je unrealircd.conf:
cgiirc {	
        type old;	
        hostname "1.2.3.4";	
};

4.37 - Set Block BENODIGD (Dit was unrealircd.conf/networks file)

Dit blok was eerder ons networks/unrealircd.conf en ons netwerk bestand. Op een netwerk met maar 1 server is het makkelijker om deze 3 bestanden te combineren in 1 bestand door middel van de set:: in unrealircd.conf. Op netwerken met meerdere servers kun je het beste aparte netwerk bestanden gebruiken.

Wanneer je server deel uitmaakt van een netwerk, zullen de meeste instellingen hetzelfde zijn. Daarom is het handig om 1 netwerk bestand te kunnen laden. Zie include voor meer informatie. Nu volgt een lijst met beschikbare opties voor set::.

Syntax:

set {
	<entry> <value>;
	<entry> <value>;
	...
};

Met het set blok kun je individuele opties instellen voor je server. Elk ding doet iets anders, en zal om deze reden hieronder beschreven worden. Sommige dingen hebben nog dingen onder zich, welke ook beschreven zullen worden. Er zijn veel set opties om te beschreven, alles hieronder kan geschreven worden in EEN set block.

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

Je kan een set block ook op 1 regel zetten. Dit maakt het wel onoverzichtelijk.
Voorbeeld:
set { options { hide-ulines; no-stealth; }; };

set::kline-address <email-address>;
Het email adres naar waar K:Line vragen gezonden kunnen worden. Deze waarde moet ingevuld worden.

set::gline-address <email-address>;
Het email adres naar waar G:Line vragen gezonden kunnen worden.

set::modes-on-connect <+modes>;
De modi die de gebruiker ontvangt zodra hij verbindt.

set::snomask-on-connect <+modes>
De snomask die een gebruiker ontvangt zodra hij verbindt.

set::modes-on-oper <+modes>;
De modi die een gebruiker ontvangt wanneer hij /oper't.

set::snomask-on-oper <+modes>;
De snomask die een gebruiker ontvangt wanneer hij /oper't.

set::modes-on-join <+modes>;
De modi die op een kanaal worden gezet zodra deze wordt gemaakt. Niet alle modi kunnen gebruikt worden. +qaohvbeOAzlLk kunnen NIET gezet worden door dit commando.

set::restrict-usermodes <modes>
Weerhoudt gebruikers ervan om deze modi te zetten/verwijderen (gebuik geen + of -).
Voorbeeld: je kan +G in modes-on-connect zetten en G in retrict-usermodes. Op deze manier behouden gebruikers altijd +G.

set::restrict-channelmodes <modes>
Weerhoudt gebruikers ervan deze modi te zetten/verwijderen op een kanaal (gebruik geen + of -).
voorbeeld: je kan +G in modes-on-join zetten en G in restrict-channelmodes. Op deze manier zal een kanaal altijd +G houden.
Opmerking: Je kan deze modi wel nog aanpassen via MLOCK in Services. Helaas kunnen wij hier niets aan doen.

set::restrict-extendedbans <types|*>
Weerhoudt gebruikers ervan om uitgebreide bans ("*") te zetten, of sta bepaalde bans (bijv. "gc") niet toe.

set::auto-join <channels>;
Het/De kanaal/kanalen welke gebruikers automatisch joinen wanneer ze verbinden. Wanneer je meerdere kanelen wilt gebruiken, scheidt ze door een komma.
[Opmerking: vergeet de aanhalingstekens niet, dus: autojoin "#chan";]

set::oper-auto-join <channels>;
Het/De kanaal/kanalen welke een oper automatisch joint wanneer hij /oper't. Om meerdere kanelen in stellen, scheidt ze door een komma.
[Opmerking: vergeet de aanhalingstekens niet, dus: autojoin "#chan";]

set::anti-spam-quit-message-time <timevalue>;
Een tijdswaarde die zegt hoelang een gebruiker verbonden moet zijn voordat een /quit bericht wordt afgebeeld. Gebruikt om spam tegen te gaan. De waarde is een numerieke string waarin d voor dag staan, h voor uur, m voor minute en s voor seconde. Voorbeeld: 1d2h3m betekent 1 dag, 2 uur en 3 minuten.

set::prefix-quit <text-to-prefix-quit>;
Stelt een voorvoegsel in voor quit berichten. Wanneer deze ingesteld wordt op 0, zal er "Quit: " gebruikt worden.

set::static-quit <quit message>;
Zet een standaard quit bericht, dat altijd gezonden wordt wanneer een gebruiker de verbinding verbreekt. anit-spam-quit-message-time is niet meer nodig, evenals set::prefix-quit, wanneer je dit gebruikt. Het vervangt GEEN problemen met static-quit berichten.

set::static-part <no|yes|part message>;
Wanneer dit op 'yes' staat, worden alle part berichten weggehaald. Wanneer het op 'no' staat, werkt het zoals gewoon. Al het andere kan ook gebruikt worden, bijvoorbeeld static-part "Bye!". Dit kan irritant worden, dus gebruik het wijs.

set::who-limit <limit>;
Zet een limiet op het maximaal aantal resultaten dat een /who geeft. Wanneer je dit weglaat, is er geen limiet.

set::silence-limit <limit>;
Zet een limiet op de maximale grootte van de SILENCE lijst. Wanneer je dit weglaat, staat het limiet op 15.

set::maxbans <limit>;
Stelt het maximum toegestane aantal bans per kanaal in. Standaard staat dit op 60. Indien je dit wijzigt, vergeet dan niet ook naar de maxbanlength instelling te kijken (zie volgende)!

set::maxbanlength <limit>;
Lijkt op voorgaande, maar dit stelt het maximum aantal tekens van alle bans tezamen in, kortgezegd zet je d.m.v. deze instelling dus een (semi-)maximum op de hoeveelheid geheugen die gebruikt kan worden voor alle bans per kanaal. Standaard staat dit op 2048 (bytes). Tezamen met de set::maxbans standaard instelling van 60 laat dit dus gemiddeld 2048:60=34 tekens per ban toe.

set::oper-only-stats <stats-list>;
Stelt de modi in die alleen door opers gebruikt mogen worden. De flags worden door niets gescheiden. Je kan dit leeg laten als je wilt dat iedereen alle flags mag gebruiken, of een * wanneer je wilt dat gebruikers geen enkele modus mogen gebruiken. Alleen korte flags mogen gebruikt worden hier.

set::oper-only-stats {<stats-flag>; <stats-flag>;};
Stelt de stats flags in die alleen gebruikt mogen worden door opers. Dit werkt alleen met lange stats flags.

set::maxchannelsperuser <amount-of-channels>;
Stelt het aantal kanalen in waarin een gebruiker zich tegelijk mag bevinden.

set::maxdccallow <amount-of-entries>;
Stelt het maximaal aantal invoeringen in dat een gebruiker mag hebben in zijn/haar DCCALLOW lijst.

set::channel-command-prefix <command-prefixes>;
Stelt het voorvoegsel dat nodig is voor Services "in kanaal commando's". Berichten die starten met het ingestelde teken worden nog steeds gezonden zelfs als de gebruiker +d heeft. De standaardwaarde is "`!.".

set::allowed-nickchars { <list> };
Character sets / talen die toegestaan zijn in namen, zie Nick Character Sets.

set::allow-userhost-change [never|always|not-on-channels|force-rejoin]
Geeft aan wanneer een user@host mag veranderen (+x/-x/chghost/chgident/setident/vhost/etc).
never blokkeert alle commando's, always betekent altijd zelfs in kanalen (kan een desync veroorzaken) [default], not-on-channels betekent dat het toegestaan is wanneer een gebruiker zich niet op een kanaal bevindt, force-rejoin zal een rejoin voor alle kanalen doen, en de status (voice/op etc) teruggeven.

set::options::hide-ulines;
Wanneer dit aanstaat, zullen U:Lined servers niet zichtbaar zijn in /links voor non-opers.

set::options::flat-map;
Wanneer dit aanstaat, zullen alle servers als direct gelinkt staat in /map en /links, dus je kan niet zien welke server aan welke gelinkt is. Dit helpt een beetje tegen (D)DoS aanvallen, omdat de gemene mensen geen zwakke punten kunnen zien.

set::options::show-opermotd;
Wanneer dit aanstaat, zal de opermotd getoond worden na een successvolle /oper.

set::options::identd-check;
Wanneer dit aanstaat, zal de aanwezigheid van een ident server gecontroleerd worden, en de gegeven waarde zal als gebruikersnaam gebruikt worden. Wanneer er niets terug gegeven wordt, zal de door de gebruiker gespecificeerde naam gebruikt worden, met het voorvoegsel ~. Wanneer dit uitstaat, zal er niet gecontroleerd worden op een ident server.

set::options::show-connect-info;
Als dit aanstaat, zullen de berichten "ident request", "hostname lookup" etc weergegeven worden zodra een gebruiker een verbinding maakt.

set::options::dont-resolve;
Wanneer dit aanstaat zal de host van gebruikers niet geresolved worden. Dit kan handig zijn als vele gebruikers een host hebben die niet snel verbindt.

Let op dat je geen op host gebaseerde blokken kan hebben, omdat de host niet geresolved wordt.

set::options::mkpasswd-for-everyone;
Stelt in dat /mkpasswd door iedereen gebruikt kan worden, in plaats van door opers alleen. Het gebruik van dit commando door normale gebruikers zal door middel van een EYES snomask kenbaar worden gemaakt.

set::options::allow-part-if-shunned;
Staat een shunned gebruiker toe /part te gebruiken.

set::options::fail-oper-warn;
Als dit aanstaat, zal een gebruiker erop geattendeerd worden dat de mislukte /oper wordt gelogd.

set::dns::timeout <timevalue>;
Een tijdsduur die specificeert hoelang een DNS server erover mag doen voordat er een timeout volgt. De tijd is een numerieke waarde, waarin de d voor dag staat, de h voor uur, m voor minute en s voor seconde. Voorbeeld: 1d2h3m betekent 1 dag, 2 uur en 3 minuten (NOG NIET INGEVOERD).

set::dns::retries <number-of-retries>;
Een numerieke waarde die instelt hoeveel keer er opnieuw geprobeerd moet worden een DNS lookup te voltooien (NOG NIET INGEVOERD).

set::dns::nameserver <name-of-dns-server>;
De hostnaam die gebruikt moet worden voor een DNS lookup (NOG NIET INGEVOERD).

set::dns::bind-ip <ip>;
Het IP waaraan gebonden moet worden voor het resolven. Bijna nooit nodig.

set::network-name <name-of-network>;
De naam van het netwerk waar deze server deel van uitmaakt. Deze waarde moet precies gelijk zijn op alle servers.

set::default-server <server-name>;
De standaardserver waarnaar verbonden moet worden wanneer deze server vol is.

set::services-server <server-name>;
De naam van de server waar de Services op lopen. Benodigd, maak er services.yournet.com van wanneer je geen Services hebt.

set::stats-server <server-name>;
De naam van de server waar de Stats bot op loopt. Als er geen Stats bot is, kan deze waarde worden weggelaten.

set::help-channel <network-help-channel>;
De naam van het help kanaal op dit netwerk.

set::cloak-keys { "key1"; "key2"; "key3"; };
De sleutels die gebruikt worden om een +x host te generen. De sleutels moeten op alle servers binnen het netwerk hezelfde zijn, anders linken de servers niet. Elk van de 3 sleutels moet een string van 5 tot 100 tekens zijn (10 tot 20 is goed genoeg), bestaande uit een mix van kleine letters (a-z), grote letters (A-Z) en getallen (0-9). Merk op dat het ligt aan de cloaking module die je hebt geladen hoe je deze sleutels moet instellen.

set::hiddenhost-prefix <prefix-value>;
Het voorvoegsel voor een verborgen host (+x). Dit zijn meestal 3 tot 4 letters die de netwerk naam voorstellen.

set::hosts::local <locop-host-name>;
De hostnaam die lokale opers krijgen wanneer ze +x zetten. Je kan ook user@host hier gebruiken.

set::hosts::global <globop-host-name>;
De hostnaam die globale opers krijgen wanneer ze +x zetten. Je kan ook user@host hier gebruiken.

set::hosts::coadmin <coadmin-host-name>;
De hostnaam die co-admins krijgen wanneer ze +x zetten. Je kan ook user@host hier gebruiken.

set::hosts::admin <admin-host-name>;
De hostnaam die admins krijgen wanneer ze +x zetten. Je kan ook user@host hier gebruiken.

set::hosts::servicesadmin <servicesadmin-host-name>;
De hostnaam die service-admins krijgen wanneer ze +x zetten. Je kan ook user@host hier gebruiken.

set::hosts::netadmin <netadmin-host-name>;
De hostnaam die netadmins krijgen wanneer ze +x zetten. Je kan ook user@host hier gebruiken.

set::hosts::host-on-oper-up <yes/no>;
Wanneer dit op 'yes' staat, zal de oper automatisch +x krijgen en de bovenstaande host krijgen. Wanneer dit op 'no' staat, moet de gebruiker handmatig +x zetten om bovenstaande host te krijgen.

set::ssl::egd <filename>;
Stelt in of EGD (Entropy Gathering Daemon) ondersteuning gebruikt moet worden. Wanneer je OpenSSL 0.9.7 of hoger draait, zullen /var/run/egd-pool, /dev/egd-pool, /etc/egd-pool en /etc/entropy automatisch doorzocht worden, dus er is geen bestandsnaam nodig. Wanneer je een eerdere versie van OpenSSL gebruikt, of wanneer je een EGD socket wil gebruiken die ergens anders staat, moet je de bestandsnaam van de UNIX Domain socket opgeven waarop EGD luistert.

set::ssl::certificate <filename>;
Stelt in waar het SSL certificaat van de server staat.

set::ssl::key <filename>;
Stelt in waar de SSL sleutel van de server staat.

set::ssl::trusted-ca-file <filename>;
Stelt in waar de certificaten van de vertrouwde CAs staan.

set::ssl::options::fail-if-no-clientcert;
Gebruikers zonder certificaat worden geweigerd.

set::ssl::options::no-self-signed;
Verbindingen met zelf getekende certificaten worden geweigerd.

set::ssl::options::verify-certificate;
Stelt in dat UnrealIRCd bepaalt of een SSL certificaat geldig is alvorens de connectie te accepteren.

set::throttle::period <timevalue>
Stelt in hoelang een gebruiker moet wachten voordat hij/zij opnieuw kan verbinden na set::throttle::connections pogingen.

set::throttle::connections <amount>;
Stelt in hoeveel keer een gebruiker met dezelfde host moet verbinden alvorens tegengehouden te worden.

set::ident::connect-timeout <amount>;
Aantal seconden waarna het verbinden met een ident server opgegeven moet worden (standaard: 10s).

set::ident::read-timeout <amount>;
Stelt in hoeveel seconden er gewacht moet worden op een antwoord (standaard: 30s).

set::anti-flood::unknown-flood-bantime <timevalue>;
Stelt in hoelang de ban van een onbekende verbindings flooder duurt.

set::anti-flood::unknown-flood-amount <amount>;
Stelt in hoeveel data (in KiloBytes) een onbekende verbinding moet zenden alvorens deze gekilled wordt.

set::anti-flood::away-flood <count>:<period>
Away flood bescherming: Stelt een limiet aan /away. 'count' keer per 'period' secondes. NO_FLOOD_AWAY moet aanstaan in config. Voorbeeld: away-flood 5:60s; betekent dat er maximaal 5 keer per 60 seconden van status veranderd mag worden.

set::anti-flood::nick-flood <count>:<period>
Nickname flood bescherming: Stelt een limiet aan het aantal naamsveranderen. Voorbeeld: nick-flood 4:90 Er zijn 4 naamsveranderingen in 90 seconden toegestaan. De standaardwaarde is 3 per 60.

set::default-bantime <time>
Standaard duur van een /kline, /gline, /zline, /shun etc zonder tijdsindicatie. (zoals /gline *@some.nasty.isp). De standaardwaarde is permanent (0). Voorbeeld: default-bantime 90d;.

set::modef-default-unsettime <value>
Voor kanaalmodus +f kun je een standaard unsettime instellen. Wanneer je bijvoorbeeld 10 instelt, zal +f [5j]:15 veranderen in [5j#i10]:15. Er is geen standaardwaarde.

set::modef-max-unsettime <value>
De maximale waarde van een modus +f unsettime (in +f [5j#i<TIME>]:15). Dit is een waarde tussen 0 en 255. Standaard is het 60 (= 1 uur).

set::ban-version-tkl-time <value>
Wanneer je /zline/gline/etc uitvoert in het ban version block, kun je hier instellen hoelang het IP gebanned moet worden. Standaard is dit 86400 (1 day).

set::spamfilter::ban-time <value>
Hetzelfde als bovenstaande, maar voor *lines/shuns toegevoegd door spamfilter.

set::spamfilter::ban-reason <reason>
De reden die gebruikt moet worden door spamfilter.

set::spamfilter::virus-help-channel <channel>
Het kanaal dat gebruikt moet worden voor de'viruschan' actie in spamfilter.

set::spamfilter::virus-help-channel-deny <yes|no>
Wanneer dit op 'yes' (of '1') staat, wordt er "invite only" tegen gebruikers gezegd die het virus-help-channel proberen te joinen. Alleen opers, mensen die een spamfilter matchen, of mensen die ge-/invite zijn, kunnen joinen.

set::spamfilter::except <target(s)>
Deze kanalen worden niet gecontroleerd door spamfilters. Dit kan 1 kanaal zijn, of een reeks kanalen gescheiden door een komma (bijv: except "#help,#spamreport";).

set::check-target-nick-bans <yes|no>
Wanneer de gebruiker zijn naam verandert, controleer of de NIEUWE nick gebanned zou worden. Zo ja, sta de naamsverandering niet toe. Standaard is dit 'yes'.

set::timesynch::enabled <yes|no>
Activeer of deactiveer de tijd synchronisatie bij het opstarten. Standaard is yes.

set::timesynch::server <IP>
Server waarmee gesynchroniseerd moet worden. Dit kunnen maximaal 4 IPs zijn, gescheiden door commas. De servers moeten NTP protocol versie 4 ondersteunen. Standaard worden 3 servers gebruikt (US,EU,AU). De verzoeken worden parallel verzonden, het snelste antwoord wint.

set::timesynch::timeout <time>
Maximale wachttijd voor een antwoord. Dit is een waarde tussen 1 en 5, hoger kan niet vanwege een te hoge incorrectheid. Standaard is dit 3, en er is waarschijnlijk geen goede reden om dit aan te passen.

set::pingpong-warning <yes|no>
Wanneer NOSPOOF aan staat (meestal op Windows), stuur dan een bericht naar de gebruiker om '/quote pong ..' te typen als ze problemen hebben met verbinden? Standaard is no

5 – Aanvullende bestanden

Als aanvulling op het configuariebestand heeft Unreal nog een aantal andere bestanden, zoals MOTD, OperMOTD, BotMOTD en Rules. Hieronder staan de bestanden en hun functie.
Merk op dat MOTDs (alle) en Rules bestanden apart kunnen worden ingestel door het tld block. Dit zijn slechts de standaard bestanden (en voor MOTD/Rules vanaf andere servers).

 
ircd.motdWordt afgebeeld wanneer een /motd wordt uitgevoerd (en wanneer ircd.smotd niet bestaat) wanneer een gebruiker verbindt.
ircd.smotdWordt alleen afgebeeld wanneer een gebruiker verbindt (short MOTD/korte MOTD)
ircd.rulesWordt afgebeeld wanneer een /rules wordt uitgevoerd
oper.motdwordt afgebeeld wanneer je /opermotd uitvoert of wanneer je /oper'd
bot.motdWordt afgebeeld wanneer je /botmotd uitvoert of wanneer je gebruikersmode +B doet

6 – Gebruiker & Kanaal modus

Mode
Beschrijving
Kanaal Modes
A
Alleen Administrators mogen joinen
a <nick>
Maakt nick een kanaal admin
b <nick!user@host>
Bant de gegeven gebruiker van het kanaal
c
ANSI kleuren kunnen niet naar het kanaal gezonden worden
C
CTCPs zijn niet toegestaan in het kanaal
e <nick!user@host>
Uitzonderingsban – Wanneer iemand dit matcht, kunnen ze het kanaal wel joinen, zelfs als ze gebanned zijn
f [<number><type>]:<seconds>
Kanaal flood bescherming. Zie section 3.12 voor een uitgebreide beschrijving
G
Woorden in het kanaal worden gecontroleerd door de badword blocks, en zo nodig vervangen
h <nick>
Geeft half-op status aan de nick
i
Een uitnodiging is nodig
I <nick!user@host>
Uitnodigings uitzonderingen ("invex") - Wanneer iemand dit matcht, gaan ze om een +i op het kanaal heen
j <joins:seconds>
joins per seconds seconden zijn toegestaan per gebruiker
K
/knock is niet toegestaan
k <key>
Een wachtwoord is nodig om het kanaal te joinen
l <##>
Zet een limiet op het aantal mensen
L <Chan>
Wanneer het limiet van +l bereikt is, worden mensen naar dit kanaal gestuurd
M
Je hebt een