]> jfr.im git - irc.git/blob - software/ircd/www.irc.org/ftp/irc/org/Old/irc2.11.2p2/doc/ircd.conf.example
init
[irc.git] / software / ircd / www.irc.org / ftp / irc / org / Old / irc2.11.2p2 / doc / ircd.conf.example
1 # IRC - Internet Relay Chat, doc/example.conf
2 # Copyright (C) 1994, Helen Rose
3 #
4 # $Id: ircd.conf.example,v 1.25 2005/05/13 15:53:04 chopin Exp $
5 #
6 # some changes for 295 and cleaning, delta, Sat Jun 13 01:09:25 MES 1998
7 #
8 # This program is free software; you can redistribute it and/or modify
9 # it under the terms of the GNU General Public License as published by
10 # the Free Software Foundation; either version 1, or (at your option)
11 # any later version.
12 #
13 # This program is distributed in the hope that it will be useful,
14 # but WITHOUT ANY WARRANTY; without even the implied warranty of
15 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 # GNU General Public License for more details.
17 #
18 # You should have received a copy of the GNU General Public License
19 # along with this program; if not, write to the Free Software
20 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 #
22 # This is an example configuration file for the IRC server.
23 # It's highly suggested that you also read INSTALL.* in doc/ and talk with
24 # your uplinks if linking to an already existent IRC network.
25 #
26 # You only need an ircd.conf (IRC server configuration file) if you are
27 # running an IRC server. iauth.conf (IRC authentication daemon configuration
28 # file) may also be needed.
29 #
30 # This file will explain the various lines in the IRC server
31 # configuration file. Not all lines are mandatory. You can check to make
32 # sure that your configuration file is correct by using the program
33 # "chkconf", provided in the server distribution (and when you do "make
34 # install" this program will be installed in the same directory as the irc
35 # server).
36 #
37 # The options for whether a line is needed or not are:
38 # MANDATORY: you absolutely MUST have this line
39 # NETWORKED: you must have this line if you are connecting this irc
40 # server to any other server (servers can run standalone).
41 # SUGGESTED: it is HIGHLY suggested that you use this line
42 # OPTIONAL: it's completely up to you whether to define this or not
43 # DISCOURAGED: you really really should not use this line if at all
44 # possible.
45 # NOT NECESSARY: an old or out of date line that isn't needed.
46 #
47 #
48 # ========================================================================
49 # NOTE! this entire configuration file is read UPSIDE-DOWN! So if you have
50 # to put something in a specific order (for example, client-connection
51 # lines), put them in reverse order!
52 # ========================================================================
53 #
54 #
55 ############################
56 # M: [MANDATORY]. This line sets your server's name, description and port
57 # the server listens for UDP pings (used to determine the fastest link in a
58 # class when autoconnecting)
59 #
60 # M:<Server NAME>:<YOUR Internet IP#>:<Geographic Location>:<Port>:<SID>:
61 #
62 # Note that 'server name' refers to the name of the irc-server which needs
63 # not to be the same as the hostname of the machine it's running on.
64 # Note that <SID> must be globally unique, so if you are part of bigger
65 # network, ask other admins, what to set it to. If you are on IRCnet, ask
66 # your local coord. If you are (BIC) Coord on IRCnet, you have a pool of
67 # 36 SIDs to choose from. Check doc/ISO-3166-1 file to find your country
68 # numeric code (example: 000) and assign one SID for every of your servers
69 # starting from 000A, through 000Z, 0000 and ending at 0009.
70 #
71 # This let's ircd use the primary ip of your host to establish connections
72 M:example.irc.org::Example Geographic Location, Planet Earth:6667:000A
73 #
74 # This let's ircd use the ip 127.0.0.2 to establish connections, useful
75 # if you're running virtual interfaces
76 #M:example.irc.org:127.0.0.2:Example Geographic Location, Planet Earth:6667:000A:
77 #
78 #
79 ############################
80 # A: [MANDATORY]. This line lists your administrative information
81 # (contact address, etc). To view this information, /admin (server) will
82 # show it to you.
83 #
84 # A:<Your Name/Location>:<Your E-Mail Addr>:<other info>::<network name>:
85 # Note that <network name> *must* be one word.
86 #
87 A:Organization, IRC dept.:Daemon <ircd@example.irc.org>:Client Server::IRCnet:
88 #
89 #
90 ############################
91 # P: [MANDATORY]. This field allows the server to listen on various ports
92 # for connections. Any internet domain port that is below 1024 means the
93 # ircd has to be run as root, or from inetd. The server can listen to ports
94 # in the UNIX domain or the internet domain. If you wish to create a port
95 # in the UNIX domain you must compile with UNIXPORT defined in config.h.
96 #
97 # P:<YOUR Internet IP#>:<*>::<Port>:<Flags>
98 # P:<Directory>:<*>:<*>:<Port>:<Flags>
99 #
100 # Note that it's a good idea to open some more ports than 6667 for
101 # server-server connections and local clients in case some running wild
102 # client blocks the default 6667.
103 #
104 # The default, an internet domain socket on port 6667 listening on all
105 # ip addresses of the machine running ircd
106 P::::6667::
107 #
108 # an internet domain socket listening on port 6668 on address 206.252.192.20
109 # (again useful if you're running virtual interfaces)
110 P:206.252.192.20:::6668::
111 #
112 # This line is an example of a UNIX domain socket in /tmp
113 P:/tmp/.ircd:*::6666::
114 #
115 #
116 ############################
117 # Y: [SUGGESTED]. These lines define connection classes. Connection
118 # classes allow you to fine-tune your client and server connections.
119 # Since the fields have different meanings for server and client classes
120 # you shouldn't mix them, and if you have lots of server connections (if
121 # you do have lots of servers you shouldn't be reading this file :-) each
122 # set of servers (defined arbitrarily by you) should have its own class.
123 # If you have clients coming in from lots of different sites, you may want
124 # to seperate them out into classes. For instance, you may want to put
125 # local users in one class, with remote users in another class. You may also
126 # want to put limits on some client classes (one client only for indials
127 # for example). In any larger network you definitely want to do this.
128 #
129 # For SERVER CLASSES, the fields are:
130 # Y:<Class>:<Ping Frequency>:<Connect freq>:<Max Links>:<SendQ>::
131 # 1 2 3 4 5 67
132 # 1 class number
133 # 2 ping frequency (in seconds)
134 # 3 connect frequency (in seconds)
135 # 4 maximum number of automatically initiated links in this class
136 # 5 sendq
137 # 6 unused for server classes
138 # 7 unused for server classes
139 #
140 # Sendq have the format <x>.<y>, where x defines sendq whereas y defines
141 # burst sendq. It is useful to have for example 1MB normal sendq and 20MB
142 # of burst sendq, which allows for quicker broken link detection.
143 #
144 # The class numbers are not arbitrary. In auto-connecting servers -- that is,
145 # servers that you have a port number (e.g. 6667) on the end of the C: line
146 # (see below) the higher the number the higher the priority in auto-connecting.
147 #
148 # Note that it is a good idea to have ping frequency the same at both ends
149 # of the link.
150 #
151 # This is a normal (uncompressed) server connection (normal as of January, 2005)
152 # Y:<Class>:<Ping Frequencys>:<Connect freq>:<Max Links>:<SendQ>::
153 Y:2:90:300:1:20000000::
154 #
155 #
156 # For CLIENT CLASSES, the fields are:
157 # Y:<Class>:<Ping Frequency>::<Max Links>:<SendQ>:<Local Limit>:<Global Limit>:
158 # 1 2 3 4 5 6 7
159 # 1 class number
160 # 2 ping frequency (in seconds)
161 # 3 unused for client classes
162 # 4 maximum number of links in this class (per I line)
163 # 5 sendQ for each client
164 # 6 maximum number of links from this [user@]host on the server
165 # 7 maximum number of links from this [user@]host on the net
166 #
167 # Local and global limits have the format <x>.<y> where x defines the maximum
168 # number of clients from the same host (IP) whereas y defines the maximum
169 # number of clients from the same user@host (IP) allowed to connect. the
170 # latter uses the identd replies to identify a user, falling back to an
171 # @host limit if no identd runs on the client and fails for identds generating
172 # dynamical answers.
173 #
174 # Note that any unset values default to zero which means 'unlimited', except
175 # for limits, where default is 1.1
176 #
177 # Y:<Class>:<Ping Frequency>::<Max Links>:<SendQ>:<Local Limit>:<Global Limit>:
178 # this is a class for multiuser systems allowing 10 local clients per host
179 Y:10:90::100:512000:10.2:32.2:
180 #
181 # This is a class for multiuser systems running a trustworthy identd
182 Y:11:90::100:512000:0.1:0.2:
183 #
184 # This is a class for single user systems (PCs, most indials, ...)
185 Y:12:90::100:512000:1.1:2.1:
186 #
187 # This is a class for remote systems you want to allow as fallback only
188 # (if you run an open server in a net you might really want this)
189 Y:13:90::100:512000:1.1:1.1:
190 #
191 #
192 ############################
193 # I: [MANDATORY]. The I: lines are client-authorization lines. Without
194 # these lines, no clients will be able to connect to your server.
195 # Wildcards ("*") are permitted. Passwords are also possible (clients can
196 # be configured to send passwords) but optional. 'I' allows full access,
197 # 'i' sets restricted mode which forbids nick changes and channel op status.
198 # Note that 'i' is deprecated and you should use <Flags> (see INSTALL).
199 #
200 # <TARGET Host Addr> accepts CIDR format.
201 #
202 # I:<TARGET Host Addr>:<Password>:<TARGET Hosts NAME>:<Port>:<Class>:<Flags>:
203 #
204 # NOTE that ircd matches on both fields and if <TARGET Hosts NAME>
205 # is not empty (even if "*"), the client is required to have DNS.
206 #
207 # This would allow access for any client reaching this line which doesn't
208 # already have at least one connection to the net. if you run an open server
209 # in a net this might be the right choice, talk to your uplinks first anyway.
210 # Note listing this i: line first, it will be checked *last*, meaning it is
211 # the "fall-through".
212 #i:*@*::::13::
213 # With the password 'foobar'
214 #i:*@*:foobar:::13::
215 #
216 # this would allow access for any client coming from *.net, *.org, *.com or
217 # other 3 char TLD
218 #i:::*@*.???:13::
219 #
220 # This allows access for any client from the ip block 192.168.0.0/16
221 # regardless of its domain. If it's resolvable it will be shown as
222 # user@host since the field <TARGET Hosts NAME> is empty (useful to
223 # allow whole provider's blocks).
224 I:*@192.168.0.0/16::::12::
225 #
226 # This is a standard vanilla I: line which will permit anyone with an IP
227 # address within ip block 127.0.0.0/8 AND with a hostname ending in
228 # .irc.org to connect to the server.
229 I:*@127.0.0.0/8::*@*.irc.org::10::
230 #
231 # and you can even specify just certain usernames as long as the client's
232 # site is running a trustworthy ident daemon:
233 I:::gooduser@example.irc.org::10::
234 #
235 # this will limit access for indials to one client per host (as defined in Y:12)
236 I:::*@ppp*.irc.org::12::
237 I:::*@indial*.irc.org::12::
238 #
239 #
240 ############################
241 # O: [OPTIONAL]. These lines define operator access. You do not need to
242 # have an operator to run a server. A well configured leaf site should not
243 # need an operator online, if its connections are well defined, the irc
244 # administrator can use 'kill -HUP' on the ircd to reload the configuration
245 # file.
246 #
247 # O:<TARGET Host NAME>:<Password>:<Nickname>:<Port>:<Class>:<Flags>:
248 #
249 # If the person in "Nickname" is not coming from the hostname defined in
250 # the first field then the person will get the error message "No O: lines
251 # for your host".
252 #
253 # Note that you don't need to use 'Nickname' to become operator, if you're
254 # using some other nick at that moment '/oper Nickname' will do also.
255 #
256 O:*.bu.edu:Zaphod:Trillian::10:
257 #
258 # and this line forces ident match:
259 O:hrose@csa.bu.edu:Zaphod:Trillian::10::
260 #
261 # and this line allows oper to come from ip block:
262 O:192.168.0.0/16:Zaphod:Trillian::10::
263 #
264 # a crypted password line (NOTE that if you have crypted passwords, *all*
265 # of you passwords must be crypted! In fact, if you are getting an error
266 # "Incorrect Password" it may well be because crypted passwords are
267 # defined and you have used plaintext. So my example of plaintext and
268 # crypted strings in the same IRC server configuration file is an
269 # impossibility (but it is just theoretical, which is why I explained both).
270 #
271 O:rocker@csa.bu.edu:T0eiVgHrqeKTQ:Rocker::10::
272 #
273 # New for 2.11 are flags for O:line. They specify permissions for various
274 # activities (kill, connect, squit etc.) of an operator.
275 # The easiest is flag 'A' -- most possible permissions; read INSTALL file
276 # for details.
277 #
278 # Warning: if you add no flags, no privileges will be granted.
279 #
280 O:192.168.0.0/16:icmptz:Beeth::10:A:
281 #
282 # This line is a "local operator", it is specified with an O:line flag 'L'.
283 #
284 # this line permits the nickname "jhs" with the password of "ITBites" to
285 # be a local operator only (restrictions are defined in config.h during
286 # ircd compilation time).
287 #
288 O:*.bu.edu:ITBites:jhs::10:L:
289 #
290 # Lower case o:line (which is deprecated and will be removed in next version)
291 # and O:line with 'L' flag have exactly the same meaning.
292 #
293 ############################
294 # c/C: [NETWORKED]. These lines define what servers your server tries to
295 # connect to. 'c' means your server will support compression for this link
296 # if you've compiled with zlib, 'C' will enforce an uncompressed link.
297 # N: [NETWORKED]. These lines define what servers your server permits
298 # to connect.
299 #
300 # c/N lines MUST be used in pairs. You cannot have one without the other.
301 #
302 # C:<TARGET Host Addr>:<Password>:<TARGET Server NAME>:<TARGET PORT>:<Class>:<Source IP>:
303 # c:<TARGET Host Addr>:<Password>:<TARGET Server NAME>:<TARGET PORT>:<Class>:<Source IP>:
304 #
305 # if the target server listens on different ports you can use for <TARGET PORT>
306 # <port_to_connect_to>.<port_target_server_listens_for_udp_pings>.
307 # <TARGET Host Addr> can be also an ip address or CNAME.
308 # With <Source IP> you can specify source ip ircd will try to connect with
309 # to a given server.
310 #
311 # N:<TARGET Host Addr>:<Password>:<TARGET Server NAME>:<Domain Mask>:<Class>:
312 #
313 # "domain mask" is the number of parts in *your* hostname to mask to. For
314 # instance, with servername being "example.irc.org", if you wanted to present
315 # servername to be "*.irc.org" you would have a host-mask portion of "1".
316 #
317 # it is *strongly* advised that your c/N line passwords be different for
318 # security's sake.
319 #
320 # ident is allowed in the server's hostname part of the field.
321 # these lines tell the server to automatically (note the port number, that
322 # means automatic connection) connect to cs-ftp.bu.edu:
323 C:hrose@cs-ftp.bu.edu:bigspark:cs-ftp.bu.edu:6667:2::
324 N:hrose@cs-ftp.bu.edu:bigalpha:cs-ftp.bu.edu::2::
325 #
326 # This server's connection lines are more vanilla, masking the host to
327 # *.bu.edu (as described above):
328 C:irc-2.mit.edu:camelsrk00l:irc-2.mit.edu::2::
329 N:irc-2.mit.edu:andsoarellamas:irc-2.mit.edu:1:2::
330 #
331 # If you have defined ZIP_LINKS and wish the connection to irc-2.mit.edu to
332 # be compressed, you need to use a lowercase c. If the other server refuses
333 # or doesn't support compression it will fall back to an uncompressed link.
334 c:irc-2.mit.edu:camelsrk00l:irc-2.mit.edu::2::
335 N:irc-2.mit.edu:andsoarellamas:irc-2.mit.edu:1:2::
336 #
337 #
338 ############################
339 # K: [OPTIONAL]. These lines define user@host patterns to be banned from
340 # this particular server (with an optional time field). Note that K: lines
341 # are *not* global, and if you ban a user they can still use any other IRC
342 # server (unless they have specifically been banned there as well).
343 # 'K' uses the the type unix reply from the client's identd if available or
344 # the USER information supplied by the client if not. 'k' uses the reply from
345 # the client's identd also if it's type other (it's prefixed with '-' then).
346 #
347 # K:<Host Name or IP>:<time interval(s)|comment>:<User>:<port>:
348 # k:<Host Name or IP>:<time interval(s)|comment>:<Auth>:<port>:
349 #
350 # wildcards are permitted in any one of the fields, in other words, you can
351 # K:*::*:: if you wanted (but your server wouldn't be used much ;-)
352 #
353 # Note that if you specify an IP address, or IP mask, it will match clients
354 # connecting from the matching addresses, no matter if they resolve or not.
355 # You can prefix an IP address or IP mask by '=' in which case only non
356 # resolving matching hosts will be banned.
357 #
358 # This k: line bans the username "FSSPR" (the wildcard is used to make
359 # sure that any ident-checking character will match) on any machine from
360 # the University of Alaska.
361 k:*.alaska.edu::*FSSPR:0:
362 #
363 # This K: line bans any users from acs*.bu.edu between the hours of 8am
364 # and 12pm and 1pm and 5pm (the time is always the server's local time):
365 # Note that 24 hour time is used (no "AM" or "PM").
366 # (for this to work, you have to define TIMEDKLINES in config.h)
367 K:acs*.bu.edu:0800-1200,1300-1700:*:0:
368 #
369 # This K: line bans any users from *foo.edu sending them the notice
370 # "Use server irc.bar" instead of the default notice
371 # "You are not welcome to this server"
372 K:*foo.edu:Use server irc.bar:*:0:
373 #
374 # This K: line bans any users from *toto.fr from using the port 6667,
375 # and tells them to use port 6666 instead.
376 K:*toto.fr:Use port 6666:*:6667:
377 #
378 # This K: line bans any user from 129.69.0.0/16 as long the host doesn't run
379 # identd (no matter if it replies type unix or other) from all ports.
380 k:129.69.0.0/16:identd (rfc1413) required:unknown::
381 #
382 # This does the same but only for unresolvable clients
383 k:=129.69.0.0/16:identd (rfc1413) required:unknown::
384 #
385 #
386 ############################
387 # L: [OPTIONAL]. These lines "Leaf" specified servers. They are only
388 # useful if you are a non-leaf site yourself. There are two ways you can
389 # use L: lines. The first will limit one particular site to a particular
390 # tree depth (including 0, which would mean the server has to connect with
391 # no servers linked behind it otherwise the connection will fail). The
392 # second will allow you to be selective about which other servers you wish
393 # the connecting server to behave as a leaf towards.
394 #
395 # The fields are as follows:
396 # L:disallow connections to this hostmask::server name:depth
397 # For example, this will force kaja.gi.alaska.edu to connect only as a
398 # leaf (if it is not a leaf, the link will be dropped):
399 L:::kaja.gi.alaska.edu::
400 # This line will force cm5.eng.umd.edu to have a depth of only 1 below it
401 # (that is, it is allowed to have only leaves connected to it):
402 L:::cm5.eng.umd.edu:1:
403 #
404 # This line will prohibit anything matching *.edu to be connected behind
405 # any server matching *.au:
406 L:*.edu::*.au::
407 #
408 #
409 ############################
410 # H: [OPTIONAL]. These lines define who you permit to act as a "hub" to
411 # you (that is, who you permit to connect non-leafed servers to you).
412 #
413 # the first field may use wildcards, the third field *must* be an exact
414 # match for a server's name (NOT a server's hostname, if they differ, the
415 # server's name must be used). If the servername is a wildcard (e.g. *.au)
416 # that is an acceptable name for the third field.
417 #
418 # Empty 2nd field is equal to '*', that is all SIDs are allowed to be
419 # introduced via this link.
420 #
421 # The fields are as follows:
422 # H:servers which are permitted entry:sid mask:hub server::
423 #
424 # Example, permit cs-ftp.bu.edu to allow any servers behind it to connect:
425 H:*::cs-ftp.bu.edu::
426 #
427 # Example, permit irc-2.mit.edu to allow any MIT servers behind it to
428 # connect:
429 H:*.mit.edu::irc-2.mit.edu::
430 #
431 # Example, permit irc-2.mit.edu to allow any MIT servers behind it to
432 # connect, but only if they have SID begining with "000":
433 H:*.mit.edu:000*:irc-2.mit.edu::
434 # Note that requiring SID makes it impossible for 2.10 server to connect.
435 #
436 ############################
437 # D: [OPTIONAL]. Control how auto connections are done. This will be mostly
438 # useful for networks with complex configurations.
439 #
440 # D:<Denied Server Mask>:<Denied Class>:<Server Mask>:<Server Class>:
441 # 1 2 3 4
442 #
443 # If a server matching <Denied Server Mask> or a server in <Denied Class>
444 # is present (or absent, if <Denied Server Mask> is prefixed with '!')
445 # ircd won't auto connect to any server matching <Server Mask>
446 # or being in <Server Class> although auto connect for those is active.
447 #
448 # Example, don't auto connect to *.fi if some server of *.edu is already
449 # linked
450 D:*.edu::*.fi::
451 #
452 # Example, don't auto connect to *.fi if no server of *.edu is yet linked
453 D:!*.edu::*.fi::
454 #
455 # Example, don't auto connect to *.fi or any server in class '3' if a
456 # server from our class '2' is already present
457 D::2:*.fi:3:
458 #
459 #
460 ############################
461 # V: [OPTIONAL]. These lines define restrictions on servers connecting to
462 # you.
463 #
464 # The first and third fields accept wildcards. The fields are as follow:
465 # V:<Version Mask>:<Flags>:<Server Mask>::
466 #
467 # Example, 2.10 is an old version, and you want your peers to upgrade:
468 V:IRC/0210*::*::
469 #
470 # If you are running a production network, you most likely don't want to
471 # allow servers compiled in DEBUGMODE which is a threat for the net
472 # as well as for the privacy of the users:
473 V:*:D:*::
474 #
475 # Finally, you don't want *.edu servers to be version 2.10.2 *OR* to be
476 # compiled with remote oper kills enabled:
477 V:IRC/021002*:K:*.edu::
478 #
479 #
480 ############################
481 # B: [SUGGESTED]. These lines define the alternate servers that the users
482 # will be redirected to if your server is full.
483 #
484 # The fiels are as follow:
485 # B:<Class|Host Mask>::<Server Name>:<Port>:
486 #
487 # For example, if you want to redirect your users to irc.stealth.net on port
488 # 6667 when your server is full, use:
489 B:-1::irc.stealth.net:6667:
490 #
491 # To redirect *.fi users when your server cannot accept any new user with
492 # a hostname matching *.fi, use:
493 B:*.fi::irc.funet.fi:6667:
494 #
495 #
496 ############################
497 # S: [OPTIONAL]. These lines define services allowed to connect to your
498 # server. Each service needs a separate line which only allows him to
499 # connect once. Remember to compile the ircd with #define USE_SERVICES
500 # in config.h, otherwise you can't use services.
501 #
502 # The fields are as follow:
503 # S:<TARGET Host Mask>:<Password>:<Service Name>:<Service Type>:<Class>
504 #
505 # Example, you want to allow a local information service:
506 S:eep.local.net:thisisapassword:EepInfo:0:1
507 #
508 # Another example, with hex mask. This is a temporary kline service (tkserv)
509 # as you can find it in contrib/tkserv :
510 S:eep.local.net:thisisapassword:TkEep:0x2000000:1
511 #
512 #
513 ############################
514 # Q: [DISCOURAGED]. These lines "quarantine" specified servers. Because
515 # of the way they operates, the same Q: lines MUST be installed by
516 # everyone or the net will keep breaking. I CANNOT EMPHASIZE THIS ENOUGH.
517 # Do NOT use Q: lines lightly!
518 #
519 # The fields are as follows:
520 # Q:*:reason why quarantine is in place:servername
521 #
522 Q::this server is too slow and lags the net:cm5.eng.umd.edu::