diff --git a/.RELEASE.NOTES b/.RELEASE.NOTES
index f029a2bb7..9e7ceffcd 100644
--- a/.RELEASE.NOTES
+++ b/.RELEASE.NOTES
@@ -47,7 +47,8 @@ NOTE: This is a Release Candidate. This is NOT an (official) STABLE release yet
- Banned users can no longer change the topic
- Made it so you no longer can change your nick TO a banned one in a channel.
This option can be turned off by setting set::check-target-nick-bans to "no".
-- Added Bulgarian example.bg.conf and Russian help.ru.conf
+- Translations: Added a Bulgarian example.bg.conf, a Russian help.ru.conf, and a Dutch
+ unreal32docs.nl.html
- For services coders: Added doc/technical/serverprotocol.html
==[ CHANGED ]==
diff --git a/Changes b/Changes
index 6adf790f0..3fdf00df8 100644
--- a/Changes
+++ b/Changes
@@ -1023,3 +1023,4 @@
would cause a crash. Reported by chasingsol (#0002777).
- Updated help.ru.conf (corrections by CS-Help / Bock)
- Updated example.bg.conf (by Peace)
+- Added Dutch unreal32docs.nl.html, translated/maintained by Mark.
diff --git a/doc/unreal32docs.de.html b/doc/unreal32docs.de.html
index 9583ea598..801b9f552 100644
--- a/doc/unreal32docs.de.html
+++ b/doc/unreal32docs.de.html
@@ -21,7 +21,8 @@
Spanish |
Hungarian |
French |
-Greek
+Greek |
+Dutch
Door de toegenomen complexiteit van UnrealIRCd3.2 zijn we overgestapt op een + makkelijker te bekijken en inhoudelijk vollere documentatie. 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. 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. 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-2004
+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:
+
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!
Installation Instructions
+Linux:
+
+Windows:
+
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.
+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).
+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).
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.
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 ServicesUnrealIRCd 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
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
UnrealIRCd heeft veel machtige oper commando's welke uitgelegd worden in User & Oper Commands. + Je zult deze waarschijnlijk willen doornemen na installatie
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].
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
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 |
| c | CTCPs | auto +C | m, M | |
| j | joins | auto +i | R | |
| k | knocks | auto +K | (alleen voor lokale gebruikers) | |
| m | messages/notices | auto +m | M | |
| n | nickchanges | auto +N | ||
| t | text | kick | b | per bericht/notice per user, zoals de oude +f. Zal de gebruiker kicken of bannen. |
+*** 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:
+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: | naam | uitleg: |
| ~q | stilte | Mensen die voldoen aan deze ban kunnen het kanaal joinen, maar kunnen niet spreken, tenzij ze +v of hoger hebben. + Bijv: ~q:*!*@blah.blah.com |
| ~n | naamsverandering | Mensen die voldoen aan deze ban kunnen hun naam niet veranderen, tenzij ze +v of hoger hebben. + Bijv: ~n:*!*@*.aol.com |
| ~c | [prefix]kanaal | Wanneer 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 |
| ~r | echte naam | Wanneer 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'. |
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: +
| |||||||||||||||||||||||||||||||||
| [action] | Specificeert de te ondernemen actie (slechts 1 action is mogelijk) +
| |||||||||||||||||||||||||||||||||
| [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 |
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)
+
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, 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).
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: |
| catalan | Catalaanse letters | iso8859-1 (latin1) |
| danish | Deense letters | iso8859-1 (latin1) |
| dutch | Nederlandse letters | iso8859-1 (latin1) |
| french | Franse letters | iso8859-1 (latin1) |
| german | Duitse letters | iso8859-1 (latin1) |
| swiss-german | Zweeds-Duitse letters (geen es-zett) | iso8859-1 (latin1) |
| icelandic | IJslandse letters | iso8859-1 (latin1) |
| italian | Italiaanse letters/td> | iso8859-1 (latin1) |
| spanish | Spaanse letters | iso8859-1 (latin1) |
| swedish | Zweedse letters | iso8859-1 (latin1) |
| latin1 | Catalaanse, Deense, Nederlandse, Franse, Duitse, Zweeds-Duitse, Spaanse, IJslandse, Italiaanse en Zweedse letters | iso8859-1 (latin1) |
| hungarian | Hongaarse letters | iso8859-2 (latin2), windows-1250 |
| polish | Poolse letters | iso8859-2 (latin2) |
| romanian | Roemeense letters | iso8859-2 (latin2), windows-1250, iso8859-16 |
| latin2 | Hongaarse, Poolse en Roemeense | iso8859-2 (latin2) |
| polish-w1250 | Poolse letters, Windows variant (helaas meer voorkomend dan iso) | windows-1250 |
| slovak-w1250 | Slowaakse letters, Windows variant | windows-1250 |
| czech-w1250 | Tsjechisch characters, Windows variant | windows-1250 |
| windows-1250 | polish-w1250, slovak-w1250, czech-w1250, Hongaars, Roemeens | windows-1250 |
| greek | Griekse letters | iso8859-7 |
| turkish | Turkse letters | iso8859-9 |
| russian-w1251 | Russische letters | windows-1251 |
| belarussian-w1251 | Wit-Russische letters | windows-1251 |
| ukrainian-w1251 | Oekrainse letters | windows-1251 |
| windows-1251 | russian-w1251, belarussian-w1251, ukrainian-w1251 | windows-1251 |
| hebrew | Hebreeuwse letters | iso8859-8-I/windows-1255 |
| chinese-simp | Vereenvoudigd Chinees | Multibyte: GBK/GB2312 |
| chinese-trad | Traditioneel Chinees | Multibyte: GBK |
| chinese-ja | Japans Hiragana/Pinyin | Multibyte: GBK |
| chinese | Chinese-* | Multibyte: GBK |
| gbk | Chinese-* | 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; }; };
+UnrealIRCd heeft heel veel mogelijkheden, dus niet alles staat beschreven hier... Je vindt het vanzelf wel.
+
4.0 - Aanpassen van je unrealircd.conf +
In de eerste plaats, het maken van een goede unrealircd.conf kost wat tijd, varierend + van 10 tot 60 minuten. Je kan proberen om zo snel als mogelijk op te starten en het + later aan te passen, of je doet alles stap voor stap, deze documentatie volgend + (wordt aangeraden!). Wanneer je problemen tegenkomt, controleer je syntax, controleer + deze handleiding en controleer de FAQ voordat je vragen stelt 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, kun je je unrealircd.conf vanaf het begin maken, of je + kopieert doc/Voorbeeld.conf en past deze aan. Het wordt aangeraden alle blokken stap + voor stap door te werken, en deze handleiding te gebruiken as hulp.
+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:
+
| poort kan alleen gebruikt worden door gebruikers | |
| poort kan alleen gebruikt worden door servers | |
| CR javachat ondersteuning | |
| 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.
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:
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";
+};
+
+
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"; ++
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:
+
| errors | logt errors |
| kills | logt /kill berichten |
| tkl | logt informatie over *lines, shuns en spamfilters (toevoegen/verwijderen/verlopen) |
| connects | logt gebruikers die verbinding maken/verbreken |
| server-connects | logt server verbindingen/verbrekingen |
| kline | logt het gebruik van /kline |
| oper | logt /oper pogingen (succesvolle en mislukte) |
| sadmin-commands | logt het gebruik van /sa* (samode, sajoin, sapart, etc.) |
| chg-commands | logt het gebruik van /chg* (chghost, chgname, chgident, etc.) |
| oper-override | logt het gebruik van operoverride |
| spamfilter | logt 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 of een hub, of een leaf, je kan ze niet mengen.
+
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 van waartegen deze server zich als een leaf zal gedragen.
+
leaf-depth (optioneel)
+ Wanneer leaf ingesteld is, moet dit ook worden ingesteld. De waarde is het aantal
+ hops (aantal servers) welke deze server onder zich mag hebben.
+
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> {
+ format <regex-expression> {
+ target <nick-to-forward-to>;
+ type <type-of-alias>;
+ parameters <parameter-string>;
+ };
+ 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. alias::format::type is het type. + 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. Zie doc/example.conf voor meer informatie.
+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 - 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.
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.
set::dns::retries <number-of-retries>;
+ Een numerieke waarde die instelt hoeveel keer er opnieuw geprobeerd moet worden
+ een DNS lookup te voltooien.
set::dns::nameserver <name-of-dns-server>;
+ De hostnaam die gebruikt moet worden voor een DNS lookup.
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'.
| ircd.motd | Wordt afgebeeld wanneer een /motd wordt uitgevoerd (en wanneer ircd.smotd niet bestaat) wanneer een gebruiker verbindt. | +
| ircd.smotd | Wordt alleen afgebeeld wanneer een gebruiker verbindt (short MOTD/korte MOTD) | +
| ircd.rules | Wordt afgebeeld wanneer een /rules wordt uitgevoerd | +
| oper.motd | wordt afgebeeld wanneer je /opermotd uitvoert of wanneer je /oper'd | +
| bot.motd | Wordt 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 geregistreerde naam (+r) nodig om te praten | +
m |
+ Gemodereerd kanaal. Alleen mensen met +v of hoger mogen praten | +
N |
+ Naamsveranderingen zijn niet toegestaan | +
n |
+ Berichten van buiten het kanaal zijn niet toegestaan | +
O |
+ Alleen IRCOps mogen joinen | +
o <nick> |
+ Geeft nick kanaal operator status | +
p |
+ Maakt een kanaal prive | +
q <nick> |
+ Maakt nick de kanaal eigenaar | +
Q |
+ Alleen U:Lined servers kunnen mensen kicken | +
R |
+ Je hebt een geregistreerde naam nodig om te joinen | +
S |
+ Haalt alle kleuren weg | +
s |
+ Maakt een kanaal geheim | +
t |
+ Alleen kanaal operators kunnen de topic veranderen | +
T |
+ NOTICE's gericht aan het kanaal zijn niet toegestaan | +
u |
+ Auditorium – /names en /who #kanaal worden alleen getoond aan ops | +
V |
+ /invite is niet toegestaan | +
v <nick> |
+ Geeft nick voice (kan spreken in +m kanalen) | +
z |
+ Alleen mensen met een SSL verbinding mogen joinen | +
+
Mode |
+ Beschrijving |
+
Gebruiker Modes |
+ |
A |
+ Server Admin (te zetten in het Oper Block) | +
a |
+ Services Admin (te zetten in het Oper Block) | +
B |
+ Markeert je als een Bot | +
C |
+ Co-Admin (te zetten in het Oper Block) | +
d |
+ Je ontvangt geen kanaal PRIVMSGs (uitgezonderd berichten die vooraf gaan met bepaalde tekens, + zie set::channel-command-prefix) | +
G |
+ Filtert alle badwords die ingesteld zijn | +
g |
+ Kan globops en locops verzenden & lezen | +
H |
+ Verbergt IRCOp status (alleen voor IRCops) | +
h |
+ Beschikbaar voor hulp (Helpop) (te zetten in het Oper Block) | +
i |
+ Onzichtbaar (niet te zien in /who) | +
N |
+ Network Administrator (te zetten in het Block) | +
O |
+ Lokale IRC Operator (te zetten in het Oper Block) | +
o |
+ Globale IRC Operator (te zetten in het Oper Block) | +
p |
+ Verbergt de kanalen waarin je je bevindt in een /whois | +
q |
+ Alleen U:Lined servers kunnen je kicken (alleen voor Services Admins) | +
R |
+ Je kunt alleen PRIVMSGS/NOTICES van geregistreerde (+r) gebruikers ontvangen | +
r |
+ Identificeert je naam als geregistreerd | +
S |
+ Wordt gebruikt om Services Daemons te beschermen | +
s |
+ Kan server notices zien (zie sectie 3.3 voor meer informatie) | +
T |
+ Je kan geen CTCPs ontvangen | +
t |
+ Zegt dat je een /vhost gebruikt | +
V |
+ Zegt dat je een WebTV gebruiker bent | +
v |
+ Ontvang geinfecteerde DCC Zend afwijzingen | +
W |
+ Laat je zien dat mensen een /whois op je doen (Alleen voor IRCOps) | +
w |
+ Je kan wallop berichten zien | +
x |
+ Geeft je een verborgen hostnaam | +
z |
+ Geeft aan dat je een SSL verbinding gebruikt | +
7 – Gebruikers & Opers commando's
Opmerking: de /helpop documentatie is recenter. Gebruik /helpop commando (of /helpop?commando wanneer je een oper bent) om meer + informatie over het commando te krijgen.
+ +Commando |
+ Beschrijving |
+ Wie kan het gebruiken |
+
| nick <newnickname> | +Verandert je naam naar newnickname. Andere mensen zien je naamsverandering |
+ Iedereen | +
| whois <nick> | +Laat informatie over nick zien. Dit houdt in de volleidge naam, de host, de kanalen waarin de persoon
+ zich bevindt, en of hij Oper is |
+ Iedereen | +
| who <mask> | +Met who kun je gebruikers zoeken. Masks zijn: naam; #kanaal, hostmask (*.attbi.com) |
+ Iedereen | +
| whowas <nick> <maxreplies> | +Geeft je informatie over een persoon die niet meer online is. <max replies>
+ is optioneel, en geeft aan hoeveel resultaten weergegeven moeten worden |
+ Iedereen | +
| ison <nick1 nick2 nick3 ...> | +Controleert of een gebruiker of een lijst van gebruikers online is/zijn. Zeer
+ handig voor scripts. |
+ Iedereen | +
| join <channel1,channel2, ...> | +Hiermee kun je een kanaal binnengaan. Door /join #chan1,#chan2,#chan3 ga je
+ meerdere kanalen tegelijk binnen. /join 0 zorgt ervoor dat je alle kanalen
+ verlaat (PART) |
+ Iedereen | +
| cycle <channel1, channel2, ...> | +Door een /cycle PART je het kanaal, om daarna weer te JOINen |
+ Iedereen | +
| motd <server> | +Laat de servers MOTD zien. Wanneer je een servernaam toevoegd, krijg je
+ de MOTD van de betreffende server |
+ Iedereen | +
| rules <server> | +Geeft de ircd.rules van de server weer. Wanneer je een servernaam
+ tovoegd, krijg je de regels van de betreffende server |
+ Iedereen | +
| lusers <server> | +Laat het huidige en maximale aantal gebruikers zien, zowel lokaal als globaal.
+ Als je een servernaam toevoegd, krijg je de informatie van de betreffende server |
+ Iedereen | +
| map | +Laat de netwerkmap zien | +Iedereen | +
| quit <reason> | +Verbreek de verbinding met de server. Wanneer je een reden opgeeft,
+ wordt deze getoond op alle kanalen waarin je je bevond |
+ Iedereen | +
| ping <user> | +Zendt een PING aanvraag naar een gebruiker. Wordt gebruikt om te kijken of
+ de verbinding er nog is of om te kijken of er lag is. Servers zenden elke
+ XX seconden een ping om te kijken of de gebruiker nog steeds verbonden is |
+ Iedereen | +
| version <nick> | +Zendt een CTCP VERSION aanvraag naar een gebruiker. Wanneer ingesteld staat
+ dat er een antwoord gegeven moet worden, zul je dit krijgen |
+ Iedereen | +
| links | +Geeft een lijst van alle servers gelinkt in het netwerk |
+ Iedereen | +
| Admin <server> | +Laat de admin informatie zien van de server. Wanneer de servernaam is toegevoegd,
+ krijg je informatie over de betreffende server |
+ Iedereen | +
| userhost <nick> | +Laat de userhost van de nick zien. Meestal gebruikt door scripts |
+ Iedereen | +
| topic <channel> <topic> | +/topic <channel> laat het huidige topic zien van het kanaal. /topic
+ <channel> <topic> zal het topic veranderen. |
+ Iedereen | +
| invite <nick> <channel> | +Nodigt de gebruiker uit naar het kanaal. |
+ Kanaal Operator | +
| kick <channel, channel> <user, user> <reason> | +Kickt de persoon of pesonen van het kanaal of kanalen. Een reden kan gegeven worden |
+ Kanaal Operator | +
| away <reason> | +Markeert je als zijnde weg. Een reden kan ook gegeven worden |
+ Iedereen | +
| Watch +-<nick> +-<nick> |
+ Watch is een nieuw systeem in UnrealIRCd wat sneller is en minder resources gebruikt.
+ De server zendt je een bericht wanneer een naam op je watch-lijst inlogt of uitlogt.
+ De watch-lijst wordt NIET onthouden. Jij, of je script, moet de namen steeds opnieuw
+ toevoegen wanneer je opnieuw verbindt met een server |
+ Iedereen | +
| helpop ?<topic> or !<topic> |
+ HelpOp is een nieuw systeem om hulp te krijgen over de IRC Server. Je typt of /HELPOP ?
+ <help system topic> or /HELPOP ! <vraag>. De ? betekent dat je het helpsysteem
+ wil raadplegen. Wanneer je geen antwoord krijgt, kun je de ! gebruiken, je vraag wordt dan
+ gezonden naar alle Help Operators die online zijn. Wanneer je geen ? of ! gebruikt, zal eerst
+ het helpsysteem geraadpleegd worden. Wanneer er niets gevonden wordt, wordt het bericht gestuurd
+ naar de Help Operators |
+ Iedereen | +
| list <search string> | +Wanneer je geen search string opgeeft, krijg je een lijst met alle kanalen. Hieronder
+ staan de opties die je gebruiken kunt. + >nummer - geeft een lijst met meer dan <nummer> mensen + <nummer - geeft een lijst met minder dan <nummer> mensen + C>nummer - geeft een lijst met kanalen die tussen nu en <nummer> minuten geleden gemaakt zijn + C<nummer - geeft een lijst met kanalen die ouder dan <nummer> minuten zijn + T>nummer - geeft een lijst met kanalen waarvan de topic ouder is dan <nummer> minuten + T<nummer - geeft een lijst met kanalen waarvan de topic jonger is dan <nummer>minuten + *mask* - geeft een lijst met kanalen die *mask* matchen + !*mask* - geeft een lijst met kanalen die *mask* niet matchen |
+ Iedereen | +
| Knock <channel> <message> |
+ Hiermee kun je 'kloppen' op een invite-only kanaal, en vragen om binnen te
+ komen. Werkt niet wanneer het kanaal op +K of +V staat. Werkt ook niet wanneer
+ je gebanned bent |
+ Iedereen | +
| setname | +Hiermee kun je je Real Name (echte naam) veranderen, zonder opnieuw te verbinden |
+ Iedereen | +
| vhost <login> <password> | +Verbergt je hostnaam door een vhost van de server te gebruiken |
+ Iedereen | +
| mode <chan/nick> <mode> |
+ Hiermee kun je kanaal en gebruiker modi zien. Zie
+ Gebruikers & Kanaal Modi voor een lijst |
+ Iedereen | +
| credits | +Laat een lijst zien van wie allemaal heeft meegeholpen aan het maken van UnrealIRCd |
+ Iedereen | +
| license | +Laat de GNU License zien | +Iedereen | +
| time <server> | +Laat de datum en tijd van de server zien. Wanneer je een servernaam opgeeft,
+ krijg je de datum en tijd van de betreffende server |
+ Iedereen | +
| botmotd <server> |
+ Laat je de BOTMOTD van de server zien. Wanneer je een servernaam opgeeft,
+ krijg je de BOTMOTD van de betreffende server |
+ Iedereen | +
| identify <password> | +Zendt je wachtwoord naar de Services om je nick te identificeren |
+ Iedereen | +
| identify <channel> <password> | +Zendt je wachtwoord naar de Services om je als kanaal eigenaar te
+ identificeren |
+ Iedereen | +
| dns <option> | +Geeft informatie over de servers DNS cache.
+ Opmerking: omdat bijna alle programmas een ingebouwd DNS commando hebben,
+ is het mogelijk dat je /raw DNS moet gebruiken. Opers kunnen een l opgeven
+ als eerste parameter wanneer ze een lijst willen ontvangen van alle ingevingen. + | Iedereen | +
| userip <nick> |
+ Geeft het IP adres van nick |
+ Iedereen | +
| oper <userid> <password> |
+ Geeft je IRC Operator status wanneer userid en password goed zijn volgens een Oper block |
+ IRCop | +
| wallops <message> | +Zendt een bericht naar iedereen met gebruikersmodus +w |
+ IRCop | +
| globops <message> | +Zendt een bericht naar alle IRCOps |
+ IRCop | +
| chatops <message> | +Zendt een bericht naar alle IRCOps met gebruikersmodus +c |
+ IRCop | +
| locops <message> | +Zendt een bericht naar alle lokale IRCOps |
+ IRCop | +
| adchat <message> | +Zendt een bericht naar alle Admins |
+ IRCop | +
| nachat <message> | +Zendt een bericht naar alle Net Admins |
+ IRCop | +
| kill <nick> <reason> | +Killt een gebruiker op het netwerk |
+ IRCop | +
| kline [+|-]<user@host | nick> [<time to ban> <reason>] | +Bant de hostmask van de server waarop het wordt uitgevoerd. Een kline is geen globale ban + time to ban is: a) een waarde in secondes, b) een tijdswaarde, zoals '1d' voor 1 dag of + c) 0 voor permanent. Tijd en reden zijn optioneel. Wanneer ze niet opgegeven worden, worden + set::default-bantime en 'no reason' gebruikt. + Om een kline weg te halen, gebruik /kline -user@host |
+ IRCop | +
| zline [+|-]<*@ip> [<time to ban> <reason>] | +Bant een IP adres op de server waarop het wordt uitgevoerd. Dit is geen globale ban. Zie
+ kline voor de syntax. Gebruik /zline -*@IP om een zline te verwijderen |
+ IRCop | +
| gline [+|-]<user@host | nick> [<time to ban> <reason>] |
+ Voegt een globale ban toe voor iedereen die matcht. Zie kline voor de syntax. Gebruik /gline
+ -user@host om een gline te verwijderen |
+ IRCop | +
| shun [+|-]<user@host | nick> [<time to shun> <reason>] |
+ Belet een gebruik om commando's te gebruiken en om te spreken. Shuns zijn globaal (zoals glines).
+ Zie kline voor de syntax. Gebruik /shun -user@host om een shun weg te halen |
+ IRCop | +
| gzline [+|-]<ip> <time to ban> :<reason> |
+ Voegt een globale zline toe. Zie kline voor de syntax. Gebruik /gzline
+ -*@IP om een gzline weg te halen |
+ IRCop | +
| rehash <server> –<flags> | +Herlaadt het configuratiebestand. Wanneer je een servernaam opgeeft,
+ herlaad je het bestand van de betreffende server. Je kan ook verschillende
+ flags opgeven. + -motd - Herlaad alleen de MOTD en RULES bestanden + -opermotd - Herlaad alleen de OPERMOTD + -botmotd - Herlaad alleen de BOTMOTD + -garbage - Forceer een garbage collection |
+ IRCop | +
| restart <password> <reason> |
+ Herstart het IRCd proces. Wachtwoord is benodigd wanneer drpass { }
+ gezet is. Je kan ook een reden opgeven |
+ IRCop | +
| die <password> |
+ Beeindigt het IRCd proces. Een wachtwoord is benodigd wanneer drpass { }
+ gezet is |
+ IRCop | +
| lag <server> |
+ Dit commando is zoals Sonar of Traceroute, maar dan voor IRC. Je typt
+ /LAG <server> en krijgt een overzicht van alle servers die je langs moet
+ plus de tijden. Handig wanneer je lag wil onderzoeken. |
+ IRCop | +
| sethost <newhost> | +Verandert je vhost naar wat je zelf wil |
+ IRCop | +
| setident <newident> |
+ Verandert je ident naar wat je zelf wil |
+ IRCop | +
| chghost <nick> <newhost> |
+ Verandert de hostnaam van een gebruiker die verbonden is |
+ IRCop | +
| chgident <nick> <newident> |
+ Verandert de ident van een gebruiker die verbonden is |
+ IRCop | +
| chgname <nick> <newname> |
+ Verandert de realname van een gebruiker die verbonden is |
+ IRCop | +
| squit <server> |
+ Verbreekt de verbinding van een server in het netwerk |
+ IRCop | +
| connect <server> <port> <server> | +Wanneer een server gegeven is, zal geprobeerd worden een verbinding te
+ maken met deze server. Wanneer twee servers gegeven zijn, zal er
+ geprobeerd worden een verbinding te maken tussen beide servers. Zet de
+ leaf op de eerste plaats, de hub op de tweede |
+ IRCop | +
| dccdeny <filemask> <reason> |
+ Voegt een DCCDENY toe zodat het bestand niet verzonden kan worden |
+ IRCop | +
| undccdeny <filemask> |
+ Verwijdert een DCCDENYY | +IRCop | +
| sajoin <nick> <channel>, <channel> |
+ Dwingt een gebruiker ertoe een kanaal te joinen. Alleen beschikbaar voor
+ Services en Network Admins |
+ IRCop | +
| sapart <nick> <channel>, <channel> |
+ Dwingt een gebruiker een kanaal te verlaten. Alleen beschikbaar voor
+ Services en Network Admins |
+ IRCop | +
| samode <channel> <mode> |
+ Network en Services Admins kunnen een modus in een kanaal veranderen
+ zonder kanaal operator te zijn |
+ IRCop | +
| rping <servermask> |
+ Berekent de lag in miliseconden tussen servers |
+ IRCop | +
| trace <servermask|nickname> |
+ Wanneer gebruikt op een gebruiker, kun je de class en lag zien.
+ Wanneer je het gebruikt op een server, krijg je de class/versie/link
+ informatie te zien |
+ IRCop | +
| opermotd |
+ Laat de OPERMOTD zien |
+ IRCop | +
| addmotd :<text> |
+ Voegt de gegeven tekst toe aan het einde van de MOTD |
+ IRCop | +
| addomotd :<text> |
+ Voegt de gegeven tekst toe aan het einde van de OPERMOTD |
+ IRCop | +
| sdesc <newdescription> |
+ Server Admins kunnen de beschrijving van hun server aanpassen zonder
+ de server te herstarten |
+ IRCop | +
| addline <text> |
+ Voegt regels aan unrealircd.conf toe |
+ IRCop | +
| mkpasswd <password> |
+ Zal een tekst wachtwoord encrypten welke toegevoegd kan worden aan unrealircd.conf |
+ IRCop | +
| tsctl offset +/- <time> |
+ Past de interne IRCd klok aan (NIET gebruiken wanneer je niet weet
+ wat het precies doet!) |
+ IRCop | +
| tsctl time |
+ Geeft je een TS rapport | +IRCop | +
| tsctl alltime | +Geeft je een TS rapport van ALLE servers | +IRCop | +
| tsctl svstime <timestamp> |
+ Zet de TS tijd op alle servers (NIET gebruiken wanneer je niet weet wat
+ dit doet) |
+ IRCop | +
| htm <option> |
+ Instellingen met betrekking tot "high traffic mode" (HTM). HTM zal sommige
+ commando's, zoals list, whois, who etc uitzetten wanneer er sprake is van
+ veel verkeer op de server. De Opties zijn: + -ON Dwingt de server HTM aan te zetten + -OFF Dwingt de server HTM uit te zetten + -NOISY Server zendt een bericht wanneer HTM aan/uit gaat + -QUIET Server zendt GEEN bericht wanneer HTM aan/uit gaat + -TO <value> Zeg HTM wanneer hij geactiveerd moet worden |
+ IRCop | +
| stats <option> |
+
+ B - banversion - Zend de banversion lijst + b - badword - Zend de badword lijst + C - link - Zend de link block lijst + d - denylinkauto - Zend de deny link (auto) block lijst + D - denylinkall - Zend de deny link (all) block lijst + e - exceptthrottle - Zend De except throttle block lijst + E - exceptban - Zend de except ban en except tkl block lijst + f - spamfilter - Zend de spamfilter lijst + F - denydcc - Zend de deny dcc block lijst + G - gline - Zend de gline and gzline lijst + Extended flags: [+/-mrs] [mask] [reason] [setby] + m Geeft glines die matchen/niet matchen met de mask + r Geeft glines met een reden die matcht/niet matcht met de gegeven reden + s Geeft glines (niet) gezet door gebruikers met de gegeven naam + I - allow - Zend de allow block lijst + j - officialchans - Zend de offical channels lijst + K - kline - Zend de ban user/ban ip/except ban block lijst + l - linkinfo - Zend link informatie + L - linkinfoall - Zend alle link informatie + M - command - Zend een lijst met hoe vaak elk commando gebruikt is + n - banrealname - Zend de ban realname block lijst + O - oper - Zend de oper block lijst + P - port - Zend informatie over poorten + q - sqline - Zend de SQLINE lijst + Q - bannick - Zend de ban nick block lijst + r - chanrestrict - Zend de channel deny/allow block lijst + R - usage - Zend gebruiksinformatie + S - set - Zend de set block lijst + s - shun - Zend de shun lijst + Extended flags: [+/-mrs] [mask] [reason] [setby] + m Geeft shuns die matchen/niet matchen met de maskk + r Geeft shuns met een reden die matcht/niet matcht met de gegeven reden + s Geeft shuns (niet) gezet door gebruikers met de gegeven naam + t - tld - Zend de tld block lijst + T - traffic - Zend traffic informatie + u - uptime - Zend de server uptime en aantal verbindingen + U - uline - Zend de ulines block lijst + v - denyver - Zend de deny version block lijst + V - vhost - Zend de vhost block lijst + X - notlink - Zend de lijst van servers die op dit moment niet verbonden zijn + Y - class - Zend de class block lijst + z - zip - Zend compressie informatie over ziplinked servers (wanneer ziplink ondersteuning gecompiled is) + Z - mem - Zend geheugen gebruik informatie + |
+ Iedereen | +
| module |
+ + Geeft een lijst van alle geladen modules + | +Iedereen | +
| close |
+ Dit commando verbreekt alle onbekende verbindingen van de IRC server + | +IRCOp | +
8 – Veiligheids tips/checklist
+Wanneer je bezorgd bent om veiligheid (wat je zou moeten zijn!) geeft deze sectie je een overzicht + van de risico's die er zijn. Je kunt dit ook als een "checklist" gebruiken om je netwerk veilig + te maken.
+De volgorde van de lijst is populariteit/risico niveau/meest-gebruikte-aanval
+8.2 Niet-IRCd gerelateerde lekken
8.3 Rechten en het configuratiebestand
8.4 Gebruikers gerelateerde problemen
8.6 Denial of Service attacks (DoS) [of: hoe bescherm ik mijn hub]
8.8 Bescherming tegen exploits
9 – Veel gestelde vragen (FAQ)
+De FAQ staat hier online +(nog niet vertaald naar het Nederlands!).
+Reguliere expressions worden op veel plaatsen gebruikt in Unreal (badwords, spamfilter, aliases). Reguliere expressies zijn een zeer +complex instrument voor het vinden van patronen. Ze worden ook wel "regexp" of "regex." genoemd. Unreal gebruikt de TRE regexp library +voor haar regex. Deze library ondersteunt enkele zeer complexe en geavanceerde expressies die wellicht verwarrend zijn. Hieronder staat +informatie over het gebruik van regexps. Wanneer je geinteresseerd bent in meer technische details over de regex syntax in Unreal, ga dan +naar de TRE homepage. +
+Literals zijn de basis componenten van een regexp. Het zijn letters die behandeld worden als gewone tekst. Het patroon "test" bestaat +uit vier letters, "t", "e", "s" en "t". In Unreal worden letters niet behandeld als hoofdlettergevoelig, dus "test" zou net zo goed +"TEST" kunnen zijn. Elk teken dat geen "meta teken" (wordt verderop uitgelegd) is, wordt behandeld als een letter. Je kan een teken +ook expliciet een letter maken, door een backslash (\) te gebruiken. Bijvoorbeeld, de punt (.) is een metateken. Wanneer je de letter +. wil gebruiken, moet je \. gebruiken. Unreal zal dit dan zien als een echte punt. Het is ook mogelijk dat je een teken wil gebruiken +dat niet makkelijk te typen is, bijvoorbeeld ASCII teken 3 (kleur). In plaats van het gebruiken van een IRC client om dit teken te maken, +kun je ook een speciale tekenvolgorde gebruiken, de \x. Wanneer je \x3 typt, zal dit worden opgevat als ASCII teken 3. Het nummer achter +\3 is een hexidecimaal getal tussen \x0 en \xFF.
+De punt (.) operator wordt gebruikt om "welk teken dan ook" aan te geven. Het geeft 1 teken aan. Bijvoorbeeld, als je "a.c" gebruikt, +zal dit "abc", "adc" enz zijn. Het zal echter niet voor "adb" staan, omdat de "a" en "c" erin moeten zitten.
+Een veel voorkomende fout die gemaakt wordt met regex, is dat mensen aannemen dat ze met wildcards werken. +Dat houdt in, de * en ? tekens stellen een wildcard voor. Hoewel deze tekens dezelfde functie hebben in een regex, +zijn ze niet precies hetzelfde. Daarbijkomend, regex ondersteunt veel ingewikkeldere methoden van herhaling. +
+De basis van een herhalings-operator is de ? operator. Deze operator matcht 0 of 1 van de vorige tekens. Dit +,"van de vorige tekens", is waar de ? in regex verschilt met een wildcard. In een wildcard, "a?c" zou "a" gevolgd +door elk teken (of geen teken) matchen, gevolgd door een "c". In regex heeft het een andere betekenis. Het matcht 0 +of 1 letter "a", gevolgd door de letter "c". Het komt erop neer dat de ? de a aanpast, zodanig dat het instelt hoeveel +a's gebruikt mogen worden. Om een ? na te bootsen in een wildcard, wordt de . operator gebruikt. De regex "a.?c" is +hetzelfde als de eerder genoemde wildcard. Het matcht de letter "a", gevolgd door 0 of 1 willekeurige letter (de ? heeft +de . aangepast), gevolgd door een "c". +
+De volgende herhalende operator is de *. Eveneens, deze operator is gelijk aan een wildcard. Het matcht 0 of meer van de vorige +tekens. Let op dat "van de vorige tekens" iets is dat kenmerkend is voor herhalende operators. +De regex "a*c" matcht 9 of meer a's, gevolgd door een "c". "aaaaac" zal dus matchen. Eveneens werkt dit als een wildcard, je moet +dus "a.*c" gebruiken. Dit zal de . laten veranderen door de *. + +
+De + operator lijkt heel veel op de *. Maar in plaats van 0 of meer, matcht deze 1 of meer. +"a*c" matcht "c" (0 a's gevolgd door een c), waar "a+c" niet zou matchen. +De "a+" geeft aan dat er minstens 1 a moet zijn. Dus "c" matcht niet, maar "ac" en "aaaaaaaac" wel. +
+De meest ingewikkelde herharlings operator is de "boundary" (grens). Een boundary geeft je de mogelijkheid +om precies aan te geven hoeveel van het vorige teken er moeten zijn. Bijvoorbeeld anneer je precies 8 a's wil hebben, of +minstens 8 a's, of tussen de 3 en 5 a's. Een boundary laat je dit alles instellen. +De basis syntax is {M,N}, waar M de linkergrens en N de rechtergrens zijn. Een match tussen 3 en 5 a's zou dus zijn +"a{3,5}". Je hoeft niet beide waardes op te geven. Wanneer je "a{8}" opgeeft, moeten er precies 8 a's zijn. +Daarom is "a{8}" gelijk aan "aaaaaaaa". Wanneer je enkel het minimale aantal wil opgeven, kun je "a{8,}" gebruiken. +Er moeten dan minimaal 8 a's aanwezig zijn. + +
+Standaard zijn alle herhalingsoperatoren "greedy" (gretig). Dit is een beetje een ingewikkeld idee. +Het komt erop neer dat een operator zoveel mogelijk tekens zal matchen als mogelijk. +Dit kan het beste uitgelegd worden aan de hand van een voorbeeld. +
Stel, we hebben de volgende tekst:
+
+HELLO
+En de volgende regex:
+.+L
+ +Je zou misschien denken dat .+ matcht met "HE.". Maar, dit is fout. Omdat de + greedy is, matcht het "HEL.". De achterliggende +reden is dat het de grootste deel van de ingevoerde tekst die gematched kan worden pakt, terwijl de hele regex nog geldt. In dit +voorbeeld koos het voor "HEL" omdat de enige andere vereiste achter een bepaalde tekst gematched door .+ een "L" moest zijn. +Omdat de tekst "HELLO" is, wordt "HEL" gevolgd door een "L", en daarom matcht het. Soms is het handig om een operator niet-greedy +te maken. Dit doe je door een ? te plaatsen achter de herhalingsoperator. ".+?L" matcht nu "HE" in plaats van "HEL" omdat het op +niet-greedy gezet is. De ? kan achter elke herhalingsoperator geplaatst worden: ??, *?, +?, {M,N}?.
+Een veel voorkomend geval is het controleren op een letter of een getal. In plaats van "[0123456789]" kun je +ook ranges gebruiken. Ranges werken met een begin- en eindpunt, met een - ertussen. Een makkelijkere manier +om te controleren op een getal is dan ook "[0-9]". Je kan hetzelfde doen met letters, zelfs met elke ASCII waarde. +Wanneer je elke letter wil matchen, gebruik je "[a-z]". Je kan ook meerdere ranges gebruiken in dezelfde expressie. +Om bijvoorbeeld een getal of letter te matchen, gebruik je "[0-9a-z]". Een probleem dat dit kan veroorzaken is +dat de - een speciaal teken is. Om zo'n streepje te matchen, plaats je deze gewoon als eerste of laatste teken +van een expressie. Bijvoorbeeld "[0-9-]" zal een getal of een streepje matchen. +
+Om het nog makkelijker te maken zijn er verschillende "character classes", die gebruikt mogen worden in bracket expressies. + + +These character classes eliminate the need to define certain ranges. Character classes are written by enclosing their name in :'s. +For Voorbeeld, "[0-9]" could also be written as "[:isdigit:]". The list below shows all of the available character classes and what they do: +
+De laatste mogelijkheid van een bracket expressie is de ontkenning. Soms handig om te zeggen "alles behalve deze tekens". +Wanneer je bijvoorbeeld wil controleren of een teken "geen letter is", is het makkelijker om a-z te controleren en te +zeggen "deze niet". Om een ontkenning te maken gebruik je een "^" als eerste teken. Bijvoorbeeld "[^a-z]" matcht elke +niet-letter. Net als met een streepje, moet je dit teken niet op de eerste plaats zetten, maar achteraan wanneer je +letterlijk een ^ wil matchen ("[a-z^]". Tevens, om een character less te ontkennen, moet je ook deze weer nestelen. +"[^[:isdigit:]]" zou elk niet-getal matchen.
+Het ^-teken wordt gezien als het "linker anker" (left anchor). Dit teken slaat terug op het begin van een string. +Wanneer je een regexp als "test" geeft, matcht het bijvoorbeeld "dit is een test", omdat er "test" in de string zit. +Soms is het bruikbaar om aan te geven dat een string met een patroon begint. +Dit kan gedaan worden door ^. "^test" betekent bijvoorbeeld dat de tekst moet beginnen met "test". +Bijkomend, het $-teken is het "rechter anker". Dit teken slaat terug op het einde van een string. +Dus wanneer je "^test$" gebruikt, moet de string exact gelijk zijn aan "test". +
+Overeenkomstige testen bestaan ook voor woorden. Alle andere assertions worden aangegeven door een \ gevolgd door een +bepaald teken. Bijvoorbeeld, om het begin en einde van een woord te controleren, kun je \< en \> gebruiken. +
+The remaining assertions all come with two forms, a positive and a negative. These assertions are listed below: +
+Omdat je maar 9 back references, is de (?:) notatie handig. +Je kan een subexpressie maken, zonder een back reference te verspillen. Bijkomend, +omdat back reference informatie niet opgeslagen hoeft te worden, is het ook sneller. +Om deze redenen zouden niet-back reference expressies gebruikt moet worden wanneer back references +niet nodig zijn.