# ircd.conf configuration file for ircd version ircu2.10.11 include:rbl.conf # Last Updated: August 6, 2002. # # Written by Sengaia , based on the original # example.conf by Niels and Braden. # # All options start with a letter identifying the option, and a colon # separated list of options. Unused fields should be left blank. # # This sample configuration file serves only to illustrate the use and # syntax of the options available, it should *never* be used to start # an ircu server with! # # All options given can be changed while the server is running by sending # a HUP signal to ircu or the /REHASH command, except where noted. # # If your server is a member of a network, chances are that there are some # configuration lines that need to be synchronized across all servers; # prime candidates being U:, Q: and possibly a subset of F: and K: lines. # The linesync script provided in the tools/linesync directory allows you # to centrally manage and update such a subset of configuration lines. # # [M:line] # # The M: line defines the identity of your server. # M::::: # The name of your server # The IP address used by your server to initiate # outgoing connections: server-to-server links and # identd checks. # A short description of your server # A numeric that identifies your server on the # network. It is used in server-server communication # only and *MUST* be unique. # - The M: line is required. # # Notes: # - The field has nothing to do with the addresses # and ports on which ircu will accept connections, those are # defined in P: lines, later on. # - If you have CFV-165-based information hiding enabled, the content # of the field will not be shown in /whois output. # - The configuration parameters in the M: line cannot be updated # by rehashing the server, a restart is required to make changes # take effect. # # Example: M:gambit.nv.us.exilenet.org::ExileNET Reno, NV US Server::6 # [A:line] # Administrative information about the server # A::: # Three lines of text containing administrative information. # - The A: line is not required, but highly recommended. # # The contents of the A: line is returned when the /ADMIN command is # issued. It should at least contain an admin email address, but can also # contain information such as a company/network name and/or URL. # # Example: A:ExileNET IRC Network:Administered by :www.exilenet.org # [Y:lines] # Defines connection classes # Y::::: # A number uniquely identifying this class # Frequency in seconds at which the server will send keep-alive # PINGs to the connected client/server. # Seconds between connection attempts, for server classes. # Maximum number of allowed connections in this class, # Maximum amount of data in bytes that can be backlogged for # this connection on the server before the connection gets closed. # - Y: lines are not a legal requirement but a practical necessity. # # All connections on your server (both clients and servers) belong to a # class, a class defines certain parameters applying to the connection, # described below. # # In general, you will want separate classes for leafs, hubs and a number # of classes for clients to connect into. The number of classes to use # for clients depends entirely on the policy you wish to use. Use I lines # to filter clients into classes; this allows you to set a policy # governing how many clients from given networks can connect to your # server. # # For server classes, the meaning of is different: # Server classes are all classes that are included in C: lines (see # below). For server classes, ircu will keep trying to connect to the # servers in a given class until the class contains # connections. In practice this means that on leafs you want to set it to # 1, and on hubs to 0. Any other values may cause very interesting yet # entirely undesirable situations. # # Examples: # (Leaf) A class for the uplink to a hub # The maximum size of the sendq depends mostly on the size of your network Y:90:90:300:1:9000000 Y:80:90:300:0:9000000 Y:30:180:0:0:4000000 # Client classes. 10 = locals; 2 = for all .net and .com that are not # in Europe; 1 = for everybody. Y:10:90:0:100:160000 Y:2:90:0:5:80000 Y:1:90:0:400:16000 # [I:lines] # Authorizes clients and filters them into classes # I:
:::: # An IP address mask # Password or connection limit. # Hostmask # The class (defined by Y: line) for this connection # - I: lines are not a legal requirement but a practical necessity. # I:*::*::1 # Notes: # - The following wildcard characters are allowed in both IP and # hostname mask fields: * and ? # - Both the IP and host mask fields can contain a userid@ field, # which will match a given username. Note that C:lines] # Connect your server to other servers # C::::: # Hostname or IP address of the remote server # Connection password # Name of the remote server # Port to connect to on the remote server # Class to be used for this connection # - C: lines are not required, but necessary to connect to other servers. # # Notes: # - The IP address listed in the field of the M: line will # be used to initiate the connection. # - The password must be in plain text # - The remote server needs a matching (mirrored) C: line for a connection # to be successfully established. # - The class given needs to have an adequate maximum sendq for the net # burst to be processed upon connecting; for hubs it needs to be set # higher than for leafs. # - If a port number is given, the server will automatically try to # establish a connection to the remote server, unless it is already # linked. If a port number is omitted, no connection will be attempted # automatically. In practice this means you will want to set a port # number on leafs, and leave it out on hubs. # # Examples: # (Leaf) uplink to a hub #C:192.168.77.12:gUeS5whaT!:hub07.eu.undernet.org:4400:70 # (Hub) C: line for a leaf server #C:192.168.19.07:gUeS5whaT!:Amsterdam.NL.eu.undernet.org::80 # (Hub) a C: line for another hub #C:172.16.19.94:s3Krit&:hub34.us.undernet.org::90 #C:127.0.0.1:s3Krit&:Channels.ExileNET.Org::70 C:130.85.56.131:defsgS:Zeno.MD.US.ExileNET.Org:1234:90 C:130.85.56.131:defsgS:Services.ExileNET.Org:1234:80 #C:127.0.0.1:isdf43fd:Exile.ExileNET.Org:1234:80 C:127.0.0.1:sd4ewdsd:Stats.ExileNET.Org:1234:80 #C:71.41.112.202:defsgS:Stygia.FL.US.ExileNET.Org:1234:80 # [H:lines] # Defines what servers allowed to be hubs # H::: # A mask defining what servers the given hub is allowed to hub. # Name of a hub server # - H: lines are not required, but needed in a multi-server network. # # Notes: # - The H: lines allows the server to "introduce" all # servers matching to our server. # - Currently, the functionality is broken and in effect, any # server listed in a H: line is allowed to introduce any other server. # - You need H: lines for all hubs your server will connect to. # # Example: #H:*.*::hub07.eu.undernet.org H:*.*::Zeno.MD.US.ExileNET.Org #H:*.*::Gambit.NV.US.ExileNET.Org # [D:lines] # Specify server-to-server connection policies. # # D: and d: lines allow you to set pretty fine-grained policies with # regard to the routing on an IRC network. For a complete description and # examples of D: lines, see the readme.crules file. K:ANantes*:!klines/abusers-klined.txt:* K:d033*:!klines/abusers-klined.txt:* # [O:lines] # Grant operator status to users # O::::: # o::::: # A hostname or IP address mask required for the O: line # An encrypted password # Nickname required to oper up # A connection class # - O: lines are not required # # Notes: # - Use the tools/mkpasswd tool to encrypt passwords # - Choose safe passwords # - Make the mask as narrowly matching as possible # # O: lines with a capital O are global operators, their privileges apply # to all servers on a given network. o: lines with a lowercase o are local # o: lines, their privileges apply to your local server only. # # In general, most of the tasks originally bequeathed upon IRC operators # have been automated by channel services, auto-glining service bots, # proxy scanners, etc. This means that, contrary to popular belief, having # many operators on your server is not a cool badge of honor, but rather # a token of your inability to properly manage your server and/or network. # # Less is more. Choose your operators sparingly and carefully. # # Examples: #O:kermit@muppet.coolisp.nl:VRKLKuGKn0jLs:Kermit::30 #o:*@piglatin.coolisp.nl:eUi5trgahhTyp:MsPiggy::30 O:*@*:.nxfmnprkwyPs:evul::10 O:*@*:5lsnUYCJG6Tao:daito::30 O:*@*.alltel.net:xB4e8L1pScElY:snagz::30 O:*@*:NFT5m.TVtbGsc:rrbot::30 #O:*@*:Ip.FbkAUZK4Ik:jeed::30 #O:*@*:.rBrvdi.6RTig:bnc::30 # [S:lines] # # S:::<*.host.cc|a.b.c.*|CIDR>: # A hostname to be spoofed # A password for this spoof host. Used if SETHOST_USER is enabled. # A hostmask for matching against users that are to be auto # spoofed. Used if SETHOST_AUTO is enabled. Can be of form: # host.domain.cc, 127.0.0.1 or 127.0.0.0/24, supports wildcards # for non-CIDR. # A mask for matching against the user's ident reply. # # Oper sethost for 'moo.fish.moo' #S:moo.fish.moo::: # User & Oper sethost for 'moo.fish.moo' #S:moo.fish.moo:elitepassword:: # Oper sethost for 'moo.fish.moo' with auto on 'ident@*.example.com" #S:moo.fish.moo::*.example.com:ident # Oper sethost for 'moo.fish.moo' with auto on 'user*@*.example.com" #S:moo.fish.moo::*.example.com:user* # [B:lines] # These are lines intended to improve the generic irc users ability to # use network services. Each line sets up a / alias so that # users may type that instead of a full /msg command. # # for example.. adding: ## B:X2:X2@X2.AfterNET.Services:* # would result in commands like this being possible ## /X2 HELP # # B::: # # B:X2:X2@X2.AfterNET.Services:* # B:AUTH:AuthServ@OperServ.AfterNET.Services:"AUTH" B:X:X@Channels.ExileNET.Org:* B:AUTH:NickServ@services.exilenet.org:"AUTH" B:NS:NickServ@services.exilenet.org:* B:OS:Opserv@services.exilenet.org:* # [P:lines] # Defines listening ports and the type(s) of connections they will accept. # P::
:: # An IP address mask specifying what addresses can connect to # this port. #
A local IP address that ircu should bind this port to. # Defines what types of connections are allowed to this port, # can be either or both of 'C' for clients, or 'S' # for servers. Optionally a trailing 'H' can be specified, # denoting that this port is hidden (will not show up in /STATS P). # An 'E' can be specified for encrypted ssl connections. # If the 'H' flag is used, it must be the last character listed. # A port number to listen on, this must be greater than 1024. # - P: lines are required to connect any server or client to your server. # # - If
is not specified, your system's default address is used. # - If
is invalid or not a local address, ircu will bind to all # interfaces on your system. # # Examples: # The default port clients connect on P:::C:6666 P:::C:6668 P:::C:6669 P:::C:6667 # A hidden port for hubs to connect on, on a different interface P:::SH:1234 # A restricted port for staff only P:::E:7000 # [R:lines] # # These are redirection lines, when a client connects and his/her host # matches a q:line then a 010 reply is sent with the redir server and # port. Currently only epic supports a autoredirection when it gets a # 010 reply (ie it will automatically connect to the server said in the # 010 reply. Other clients will get a message saying what server and # port to connect to. Aswell as a unauthorised connection quit. # # R::: # # R:*.aol.com:irc.aol.com:6667 # R:*.us:us.undernet.org:6667 # R:*.nz:nz.undernet.org:6667 #R:*.ntl.com:uk.exilenet.org:6667 #R:*.co.uk:uk.exilenet.org:6667 #R:*.net.uk:uk.exilenet.org:6667 # [Q:lines] # Prohibit local operators from setting/clearing modes on a channel. # Q::<"reason"> # A channel name # <"reason"> The reason why this channel should not be touched. # - Q: lines are not required # # Notes: # - Since the # character denotes a comment, you must escape it # with a \ character # - Put your reason "in quotes". # - Q: lines apply to operators on your server only, they have no # network-wide effect, which is why they should be synchronized # across servers. # - Operators can overrule Q: lines by prepending a '!' to the # channel name. # # Examples: #Q:\#abusers:"These abusers need to learn to fend for themselves." #Q:\#coder-com:"What the hell do you think you are doing?!" # [X:lines] # # This allows you (the admin) to prevent clients connecting who are listed # on DNS blacklists. Their connection will be rejected during the connection # process along with the name and url you give for the DNSBL they have # been matched on. # # X::"":::"" # # # Flags: # # Bitmask DNSBL: b - See your DNSBL provider as to if you should use this or not. # Reply DNSBL: r - See your DNSBL provider as to if you should use this or not, this # type is normally the default type for most DNSBL's. # Allow Connect: a - Allow the client to connect anyway. This could be used with a # DNSBL whitelist. This could also be used to allow people in but # mark their hosts so that channel ops can choose weather they want # them in thier channel or not. # Mark Hostname: m - Mark the hostname of a skipped client. # # # The name option is used for the Mark hostname flag, this must contain hostname # valid characters only, ie NO spaces. With REPLY DNSBL's you need to list the # replies in a comma seperate list. See below for an example. With BITMASK DNSBL's # just again specify the replies you need to match against. The server will sum # them up and match them against the DNSBL reply. It is highly recomended that # you place the rejection message in "quotes". Rejection messages are limited # in length, currently they cant be all that long but that is being worked on. The # rejected users nick, username, ip, and host can be placed into the rejection # message by using these codes: # # %n - Nickname # %u - Username # %h - Hostname # %i - IP Address # # Example: # # # This will reject clients who get a return addresses of 1,3 and 4 off # dnsbl.sorbs.net. Sample rejection message: # # "bloggs!someident@google.com Found On Sorbs DNSBL http://www.dnsbl.us.sorbs.net/cgi-bin/lookup?IP=111.222.111.222" # # BITMASK Example: # # X:dnsbl.dnsbl.net:"dnsbl.net":b:1,3,5:"%n!%u@%h Found On DNSBL" # # I reccomend you take advantage of ircd.conf includes and list your X:Lines in # a seperate file as it could be quite a large list. # # Notes: MAKE SURE you read the DNSBL website before you go ahead and use it # as they may have rules for large sites/servers who use them. If you do not # wish to use DNSBL checking then simply do not set any X:lines. I only # reccomend that you use one DNSBL, due to the amount of time it will take to # connect with multiple DNSBL's. # [F:lines] # Set features on your server # F:: # The name of a feature (in capitals) # The value to be assigned to the feature # - F: lines are not required. # # Previous versions of ircu required you to define a lot of settings at # compile time; beginning with version 2.10.11 all of these and more can # now be set in ircd.conf via F: lines. The values of these variables can # be retrieved and set via IRC through the /GET and /SET commands. # # For a complete description of features, and how to set them, see the # doc/readme.features file. # # Listed below are all possible F: lines, with their default values. # F:LOG:SYSTEM:FILE:ircd.log F:NICKLEN:21 #F:DOMAINNAME: #F:RELIABLE_CLOCK:FALSE #F:BUFFERPOOL:27000000 #F:HAS_FERGUSON_FLUSHER:FALSE #F:CLIENT_FLOOD:1024 F:SERVER_PORT:1234 #F:NODEFAULTMOTD:TRUE #F:MOTD_BANNER #F:KILL_IPMISMATCH:FALSE #F:IDLE_FROM_MSG:TRUE F:HUB:TRUE #F:WALLOPS_OPER_ONLY:FALSE #F:NODNS:FALSE F:RANDOM_SEED:siJjdixjsd89 #F:DEFAULT_LIST_PARAM F:NICKNAMEHISTORYLENGTH:800 F:HOST_HIDING:TRUE F:HOST_HIDING_STYLE:2 F:OPERHOST_HIDING:TRUE F:HIDDEN_HOST:users.exilenet.org F:HIDDEN_OPERHOST:opers.exilenet.org F:HIDDEN_IP:127.0.0.1 F:DEFAULT_FAKEHOST:"users.exilenet.org" F:DEFAULT_UMODE:"+x" #F:AUTOHIDE:TRUE F:CONNEXIT_NOTICES:TRUE #F:KILLCHASETIMELIMIT:30 #F:MAXCHANNELSPERUSER:10 #F:AVBANLEN:40 #F:MAXBANS:30 #F:MAXSILES:15 #F:HANGONGOODLINK:300 #F:HANGONRETRYDELAY:10 #F:CONNECTTIMEOUT:90 #F:TIMESEC:60 #F:MAXIMUM_LINKS:1 F:PINGFREQUENCY:120 #F:CONNECTFREQUENCY:600 #F:DEFAULTMAXSENDQLENGTH:40000 #F:GLINEMAXUSERCOUNT:20 #F:MPATH:ircd.motd #F:RPATH:remote.motd #F:PPATH:ircd.pid F:VIRTUAL_HOST:FALSE F:HOST_IN_TOPIC:TRUE #F:TOS_SERVER:0x08 #F:TOS_CLIENT:0x08 #F:POLLS_PER_LOOP:200 #F:IRCD_RES_TIMEOUTS:4 #F:IRCD_RES_RETRIES:2 F:CRYPT_OPER_PASSWORD:TRUE F:OPER_NO_CHAN_LIMIT:TRUE F:OPER_MODE_LCHAN:TRUE F:OPER_WALK_THROUGH_LMODES:FALSE #F:NO_OPER_DEOP_LCHAN:FALSE #F:SHOW_INVISIBLE_USERS:TRUE #F:SHOW_ALL_INVISIBLE_USERS:TRUE #F:UNLIMIT_OPER_QUERY:FALSE #F:LOCAL_KILL_ONLY:FALSE #F:CONFIG_OPERCMDS:FALSE #F:TOPIC_BURST:TRUE #F:LOCAL_CHANNELS:TRUE F:SETHOST:TRUE F:SETHOST_USER:TRUE F:SETHOST_AUTO:TRUE F:SETHOST_FREEFORM:TRUE F:OPERFLAGS:TRUE F:OPER_KILL:TRUE F:OPER_REHASH:TRUE #F:OPER_RESTART:TRUE #F:OPER_DIE:TRUE F:OPER_GLINE:TRUE F:OPER_LGLINE:TRUE #F:OPER_JUPE:TRUE #F:OPER_LJUPE:TRUE #F:OPER_OPMODE:TRUE #F:OPER_LOPMODE:TRUE F:OPER_FORCE_OPMODE:TRUE F:OPER_FORCE_LOPMODE:TRUE #F:OPER_BADCHAN:FALSE #F:OPER_LBADCHAN:FALSE #F:OPER_SET:FALSE F:OPERS_SEE_IN_SECRET_CHANNELS:TRUE #F:LOCOP_KILL:TRUE #F:LOCOP_REHASH:TRUE #F:LOCOP_RESTART:FALSE #F:LOCOP_DIE:FALSE #F:LOCOP_LGLINE:TRUE #F:LOCOP_LJUPE:TRUE #F:LOCOP_LOPMODE:TRUE #F:LOCOP_FORCE_LOPMODE:TRUE #F:LOCOP_LBADCHAN:FALSE #F:LOCOP_SET:FALSE #F:LOCOP_SEE_IN_SECRET_CHANNELS:FALSE F:LOCOP_WIDE_GLINE:FALSE #F:HIS_MAP:TRUE #F:HIS_SNOTICES:TRUE #F:HIS_SNOTICES_OPER_ONLY:TRUE #F:HIS_DESYNCS:TRUE #F:HIS_DEBUG_OPER_ONLY:TRUE #F:HIS_WALLOPS:TRUE #F:HIS_LINKS:TRUE #F:HIS_TRACE:TRUE #F:HIS_STATS_l:TRUE #F:HIS_STATS_b:TRUE #F:HIS_STATS_c:TRUE #F:HIS_STATS_g:TRUE #F:HIS_STATS_h:TRUE #F:HIS_STATS_k:TRUE #F:HIS_STATS_f:TRUE #F:HIS_STATS_i:TRUE #F:HIS_STATS_j:TRUE #F:HIS_STATS_M:TRUE #F:HIS_STATS_m:TRUE #F:HIS_STATS_o:TRUE #F:HIS_STATS_p:TRUE #F:HIS_STATS_q:TRUE #F:HIS_STATS_R:TRUE #F:HIS_STATS_r:TRUE #F:HIS_STATS_d:TRUE #F:HIS_STATS_e:TRUE F:HIS_IRCOPS:FALSE #F:HIS_STATS_s:TRUE #F:HIS_STATS_t:TRUE #F:HIS_STATS_T:TRUE #F:HIS_STATS_u:FALSE #F:HIS_STATS_U:TRUE #F:HIS_STATS_v:TRUE #F:HIS_STATS_w:FALSE #F:HIS_STATS_x:TRUE #F:HIS_STATS_y:TRUE #F:HIS_STATS_z:TRUE F:HIS_WHOIS_SERVERNAME:TRUE F:HIS_WHOIS_IDLETIME:TRUE F:HIS_WHOIS_LOCALCHAN:TRUE #F:HIS_WHO_SERVERNAME:TRUE #F:HIS_WHO_HOPCOUNT:TRUE #F:HIS_BANWHO:TRUE #F:HIS_KILLWHO:TRUE #F:HIS_REWRITE:TRUE #F:HIS_REMOTE:1 #F:HIS_NETSPLIT:TRUE #F:HIS_GLINE:TRUE F:EXTENDED_ACCOUNTS:TRUE F:HIS_SERVERNAME:"*.exilenet.org" F:HIS_SERVERINFO:"ExileNET IRC Network" #F:HIS_URLSERVERS:"http://www.undernet.org/servers.php" F:NETWORK:"ExileNET" #F:URL_CLIENTS:"ftp://ftp.undernet.org/pub/irc/clients" F:LOGIN_ON_CONNECT:TRUE F:LOC_DEFAULT_SERVICE:NickServ F:LOG:DNSBL:FILE:rbl.log F:LOG:DNSBL:LEVEL:INFO F:DNSBL_LOC_EXEMPT:TRUE F:DNSBL_LOC_EXEMPT_N_ONE:"If you do not have a NickServ account, please create one" F:DNSBL_LOC_EXEMPT_N_TWO:"Type '/QUOTE PASS /username/password' to connect, using your NickServ account" F:DNSBL_CHECKS:TRUE F:DNSBL_EXEMPT_CLASS:0 #F:AUTH_TIMEOUT:6 F:HIS_URLSERVERS:"http://www.exilenet.org/index.php?page=servers" # That's it, you've (almost) reached the end! # # And now for the tricky bit: writing your own ircd.conf. For starters, # do not take this file and edit the lines as they appear, that will # *not* work. Usually, the network you are # connecting to will have a # set of mandatory configuration lines, and quite likely also some # people who can help you out when you run into trouble. # # Good Luck! # Arjen (Sengaia), August 12, 2002.