X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/846aa234b8ef9717163325a92d04daf783728615..ac10b333c7cb266e7ae36aafbf5c808e279ea7d3:/doc/reference.conf diff --git a/doc/reference.conf b/doc/reference.conf index 34d98da..25f07ab 100755 --- a/doc/reference.conf +++ b/doc/reference.conf @@ -1,10 +1,10 @@ -/* doc/reference.conf - charybdis Example configuration file +/* doc/reference.conf - shadowircd Example configuration file * * Copyright (C) 2000-2002 Hybrid Development Team * Copyright (C) 2002-2005 ircd-ratbox development team * Copyright (C) 2005-2006 charybdis development team * - * Written by ejb, wcampbel, db, leeh and others + * Written by ejb, wcampbel, db, leeh, Taros, jdhore and others * * $Id: reference.conf 3582 2007-11-17 21:55:48Z jilles $ */ @@ -64,12 +64,21 @@ * New host mangling (umode +x) -- ip_cloaking.so * Find channel forwards -- m_findforwards.so * /identify support -- m_identify.so + * /mkpassword support -- m_mkpasswd.so + * WEBIRC support -- m_webirc.so + * Server-side /CYCLE -- m_cycle.so + * /oaccept - add to target's accept list, oper only -- m_oaccept.so + * /opme - op self in opless channels, admin only -- m_opme.so + * /ojoin - join despite restrictions, admin only -- m_ojoin.so + * /omode - force modes in channels, admin only -- m_omode.so + * /olist - see all channels in /list, oper only -- m_olist.so + * /okick - kick users without having ops, oper only -- m_okick.so + * /forcejoin - force join users, admin only -- m_force.so * Opers cannot be invisible (umode +i) -- no_oper_invis.so * Far connection notices (snomask +F) -- sno_farconnect.so * Remote k/d/x line active notices -- sno_globalkline.so * Remote oper up notices -- sno_globaloper.so * /whois notifications (snomask +W) -- sno_whois.so - * Force join users to channels -- m_force.so */ #loadmodule "extensions/chm_adminonly.so"; loadmodule "extensions/chm_operonly.so"; @@ -90,12 +99,22 @@ loadmodule "extensions/extb_realname.so"; loadmodule "extensions/ip_cloaking.so"; #loadmodule "extensions/m_findforwards.so"; loadmodule "extensions/m_identify.so"; +loadmodule "extensions/m_mkpasswd.so"; +loadmodule "extensions/m_webirc.so"; +#loadmodule "extensions/m_cycle.so"; +#loadmodule "extensions/m_oaccept.so"; +#loadmodule "extensions/m_opme.so"; +#loadmodule "extensions/m_ojoin.so"; +#loadmodule "extensions/m_omode.so"; +#loadmodule "extensions/m_olist.so"; +#loadmodule "extensions/m_okick.so"; +#loadmodule "extensions/m_force.so"; #loadmodule "extensions/no_oper_invis.so"; loadmodule "extensions/sno_farconnect.so"; loadmodule "extensions/sno_globalkline.so"; loadmodule "extensions/sno_globaloper.so"; #loadmodule "extensions/sno_whois.so"; -#loadmodule "extensions/m_force.so"; + /* serverinfo {}: Contains information about the server. (OLD M:) */ serverinfo { @@ -121,6 +140,14 @@ serverinfo { network_name = "MyNet"; network_desc = "This is My Network"; + /* helpchan/helpurl: These 2 items are shown when a user does + * /quote help with no additional parameters to direct them + * to a channel/URL where they can get more or network-specific help. + * They can be commented out and will not show to users if they are. + */ + helpchan = "#help"; + helpurl = "http://www.mynet.net/help"; + /* hub: allow this server to act as a hub and have multiple servers * connected to it. */ @@ -137,10 +164,10 @@ serverinfo { #vhost6 = "3ffe:80e8:546::2"; /* ssl_private_key: our ssl private key */ - ssl_private_key = "etc/test.key"; + ssl_private_key = "etc/ssl.key"; /* ssl_cert: certificate for our ssl server */ - ssl_cert = "etc/test.cert"; + ssl_cert = "etc/ssl.cert"; /* ssl_dh_params: DH parameters, generate with openssl dhparam -out dh.pem 1024 */ ssl_dh_params = "etc/dh.pem"; @@ -361,6 +388,24 @@ auth { class = "opers"; }; +/* Example WEBIRC authblock */ +auth { + /* user: webirc@IP.OF.YOUR.WEBIRC . the webirc@ part is required */ + user = "webirc@192.168.1.1"; + + /* password: password the webirc client sends in the WEBIRC command. + * You can use a encrypted password here (see above auth block). + */ + password = ""; + + /* spoof: This is required to keep it what it is currently if you + * want the webirc client to show the users' real host as their + * host on IRC. + */ + spoof = "webirc."; + class = "users"; +}; + auth { /* redirect: the server and port to redirect a user to. A user does * not have to obey the redirection, the ircd just suggests to them @@ -406,6 +451,9 @@ privset "local_op" { * oper:xline: allows use of /quote xline/unxline * oper:resv: allows /quote resv/unresv and cmode +LP * oper:operwall: allows the oper to send/receive operwalls + * oper:override: allows the oper to set umode +p on themself + which grants the ability to have implicit + operator access in all channels. * oper:spy: allows 'operspy' features to see through +s * channels etc. see /quote help operspy * oper:hidden: hides the oper from /stats p @@ -429,7 +477,7 @@ privset "global_op" { privset "admin" { extends = "global_op"; - privs = oper:admin, oper:die, oper:rehash, oper:spy; + privs = oper:admin, oper:die, oper:rehash, oper:spy, oper:override; }; /* operator {}: defines ircd operators. (OLD O:) */ @@ -470,7 +518,24 @@ operator "god" { /* snomask: specific server notice mask on oper up. * If this is specified an oper will not be given oper_snomask. */ - snomask = "+Zbfkrsuy"; + snomask = "+FZbcfkrsuy"; + + /* vhost: defines the vhost that this oper will get on oper up. + * this must be a valid hostmask. If this is specified the oper + * will not be given default_operhost. + */ + vhost = "is.an.oper"; + + /* swhois: defines an additional line that will be displayed + * whenever someone does /whois on the oper in question. + */ + swhois = "is wearing pants."; + + /* operstring: defines a custom operstring for this oper, + * which will be shown in whois instead of default_operstring + * or default_adminstring. + */ + operstring = "is a lazy IRC Operator"; /* flags: misc options for the operator. You may prefix an option * with ~ to disable it, e.g. ~encrypted. @@ -635,9 +700,11 @@ shared { * resv - allow setting perm/temp resvs * tresv - allow setting temp resvs * unresv - allow removing xlines + * rehash - allow rehashing * all - allow oper/server to do all of above. * locops - allow locops - only used for servers who cluster - * rehash - allow rehashing + * die - allow restarting/dying of servers + * modules - allow loading/unloading/reloading of modules * dline - allow setting perm/temp dlines * tdline - allow setting temp dlines * undline - allow removing dlines @@ -673,25 +740,52 @@ exempt { /* The channel block contains options pertaining to channels */ channel { + /* disabledmodes: Modes that will be disabled, users will not be + * able to set them. This is only read on startup, you need to + * restart the ircd for this to have any effect. This only prevents + * local users/opers from setting these modes. This does not prevent + * remote servers/users (ex: services) from setting them. Make sure + * your services and remote servers are properly configured when + * using this option! + * Valid parameters are: CLPFQITDENGJKMrczgqefj + */ + #disabledmodes = "ME"; + /* autochanmodes: Modes that will be set on a unregistered channel * when the first user joins it. */ autochanmodes = "nt"; - /* invex: Enable/disable channel mode +I, a n!u@h list of masks - * that can join a +i channel without an invite. + /* admin_on_channel_create: If set to yes, users joining new channels + * will be given +ao instead of just +o. Requires use_admin. */ - use_invex = yes; + admin_on_channel_create = no; - /* except: Enable/disable channel mode +e, a n!u@h list of masks - * that can join a channel through a ban (+b). + /* exemptchanops: Channel modes that any form of channel ops (+aoh) + * will be exempt from. Even if the mode is set, it will not apply to the + * channel ops if it is listed in this option. Valid modes are cCDTNGK. */ - use_except = yes; + exemptchanops = "NT"; - /* forward: Enable/disable channel mode +f, a channel to forward - * users to if they can't join because of +i etc. + /* halfop: Enable/disable channel mode +h, which adds halfop, + * a channel status below op that has op powers (kick, ban, mode, etc.) + * halfops can only kick/devoice/etc people who are +v or + * do not have any channel status. Disabling this via rehash will + * cause things which are rather confusing to occur, it is highly + * recommended to restart if you wish to disable this option, though + * it may be enabled by rehash with no problems. */ - use_forward = yes; + use_halfop = yes; + + /* admin: Enable/disable channel mode +a, which adds admin, + * a channel status above op that has op powers (kick, ban, mode, etc.) + * admins can only be kicked/deadmined by other admins, and may kick + * or deop anyone. Disabling this via rehash will cause things which + * are rather confusing to occur, it is highly recommended to restart + * if you wish to disable this option, though it may be enabled + * by rehash with no problems. + */ + use_admin = yes; /* knock: Allows users to request an invite to a channel that * is locked somehow (+ikl). If the channel is +p or you are banned @@ -699,6 +793,12 @@ channel { */ use_knock = yes; + /* local channels: &Channel - a channel that exists only on one server + * people on other servers will not be able to see or join local channels + * from another server. + */ + use_local_channels = yes; + /* knock delay: The amount of time a user must wait between issuing * the knock command. */ @@ -785,10 +885,11 @@ channel { */ resv_forcepart = yes; - /* kick_no_rejoin_time: the amount of time that a user cannot - * rejoin for after being kicked out of a +J channel. + /* channel target change: restrict how many channels users can + * message per unit of time. IRC operators, channel operators and + * voiced users are exempt. */ - kick_no_rejoin_time = 30 seconds; + channel_target_change = yes; }; @@ -796,7 +897,7 @@ channel { serverhide { /* flatten links: this option will hide various routing information * and make all servers in /links appear that they are linked to - * this server. + * this server. This option also disallows non-opers from using /map */ flatten_links = no; @@ -840,6 +941,9 @@ serverhide { * See for more information. */ blacklist { + host = "rbl.efnetrbl.org"; + reject_reason = "${nick}, your IP (${ip}) is listed in EFnet's RBL. For assistance, see http://efnetrbl.org/?i=${ip}"; + host = "dnsbl.dronebl.org"; reject_reason = "${nick}, your IP (${ip}) is listed in DroneBL. For assistance, see http://dronebl.org/lookup_branded.do?ip=${ip}&network=${network-name}"; @@ -886,6 +990,14 @@ alias "BotServ" { target = "BotServ"; }; +alias "InfoServ" { + target = "InfoServ"; +}; + +alias "GroupServ" { + target = "GroupServ"; +}; + alias "NS" { target = "NickServ"; }; @@ -910,6 +1022,14 @@ alias "BS" { target = "BotServ"; }; +alias "IS" { + target = "InfoServ"; +}; + +alias "GS" { + target = "GroupServ"; +}; + /* The general block contains many of the options that were once compiled * in options in config.h. The general block is read at start time. */ @@ -953,6 +1073,18 @@ general { */ default_adminstring = "is a Server Administrator"; + /* default operhost: defines the default virtual host that + * operators will receiving upon opering up. Can be overriden + * by the vhost option in individual operator blocks. This + * must be a valid hostmask. + */ + default_operhost = "staff.testnet.net"; + + /* static quit: Quit message to display for all users (not opers) + * on QUIT. + */ + #static_quit = "I like turtles!"; + /* servicestring: defines the response for opered services (+S) * in /whois queries, eg "is a Network Service". * This is updated on rehash. @@ -965,6 +1097,12 @@ general { */ disable_fake_channels = no; + /* hide_channel_below_users: Amount of users a channel must have in it + * before it is shown in a standard LIST. This can be overridden by + * invoking LIST like: /LIST <3 + */ + hide_channel_below_users = 3; + /* tkline_expire_notices: give a notice to opers when a tkline * expires */ @@ -998,7 +1136,7 @@ general { */ min_nonwildcard_simple = 3; - /* max accept: maximum allowed /accept's for +g usermode */ + /* max accept: maximum allowed /accept's for +gGR usermodes */ max_accept = 20; /* max monitor: the maximum amount of nicknames a client may have in @@ -1013,10 +1151,16 @@ general { max_nick_time = 20 seconds; max_nick_changes = 5; - /* anti spam time: the minimum time a user must be connected before + /* anti spam time: the minimum time a user must be connected before * custom quit messages are allowed. */ - anti_spam_exit_message_time = 5 minutes; + anti_spam_exit_message_time = 5 minutes; + + /* use part messages: This option controls whether users should be + * allowed to send PART messages to channels. It should probably + * be set to no if static_quit is set. + */ + use_part_messages = yes; /* ts delta: the time delta allowed between server clocks before * a warning is given, or before the link is dropped. all servers @@ -1061,7 +1205,7 @@ general { /* kline reason: make the users quit message on channels this * reason instead of the oper's reason. */ - kline_reason = "Connection closed"; + kline_reason = "K-Lined"; /* identify to services via server password * if auth{} block had no password but the user specified a @@ -1080,6 +1224,13 @@ general { */ warn_no_nline = yes; + /* use propagated bans: KLINE, XLINE and RESV set fully propagated bans. + * That means the bans are part of the netburst and restarted/split + * servers will get them, but they will not apply to 3.2 and older + * servers at all. + */ + use_propagated_bans = yes; + /* stats e disabled: disable stats e. useful if server ips are * exempted and you dont want them listing on irc. */ @@ -1165,12 +1316,29 @@ general { */ connect_timeout = 30 seconds; + /* ident timeout: Amount of time (in seconds) that the IRCd will + * wait for a user to respond to an ident request. + */ + default_ident_timeout = 5; + /* disable auth: disables identd checking */ disable_auth = no; - /* no oper flood: increase flood limits for opers. */ + /* no oper flood: increase flood limits for opers. + * This option quadruples the user command flood limits, it + * DOES NOT affect PRIVMSG/NOTICE usage. + */ no_oper_flood = yes; + /* true no oper flood: Allow opers to NEVER hit flood limits. + * With the above setting, flood limits are set to 4x what they + * are for normal users. With this setting, they're removed entirely. + * For this setting to work, you need to have no_oper_flood enabled as well. + * This option DOES allow PRIVMSG/NOTICE flooding. + * ENABLE THIS SETTING WITH CAUTION. + */ + true_no_oper_flood = no; + /* REMOVE ME. The following line checks you've been reading. */ havent_read_conf = yes; @@ -1204,6 +1372,8 @@ general { * +C - noctcp - Block CTCPs to user. * +V - noinvite - Block INVITE to user. * +B - bot - Marks as a bot. + * +p - override - Implicit operator access in all channels. + * This is oper-only and requires the oper:override priv. */ /* oper only umodes: usermodes only opers may set */ @@ -1270,6 +1440,11 @@ general { /* throttle_count: Number of connections within throttle_duration that it takes * for throttling to take effect */ throttle_count = 4; + + /* expire_override_time: User mode +p will be automatically unset + * this long after it is set. 0 disables this. Default is 5 minutes. + */ + expire_override_time = 5 minutes; }; modules {