# IRC - Internet Relay Chat, doc/example.conf # Copyright (C) 1994, Helen Rose # # $Id: ircd.conf.example,v 1.25 2005/05/13 15:53:04 chopin Exp $ # # some changes for 295 and cleaning, delta, Sat Jun 13 01:09:25 MES 1998 # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 1, or (at your option) # any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # # This is an example configuration file for the IRC server. # It's highly suggested that you also read INSTALL.* in doc/ and talk with # your uplinks if linking to an already existent IRC network. # # You only need an ircd.conf (IRC server configuration file) if you are # running an IRC server. iauth.conf (IRC authentication daemon configuration # file) may also be needed. # # This file will explain the various lines in the IRC server # configuration file. Not all lines are mandatory. You can check to make # sure that your configuration file is correct by using the program # "chkconf", provided in the server distribution (and when you do "make # install" this program will be installed in the same directory as the irc # server). # # The options for whether a line is needed or not are: # MANDATORY: you absolutely MUST have this line # NETWORKED: you must have this line if you are connecting this irc # server to any other server (servers can run standalone). # SUGGESTED: it is HIGHLY suggested that you use this line # OPTIONAL: it's completely up to you whether to define this or not # DISCOURAGED: you really really should not use this line if at all # possible. # NOT NECESSARY: an old or out of date line that isn't needed. # # # ======================================================================== # NOTE! this entire configuration file is read UPSIDE-DOWN! So if you have # to put something in a specific order (for example, client-connection # lines), put them in reverse order! # ======================================================================== # # ############################ # M: [MANDATORY]. This line sets your server's name, description and port # the server listens for UDP pings (used to determine the fastest link in a # class when autoconnecting) # # M:::::: # # Note that 'server name' refers to the name of the irc-server which needs # not to be the same as the hostname of the machine it's running on. # Note that must be globally unique, so if you are part of bigger # network, ask other admins, what to set it to. If you are on IRCnet, ask # your local coord. If you are (BIC) Coord on IRCnet, you have a pool of # 36 SIDs to choose from. Check doc/ISO-3166-1 file to find your country # numeric code (example: 000) and assign one SID for every of your servers # starting from 000A, through 000Z, 0000 and ending at 0009. # # This let's ircd use the primary ip of your host to establish connections M:mst3k.nofadz.com::Satellite Of Love, Orbiting Earth:6667:000A # # This let's ircd use the ip 127.0.0.2 to establish connections, useful # if you're running virtual interfaces #M:example.irc.org:127.0.0.2:Example Geographic Location, Planet Earth:6667:000A: # # ############################ # A: [MANDATORY]. This line lists your administrative information # (contact address, etc). To view this information, /admin (server) will # show it to you. # # A:::::: # Note that *must* be one word. # A:MST3k, IRC dept.:Daemon :Client Server::IRCnet: # # ############################ # P: [MANDATORY]. This field allows the server to listen on various ports # for connections. Any internet domain port that is below 1024 means the # ircd has to be run as root, or from inetd. The server can listen to ports # in the UNIX domain or the internet domain. If you wish to create a port # in the UNIX domain you must compile with UNIXPORT defined in config.h. # # P::<*>::: # P::<*>:<*>:: # # Note that it's a good idea to open some more ports than 6667 for # server-server connections and local clients in case some running wild # client blocks the default 6667. # # The default, an internet domain socket on port 6667 listening on all # ip addresses of the machine running ircd P::::6667:: # # an internet domain socket listening on port 6668 on address 206.252.192.20 # (again useful if you're running virtual interfaces) # P:206.252.192.20:::6668:: # # This line is an example of a UNIX domain socket in /tmp P:/tmp/.ircd:*::6666:: # # ############################ # Y: [SUGGESTED]. These lines define connection classes. Connection # classes allow you to fine-tune your client and server connections. # Since the fields have different meanings for server and client classes # you shouldn't mix them, and if you have lots of server connections (if # you do have lots of servers you shouldn't be reading this file :-) each # set of servers (defined arbitrarily by you) should have its own class. # If you have clients coming in from lots of different sites, you may want # to seperate them out into classes. For instance, you may want to put # local users in one class, with remote users in another class. You may also # want to put limits on some client classes (one client only for indials # for example). In any larger network you definitely want to do this. # # For SERVER CLASSES, the fields are: # Y::::::: # 1 2 3 4 5 67 # 1 class number # 2 ping frequency (in seconds) # 3 connect frequency (in seconds) # 4 maximum number of automatically initiated links in this class # 5 sendq # 6 unused for server classes # 7 unused for server classes # # Sendq have the format ., where x defines sendq whereas y defines # burst sendq. It is useful to have for example 1MB normal sendq and 20MB # of burst sendq, which allows for quicker broken link detection. # # The class numbers are not arbitrary. In auto-connecting servers -- that is, # servers that you have a port number (e.g. 6667) on the end of the C: line # (see below) the higher the number the higher the priority in auto-connecting. # # Note that it is a good idea to have ping frequency the same at both ends # of the link. # # This is a normal (uncompressed) server connection (normal as of January, 2005) # Y::::::: Y:2:90:300:1:20000000:: # # # For CLIENT CLASSES, the fields are: # Y:::::::: # 1 2 3 4 5 6 7 # 1 class number # 2 ping frequency (in seconds) # 3 unused for client classes # 4 maximum number of links in this class (per I line) # 5 sendQ for each client # 6 maximum number of links from this [user@]host on the server # 7 maximum number of links from this [user@]host on the net # # Local and global limits have the format . where x defines the maximum # number of clients from the same host (IP) whereas y defines the maximum # number of clients from the same user@host (IP) allowed to connect. the # latter uses the identd replies to identify a user, falling back to an # @host limit if no identd runs on the client and fails for identds generating # dynamical answers. # # Note that any unset values default to zero which means 'unlimited', except # for limits, where default is 1.1 # # Y:::::::: # this is a class for multiuser systems allowing 10 local clients per host Y:10:90::100:512000:10.32:32.32: # # This is a class for multiuser systems running a trustworthy identd Y:11:90::100:512000:0.1:0.2: # # This is a class for single user systems (PCs, most indials, ...) Y:12:90::100:512000:1.1:2.1: # # This is a class for remote systems you want to allow as fallback only # (if you run an open server in a net you might really want this) Y:13:90::100:512000:1.1:1.1: # # ############################ # I: [MANDATORY]. The I: lines are client-authorization lines. Without # these lines, no clients will be able to connect to your server. # Wildcards ("*") are permitted. Passwords are also possible (clients can # be configured to send passwords) but optional. 'I' allows full access, # 'i' sets restricted mode which forbids nick changes and channel op status. # Note that 'i' is deprecated and you should use (see INSTALL). # # accepts CIDR format. # # I::::::: # # NOTE that ircd matches on both fields and if # is not empty (even if "*"), the client is required to have DNS. # # This would allow access for any client reaching this line which doesn't # already have at least one connection to the net. if you run an open server # in a net this might be the right choice, talk to your uplinks first anyway. # Note listing this i: line first, it will be checked *last*, meaning it is # the "fall-through". #i:*@*::::13:: # With the password 'foobar' #i:*@*:foobar:::13:: # # this would allow access for any client coming from *.net, *.org, *.com or # other 3 char TLD #i:::*@*.???:13:: # # This allows access for any client from the ip block 192.168.0.0/16 # regardless of its domain. If it's resolvable it will be shown as # user@host since the field is empty (useful to # allow whole provider's blocks). # I:*@192.168.0.0/16::::12:: # # This is a standard vanilla I: line which will permit anyone with an IP # address within ip block 127.0.0.0/8 AND with a hostname ending in # .irc.org to connect to the server. # I:*@127.0.0.0/8::*@*.irc.org::10:: # # and you can even specify just certain usernames as long as the client's # site is running a trustworthy ident daemon: # I:::gooduser@example.irc.org::10:: # # this will limit access for indials to one client per host (as defined in Y:12) # I:::*@ppp*.irc.org::12:: # I:::*@indial*.irc.org::12:: # # MST3k access ports (any one, any time, anywhere) I:::*@*::10:: # ############################ # O: [OPTIONAL]. These lines define operator access. You do not need to # have an operator to run a server. A well configured leaf site should not # need an operator online, if its connections are well defined, the irc # administrator can use 'kill -HUP' on the ircd to reload the configuration # file. # # O::::::: # # If the person in "Nickname" is not coming from the hostname defined in # the first field then the person will get the error message "No O: lines # for your host". # # Note that you don't need to use 'Nickname' to become operator, if you're # using some other nick at that moment '/oper Nickname' will do also. # # O:*.bu.edu:Zaphod:Trillian::10: # # and this line forces ident match: # O:hrose@csa.bu.edu:Zaphod:Trillian::10:: # # and this line allows oper to come from ip block: # O:192.168.0.0/16:Zaphod:Trillian::10:: # # a crypted password line (NOTE that if you have crypted passwords, *all* # of you passwords must be crypted! In fact, if you are getting an error # "Incorrect Password" it may well be because crypted passwords are # defined and you have used plaintext. So my example of plaintext and # crypted strings in the same IRC server configuration file is an # impossibility (but it is just theoretical, which is why I explained both). # # O:rocker@csa.bu.edu:T0eiVgHrqeKTQ:Rocker::10:: # # New for 2.11 are flags for O:line. They specify permissions for various # activities (kill, connect, squit etc.) of an operator. # The easiest is flag 'A' -- most possible permissions; read INSTALL file # for details. # # Warning: if you add no flags, no privileges will be granted. # # O:192.168.0.0/16:icmptz:Beeth::10:A: # # This line is a "local operator", it is specified with an O:line flag 'L'. # # this line permits the nickname "jhs" with the password of "ITBites" to # be a local operator only (restrictions are defined in config.h during # ircd compilation time). # # O:*.bu.edu:ITBites:jhs::10:L: # # Lower case o:line (which is deprecated and will be removed in next version) # and O:line with 'L' flag have exactly the same meaning. # ############################ # c/C: [NETWORKED]. These lines define what servers your server tries to # connect to. 'c' means your server will support compression for this link # if you've compiled with zlib, 'C' will enforce an uncompressed link. # N: [NETWORKED]. These lines define what servers your server permits # to connect. # # c/N lines MUST be used in pairs. You cannot have one without the other. # # C::::::: # c::::::: # # if the target server listens on different ports you can use for # .. # can be also an ip address or CNAME. # With you can specify source ip ircd will try to connect with # to a given server. # # N:::::: # # "domain mask" is the number of parts in *your* hostname to mask to. For # instance, with servername being "example.irc.org", if you wanted to present # servername to be "*.irc.org" you would have a host-mask portion of "1". # # it is *strongly* advised that your c/N line passwords be different for # security's sake. # # ident is allowed in the server's hostname part of the field. # these lines tell the server to automatically (note the port number, that # means automatic connection) connect to cs-ftp.bu.edu: # C:hrose@cs-ftp.bu.edu:bigspark:cs-ftp.bu.edu:6667:2:: # N:hrose@cs-ftp.bu.edu:bigalpha:cs-ftp.bu.edu::2:: # # This server's connection lines are more vanilla, masking the host to # *.bu.edu (as described above): # C:irc-2.mit.edu:camelsrk00l:irc-2.mit.edu::2:: # N:irc-2.mit.edu:andsoarellamas:irc-2.mit.edu:1:2:: # # If you have defined ZIP_LINKS and wish the connection to irc-2.mit.edu to # be compressed, you need to use a lowercase c. If the other server refuses # or doesn't support compression it will fall back to an uncompressed link. # c:irc-2.mit.edu:camelsrk00l:irc-2.mit.edu::2:: # N:irc-2.mit.edu:andsoarellamas:irc-2.mit.edu:1:2:: # # ############################ # K: [OPTIONAL]. These lines define user@host patterns to be banned from # this particular server (with an optional time field). Note that K: lines # are *not* global, and if you ban a user they can still use any other IRC # server (unless they have specifically been banned there as well). # 'K' uses the the type unix reply from the client's identd if available or # the USER information supplied by the client if not. 'k' uses the reply from # the client's identd also if it's type other (it's prefixed with '-' then). # # K::