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