]>
Commit | Line | Data |
---|---|---|
189935b1 | 1 | # ircd.conf - configuration file for ircd version ircu2.10 |
2 | # | |
3 | # Last Updated: 20, March 2002. | |
4 | # | |
5 | # Written by Niels <niels@undernet.org>, based on the original example.conf, | |
6 | # server code and some real-life (ahem) experience. | |
7 | # | |
8 | # Updated and heavily modified by Braden <dbtem@yahoo.com>. | |
9 | # | |
10 | # Rewritten by A1kmm(Andrew Miller)<a1kmm@mware.virtualave.net> to support | |
11 | # the new flex/bison configuration parser. | |
12 | # | |
13 | # Thanks and credits to: Run, Trillian, Cym, Morrissey, Chaos, Flynn, | |
14 | # Xorath, WildThang, Mmmm, SeKs, Ghostwolf and | |
15 | # all other Undernet IRC Admins and Operators, | |
16 | # and programmers working on the Undernet ircd. | |
17 | # | |
18 | # This is an example of the configuration file used by the Undernet ircd. | |
19 | # | |
20 | # This document is based on a (fictious) server in Europe with a | |
21 | # connection to the Undernet IRC network. It is primarily a leaf server, | |
22 | # but if all the other hubs in Europe aren't in service, it can connect | |
23 | # to one in the US by itself. | |
24 | # | |
25 | # The configuration format consists of a number of blocks in the format | |
26 | # BlockName { setting = number; setting2 = "string"; setting3 = yes; }; | |
27 | # Note that comments start from a #(hash) and go to the end of the line. | |
28 | # Whitespace(space, tab, or carriage return/linefeed) are ignored and may | |
29 | # be used to make the configuration file more readable. | |
30 | # | |
31 | # Please note that when ircd puts the configuration lines into practice, | |
32 | # it parses them exactly the other way round than they are listed here. | |
33 | # It uses the blocks in reverse order. | |
34 | # | |
35 | # This means that you should start your Client blocks with the | |
36 | # "fall through", most vanilla one, and end with the most detailed. | |
37 | # | |
38 | # There is a difference between the "hostname" and the "server name" | |
39 | # of the machine that the server is run on. For example, the host can | |
40 | # have "veer.cs.vu.nl" as FQDN, and "Amsterdam.NL.EU.undernet.org" as | |
41 | # server name. | |
42 | # A "server mask" is something like "*.EU.UnderNet.org", which is | |
43 | # matched by "Amsterdam.NL.EU.undernet.org" but not by | |
44 | # "Manhattan.KS.US.undernet.org". | |
45 | # | |
46 | # Please do NOT just rename the example.conf to ircd.conf and expect | |
47 | # it to work. | |
48 | ||
49 | ||
50 | # [General] | |
51 | # | |
52 | # First some information about the server. | |
53 | # General { | |
54 | # name = "servername"; | |
55 | # vhost = "ipv4vhost"; | |
56 | # vhost = "ipv6vhost"; | |
57 | # description = "description"; | |
58 | # numeric = numericnumber; | |
59 | # }; | |
60 | # | |
61 | # If present, <virtual host> must contain a valid address in dotted | |
62 | # quad or IPv6 numeric notation (127.0.0.1 or ::1). The address MUST | |
63 | # be the address of a physical interface on the host. This address is | |
64 | # used for outgoing connections if the Connect{} block does not | |
65 | # override it. See Port{} for listener virtual hosting. If in doubt, | |
66 | # leave it out -- or use "*", which has the same meaning as no vhost. | |
67 | # | |
68 | # You may specify both an IPv4 virtual host and an IPv6 virtual host, | |
69 | # to indicate which address should be used for outbound connections | |
70 | # of the respective type. | |
71 | # | |
72 | # Note that <server numeric> has to be unique on the network your server | |
73 | # is running on, must be between 0 and 4095, and is not updated on a rehash. | |
74 | General { | |
75 | name = "London.UK.Eu.UnderNet.org"; | |
76 | description = "University of London, England"; | |
77 | numeric = 1; | |
78 | }; | |
79 | ||
80 | # [Admin] | |
81 | # | |
82 | # This sets information that can be retrieved with the /ADMIN command. | |
83 | # It should contain at least an admin Email contact address. | |
84 | Admin { | |
85 | Location = "The University of London"; | |
86 | # At most two contact lines are allowed... | |
87 | Contact = "Undernet IRC server"; | |
88 | Contact = "IRC Admins <irc@london.ac.uk>"; | |
89 | }; | |
90 | ||
91 | # [Classes] | |
92 | # | |
93 | # All connections to the server are associated with a certain "connection | |
94 | # class", be they incoming or outgoing (initiated by the server), be they | |
95 | # clients or servers. | |
96 | # Recommended client classes: | |
97 | # Take the following class blocks only as a guide. | |
98 | # Class { | |
99 | # name = "<class>"; | |
100 | # pingfreq = time; | |
101 | # connectfreq = time; | |
102 | # maxlinks = number; | |
103 | # sendq = size; | |
104 | # usermode = "+i"; | |
105 | # }; | |
106 | # | |
107 | # maxlinks should be set at either 0 or 1. | |
108 | # | |
109 | # <connect freq> applies only to servers, and specifies the frequency | |
110 | # that the server tries to autoconnect. setting this to 0 will cause | |
111 | # the server to attempt to connect repeatedly with no delay until the | |
112 | # <maximum links> condition is satisfied. This is a Bad Thing(tm). | |
113 | # Note that times can be specified as a number, or by giving something | |
114 | # like: 1 minutes 20 seconds, or 1*60+20. | |
115 | # | |
116 | # Recommended server classes: | |
117 | # All your server uplinks you are not a hub for. | |
118 | Class { | |
119 | name = "Server"; | |
120 | pingfreq = 1 minutes 30 seconds; | |
121 | connectfreq = 5 minutes; | |
122 | maxlinks = 1; | |
123 | sendq = 9000000; | |
124 | }; | |
125 | # All the leaf servers you hub for. | |
126 | Class { | |
127 | name = "LeafServer"; | |
128 | pingfreq = 1 minutes 30 seconds; | |
129 | connectfreq = 5 minutes; | |
130 | maxlinks = 0; | |
131 | sendq = 9000000; | |
132 | }; | |
133 | ||
134 | # Client { | |
135 | # username = "ident"; | |
136 | # host = "host"; | |
137 | # ip = "127.0.0.0/8"; | |
138 | # password = "password"; | |
139 | # class = "classname"; | |
140 | # maxlinks = 3; | |
141 | # }; | |
142 | # | |
143 | # Everything in a Client block is optional. If a username mask is | |
144 | # given, it must match the client's username from the IDENT protocol. | |
145 | # If a host mask is given, the client's hostname must resolve and | |
146 | # match the host mask. If a CIDR-style IP mask is given, the client | |
147 | # must have an IP matching that range. If maxlinks is given, it is | |
148 | # limits the number of matching clients allowed from a particular IP | |
149 | # address. | |
150 | # | |
151 | # Recommended client classes: | |
152 | # Client classes. 10 = locals; 2 = for all .net and .com that are not | |
153 | # in Europe; 1 = for everybody. | |
154 | Class { | |
155 | name = "Local"; | |
156 | pingfreq = 1 minutes 30 seconds; | |
157 | sendq = 160000; | |
158 | maxlinks = 100; | |
159 | usermode = "+iw"; | |
160 | }; | |
161 | Client | |
162 | { | |
163 | class = "Other"; | |
164 | username = "*"; | |
165 | }; | |
166 | Class { | |
167 | name = "America"; | |
168 | pingfreq = 1 minutes 30 seconds; | |
169 | sendq = 80000; | |
170 | maxlinks = 5; | |
171 | }; | |
172 | Class { | |
173 | name = "Other"; | |
174 | pingfreq = 1 minutes 30 seconds; | |
175 | sendq = 160000; | |
176 | maxlinks = 400; | |
177 | }; | |
178 | Class { | |
179 | name = "Opers"; | |
180 | pingfreq = 1 minutes 30 seconds; | |
181 | sendq = 160000; | |
182 | maxlinks = 10; | |
183 | ||
184 | # For connection classes intended for operator use, you can specify | |
185 | # privileges used when the Operator block (see below) names this | |
186 | # class. The local (aka globally_opered) privilege MUST be defined | |
187 | # by either the Class or Operator block. The following privileges | |
188 | # exist: | |
189 | # | |
190 | # local (or propagate, with the opposite sense) | |
191 | # whox (log oper's use of x flag with /WHO) | |
192 | # display (oper status visible to lusers) | |
193 | # chan_limit (can join local channels when in | |
194 | # MAXCHANNELSPERUSER channels) | |
195 | # mode_lchan (can /MODE &channel without chanops) | |
196 | # deop_lchan (cannot be deopped or kicked on local channels) | |
197 | # walk_lchan (can forcibly /JOIN &channel OVERRIDE) | |
198 | # show_invis (see +i users in /WHO x) | |
199 | # show_all_invis (see +i users in /WHO x) | |
200 | # unlimit_query (show more results from /WHO) | |
201 | # local_kill (can kill clients on this server) | |
202 | # rehash (can use /REHASH) | |
203 | # restart (can use /RESTART) | |
204 | # die (can use /DIE) | |
205 | # local_jupe (not used) | |
206 | # set (can use /SET) | |
207 | # local_gline (can set a G-line for this server only) | |
208 | # local_badchan (can set a Gchan for this server only) | |
209 | # see_chan (can see users in +s channels in /WHO) | |
210 | # wide_gline (can use ! to force a wide G-line) | |
211 | # see_opers (can see opers without DISPLAY privilege) | |
212 | # local_opmode (can use OPMODE/CLEARMODE on local channels) | |
213 | # force_local_opmode (can use OPMODE/CLEARMODE on quarantined local channels) | |
214 | # kill (can kill clients on other servers) | |
215 | # gline (can issue G-lines to other servers) | |
216 | # jupe_server (not used) | |
217 | # opmode (can use /OPMODE) | |
218 | # badchan (can issue Gchans to other servers) | |
219 | # force_opmode (can use OPMODE/CLEARMODE on quarantined global channels) | |
220 | # apass_opmode (can use OPMODE/CLEARMODE on +A and +U keys) | |
221 | # | |
222 | # For global opers (with propagate = yes or local = no), the default | |
223 | # is to grant all of the above privileges EXCEPT walk_lchan, | |
224 | # unlimit_query, set, badchan, local_badchan and apass_opmode. | |
225 | # For local opers, the default is to grant ONLY the following | |
226 | # privileges: | |
227 | # chan_limit, mode_lchan, show_invis, show_all_invis, local_kill, | |
228 | # rehash, local_gline, local_jupe, local_opmode, whox, display, | |
229 | # force_local_opmode | |
230 | # Any privileges listed in a Class block override the defaults. | |
231 | ||
232 | local = no; | |
233 | }; | |
234 | # [Client] | |
235 | # | |
236 | # To allow clients to connect, they need authorization. This can be | |
237 | # done based on hostmask, address mask, and/or with a password. | |
238 | # With intelligent use of classes and the maxconnections field in the | |
239 | # Client blocks, you can let in a specific domain, but get rid of all other | |
240 | # domains in the same toplevel, thus setting up some sort of "reverse | |
241 | # Kill block". | |
242 | # Client { | |
243 | # host = "user@host"; | |
244 | # ip = "ip@host"; | |
245 | # password = "password"; | |
246 | # class = "classname"; | |
247 | # }; | |
248 | # | |
249 | # Technical description (for examples, see below): | |
250 | # For every connecting client, the IP address is known. A reverse lookup | |
251 | # on this IP-number is done to get the (/all) hostname(s). | |
252 | # Each hostname that belongs to this IP-number is matched to <hostmask>, | |
253 | # and the Client {} is used when any matches; the client will then show | |
254 | # with this particular hostname. If none of the hostnames match, then | |
255 | # the IP-number is matched against the <IP mask ...> field, if this matches | |
256 | # then the Client{} is used nevertheless and the client will show with the | |
257 | # first (main) hostname if any; if the IP-number did not resolve then the | |
258 | # client will show with the dot notation of the IP-number. | |
259 | # There is a special case for the UNIX domain sockets and localhost connections | |
260 | # though; in this case the <IP mask ...> field is compared with the | |
261 | # name of the server (thus not with any IP-number representation). The name | |
262 | # of the server is the one returned in the numeric 002 reply, for example: | |
263 | # 002 Your host is 2.undernet.org[jolan.ppro], running version ... | |
264 | # Then the "jolan.ppro" is the name used for matching. | |
265 | # Therefore, unix domain sockets, and connections to localhost would | |
266 | # match this block: | |
267 | # host = "*@jolan.ppro"; | |
268 | # | |
269 | # This is the "fallback" entry. All .uk, .nl, and all unresolved are | |
270 | # in these two lines. | |
271 | # By using two different lines, multiple connections from a single IP | |
272 | # are only allowed from hostnames which have both valid forward and | |
273 | # reverse DNS mappings. | |
274 | Client | |
275 | { | |
276 | class = "Other"; | |
277 | ip = "*@*"; | |
278 | }; | |
279 | ||
280 | ||
281 | Client | |
282 | { | |
283 | class = "Other"; | |
284 | host = "*@*"; | |
285 | }; | |
286 | # If you don't want unresolved dudes to be able to connect to your | |
287 | # server, do not specify any "ip = " settings. | |
288 | # | |
289 | # Here, take care of all American ISPs. | |
290 | Client | |
291 | { | |
292 | host = "*@*.com"; | |
293 | class = "America"; | |
294 | }; | |
295 | ||
296 | Client | |
297 | { | |
298 | host = "*@*.net"; | |
299 | class = "America"; | |
300 | }; | |
301 | # Now list all the .com / .net domains that you wish to have access... | |
302 | # actually it's less work to do it this way than to do it the other | |
303 | # way around - K-lining every single ISP in the US. | |
304 | # I wish people in Holland just got a .nl domain, and not try to be | |
305 | # cool and use .com... | |
306 | Client { host = "*@*.wirehub.net"; class = "Other";}; | |
307 | Client { host = "*@*.planete.net"; class = "Other";}; | |
308 | Client { host = "*@*.ivg.com"; class = "Other";}; | |
309 | Client { host = "*@*.ib.com"; class = "Other";}; | |
310 | Client { host = "*@*.ibm.net"; class = "Other";}; | |
311 | Client { host = "*@*.hydro.com"; class = "Other";}; | |
312 | Client { host = "*@*.nl.net"; class = "Local";}; | |
313 | ||
314 | # You can request a more complete listing, including the "list of standard | |
315 | # Kill blocks" from the Routing Committee; it will also be sent to you if | |
316 | # you apply for a server and get accepted. | |
317 | # | |
318 | # Ourselves - this makes sure that we can get in, no matter how full | |
319 | # the server is (hopefully). | |
320 | Client | |
321 | { | |
322 | host = "*@*.london.ac.uk"; | |
323 | ip = "*@193.37.*"; | |
324 | class = "Local"; | |
325 | }; | |
326 | ||
327 | # You can put an expression in the maxlinks value, which will make ircd | |
328 | # only accept a client when the total number of connections to the network | |
329 | # from the same IP number doesn't exceed this number. | |
330 | # The following example would accept at most one connection per IP number | |
331 | # from "*.swipnet.se" and at most two connections from dial up accounts | |
332 | # that have "dial??.*" as host mask: | |
333 | # Client { | |
334 | # host = "*@*.swipnet.se"; | |
335 | # maxlinks = 1; | |
336 | # class = "Other"; | |
337 | # }; | |
338 | # Client { | |
339 | # host = "*@dial??.*"; | |
340 | # maxlinks = 2; | |
341 | # class = "Other"; | |
342 | # }; | |
343 | # | |
344 | # If you are not worried about who connects, this line will allow everyone | |
345 | # to connect. | |
346 | Client { | |
347 | host = "*@*"; | |
348 | ip = "*@*"; | |
349 | class = "Other"; | |
350 | }; | |
351 | ||
352 | ||
353 | # [motd] | |
354 | # | |
355 | # It is possible to show a different Message of the Day to a connecting | |
356 | # client depending on its origin. | |
357 | # motd { | |
358 | # # Note: host can also be a classname. | |
359 | # host = "Other"; | |
360 | # file = "path/to/motd/file"; | |
361 | # }; | |
362 | # | |
363 | # DPATH/net_com.motd contains a special MOTD where users are encouraged | |
364 | # to register their domains and get their own client{} lines if they're in | |
365 | # Europe, or move to US.UnderNet.org if they're in the USA. | |
366 | motd { | |
367 | host = "*.net"; | |
368 | file = "net_com.motd"; | |
369 | }; | |
370 | motd { | |
371 | host = "*.com"; | |
372 | file = "net_com.motd"; | |
373 | }; | |
374 | motd { | |
375 | host = "America"; | |
376 | file = "net_com.motd"; | |
377 | }; | |
378 | ||
379 | # A different MOTD for ourselves, where we point out that the helpdesk | |
380 | # better not be bothered with questions regarding irc... | |
381 | motd { | |
382 | host = "*.london.ac.uk"; | |
383 | file = "london.motd"; | |
384 | }; | |
385 | ||
386 | # [UWorld] | |
387 | # | |
388 | # One of the many nice features of Undernet is "Uworld", a program | |
389 | # connected to the net as a server. This allows it to broadcast any mode | |
390 | # change, thus allowing opers to, for example, "unlock" a channel that | |
391 | # has been taken over. | |
392 | # There is only one slight problem: the TimeStamp protocol prevents this. | |
393 | # So there is a configuration option to allow them anyway from a certain | |
394 | # server. | |
395 | # UWorld { | |
396 | # # The servername or wildcard mask for it that this applies to. | |
397 | # name = "relservername"; | |
398 | # }; | |
399 | # | |
400 | # You may have have more than one name listed in each block. | |
401 | # | |
402 | # Note: (1) These lines are agreed on by every server admin on Undernet; | |
403 | # (2) These lines must be the same on every single server, or results | |
404 | # will be disasterous; (3) This is a useful feature, not something that | |
405 | # is a liability and abused regularly (well... :-) | |
406 | # If you're on Undernet, you MUST have these lines. I cannnot stress | |
407 | # this enough. If all of the servers don't have the same lines, the | |
408 | # servers will try to undo the mode hacks that Uworld does. Make SURE that | |
409 | # all of the servers have the EXACT same UWorld blocks. | |
410 | # | |
411 | # If your server starts on a bit larger network, you'll probably get | |
412 | # assigned one or two uplinks to which your server can connect. | |
413 | # If your uplink(s) also connect to other servers than yours (which is | |
414 | # probable), you need to define your uplink as being allowed to "hub". | |
415 | # See the Connect block documentation for details on how to do that. | |
416 | ||
417 | UWorld { | |
418 | name = "uworld.eu.undernet.org"; | |
419 | name = "uworld2.undernet.org"; | |
420 | name = "uworld.undernet.org"; | |
421 | name = "channels.undernet.org"; | |
422 | name = "channels2.undernet.org"; | |
423 | name = "channels3.undernet.org"; | |
424 | name = "channels4.undernet.org"; | |
425 | name = "channels5.undernet.org"; | |
426 | name = "channels6.undernet.org"; | |
427 | }; | |
428 | ||
429 | # As of ircu2.10.05 is it possible to Jupe nicks. As per CFV-0095 and | |
430 | # CFV-0255, the following nicks must be juped, it is not allowed to | |
431 | # jupe others as well. | |
432 | Jupe { | |
433 | nick = "A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,{,|,},~,-,_,`"; | |
434 | nick = "EuWorld,UWorld,UWorld2"; | |
435 | nick = "login,undernet,protocol,pass,newpass,org"; | |
436 | nick = "StatServ,NoteServ"; | |
437 | nick = "ChanSvr,ChanSaver,ChanServ"; | |
438 | nick = "NickSvr,NickSaver,NickServ"; | |
439 | nick = "LPT1,LPT2,COM1,COM2,COM3,COM4,AUX"; | |
440 | }; | |
441 | ||
442 | # [Kill] | |
443 | # | |
444 | # While running your server, you will most probably encounter individuals | |
445 | # or groups of persons that you do not wish to have access to your server. | |
446 | # | |
447 | # For this purpose, the ircd understands "kill blocks". These are also | |
448 | # known as K-lines, by virtue of the former config file format. | |
449 | # Kill | |
450 | # { | |
451 | # host = "user@host"; | |
452 | # reason = "The reason the user will see"; | |
453 | # }; | |
454 | # It is possible to ban on the basis of the real name. | |
455 | # It is also possible to use a file as comment for the ban, using | |
456 | # file = "file": | |
457 | # Kill | |
458 | # { | |
459 | # realname = "realnametoban"; | |
460 | # file = "path/to/file/with/reason/to/show"; | |
461 | # }; | |
462 | # | |
463 | # | |
464 | # The default reason is: "You are banned from this server" | |
465 | # Note that Kill blocks are local to the server; if you ban a person or a | |
466 | # whole domain from your server, they can get on IRC via any other server | |
467 | # that doesn't have them Killed (yet). | |
468 | # | |
469 | # With a simple comment, using quotes: | |
470 | Kill { host = "*.au"; reason = "Please use a nearer server"; }; | |
471 | Kill { host = "*.edu"; reason = "Please use a nearer server"; }; | |
472 | ||
473 | # You can also kill based on username. | |
474 | Kill { username = "sub7"; realname = "s*7*"; reason = "You are infected with a Trojan"; }; | |
475 | ||
476 | # The file can contain for example, a reason, a link to the | |
477 | # server rules and a contact address. Note the combination | |
478 | # of username and host in the host field. | |
479 | Kill | |
480 | { | |
481 | host = "*luser@unixbox.flooder.co.uk"; | |
482 | file = "kline/youflooded.txt"; | |
483 | }; | |
484 | ||
485 | # IP-based kill lines apply to all hosts, even if an IP address has a | |
486 | # properly resolving host name. | |
487 | Kill | |
488 | { | |
489 | host = "192.168.*"; | |
490 | file = "klines/martians"; | |
491 | }; | |
492 | ||
493 | # The realname field lets you ban by realname... | |
494 | Kill | |
495 | { | |
496 | realname = "*sub7*"; | |
497 | reason = "You are infected with a Trojan"; | |
498 | }; | |
499 | ||
500 | # [Connect] | |
501 | # | |
502 | # You probably want your server connected to other servers, so your users | |
503 | # have other users to chat with. | |
504 | # IRC servers connect to other servers forming a network with a star or | |
505 | # tree topology. Loops are not allowed. | |
506 | # In this network, two servers can be distinguished: "hub" and "leaf" | |
507 | # servers. Leaf servers connect to hubs; hubs connect to each other. | |
508 | # Of course, many servers can't be directly classified in one of these | |
509 | # categories. Both a fixed and a rule-based decision making system for | |
510 | # server links is provided for ircd to decide what links to allow, what | |
511 | # to let humans do themselves, and what links to (forcefully) disallow. | |
512 | # | |
513 | # The Connect blocks | |
514 | # define what servers the server connect to, and which servers are | |
515 | # allowed to connect. | |
516 | # Connect { | |
517 | # name = "servername"; | |
518 | # host = "hostnameORip"; | |
519 | # password = "passwd"; | |
520 | # port = portno; | |
521 | # class = "classname"; | |
522 | # maxhops = 2; | |
523 | # hub = "*.eu.undernet.org"; | |
524 | # autoconnect = no; | |
525 | # }; | |
526 | # | |
527 | # The "port" field defines the default port the server tries to connect | |
528 | # to if an operator uses /connect without specifying a port. This is also | |
529 | # the port used when the server attempts to auto-connect to the remote | |
530 | # server. (See Class blocks for more informationa about auto-connects). | |
531 | # You may tell ircu to not automatically connect to a server by adding | |
532 | # "autoconnect = no;"; the default is to autoconnect. | |
533 | # | |
534 | # The maxhops field causes an SQUIT if a hub tries to introduce | |
535 | # servers farther away than that; the element 'leaf;' is an alias for | |
536 | # 'maxhops = 0;'. The hub field limits the names of servers that may | |
537 | # be introduced by a hub; the element 'hub;' is an alias for | |
538 | # 'hub = "*";'. | |
539 | # | |
540 | # Our primary uplink. | |
541 | Connect { | |
542 | name = "Amsterdam.NL.Eu.UnderNet.org"; | |
543 | host = "1.2.3.4"; | |
544 | password = "passwd"; | |
545 | port = 4400; | |
546 | class = "Server"; | |
547 | hub; | |
548 | }; | |
549 | ||
550 | # [crule] | |
551 | # | |
552 | # For an advanced, real-time rule-based routing decision making system | |
553 | # you can use crule blocks. For more information, see doc/readme.crules. | |
554 | # CRULE | |
555 | # { | |
556 | # server = "servermask"; | |
557 | # rule = "connectrule"; | |
558 | # # Setting all to yes makes the rule always apply. Otherwise it only | |
559 | # # applies to autoconnects. | |
560 | # all = yes; | |
561 | # }; | |
562 | CRULE | |
563 | { | |
564 | server = "*.US.UnderNet.org"; | |
565 | rule = "connected(*.US.UnderNet.org)"; | |
566 | }; | |
567 | CRULE | |
568 | { | |
569 | server = "*.EU.UnderNet.org"; | |
570 | rule = "connected(Amsterdam.NL.EU.*)"; | |
571 | }; | |
572 | ||
573 | # The following block is recommended for leaf servers: | |
574 | CRULE | |
575 | { | |
576 | server = "*"; | |
577 | rule = "directcon(*)"; | |
578 | }; | |
579 | ||
580 | # [Operator] | |
581 | # | |
582 | # Inevitably, you have reached the part about "IRC Operators". Oper status | |
583 | # grants some special privileges to a user, like the power to make the | |
584 | # server break or (try to) establish a connection with another server, | |
585 | # and to "kill" users off IRC. | |
586 | # I can write many pages about this; I will restrict myself to saying that | |
587 | # if you want to appoint somebody as IRC Operator on your server, that | |
588 | # person should be aware of his/her responsibilities, and that you, being | |
589 | # the admin, will be held accountable for their actions. | |
590 | # | |
591 | # There are two sorts of IRC Operators: "local" and "global". Local opers | |
592 | # can squit, connect and kill - but only locally: their +o user mode | |
593 | # is not not passed along to other servers. On Undernet, this prevents | |
594 | # them from using Uworld as well. | |
595 | # | |
596 | # Operator { | |
597 | # host = "host/IP mask"; | |
598 | # name = "opername"; | |
599 | # password = "encryptedpass"; | |
600 | # class = "classname"; | |
601 | # # You can also set any operator privilege; see the Class block | |
602 | # # documentation for details. A privilege defined for a single | |
603 | # # Operator will override the privilege settings for the Class | |
604 | # # and the default setting. | |
605 | # }; | |
606 | # | |
607 | # By default, the password is hashed using the system's native crypt() | |
608 | # function. Other password mechanisms are available; the umkpasswd | |
609 | # utility from the ircd directory can hash passwords using those | |
610 | # mechanisms. | |
611 | # | |
612 | # All privileges are shown with their default values; if you wish to | |
613 | # override defaults, you should set only those privileges for the | |
614 | # operator. Listing defaulted privileges just makes things harder to | |
615 | # find. | |
616 | Operator { | |
617 | local = no; | |
618 | host = "*@*.cs.vu.nl"; | |
619 | password = "VRKLKuGKn0jLt"; | |
620 | name = "Niels"; | |
621 | class = "Local"; | |
622 | }; | |
623 | Operator { | |
624 | host = "*@*.uu.net"; | |
625 | password = "$PLAIN$notencryptedpass"; | |
626 | name = "Niels"; | |
627 | class = "Opers"; | |
628 | }; | |
629 | ||
630 | # Note that the <connection class> is optional, but leaving it away | |
631 | # puts the opers in class "default", which usually only accepts one | |
632 | # connection at a time. If you want users to Oper up more then once per | |
633 | # block, then use a connection class that allows more then one connection, | |
634 | # for example (using class Local as in the example above): | |
635 | # | |
636 | # Once you OPER your connection class changes no matter where you are or | |
637 | # your previous connection classes. If the defined connection class is | |
638 | # Local for the operator block, then your new connection class is Local. | |
639 | ||
640 | # [Port] | |
641 | # When your server gets more full, you will notice delays when trying to | |
642 | # connect to your server's primary listening port. It is possible via the | |
643 | # Port lines to specify additional ports for the ircd to listen to. | |
644 | # De facto ports are: 6667 - standard; 6660-6669 - additional client | |
645 | # ports; | |
646 | # Undernet uses 4400 for server listener ports. | |
647 | # These are just hints, they are in no way official IANA or IETF policies. | |
648 | # IANA says we should use port 194, but that requires us to run as root, | |
649 | # so we don't do that. | |
650 | # | |
651 | # Port { | |
652 | # port = number; | |
653 | # mask = "ipmask"; | |
654 | # # Use this to control the interface you bind to. | |
655 | # vhost = "virtualhostip"; | |
656 | # # Setting to yes makes this server only. | |
657 | # server = yes; | |
658 | # # Setting to yes makes the port "hidden" from stats. | |
659 | # hidden = yes; | |
660 | # }; | |
661 | # | |
662 | # The mask setting allows you to specify a range of IP addresses that | |
663 | # you will allow connections from. This should only contain IP addresses | |
664 | # and '*' if used. This field only uses IP addresses. This does not use | |
665 | # DNS in any way so you can't use it to allow *.nl or *.uk. Attempting | |
666 | # to specify anything other than numbers, dots and stars [0-9.*] will result | |
667 | # in the port allowing connections from anyone. | |
668 | # | |
669 | # The interface setting allows multiply homed hosts to specify which | |
670 | # interface to use on a port by port basis, if an interface is not specified | |
671 | # the default interface will be used. The interface MUST be the complete | |
672 | # IP address for a real hardware interface on the machine running ircd. | |
673 | # If you want to use virtual hosting *YOU* *MUST* *USE* *THIS* otherwise it | |
674 | # WILL bind to all interfaces - not what most people seem to expect. | |
675 | # | |
676 | Port { | |
677 | server = yes; | |
678 | port = 4400; | |
679 | }; | |
680 | ||
681 | # This is a Server port that is Hidden | |
682 | Port { | |
683 | server = yes; | |
684 | hidden = yes; | |
685 | port = 4401; | |
686 | }; | |
687 | ||
688 | # The following are normal client ports | |
689 | Port { port = 6667; }; | |
690 | Port { port = 6668; }; | |
691 | Port { | |
692 | # This only accepts clients with IPs like 192.168.*. | |
693 | mask = "192.168.*"; | |
694 | port = 6666; | |
695 | }; | |
696 | ||
697 | # This is a hidden client port, listening on 168.8.21.107. | |
698 | Port { | |
699 | vhost = "168.8.21.107"; | |
700 | hidden = yes; | |
701 | port = 7000; | |
702 | }; | |
703 | ||
704 | # Quarantine blocks disallow operators from using OPMODE and CLEARMODE | |
705 | # on certain channels. Opers with the force_opmode (for local | |
706 | # channels, force_local_opmode) privilege may override the quarantine | |
707 | # by prefixing the channel name with an exclamation point ('!'). | |
708 | # Wildcards are NOT supported; the channel name must match exactly. | |
709 | Quarantine { | |
710 | "#shells" = "Thou shalt not support the h4><0rz"; | |
711 | "&kiddies" = "They can take care of themselves"; | |
712 | }; | |
713 | ||
714 | # This is a server-implemented alias to send a message to a service. | |
715 | # The string after Pseudo is the command name; the name entry inside | |
716 | # is the service name, used for error messages. More than one nick | |
717 | # entry can be provided; the last one listed has highest priority. | |
718 | Pseudo "CHANSERV" { | |
719 | name = "X"; | |
720 | nick = "X@channels.undernet.org"; | |
721 | }; | |
722 | ||
723 | # You can also prepend text before the user's message. | |
724 | Pseudo "LOGIN" { | |
725 | name = "X"; | |
726 | prepend = "LOGIN "; | |
727 | nick = "X@channels.undernet.org"; | |
728 | }; | |
729 | ||
730 | # You can ask a separate server whether to allow users to connect. | |
731 | IAuth { | |
732 | pass = "ircd-iauth"; | |
733 | host = "127.0.0.1"; | |
734 | port = 7700; | |
735 | connectfreq = 30; | |
736 | timeout = 60; | |
737 | }; | |
738 | ||
739 | # [features] | |
740 | # IRC servers have a large number of options and features. Most of these | |
741 | # are set at compile time through the use of #define's--see "make config" | |
742 | # for more details--but we are working to move many of these into the | |
743 | # configuration file. Features let you configure these at runtime. | |
744 | # You only need one feature block in which you use | |
745 | # "featurename" = "value1" , "value2", ..., "valuen-1", "valuen"; | |
746 | # | |
747 | # The entire purpose of F:lines are so that you do not have to recompile | |
748 | # the IRCD everytime you want to change a feature. All of the features | |
749 | # are listed below, and at the bottom is how to set logging. | |
750 | # | |
751 | # A Special Thanks to Kev for writing the documentation of F:lines. It can | |
752 | # be found at doc/readme.features and the logging documentation can be | |
753 | # found at doc/readme.log. The defaults used by the Undernet network are | |
754 | # below. | |
755 | # | |
756 | features | |
757 | { | |
758 | # These log features are the only way to get certain error messages | |
759 | # (such as when the server dies from being out of memory). For more | |
760 | # explanation of how they work, see doc/readme.log. | |
761 | "LOG" = "SYSTEM" "FILE" "ircd.log"; | |
762 | "LOG" = "SYSTEM" "LEVEL" "CRIT"; | |
763 | # "DOMAINNAME"="<obtained from /etc/resolv.conf by ./configure>"; | |
764 | # "RELIABLE_CLOCK"="FALSE"; | |
765 | # "BUFFERPOOL"="27000000"; | |
766 | # "HAS_FERGUSON_FLUSHER"="FALSE"; | |
767 | # "CLIENT_FLOOD"="1024"; | |
768 | # "SERVER_PORT"="4400"; | |
769 | # "NODEFAULTMOTD"="TRUE"; | |
770 | # "MOTD_BANNER"="TRUE"; | |
771 | # "KILL_IPMISMATCH"="FALSE"; | |
772 | # "IDLE_FROM_MSG"="TRUE"; | |
773 | # "HUB"="FALSE"; | |
774 | # "WALLOPS_OPER_ONLY"="FALSE"; | |
775 | # "NODNS"="FALSE"; | |
776 | # "RANDOM_SEED"="<you should set one explicitly>"; | |
777 | # "DEFAULT_LIST_PARAM"="TRUE"; | |
778 | # "NICKNAMEHISTORYLENGTH"="800"; | |
779 | # "NETWORK"="UnderNet"; | |
780 | # "HOST_HIDING"="FALSE"; | |
781 | # "HIDDEN_HOST"="users.undernet.org"; | |
782 | # "HIDDEN_IP"="127.0.0.1"; | |
783 | # "KILLCHASETIMELIMIT"="30"; | |
784 | # "MAXCHANNELSPERUSER"="10"; | |
785 | # "NICKLEN" = "12"; | |
786 | # "AVBANLEN"="40"; | |
787 | # "MAXBANS"="30"; | |
788 | # "MAXSILES"="15"; | |
789 | # "HANGONGOODLINK"="300"; | |
790 | # "HANGONRETRYDELAY" = "10"; | |
791 | # "CONNECTTIMEOUT" = "90"; | |
792 | # "MAXIMUM_LINKS" = "1"; | |
793 | # "PINGFREQUENCY" = "120"; | |
794 | # "CONNECTFREQUENCY" = "600"; | |
795 | # "DEFAULTMAXSENDQLENGTH" = "40000"; | |
796 | # "GLINEMAXUSERCOUNT" = "20"; | |
797 | # "MPATH" = "ircd.motd"; | |
798 | # "RPATH" = "remote.motd"; | |
799 | # "PPATH" = "ircd.pid"; | |
800 | # "TOS_SERVER" = "0x08"; | |
801 | # "TOS_CLIENT" = "0x08"; | |
802 | # "POLLS_PER_LOOP" = "200"; | |
803 | # "IRCD_RES_TIMEOUT" = "4"; | |
804 | # "IRCD_RES_RETRIES" = "2"; | |
805 | # "AUTH_TIMEOUT" = "9"; | |
806 | # "IPCHECK_CLONE_LIMIT" = "4"; | |
807 | # "IPCHECK_CLONE_PERIOD" = "40"; | |
808 | # "IPCHECK_CLONE_DELAY" = "600"; | |
809 | # "CHANNELLEN" = "200"; | |
810 | # "CONFIG_OPERCMDS" = "FALSE"; | |
811 | # "OPLEVELS" = "TRUE"; | |
812 | # "LOCAL_CHANNELS" = "TRUE"; | |
813 | # "ANNOUNCE_INVITES" = "FALSE"; | |
814 | # These were introduced by Undernet CFV-165 to add "Head-In-Sand" (HIS) | |
815 | # behavior to hide most network topology from users. | |
816 | # "HIS_SNOTICES" = "TRUE"; | |
817 | # "HIS_SNOTICES_OPER_ONLY" = "TRUE"; | |
818 | # "HIS_DEBUG_OPER_ONLY" = "TRUE"; | |
819 | # "HIS_WALLOPS" = "TRUE"; | |
820 | # "HIS_MAP" = "TRUE"; | |
821 | # "HIS_LINKS" = "TRUE"; | |
822 | # "HIS_TRACE" = "TRUE"; | |
823 | # "HIS_STATS_a" = "TRUE"; | |
824 | # "HIS_STATS_c" = "TRUE"; | |
825 | # "HIS_STATS_d" = "TRUE"; | |
826 | # "HIS_STATS_e" = "TRUE"; | |
827 | # "HIS_STATS_f" = "TRUE"; | |
828 | # "HIS_STATS_g" = "TRUE"; | |
829 | # "HIS_STATS_i" = "TRUE"; | |
830 | # "HIS_STATS_j" = "TRUE"; | |
831 | # "HIS_STATS_J" = "TRUE"; | |
832 | # "HIS_STATS_k" = "TRUE"; | |
833 | # "HIS_STATS_l" = "TRUE"; | |
834 | # "HIS_STATS_L" = "TRUE"; | |
835 | # "HIS_STATS_m" = "TRUE"; | |
836 | # "HIS_STATS_M" = "TRUE"; | |
837 | # "HIS_STATS_o" = "TRUE"; | |
838 | # "HIS_STATS_p" = "TRUE"; | |
839 | # "HIS_STATS_q" = "TRUE"; | |
840 | # "HIS_STATS_r" = "TRUE"; | |
841 | # "HIS_STATS_R" = "TRUE"; | |
842 | # "HIS_STATS_t" = "TRUE"; | |
843 | # "HIS_STATS_T" = "TRUE"; | |
844 | # "HIS_STATS_u" = "FALSE"; | |
845 | # "HIS_STATS_U" = "TRUE"; | |
846 | # "HIS_STATS_v" = "TRUE"; | |
847 | # "HIS_STATS_w" = "TRUE"; | |
848 | # "HIS_STATS_x" = "TRUE"; | |
849 | # "HIS_STATS_y" = "TRUE"; | |
850 | # "HIS_STATS_z" = "TRUE"; | |
851 | # "HIS_WHOIS_SERVERNAME" = "TRUE"; | |
852 | # "HIS_WHOIS_IDLETIME" = "TRUE"; | |
853 | # "HIS_WHOIS_LOCALCHAN" = "TRUE"; | |
854 | # "HIS_WHO_SERVERNAME" = "TRUE"; | |
855 | # "HIS_WHO_HOPCOUNT" = "TRUE"; | |
856 | # "HIS_BANWHO" = "TRUE"; | |
857 | # "HIS_KILLWHO" = "TRUE"; | |
858 | # "HIS_REWRITE" = "TRUE"; | |
859 | # "HIS_REMOTE" = "TRUE"; | |
860 | # "HIS_NETSPLIT" = "TRUE"; | |
861 | # "HIS_SERVERNAME" = "*.undernet.org"; | |
862 | # "HIS_SERVERINFO" = "The Undernet Underworld"; | |
863 | # "HIS_URLSERVERS" = "http://www.undernet.org/servers.php"; | |
864 | }; | |
865 | ||
866 | # Well, you have now reached the end of this sample configuration | |
867 | # file. If you have any questions, feel free to mail | |
868 | # <coder-com@undernet.org>. If you are interested in linking your | |
869 | # server to the Undernet IRC network visit | |
870 | # http://www.routing-com.undernet.org/, and if there are any | |
871 | # problems then contact <routing-com@undernet.org> asking for | |
872 | # information. Upgrades of the Undernet ircd can be found on | |
873 | # http://coder-com.undernet.org/. | |
874 | # | |
875 | # For the rest: Good Luck! | |
876 | # | |
877 | # -- Niels. |