From 636a0184fd3f968c2ca157acdfdbc596d7fe441c Mon Sep 17 00:00:00 2001 From: cyan <> Date: Mon, 8 Sep 2003 12:14:15 +0000 Subject: [PATCH] Rewrote the default ircd.conf from scratch to be Synchronet IRCd specific and documented inside the file. --- ctrl/ircd.conf | 447 +++++++++++++++++++++++++------------------------ 1 file changed, 229 insertions(+), 218 deletions(-) diff --git a/ctrl/ircd.conf b/ctrl/ircd.conf index 7cfb8b4f1d..b999c48637 100644 --- a/ctrl/ircd.conf +++ b/ctrl/ircd.conf @@ -1,265 +1,276 @@ +# $Id$ # -# ircd.conf.example +# ircd.conf - Synchronet IRCd default configuration file by Randy Sommerfeld. # -# For use with the Synchronet IRC daemon, based off of ircd.conf from -# Bahamut 1.4 +# *** The format of this file is very similar to that of the configuration file +# used by Bahamut and other IRC daemons out there. You should be able to +# take a Bahamut ircd.conf and allow Synchronet IRCd use it as-is, other +# configs will need a little editing, first. # -# --- This file supports tokens. The supported tokens are: +# *** If you're new to IRC or configuring the IRCd, please read the enclosed +# comments very carefully. Wrong configuration options in this file will +# destabalize your server, or at worst crash the IRCd. You've been warned. # -# SYSTEM_HOST_NAME Your system hostname as defined in scfg -# SYSTEM_NAME Your BBS name as defined in scfg -# SYSTEM_QWKID Your QWKID as defined in scfg -# VERSION_NOTICE The short form Synchronet version notice +# *** Unlike the traditional ircd, which reads the configuration file from the +# bottom up, we read this file from the top down. # -# --- +# *** This file supports some basic tokens. The supported tokens are: # +# SYSTEM_HOST_NAME Your system hostname as defined in scfg +# SYSTEM_NAME Your BBS name as defined in scfg +# SYSTEM_QWKID Your QWKID as defined in scfg +# VERSION_NOTICE The short form Synchronet version notice +# QWK_PASSWORD Your QWK network password as defined # -# M: {MANDATORY} - This line sets the server name and description. +########## M:Line ## Required ## Compatibility: 'IP' unused +# This line configures what your server name and description are set to. +# If you're running the IRCd standalone from jsexec, you can also define what +# port it uses to accept connections on, also. If you're connecting to the +# Synchronet IRC Network, your server name must be your 'qwkid.synchro.net' +# hostname, and that host must point to the IP address that the IRCd will be +# running on. # -# {M:Line Syntax} -# M:Hostname:IP(Unused):Server Description:Port(Unused) +# M:hostname:ip(Unused):description:port # M:SYSTEM_QWKID.synchro.net:*:SYSTEM_NAME:* # +########## A:Line ## Required ## Compatibility: FULL +# This line defines what sort of information is returned when a user uses +# the /ADMIN command. It's intended to provide some sort of useful information +# about who runs the server. By default, it'll display some information about +# your BBS. The final string MUST be a valid contact email address. # -# A: {MANDATORY} - This line provides your administrative information, such as -# contact addresses. This informationis viewed with /admin <server>. The -# last part of your admin info MUST be a valid email address as per RFC1459. +# A:line1:line2:contact email # A:SYSTEM_NAME (SYSTEM_QWKID):VERSION_NOTICE:Sysop- <sysop@SYSTEM_HOST_NAME> # -# -# Y: {SUGGESTED} - These lines define connection classes, which allow you to -# fine-tune client and server connections. Clients and servers should be -# placed in seperate classes, and eachset of servers should have their own -# class. You may also wish to seperate clients into seperate classes based -# on location. -# -# The class numbers are not arbitrary. In auto-connecting servers, the higher -# number, the higher the auto-connect priority. -# -# {Y:Line Syntax} -# Y:Class Number:Ping Frequency:Connect Frequency:Maximum Links:SendQ -# -# Ping Frequency - The amount of time (in seconds) that the server will wait -# before dropping the connection with Ping Timeout. -# -# Connect Frequency - The amount of time between attempts to connect to servers -# in that class. Set this to 0 for client Y:Lines. -# -# {Synchronet} Y:Lines are unsupported as of version 1.0, but will be in the -# future. -# -# Class 50 - Hub to hub, autoconnect -Y:50:90:600:1:20000000 -# Class 51 - Hub to EU hub, autoconnect -Y:51:180:600:1:20000000 -# Class 33 - Hub to AS leaf -Y:33:240:0:0:15000000 -# Class 32 - Hub to EU leaf -Y:32:180:0:0:15000000 -# Class 30 - Hub to US leaf -Y:30:90:0:0:15000000 -# Class 10 - for known Operators -Y:10:400:100:100:2000000 -# Class 1 - Normal Users -Y:1:400:100:100:1000000 -# -# -# I: {MANDATORY} - These lines are client-authorization lines. Without them, -# clients will be unable to connect to your server. Wildcards are permitted. -# You may also require a password or port to connect, but are optional. -# -# Ident (RFC 1413) can also be used by placing a @ in the appropriate fields. -# -# {I:Line Syntax} -# I:IP Address Mask:Password:Domain-Mask:Port:Connection Class -# -# {Synchronet} I:Lines are unsupported as of 1.0, however they MAY be added -# in the future. -# -# Standard I:Line allowing anybody to connect to the server: +########## Y:Line ## Suggested ## Compatibility: FULL +# Y:Lines allow you to define 'IRC classes' that are assigned to users +# and servers when they connect. It allows you to choose how long a connection +# can idle before the server sends a PING, how often your IRCd will attempt to +# auto-connect to uplink servers, the maximum number of clients allowed per +# IRC class, and the maximum 'sendq' that a user can have before they get +# disconnected for having excessive amounts of data waiting to be pushed. +# +# Y:class number:ping frequency:connect frequency:maximum links:sendq +# +#Class 1: Normal users coming in from the net +Y:1:120:0:100:1000000 +#Class 2: Users coming in from the local BBS +Y:2:30:0:100:1000000 +#Class 10: IRC operators +Y:10:400:0:100:2000000 +#Class 30: Leaf->Hub connections +Y:30:60:300:1:15000000 +#Class 40: Hub->Hub connections +Y:40:90:60:10:20000000 +#Class 50: Hub->QWK Master connections +Y:50:90:60:1:20000000 +# +########## I:Line ## Required ## Compatibility: FULL +# When a regular user connects, the IRCd will match them against this +# list of I:Lines until it finds a match. The IRCd will stop searching when it +# finds a match, so you'll want to list your most exclusive lines first, and +# then the most generic line last. You may also define that a particular +# password be required to connect for certain hosts, or that they connect to +# a particular port. Matching users will be thrown into a particular IRC +# class as defined by the above Y:Lines. +# +# I:ip mask:password:hostmask:port:irc class +# +#BBS users +I:*@127.0.0.1::*@SYSTEM_QWKID.synchro.net::2 +#everyone else I:*@*::*@*::1 # -# Oper Hostmasking I:Line requiring the user to connect on a specific port (ie. -# 7139), and provide the correct password (ie. $packWitU:opernick:operpass): -#I:*@*:oper.$packWitU:*@*:7149:10 -# -# Putting NOMATCH in the first field will stop the ircd from matching against -# the IP, and will force it to match against the hostname. -I:NOMATCH::rmiller@glass.toledolink.com::1 -# -# -# O: {OPTIONAL} - These lines define IRC Operator access. -# -# If the user issuing the oper command is not coming from the hostname defined, -# the user will receive the error message "No O:Lines for your host". The class -# field denotes the Y:Line class that you want the user to end up in after -# they've successfully issued the /oper command. -# -# {Synchronet} All opers have global operator privledges. This may change -# in the future, however, as of 1.0 per-operator flags (such as in Bahamut) -# are unsupported. +########## O:Line ## Optional ## Compatibility: EXTENDED +# These define who will be able to use the /OPER command to gain special +# IRC operator access to your server. This should not be done lightly, as an +# operator can cause considerable damage to the network, thus care should be +# taken to secure these lines as much as possible. In particular, if the user +# is registered with the BBS, you shouldn't use wildcards in the username +# portion so that they're forced to ident via their BBS password, and then +# via their defined /OPER password. +# Several flags may be used to greater fine-tune the type of access that +# each operator has. Note that if you're only a leaf server on the Synchronet +# IRC network, your access will be limited to the equivalent of an 'o' flag. +# +# FLAG COMMAND NOTES +# r /REHASH +# R /RESTART +# D /DIE +# g /GLOBOPS +# w /WALLOPS +# l /LOCOPS +# c /SQUIT + /CONNECT Can only SQUIT or CONNECT locally. +# C /SQUIT + /CONNECT SQUIT or CONNECT servers globally. +# k /KILL Can only KILL locally. +# K /KILL Allow global kills. +# b /KLINE +# B /UNKLINE +# n /NOTICE $servername Global messages to local server only. +# N /NOTICE $*.synchro.net Allow messages across whole network. +# A -- Unavailable in Synchronet IRCd as of latest version -- +# a -- Unavailable in Synchronet IRCd as of latest version -- +# u -- Unavailable in Synchronet IRCd as of latest version -- +# f -- Unavailable in Synchronet IRCd as of latest version -- +# F -- Unavailable in Synchronet IRCd as of latest version -- +# s /CHATOPS +# x /DEBUG + /EVAL +# o "Local Operator" which is inclusive of flags: rgwlckbBnuf +# O "Global Operator" which is inclusive of flags: oCKNs +# S Check password against the BBS system password. +# +# Note that the flags 'R', 'D', and 'x' do not appear in any of 'o' or +# 'O', and must be explicitly defined. Note that /DEBUG and /EVAL (the 'x' +# flag) are particuarily dangerous commands and should not be enabled unless +# you're sure of what you're doing. The 'S' flag is a special flag which will +# check against the BBS system password instead of the defined O:Line password. +# +# A user who successfully uses the /OPER command will be assigned their +# new IRC class as defined by the relevant Y:Line. A user who does not +# succeed in an /OPER attempt will have that attempt logged and broadcast +# locally. +# +# O:hostmask:password:nick:flags:irc class +# +O:*@SYSTEM_QWKID.synchro.net:*:Sysop:OS:10 +O:bbsuser@*.somebbs.com:mypa$$word:Joe:o:10 +# +########## U:Line ## Optional ## Compatibility: FULL +# A U:Line is a special kind of line that defines which servers on the +# network are allowed to send unchecked MODE commands among other 'special' +# services commands (AKILL, et al). If you're linking to the Synchronet IRC +# this must be set to 'services.synchro.net'. Otherwise it should be set to +# whichever server will be hosting 'services' such as ChanServ, MemoServ, +# NickServ, or similar. +# +# U:server name:*:* # -# {O:Line Syntax} -# O:Hostname:Password:Nickname:AccessFlags(Ignored):Class -# -O:*@SYSTEM_HOST_NAME:SYSTEM_PASSWORD:Sysop:*:10 -O:*jdoe@*.generic.com:j0hnsPa$$:john:*:10 -# -# -# U: {OPTIONAL} - This line defines servers that are allowed to make changes to -# the IRC environment (ie. mode changes), without obstructing them. -# -# {U:Line Syntax} -# U:Server Name:Unused:Unused -# -# {Synchronet} The following U:Line is required to connect to the Synchronet -# IRC network. U:services.synchro.net:*:* # +########## X:Line ## Optional ## Compatibility: FULL +# This is a simple line that adds an extra parameter (a password) to the +# /DIE and /RESTART commands respectively. This is in addition to the regular +# IRC operator requirement and the relevant 'D' and 'R' flags on the O:Line. # -# X: {SUGGESTED} - This line defines the passwords required for an oper to -# /restart or /die the server, in addition to them having the R or D flags in -# their O:Line. -# -# {Synchronet} Unsupported as of 1.0 -# -# {X:Line Syntax} -# X:diepass:restartpass -# -# -# C: {NETWORKED} - These lines define what servers your server tries to connect -# to. -# -# N: {NETWORKED} - These lines define what servers are permitted to initiate -# connections to your server. -# -# C/N Lines MUST be used in pairs. One cannot be used without the other. -# -# Both the C:Line's port field and the N:Line's flag field may be left blank. -# If a port is specified in the C:Line, your server will auto-connect. -# -# {Synchronet} Currently, Synchronet IRCD does not accept any flags, and -# definitely does NOT accept Bahamut 'E' or 'Z' connections (encrypted -# and/or gzipped.) -# -# {C/N:Line Syntax} -# C:Remote Hostname:Password:Remote Servername:Port:Class -# N:Remote Hostname:Password:Remote Servername:Flags:Class -# -C:127.0.0.1:password:bahamut.synchro.net::30 -N:127.0.0.1:password:bahamut.synchro.net::30 -C:127.0.0.1:password:services.synchro.net::30 -N:127.0.0.1:password:services.synchro.net::30 -# -# -# K: {OPTIONAL} - A simplified K:Line as per Synchronet, this is what you -# define to keep certain users from connecting to your server. TEMPORARY -# K:Lines may be added via the IRC operator /KLINE command, but they are not -# saved on the fly. Thus, all permanent K:Lines must be placed here by hand. -# Bahamut-style kline.conf is NOT supported. -# -# {K:Line Syntax} -# K:hostmask:reason for kline -# -K:*@*.lamers.com:No lamers allowed -K:*root@*:For your own protection, don't IRC as root. -# -# q: {OBSOLETE} - q:lines have been removed from bahamut. -# -# Q: {OPTIONAL} - These lines prevent users on your server from using certain -# nicknames. These are 'reserved' nick names that should not be taken by -# normal users. * and ? wildcards are allowed inside the nickname field. -# -# {Q:Line Syntax} -# Q:*:Reason:Nickname -# -# {Synchronet} These Q:Lines are required to link to the Synchronet IRC -# network. -# -Q::Reserved for Services:*Serv -Q::Reserved for Services:Global -Q::Reserved for Operators:IRCop -Q::Reserved for Sysop:Sysop -# -# -# Z: {DISCOURAGED} - These lines block ALL incoming connections from a certain -# IP address mask. They are more powerful than K:Lines because they stop users -# before they've had a chance to register. This works on servers too, so be -# VERY careful! These lines should be used as a LAST RESORT! -# -# Z:lines do NOT work on hostnames. -# -# {Z:Line Syntax} -# Z:IP:Reason for zapping:* -# -Z:0.0.0.0:Bogus/Spoofed IP:* -# +# X:die password:restart password +# +#X:diepass:restartpass +# +########## C:Line + N:Line ## Optional ## Compatibility: EXTENDED +# These lines define what servers you will be connecting to (C:Line) and +# receiving connections from (N:Line). C and N:Lines must always occur in +# pairs, even if you'll only ever be connecting in one direction. If you +# define a port on the C:Line, the IRCd will use the relevant IRC class (as +# defined on Y:Lines above) to auto-connect at the configured interval. # -# H: {OPTIONAL} - These lines define who you allow to act as a hub. The first -# field may use wildcards, and the third field MUST be an exact match for a -# server's name (NOT the server's hostname!). +# Synchronet IRCd also supports certain flags on the N:Line for +# determining certain types of behaviour. +# +# FLAG DESCRIPTION +# t Server is a 'time master' to synchronize time from. +# q Use the relevant server's local QWK password to authenticate. +# c Server is allowed to send special 'CLINE' command. # -# {H:Line Syntax} -# H:Servers which are permitted::Hub Servername -H:*::vert.synchro.net -H:*::rrx.synchro.net +# C:hostname or ip address:password:server name:port:irc class +# N:hostname or ip address:password:server name:flags:irc class +C:vert.synchro.net:QWK_PASSWORD:vert.synchro.net:6667:30 +N:vert.synchro.net:QWK_PASSWORD:vert.synchro.net:t:30 +#C:rrx.synchro.net:password:rrx.synchro.net::30 +#N:rrx.synchro.net:password:rrx.synchro.net::30 # +########## K:Line ## Optional ## Compatibility: CUSTOM +# These are the infamous K:Lines (or 'kill' lines) which let you decide +# what hostmasks should be banned from your server. The format of this command +# differs from the standard ircd's, and 'kline.conf' (as per Bahamut 1.4) is +# not supported at this time. # -# P: {SUGGESTED} - This line allows the server to listen on various additional -# ports other than what was defined in your Synchronet services config file. +# K:banmask:reason # -# {Synchronet} This is currently unsupported as of 1.0, but may be in the -# future. +K:*.whitehouse.gov:Obviously bogus domain. +K:~root@*:For your protection, don't IRC as root. +#K:~*@*:Only users who have registered with the BBS may connect # -# {P:Line Syntax} -# P:Remote IP:Local IP:Unused:Port +########## Q:Line ## Suggested ## Compatibility: FULL +# Q:Lines allow you to restrict what nicknames may be used on your +# server. If you're linking to the Synchronet IRC Network, these Q:Lines as +# defined are required. A user trying to /NICK over to these nicknames or +# register with a nick that matches a mask here will be given the reason as +# defined for having their change request denied. # -#P:*:*::6667 +# Q:*:reason:nickmask # +Q:*:Reserved for Services:*Serv +Q:*:Reserved for Services:Global +Q:*:Reserved for Operators:IRCop +Q:*:Reserved for Sysop:Sysop # -# E: {DISCOURAGED} - These lines bypass K:Lines for matching clients. -# Username is optional. +########## Z:Line ## Optional ## Compatibility: FULL +# This is to be considered a 'last resort' type of line that will ban +# users from your server based on IP address only. The users will be dropped +# from the server as fast as possible without any processing having been done. +# This is useful if you're being DOS attacked from a certain IP or range. +# Be careful with Z:Lines, as you cuold possibly be banning servers wishing to +# connect to you. # -# Don't use these if you can avoid it! Services will fight with them! +# Z:ipmask:reason:* # -# {Synchronet} Unsupported as of 1.0, no plans to add this line in the -# immediate future. +Z:0.0.0.0:Obviously bogus IP address:* # -# {E:Line Syntax} -# E:Hostmask:Unused:Username +########## H:Line ## Optional ## Compatibility: EXTENDED +# This line has a special meaning for the Synchronet IRCd, in particular +# it defines which servers are considered to be 'full hubs' and have the +# responsibility of managing synchronization and control issues. Hubs are also +# allowed to have servers connect 'behind' them. # -#E:*.twcny.rr.com::ayukawa +# H:servermask permitted behind:*:server name # +H:*:*:vert.synchro.net +H:*:*:freebsd.synchro.net +H:*:*:rrx.synchro.net +#An example H:Line which would allow france.synchro.net to connect only *.fr +#servers to the network. +#H:*.fr:*:france.synchro.net # -# F: {DISCOURAGED} - These lines bypass K:Lines and also class limits for -# matching clients. Username is optional. +########## P:Line ## Optional ## Compatibility: FULL +# This is a simple type of line that tells the IRCd to listen on +# additional ports other than what was defined on the M:Line (if you're running +# from jsexec) or inside the Synchronet services configuration. One port per +# line. # -# Don't use these if you can avoid it! Services will fight with them! +# P:*:*:*:port # -# {Synchronet} Unsupported as of 1.0, no plans to add this line in the -# immediate future. +#P:*:*:*:7000 +#P:*:*:*:6666 # -# {F:Line Syntax} -# F:Hostmask:Unused:Username +########## E:Line ## UNSUPPORTED ## Compatibility: UNSUPPORTED +# This is an 'exemption' line which will allow users to slip through +# K:Lines. These should be as specific as possible. +# Currently, E:Lines are unsupported by the Synchronet IRCd. # -#F:*.twcny.rr.com::* +# E:hostmask:*:username mask # +#E:*.shawcable.net:*:cyan # -# T: {OPTIONAL} - These lines override the default proxy monitor information. -# You should only have one T:Line. If either field is left empty, the default -# will be used. +########## F:Line ## UNSUPPORTED ## Compatibility: UNSUPPORTED +# Another exemtion line, this is virtually identical to an E:Line except +# that an F:Line will also bypass the defined IRC class limits in addition to +# allowing a user to slip through a K:Line. +# Currently, F:Lines are unsupported by the Synchronet IRCd. +# +# F:hostmask:*:username mask # -# Note: http:// is automatically prefixed on the specified URL +#F:*.synchro.net:*:*digtlman # -# {Synchronet} Proxy monitoring is unsupported as of 1.0, but may be in the -# future. This is probably something that should be done at the services -# level as opposed to the server level. +########## T:Line ## UNSUPPORTED ## Compatibility: UNSUPPORTED +# A simple line that defines the hostname where proxy scans will +# originate from. A message is displayed to the user upon connect containing +# the URL as defined here pointing them towards more information. +# The http:// is automatically prefixed on the defined URL. # -# {T:Line Syntax} -# T:Hostname:URL +# T:hostname:url # -#T:monitorbot.synchro.net:www.synchro.net/proxies +#T:rrx.synchro.net:www.synchro.net/proxyscan # -# End ircd.conf.example +##EOF## -- GitLab