diff options
| author | Adam <Adam@anope.org> | 2013-05-05 01:55:04 -0400 |
|---|---|---|
| committer | Adam <Adam@anope.org> | 2013-05-05 01:55:04 -0400 |
| commit | 1d0bb9b26b7ad58ab0bf979ac046f4511b3bf12b (patch) | |
| tree | 4486f0784bdf050fd7eb225c0cb9df352ce1f45a /data | |
| parent | 781defb7076ddfddf723ca08cd0a518b6657b64f (diff) | |
Rework the config file reader to be much more flexible and move many configuration directives to the actual modules they are used in.
Diffstat (limited to 'data')
| -rw-r--r-- | data/botserv.example.conf | 86 | ||||
| -rw-r--r-- | data/chanserv.example.conf | 105 | ||||
| -rw-r--r-- | data/chanstats.example.conf | 5 | ||||
| -rw-r--r-- | data/example.conf | 267 | ||||
| -rw-r--r-- | data/global.example.conf | 30 | ||||
| -rw-r--r-- | data/hostserv.example.conf | 52 | ||||
| -rw-r--r-- | data/memoserv.example.conf | 32 | ||||
| -rw-r--r-- | data/modules.example.conf | 84 | ||||
| -rw-r--r-- | data/nickserv.example.conf | 286 | ||||
| -rw-r--r-- | data/operserv.example.conf | 237 |
10 files changed, 592 insertions, 592 deletions
diff --git a/data/botserv.example.conf b/data/botserv.example.conf index b0cc513ae..8f67c4be2 100644 --- a/data/botserv.example.conf +++ b/data/botserv.example.conf @@ -56,17 +56,14 @@ service * * Provides essential functionality for BotServ. */ -module { name = "botserv" } - -/* - * Configuration for BotServ provided by bs_main. - */ -botserv +module { + name = "botserv" + /* * The name of the client that should be BotServ. */ - name = "BotServ" + client = "BotServ" /* * The default bot options for newly registered channels. Note that changing these options @@ -92,19 +89,6 @@ botserv minusers = 1 /* - * The maximum number of entries a single bad words list can have. Setting it too high can - * reduce performance slightly. - */ - badwordsmax = 32 - - /* - * The amount of time that data for a user is valid in BotServ. If the data exceeds this time, - * it is reset or deleted depending on the case. Do not set it too high, otherwise your - * resources will be slightly affected. - */ - keepdata = 10m - - /* * The bots are currently not affected by any modes or bans when they try to join a channel. * But some people may want to make it act like a real bot, that is, for example, remove all * the bans affecting the bot before joining the channel, remove a ban that affects the bot @@ -116,26 +100,18 @@ botserv #smartjoin = yes /* - * If set, the bots will use a kick reason that does not state the word when it is kicking. - * This is especially useful if you have young people on your network. - * - * This directive is optional. + * Defines the prefixes for fantasy commands in channels. One of these characters will have to be prepended + * to all fantasy commands. If you choose "!", for example, fantasy commands will be "!kick", + * "!op", etc. This directive is optional, if left out, the default fantasy character is "!". */ - gentlebadwordreason = yes + #fantasycharacter = "!." /* - * If set, BotServ will use case sensitive checking for badwords. + * Modes to set on service bots when they join channels, comment this out for no modes * * This directive is optional. */ - #casesensitive = yes - - /* - * Defines the prefixes for fantasy commands in channels. One of these characters will have to be prepended - * to all fantasy commands. If you choose "!", for example, fantasy commands will be "!kick", - * "!op", etc. This directive is optional, if left out, the default fantasy character is "!". - */ - #fantasycharacter = "!." + botmodes = "ao" } /* @@ -184,7 +160,22 @@ bs_autoassign * * Used for controlling the channel badword list. */ -module { name = "bs_badwords" } +module +{ + name = "bs_badwords" + + /* + * The maximum number of entries a single bad words list can have. + */ + badwordsmax = 32 + + /* + * If set, BotServ will use case sensitive checking for badwords. + * + * This directive is optional. + */ + #casesensitive = yes +} command { service = "BotServ"; name = "BADWORDS"; command = "botserv/badwords"; } /* @@ -246,7 +237,26 @@ command { service = "BotServ"; name = "INFO"; command = "botserv/info"; } * * Used for configuring what bots should kick for. */ -module { name = "bs_kick" } +module +{ + name = "bs_kick" + + /* + * The amount of time that data for a user is valid in BotServ. If the data exceeds this time, + * it is reset or deleted depending on the case. Do not set it too high, otherwise your + * resources will be slightly affected. + */ + keepdata = 10m + + /* + * If set, the bots will use a kick reason that does not state the word when it is kicking. + * This is especially useful if you have young people on your network. + * + * This directive is optional. + */ + gentlebadwordreason = yes +} + command { service = "BotServ"; name = "KICK"; command = "botserv/kick"; } command { service = "BotServ"; name = "KICK AMSG"; command = "botserv/kick/amsg"; } command { service = "BotServ"; name = "KICK BADWORDS"; command = "botserv/kick/badwords"; } @@ -285,7 +295,8 @@ command { service = "BotServ"; name = "SET PRIVATE"; command = "botserv/set/priv /* Fantasy commands * * Fantasy commands can be executed in channels that have a BotServ bot by prefixing the - * command with one of the fantasy characters configured in botserv:fantasycharacter. + * command with one of the fantasy characters configured in botserv's fantasycharacter + * directive. * * Sane defaults are provided below that do not need to be edited unless you wish to change the default behavior. */ @@ -321,7 +332,6 @@ fantasy { name = "UNSUSPEND"; command = "chanserv/unsuspend"; permission = "chan fantasy { name = "UP"; command = "chanserv/up"; } fantasy { name = "VOP"; command = "chanserv/vop"; } - /* Use m_rewrite to rewrite the op, deop, etc. fantasy commands (see chanserv.conf). */ fantasy { name = "OWNER"; command = "rewrite"; } fantasy { name = "DEOWNER"; command = "rewrite"; } diff --git a/data/chanserv.example.conf b/data/chanserv.example.conf index 08954eaa6..6dc40991a 100644 --- a/data/chanserv.example.conf +++ b/data/chanserv.example.conf @@ -56,17 +56,14 @@ service * * Provides essential functionality for ChanServ. */ -module { name = "chanserv" } - -/* - * Configuration for ChanServ provided by cs_main. - */ -chanserv +module { + name = "chanserv" + /* * The name of the client that should be ChanServ. */ - name = "ChanServ" + client = "ChanServ" /* * The default options for newly registered channels. Note that changing these options @@ -95,7 +92,7 @@ chanserv * This directive is optional, if left blank, the options will default to keeptopic, secure, securefounder, * and signkick. If you really want no defaults, use "none" by itself as the option. */ - defaults="keeptopic peace secure securefounder signkick" + defaults = "keeptopic peace secure securefounder signkick" /* * The maximum number of channels which may be registered to a single nickname. @@ -114,23 +111,7 @@ chanserv expire = 14d /* - * The length of time before a suspended channel becomes unsuspended. - * - * This directive is optional. - * If not set, the default is never. - */ - #suspendexpire = 90d - - /* - * The lenth of time before a forbidden channel drops. - * - * This directive is optional. - * If not set, the default is never. - */ - #forbidexpire = 90d - - /* - * The default ban type for newly registered channels (and when importing old databases). + * The default ban type for newly registered channels. * * defbantype can be: * @@ -147,27 +128,12 @@ chanserv accessmax = 1024 /* - * The maximum number of entries on a channel's autokick list. - */ - autokickmax = 32 - - /* - * The default reason for an autokick if none is given. - */ - autokickreason = "User has been banned from the channel" - - /* * The length of time ChanServ stays in a channel after kicking a user from a channel they are not * permitted to be in. This only occurs when the user is the only one in the channel. */ inhabit = 15s /* - * The maximum number of channels to be returned for a ChanServ LIST command. - */ - listmax = 50 - - /* * Allow only IRC Operators to use ChanServ. * * This directive is optional. @@ -195,18 +161,6 @@ chanserv require = "r" /* - * Some IRCds can enforce mode locks server-side. This reduces the spam caused by - * services immediately reversing mode changes for locked modes. - */ - use_server_side_mlock = yes - - /* - * Some IRCds can enforce topic locks server-side. This reduces the spam caused by - * services immediately reversing topic changes. - */ - use_server_side_topiclock = yes - - /* * The maximum length of the reason field for user commands such as chanserv/kick * and chanserv/ban. */ @@ -902,7 +856,21 @@ command { service = "ChanServ"; name = "LEVELS"; command = "chanserv/levels"; gr * * Used for preventing users from joining channels. */ -module { name = "cs_akick" } +module +{ + name = "cs_akick" + + /* + * The maximum number of entries on a channel's autokick list. + */ + autokickmax = 32 + + /* + * The default reason for an autokick if none is given. + */ + autokickreason = "User has been banned from the channel" +} + command { service = "ChanServ"; name = "AKICK"; command = "chanserv/akick"; group = "chanserv/management"; } /* @@ -952,13 +920,14 @@ command { service = "ChanServ"; name = "ENFORCE"; command = "chanserv/enforce"; * * Used to configure entry messages sent to users when they join a channel. */ -module { name = "cs_entrymsg" } -command { service = "ChanServ"; name = "ENTRYMSG"; command = "chanserv/entrymsg"; group = "chanserv/management"; } -cs_entrymsg +module { + name = "cs_entrymsg" + /* The maximum number of entrymsgs allowed per channel. If not set, defaults to 5. */ maxentries = 5 } +command { service = "ChanServ"; name = "ENTRYMSG"; command = "chanserv/entrymsg"; group = "chanserv/management"; } /* * cs_flags @@ -1018,7 +987,16 @@ command { service = "ChanServ"; name = "KICK"; command = "chanserv/kick"; } * * Used for retrieving and searching the registered channel list. */ -module { name = "cs_list" } +module +{ + name = "cs_list" + + /* + * The maximum number of channels to be returned for a ChanServ LIST command. + */ + listmax = 50 +} + command { service = "ChanServ"; name = "LIST"; command = "chanserv/list"; permission = "chanserv/list"; group = "chanserv/admin"; } /* @@ -1143,7 +1121,18 @@ command { service = "ChanServ"; name = "STATUS"; command = "chanserv/status"; } * * Used for suspending and unsuspending channels. Suspended channels can not be used but their settings are stored. */ -module { name = "cs_suspend" } +module +{ + name = "cs_suspend" + + /* + * The length of time before a suspended channel expires. + * + * This directive is optional. + * If not set, the default is never. + */ + expire = 90d +} command { service = "ChanServ"; name = "SUSPEND"; command = "chanserv/suspend"; permission = "chanserv/suspend"; group = "chanserv/admin"; } command { service = "ChanServ"; name = "UNSUSPEND"; command = "chanserv/unsuspend"; permission = "chanserv/suspend"; group = "chanserv/admin"; } diff --git a/data/chanstats.example.conf b/data/chanstats.example.conf index 0f131a85a..f686cd216 100644 --- a/data/chanstats.example.conf +++ b/data/chanstats.example.conf @@ -3,9 +3,10 @@ * Make sure BotServ, ChanServ and NickServ are running. */ -module { name = "m_chanstats" } -chanstats +module { + name = "m_chanstats" + /* * The name of this engine. * This must match with the name of an SQL engine block. diff --git a/data/example.conf b/data/example.conf index 55390e391..82be8c9b5 100644 --- a/data/example.conf +++ b/data/example.conf @@ -21,6 +21,15 @@ * foo = bar * } * + * Note that nameless blocks are allowed and are often used with comments to allow + * easially commenting an entire block, for example: + * #foobar + * { + * moo = "cow" + * foo = bar + * } + * is an entirely commented block. + * * Keys are case insensitive. Values depend on what key - generally, information is * given in the key comment. The quoting of values (and most other syntax) is quite * flexible, however, please do not forget to quote your strings: @@ -40,11 +49,6 @@ * * "86400", "86400s", "1440m", "24h", "1d" * - * CAUTION: - * Please note that your services might _CRASH_ if you add more format- - * strings (%s, %d, etc.) to custom messages than Anope needs. Use the - * default messages to see how many format-strings are needed. - * * In the documentation for each directive, one of the following will be * included to indicate whether an option is required: * @@ -106,19 +110,17 @@ define * the output from it will be included into your configuration. */ -/* -include +#include { type = "file" name = "some.conf" } -include +#include { type = "executable" name = "/usr/bin/wget -q -O - http://some.misconfigured.network.com/services.conf" } -*/ /* * [REQUIRED] IRCd Config @@ -234,7 +236,33 @@ serverinfo * - ratbox * - unreal */ -module { name = "inspircd12" } +module +{ + name = "inspircd20" + + /* + * Some protocol modules can enforce mode locks server-side. This reduces the spam caused by + * services immediately reversing mode changes for locked modes. + * + * If the protocol module you have loaded does not support this, this setting will have no effect. + */ + use_server_side_mlock = yes + + /* + * Some protocol modules can enforce topic locks server-side. This reduces the spam caused by + * services immediately reversing topic changes. + * + * If the protocol module you have loaded does not support this, this setting will have no effect. + */ + use_server_side_topiclock = yes + + /* + * Some IRCds allow "SASL" authentication to let users identify to Services + * during the IRCd user registration process. If set, Services will allow + * authenticating users through this mechanism. + */ + sasl = yes +} /* * [REQUIRED] Network Information @@ -279,6 +307,34 @@ networkinfo * Comment out or set to 0 to disable. */ modelistsize = 100 + + /* + * The characters allowed in hostnames. This is used for validating hostnames given + * to services, such as BotServ bot hostnames and user vhosts. Changing this is not + * recommended unless you know for sure your IRCd supports whatever characters you are + * wanting to use. Telling services to set a vHost containing characters your IRCd + * disallows could potentially break the IRCd and/or Services. + * + * It is recommended you DON'T change this. + */ + vhost_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-" + + /* + * If set to true, allows vHosts to not contain dots (.). + * Newer IRCds generally do not have a problem with this, but the same warning as + * vhost_chars applies. + * + * It is recommended you DON'T change this. + */ + allow_undotted_vhosts = false + + /* + * The characters that are not allowed to be at the very beginning or very ending + * of a vHost. The same warning as vhost_chars applies. + * + * It is recommended you DON'T change this. + */ + disallow_start_or_end = ".-" } /* @@ -328,19 +384,6 @@ options #seed = 9866235 /* - * Allows Services to continue file write operations (i.e. database saving) - * even if the original file cannot be backed up. Enabling this option may - * allow Services to continue operation under conditions where it might - * otherwise fail, such as a nearly-full disk. - * - * NOTE: Enabling this option can cause irrecoverable data loss under some - * conditions, so make CERTAIN you know what you're doing when you enable it! - * - * This directive is optional, and you are discouraged against enabling it. - */ - #nobackupokay = yes - - /* * If set, Services will perform more stringent checks on passwords. If this * isn't set, Services will only disallow a password if it is the same as the * entity (nickname name) with which it is associated. When set, however, @@ -406,41 +449,15 @@ options * will use doing this. Higher values will cause less accurate timing but * less CPU usage. * - * This shouldn't be set any higher than 10 seconds, and 1 second is best - * if your system is powerful enough (or your network small enough) to - * handle it. 0 will cause the timeout list to be checked every time - * through the main loop, which will probably slow down Services too much - * to be useful on most networks. - * * Note that this value is not an absolute limit on the period between * checks of the timeout list; the previous may be as great as readtimeout * (above) during periods of inactivity. * - * If this directive is not given, it will default to 0. See the 2nd paragraph - * above for performance impacts if you do this. + * If this directive is not given, it will default to 0. */ timeoutcheck = 3s /* - * Sets the number of days backups of databases are kept. If you don't give it, - * or if you set it to 0, Services won't backup the databases. - * - * NOTE: Services must run 24 hours a day for this feature to work. - * - * This directive is optional, but recommended. - */ - keepbackups = 3 - - /* - * If set, Services will require a reason when a FORBID is added, else the - * reason is optional. This directive also applies to SUSPENDed channels as - * well. - * - * This directive is optional. - */ - forceforbidreason = yes - - /* * If set, this will allow users to let Services send PRIVMSGs to them * instead of NOTICEs. Also see the defmsg option of nickserv:defaults, * which also toggles the default communication (PRIVMSG or NOTICE) to @@ -471,35 +488,6 @@ options #hidestatso = yes /* - * Prevents users from registering their nick if they are not connected - * for at least the given number of seconds. - * - * This directive is optional. - */ - #nickregdelay = 30 - - /* - * If set, forbids the registration of nicks that contain an existing - * nick with Services access. For example, if Tester is a Services Oper, - * you can't register NewTester or Tester123 unless you are an IRC - * Operator. - * - * NOTE: If you enable this, you will have to be logged in as an IRC - * operator in order to register a Services Root nick when setting up - * Anope for the first time. - * - * This directive is optional. - */ - #restrictopernicks = yes - - /* - * The number of LOGON/OPER news items to display when a user logs on. - * - * This directive is optional, if no set it will default to 3. - */ - #newscount = 3 - - /* * A space-separated list of ulined servers on your network, it is assumed that * the servers in this list are allowed to set channel modes and Services will * not attempt to reverse their mode changes. @@ -511,16 +499,9 @@ options #ulineservers = "stats.your.network" /* - * Modes to set on service bots when they join channels, comment this out for no modes - * - * This directive is optional. - */ - botmodes = "ao" - - /* - * How long to wait between connection retries, in seconds. + * How long to wait between connection retries with the uplink(s). */ - retrywait = 60 + retrywait = 60s /* * If set, Services will hide commands that users don't have the privileges to execute @@ -539,6 +520,39 @@ options * Note for this to work the regex module providing the regex engine must be loaded. */ regexengine = "regex/pcre" + + /* + * A list of languages to load on startup that will be available in /nickserv set language. + * Useful if you translate Anope to your language. (Explained further in docs/LANGUAGE). + * Note that english should not be listed here because it is the base language. + * + * Removing .UTF-8 will instead use the default encoding for the language, eg. iso-8859-1 for western European languages. + */ + languages = "ca_ES.UTF-8 de_DE.UTF-8 el_GR.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 hu_HU.UTF-8 it_IT.UTF-8 nl_NL.UTF-8 pl_PL.UTF-8 pt_PT.UTF-8 ru_RU.UTF-8 tr_TR.UTF-8" + + /* + * Default language that non- and newly-registered nicks will receive messages in. + * Leave empty to default to English. + */ + #defaultlanguage = "es_ES.UTF-8" + + /* + * The username, and possibly hostname, used for fake users created when Services needs to + * hold a nickname. + */ + enforceruser = "enforcer" + enforcerhost = "localhost.net" + + /* + * The length of time Services hold nicknames. + */ + releasetimeout = 1m + + /* + * When a user's nick is forcibly changed to enforce a "nick kill", their new nick will start + * with this value. The rest will be made up of 6 or 7 digits. + */ + guestnickprefix = "Guest" } /* @@ -865,7 +879,7 @@ opertype * As with all permissions, make sure to only give trustworthy people access to Services. */ -oper +#oper { /* The nickname of this services oper */ #name = "nick1" @@ -893,19 +907,17 @@ oper #vhost = "oper.mynet" } -/* -oper +#oper { name = "nick2" type = "Services Administrator" } -oper +#oper { name = "nick3" type = "Helper" } -*/ /* * [OPTIONAL] Mail Config @@ -1048,9 +1060,10 @@ mail * You should only use this to upgrade old databases to a newer database format by loading * other database modules in addition to this one, which will be used when saving databases. */ -#module { name = "db_old" } -db_old +#module { + name = "db_old" + /* * This is the encryption type used by the databases. This must be set correctly or * your passwords will not work. Valid options are: md5, oldmd5, sha1, and plain. @@ -1067,28 +1080,45 @@ db_old * Then unload this and restart Anope, loading from the new database. */ #module { name = "db_plain" } -db_plain -{ - /* - * The database name db_plain should use - */ - database = "anope.db" -} /* * db_flatfile * * This is the default flatfile database format. */ -module { name = "db_flatfile" } -db_flatfile +module { + name = "db_flatfile" + /* * The database name db_flatfile should use */ database = "anope.db" /* + * Sets the number of days backups of databases are kept. If you don't give it, + * or if you set it to 0, Services won't backup the databases. + * + * NOTE: Services must run 24 hours a day for this feature to work. + * + * This directive is optional, but recommended. + */ + keepbackups = 3 + + /* + * Allows Services to continue file write operations (i.e. database saving) + * even if the original file cannot be backed up. Enabling this option may + * allow Services to continue operation under conditions where it might + * otherwise fail, such as a nearly-full disk. + * + * NOTE: Enabling this option can cause irrecoverable data loss under some + * conditions, so make CERTAIN you know what you're doing when you enable it! + * + * This directive is optional, and you are discouraged against enabling it. + */ + #nobackupokay = yes + + /* * If enabled, services will fork a child process to save databases. * * This is only useful with very large databases, with hundreds @@ -1099,29 +1129,24 @@ db_flatfile } /* - * db_sql + * db_sql and db_sql_live * - * This module allows saving and loading databases using one of the SQL engines. + * db_sql module allows saving and loading databases using one of the SQL engines. * This module loads the databases once on startup, then incrementally updates * objects in the database as they are changed within Anope in real time. Changes * to the SQL tables not done by Anope will have no effect and will be overwritten. * - */ -#module { name = "db_sql" } - -/* - * db_sql_live - * - * This module allows saving and loading databases using one of the SQL engines. + * db_sql_live module allows saving and loading databases using one of the SQL engines. * This module reads and writes to SQL in real time. Changes to the SQL tables * will be immediately reflected into Anope. This module should not be loaded * in conjunction with db_sql. + * */ -#module { name = "db_sql_live" } - -/* Configuration block for both db_sql and db_sql_live */ -db_sql +#module { + name = "db_sql" + #name = "db_sql_live + /* * The SQL service db_sql(_live) should use, these are configured in modules.conf. * For MySQL, this should probably be mysql/main. @@ -1210,7 +1235,7 @@ include * Requires a MySQL Database. */ #include -#{ -# type = "file" -# name = "chanstats.example.conf" -#} +{ + type = "file" + name = "chanstats.example.conf" +} diff --git a/data/global.example.conf b/data/global.example.conf index 2ae7cdc99..b013537d6 100644 --- a/data/global.example.conf +++ b/data/global.example.conf @@ -56,38 +56,30 @@ service * * Provides essential functionality for Global. */ -module { name = "global" } - -/* - * Configuration for Global provided by gl_main. - */ -global +module { + name = "global" + /* * The name of the client that should be Global. */ - name = "Global" + client = "Global" /* - * If set, Services will send global messages on starting up and shutting - * down/restarting. + * This is the global message that will be sent when Services are being + * shutdown/restarted. * * This directive is optional. */ - #globaloncycle = yes - - /* - * This is the global message that will be sent when Services are being - * shutdown/restarted. This directive is only required if you enable - * globaloncycle above. - */ - globaloncycledown = "Services are restarting, they will be back shortly - please be good while we're gone" + #globaloncycledown = "Services are restarting, they will be back shortly - please be good while we're gone" /* * This is the global message that will be sent when Services (re)join the - * network. This directive is only required if you enable globaloncycle above. + * network. + * + * This directive is optional. */ - globaloncycleup = "Services are now back online - have a nice day" + #globaloncycleup = "Services are now back online - have a nice day" /* * If set, Services will hide the IRC Operator's nick in a global diff --git a/data/hostserv.example.conf b/data/hostserv.example.conf index 1d406ef5b..10063ae7d 100644 --- a/data/hostserv.example.conf +++ b/data/hostserv.example.conf @@ -56,45 +56,14 @@ service * * Provides essential functionality for HostServ. */ -module { name = "hostserv" } - -/* - * Configuration for HostServ provided by hs_main. - */ -hostserv +module { - /* - * The name of the client that should be HostServ. - */ - name = "HostServ" + name = "hostserv" /* - * The characters allowed in a vHost. Changing this is not recommended unless - * you know for sure your IRCd supports whatever characters you are wanting to use. - * Telling services to set a vHost containing characters your IRCd disallows could - * potentially break the IRCd and/or Services. Note these are 1 byte characters, so - * UTF-8 characters will not work. - * - * It is recommended you DON'T change this. - */ - vhost_chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789.-" - - /* - * If set to true, allows vHosts to not contain dots (.). - * Newer IRCds generally do not have a problem with this, but the same warning as - * vhost_chars applies. - * - * It is recommended you DON'T change this. - */ - allow_undotted_vhosts = false - - /* - * The characters that are not allowed to be at the very beginning or very ending - * of a vHost. The same warning as vhost_chars applies. - * - * It is recommended you DON'T change this. + * The name of the client that should be HostServ. */ - disallow_start_or_end = ".-" + client = "HostServ" } /* @@ -169,13 +138,10 @@ command { service = "HostServ"; name = "ON"; command = "hostserv/on"; } * * Used to manage vHosts requested by users. */ -module { name = "hs_request" } -command { service = "HostServ"; name = "REQUEST"; command = "hostserv/request"; } -command { service = "HostServ"; name = "ACTIVATE"; command = "hostserv/activate"; permission = "hostserv/set"; } -command { service = "HostServ"; name = "REJECT"; command = "hostserv/reject"; permission = "hostserv/set"; } -command { service = "HostServ"; name = "WAITING"; command = "hostserv/waiting"; permission = "hostserv/set"; } -hs_request +module { + name = "hs_request" + /* * If set, Services will send a memo to the user requesting a vHost when it's been * approved or rejected. @@ -187,6 +153,10 @@ hs_request */ #memooper = yes } +command { service = "HostServ"; name = "REQUEST"; command = "hostserv/request"; } +command { service = "HostServ"; name = "ACTIVATE"; command = "hostserv/activate"; permission = "hostserv/set"; } +command { service = "HostServ"; name = "REJECT"; command = "hostserv/reject"; permission = "hostserv/set"; } +command { service = "HostServ"; name = "WAITING"; command = "hostserv/waiting"; permission = "hostserv/set"; } /* * hs_set diff --git a/data/memoserv.example.conf b/data/memoserv.example.conf index 40678bf53..6e4fd1e8d 100644 --- a/data/memoserv.example.conf +++ b/data/memoserv.example.conf @@ -56,18 +56,14 @@ service * * Provides essential functionality for MemoServ. */ -module { name = "memoserv" } - -/* - * Configuration for MemoServ provided by ms_main. - */ -memoserv +module { + name = "memoserv" /* * The name of the client that should be MemoServ. Clients are configured * with the service blocks. */ - name = "MemoServ" + client = "MemoServ" /* * The maximum number of memos a user is allowed to keep by default. Normal users may set the @@ -88,16 +84,6 @@ memoserv * This directive is optional, but recommended. */ senddelay = 3s - - /* - * Allow the use of memo receipts for the following groups: - * - * 1 - Opers Only - * 2 - Everybody - * - * This directive is optional. - */ - #memoreceipt = 1 } /* @@ -193,7 +179,17 @@ command { service = "MemoServ"; name = "READ"; command = "memoserv/read"; } * * Requires configuring memoserv:memoreceipt. */ -#module { name = "ms_rsend" } +#module +{ + name = "ms_rsend" + + /* + * Only allow Services Operators to use ms_rsend. + * + * This directive is optional. + */ + operonly = false +} #command { service = "MemoServ"; name = "RSEND"; command = "memoserv/rsend"; } /* diff --git a/data/modules.example.conf b/data/modules.example.conf index ef862221f..f1a5b8d7f 100644 --- a/data/modules.example.conf +++ b/data/modules.example.conf @@ -21,9 +21,10 @@ module { name = "help" } * Adds support for the DNS protocol. By itself this module does nothing useful, * but other modules such as m_dnsbl and os_dns require this. */ -#module { name = "m_dns" } -dns +#module { + name = "m_dns" + /* * The nameserver to use for resolving hostnames, must be an IP or a resolver configuration file. * The below should work fine on all unix like systems. Windows users will have to find their nameservers @@ -74,9 +75,10 @@ dns * is found on the blacklist they will be immediately banned. This is a crucial module * to prevent bot attacks. */ -#module { name = "m_dnsbl" } -m_dnsbl +#module { + name = "m_dnsbl" + /* * If set, Services will check clients against the DNSBLs when services connect to its uplink. * This is not recommended, and on large networks will open a very large amount of DNS queries. @@ -136,9 +138,10 @@ blacklist * * Gives users who are op in the specified help channel usermode +h (helpop). */ -#module { name = "m_helpchan" } -m_helpchan +#module { + name = "m_helpchan" + helpchannel = "#help" } @@ -324,9 +327,10 @@ mysql * back to services. If services are able to connect through the proxy to itself * then it knows it is an insecure proxy, and will ban it. */ -#module { name = "m_proxyscan" } -m_proxyscan +#module { + name = "m_proxyscan" + /* * The target IP services tells the proxy to connect back to. This must be a publicly * avaiable IP that remote proxies can connect to. @@ -402,9 +406,10 @@ proxyscan * This module allows authenticating users against an external SQL database using a custom * query. */ -#module { name = "m_sql_authentication" } -m_sql_authentication +#module { + name = "m_sql_authentication" + /* SQL engine to use. Should be configured elsewhere with m_mysql, m_sqlite, etc. */ engine = "mysql/main" @@ -446,9 +451,10 @@ m_sql_authentication * This module allows granting users services operator privileges and possibly IRC Operator * privileges based on an external SQL database using a custom query. */ -#module { name = "m_sql_oper" } -m_sql_oper +module { + name = "m_sql_oper" + /* SQL engine to use. Should be configured elsewhere with m_mysql, m_sqlite, etc. */ engine = "mysql/main" @@ -509,37 +515,38 @@ module { name = "m_regex_pcre" } */ module { name = "m_rewrite" } #command -#{ -# service = "ChanServ"; name = "CLEAR"; command = "rewrite" -# -# /* Enable m_rewrite. */ -# rewrite = true -# -# /* Source message to match. A $ can be used to match anything. */ -# rewrite_source = "CLEAR $ USERS" -# -# /* -# * Message to rewrite the source message to. A $ followed by a number, eg $0, gets -# * replaced by the number-th word from the source_message, starting from 0. -# */ -# rewrite_target = "KICK $1 *" -# -# /* -# * The command description. This only shows up in HELP's output. -# * Comment this option to prevent the command from showing in the -# * HELP command. -# */ -# rewrite_description = "Clears all users from a channel" -#} +{ + service = "ChanServ"; name = "CLEAR"; command = "rewrite" + + /* Enable m_rewrite. */ + rewrite = true + + /* Source message to match. A $ can be used to match anything. */ + rewrite_source = "CLEAR $ USERS" + + /* + * Message to rewrite the source message to. A $ followed by a number, eg $0, gets + * replaced by the number-th word from the source_message, starting from 0. + */ + rewrite_target = "KICK $1 *" + + /* + * The command description. This only shows up in HELP's output. + * Comment this option to prevent the command from showing in the + * HELP command. + */ + rewrite_description = "Clears all users from a channel" +} /* * m_ssl * * This module uses SSL to connect to the uplink server(s). */ -#module { name = "m_ssl" } -ssl +module { + name = "m_ssl" + /* * An optional certificate and key for m_ssl to give to the uplink. * @@ -582,9 +589,10 @@ m_xmlrpc * * This module requires m_httpd. */ -#module { name = "webcpanel" } -webcpanel +#module { + name = "webcpanel" + /* Web server to use. */ server = "httpd/main"; diff --git a/data/nickserv.example.conf b/data/nickserv.example.conf index 3c2034ddb..67358b9d6 100644 --- a/data/nickserv.example.conf +++ b/data/nickserv.example.conf @@ -56,17 +56,14 @@ service * * Provides essential functionality for NickServ. */ -module { name = "nickserv" } - -/* - * Configuration for NickServ provided by ns_main. - */ -nickserv +module { + name = "nickserv" + /* * The name of the client that should be NickServ. */ - name = "NickServ" + client = "NickServ" /* * Force users to give an e-mail address when they register a nick. @@ -77,18 +74,11 @@ nickserv /* * Require users who change their email address to confirm they - * own it. + * own their new email. */ confirmemailchanges = no /* - * Registration confirmation setting. Set to "none" for no registration confirmation, - * "mail" for email confirmation, and "admin" to have services operators manually confirm - * every registration. Set to "disable" to completely disable all registrations. - */ - registration = "none" - - /* * A message sent to users on connect if they use an unregistered nick. * * This directive is optional. @@ -122,34 +112,12 @@ nickserv defaults = "secure private hide_email hide_mask memo_signon memo_receive autoop" /* - * A list of languages to load on startup that will be available in /nickserv set language. - * Useful if you translate Anope to your language. (Explained further in docs/LANGUAGE). - * Note that english should not be listed here because it is the base language. - * - * Removing .UTF-8 will instead use the default encoding for the language, eg. iso-8859-1 for western European languages. - */ - languages = "ca_ES.UTF-8 de_DE.UTF-8 el_GR.UTF-8 es_ES.UTF-8 fr_FR.UTF-8 hu_HU.UTF-8 it_IT.UTF-8 nl_NL.UTF-8 pl_PL.UTF-8 pt_PT.UTF-8 ru_RU.UTF-8 tr_TR.UTF-8" - - /* - * Default language that non- and newly-registered nicks will receive messages in. - * Leave empty to default to English. - */ - #defaultlanguage = "es_ES.UTF-8" - - /* * The minimum length of time between consecutive uses of NickServ's REGISTER command. This * directive is optional, but recommended. If not set, this restriction will be disabled. */ regdelay = 30s /* - * The minimum length of time between consecutive uses of NickServ's RESEND command. - * - * This directive is optional, but recommended. If not set, this restriction will be disabled. - */ - resenddelay = 90s - - /* * The length of time before a nick's registration expires. * * This directive is optional, but recommended. If not set, the default is 21 days. @@ -157,13 +125,6 @@ nickserv expire = 21d /* - * The length of time before a suspended nick becomes unsuspended. - * - * This directive is optional. If not set, the default is never. - */ - #suspendexpire = 90d - - /* * The length of time a user using an unconfirmed account has * before the account will be released for general use again. * @@ -172,57 +133,6 @@ nickserv #unconfirmedexpire = 1d /* - * The maximum number of nicks allowed in a group. - * - * This directive is optional, but recommended. If not set or set to 0, no limits will be applied. - */ - maxaliases = 16 - - /* - * The maximum number of entries allowed on a nickname's access list. - */ - accessmax = 32 - - /* - * The username (and possibly hostname) used for the fake user created when NickServ collides - * a user. - */ - enforceruser = "enforcer" - enforcerhost = "localhost.net" - - /* - * The delay before a NickServ collided nick is released. - */ - releasetimeout = 1m - - /* - * Allow the use of the IMMED option in the NickServ SET KILL command. - * - * This directive is optional. - */ - #allowkillimmed = yes - - /* - * If set, the NickServ GROUP command won't allow any group change. This is recommended for - * better performance and to protect against nick stealing, however users will have less - * flexibility. - * - * This directive is optional, but recommended. - */ - #nogroupchange = yes - - /* - * The maximum number of nicks to be returned for a NickServ LIST command. - */ - listmax = 50 - - /* - * When a user's nick is forcibly changed to enforce a "nick kill", their new nick will start - * with this value. The rest will be made up of 6 or 7 digits. - */ - guestnickprefix = "Guest" - - /* * Prevents the use of the ACCESS (excluding the LIST subcommand), DROP, FORBID, SUSPEND, * GETPASS and SET PASSWORD commands by services operators on other services operators. * @@ -231,14 +141,6 @@ nickserv secureadmins = yes /* - * If set, any user wanting to use the privileges of Services Root, Services Admin, or Services - * Operator must have been logged as an IRC Operator with the /OPER command. - * - * This directive is optional, but recommended. - */ - strictprivileges = yes - - /* * If set, Services will set the channel modes a user has access to upon identifying, assuming * they are not already set. * @@ -247,17 +149,17 @@ nickserv modeonid = yes /* - * If set, Services will add the usermask of registering users to the access list of their - * newly created account. If not set, users will always have to identify to NickServ before - * being recognized, unless they manually add an address to the access list of their account. + * If set, Services will set these user modes on any user who identifies. + * * This directive is optional. */ - addaccessonreg = yes + #modesonid = "+R" /* - * The maximum number of channels a user can have on NickServ's AJOIN command. + * If set, Services will not show netsplits in the last quit message field + * of NickServ's INFO command. */ - ajoinmax = 10 + hidenetsplitquit = no /* * If set, is the length of time NickServ's killquick and kill options wait before @@ -267,32 +169,18 @@ nickserv kill = 60s /* - * If set, Services will set these user modes on any user who identifies. + * If set, forbids the registration of nicks that contain an existing + * nick with Services access. For example, if Tester is a Services Oper, + * you can't register NewTester or Tester123 unless you are an IRC + * Operator. * - * This directive is optional. - */ - #modesonid = "+R" - - /* - * If set, Services will svsnick and svsjoin users who use the recover - * command on an identified user to the nick and channels of the recovered user. + * NOTE: If you enable this, you will have to be logged in as an IRC + * operator in order to register a Services Root nick when setting up + * Anope for the first time. * - * This directive is opional. - */ - restoreonrecover = yes - - /* - * Some IRCds allow "SASL" authentication to let users identify to Services - * during the IRCd user registration process. If set, Services will allow - * authenticating users through this mechanism. - */ - sasl = yes - - /* - * If set, Services will not show netsplits in the last quit message field - * of NickServ's INFO command. + * This directive is optional. */ - hidenetsplitquit = no + #restrictopernicks = yes } /* @@ -327,7 +215,24 @@ command { service = "NickServ"; name = "HELP"; command = "generic/help"; } * * Used for configuring what hosts have access to your account. */ -module { name = "ns_access" } +module +{ + name = "ns_access" + + /* + * The maximum number of entries allowed on a nickname's access list. + */ + accessmax = 32 + + /* + * If set, Services will add the usermask of registering users to the access list of their + * newly created account. If not set, users will always have to identify to NickServ before + * being recognized, unless they manually add an address to the access list of their account. + * This directive is optional. + */ + addaccessonreg = yes +} + command { service = "NickServ"; name = "ACCESS"; command = "nickserv/access"; } /* @@ -337,7 +242,15 @@ command { service = "NickServ"; name = "ACCESS"; command = "nickserv/access"; } * * Used for configuring channels to join once you identify. */ -module { name = "ns_ajoin" } +module +{ + name = "ns_ajoin" + + /* + * The maximum number of channels a user can have on NickServ's AJOIN command. + */ + ajoinmax = 10 +} command { service = "NickServ"; name = "AJOIN"; command = "nickserv/ajoin"; } /* @@ -399,7 +312,26 @@ command { service = "NickServ"; name = "GETEMAIL"; command = "nickserv/getemail" * * Used for controlling nick groups. */ -module { name = "ns_group" } +module +{ + name = "ns_group" + + /* + * The maximum number of nicks allowed in a group. + * + * This directive is optional, but recommended. If not set or set to 0, no limits will be applied. + */ + maxaliases = 16 + + /* + * If set, the NickServ GROUP command won't allow any group change. This is recommended for + * better performance and to protect against nick stealing, however users will have less + * flexibility. + * + * This directive is optional, but recommended. + */ + #nogroupchange = yes +} command { service = "NickServ"; name = "GLIST"; command = "nickserv/glist"; } command { service = "NickServ"; name = "GROUP"; command = "nickserv/group"; } command { service = "NickServ"; name = "UNGROUP"; command = "nickserv/ungroup"; } @@ -432,7 +364,15 @@ command { service = "NickServ"; name = "INFO"; command = "nickserv/info"; } * * Used for retrieving and searching the registered account list. */ -module { name = "ns_list" } +module +{ + name = "ns_list" + + /* + * The maximum number of nicks to be returned for a NickServ LIST command. + */ + listmax = 50 +} command { service = "NickServ"; name = "LIST"; command = "nickserv/list"; group = "nickserv/admin"; } /* @@ -452,9 +392,20 @@ command { service = "NickServ"; name = "LOGOUT"; command = "nickserv/logout"; } * * Used for recovering your nick from services or another user. */ -module { name = "ns_recover" } +module +{ + name = "ns_recover" + + /* + * If set, Services will svsnick and svsjoin users who use the recover + * command on an identified user to the nick and channels of the recovered user. + * + * This directive is opional. + */ + restoreonrecover = yes +} command { service = "NickServ"; name = "RECOVER"; command = "nickserv/recover"; } -# Uncomment below to emulate 1.8's behavior of ghost, recover, and release. +# Uncomment below to emulate 1.8's behavior of ghost and release. #command { service = "NickServ"; name = "GHOST"; command = "nickserv/recover"; } #command { service = "NickServ"; name = "RELEASE"; command = "nickserv/recover"; } @@ -465,7 +416,33 @@ command { service = "NickServ"; name = "RECOVER"; command = "nickserv/recover"; * * Used for registering accounts. */ -module { name = "ns_register" } +module +{ + name = "ns_register" + + /* + * Registration confirmation setting. Set to "none" for no registration confirmation, + * "mail" for email confirmation, and "admin" to have services operators manually confirm + * every registration. Set to "disable" to completely disable all registrations. + */ + registration = "none" + + /* + * The minimum length of time between consecutive uses of NickServ's RESEND command. + * + * This directive is optional, but recommended. If not set, this restriction will be disabled. + */ + resenddelay = 90s + + /* + * Prevents users from registering their nick if they are not connected + * for at least the given number of seconds. + * + * This directive is optional. + */ + #nickregdelay = 30 +} + command { service = "NickServ"; name = "CONFIRM"; command = "nickserv/confirm"; } command { service = "NickServ"; name = "REGISTER"; command = "nickserv/register"; } command { service = "NickServ"; name = "RESEND"; command = "nickserv/resend"; } @@ -500,7 +477,18 @@ command { service = "NickServ"; name = "RESETPASS"; command = "nickserv/resetpas * * This is a dummy command to provide a help wrapper for the various SET and SASET commands. */ -module { name = "ns_set" } +module +{ + name = "ns_set" + + /* + * Allow the use of the IMMED option in the NickServ SET KILL command. + * + * This directive is optional. + */ + #allowkillimmed = yes +} + command { service = "NickServ"; name = "SET"; command = "nickserv/set"; } command { service = "NickServ"; name = "SASET"; command = "nickserv/saset"; permission = "nickserv/saset/"; group = "nickserv/admin"; } @@ -575,7 +563,18 @@ command { service = "NickServ"; name = "STATUS"; command = "nickserv/status"; } * * Used to suspend and unsuspend nicknames. Suspended nicknames can not be used but their settings are preserved. */ -module { name = "ns_suspend" } +module +{ + name = "ns_suspend" + + /* + * The length of time before a suspended nick becomes unsuspended. + * + * This directive is optional. If not set, the default is never. + */ + #suspendexpire = 90d +} + command { service = "NickServ"; name = "SUSPEND"; command = "nickserv/suspend"; permission = "nickserv/suspend"; group = "nickserv/admin"; } command { service = "NickServ"; name = "UNSUSPEND"; command = "nickserv/unsuspend"; permission = "nickserv/suspend"; group = "nickserv/admin"; } @@ -600,9 +599,10 @@ command { service = "NickServ"; name = "UPDATE"; command = "nickserv/update"; } * Limits how many times the same email address may be used in Anope * to register accounts. */ -module { name = "ns_maxemail" } -ns_maxemail +module { + name = "ns_maxemail" + /* * The limit to how many registered nicks can use the same e-mail address. If set to 0 or left * commented, there will be no limit enforced when registering new accounts or using diff --git a/data/operserv.example.conf b/data/operserv.example.conf index fa17a1df9..687247f0a 100644 --- a/data/operserv.example.conf +++ b/data/operserv.example.conf @@ -56,25 +56,14 @@ service * * Provides essential functionality for OperServ. */ -module { name = "operserv" } - -/* - * Configuration for OperServ provided by os_main. - */ -operserv +module { - /* - * The name of the client that should be OperServ. - */ - name = "OperServ" + name = "operserv" /* - * If set, Services Admins will be able to use SUPERADMIN [ON|OFF] which will temporarily grant - * them extra privileges such as being a founder on ALL channels. - * - * This directive is optional. + * The name of the client that should be OperServ. */ - #superadmin = yes + client = "OperServ" /* * These define the default expiration times for, respectively, AKILLs, CHANKILLs, SNLINEs, @@ -98,9 +87,9 @@ operserv * If set, this option will make Services send an (SVS)KILL command immediately after SNLINE ADD. * This eliminates the need for killing the user after the SNLINE has been added. * - *This directive is optional. + * This directive is optional. */ - #killonsnline = yes + killonsnline = yes /* * If set, this option will make Services send an (SVS)KILL command immediately after SQLINE ADD. @@ -108,87 +97,7 @@ operserv * * This directive is optional. */ - #killonsqline = yes - - /* - * Enables session limiting. Session limiting prevents users from connecting more than a certain - * number of times from the same host at the same time - thus preventing most types of cloning. - * Once a host reaches it's session limit, all clients attempting to connect from that host will - * be killed. Exceptions to the default session limit can be defined via the exception list. It - * should be noted that session limiting, along with a large exception list, can degrade Services' - * performance. - * - * See the online help for more information about session limiting. - * - * This directive is optional. - */ - limitsessions = yes - - /* - * Default session limit per host. Once a host reaches it's session limit, all clients attempting - * to connect from that host will be killed. A value of zero means an unlimited session limit. - * - * This directive is optional. - * If not given and session limiting is enabled, it will default to no limit. - */ - defaultsessionlimit = 3 - - /* - * The maximum session limit that may be set for a host in an exception. - * - * This directive is only required if session limiting is enabled. - */ - maxsessionlimit = 100 - - /* - * Sets the default expiry time for session exceptions. - * - * This directive is only required if session limiting is enabled. - */ - exceptionexpiry = 1d - - /* - * The message that will be NOTICE'd to a user just before they are removed from the network because - * their host's session limit has been exceeded. It may be used to give a slightly more descriptive - * reason for the impending kill as opposed to simply "Session limit exceeded". - * - * This directive is optional, if not set, nothing will be sent. - */ - sessionlimitexceeded = "The session limit for your IP %s has been exceeded." - - /* - * Same as above, but should be used to provide a website address where users can find out more - * about session limits and how to go about applying for an exception. - * - * Note: This directive has been intentionally commented out in an effort to remind you to change - * the URL it contains. It is recommended that you supply an address/URL where people can get help - * regarding session limits. - * - * This directive is optional, if not set, nothing will be sent. - */ - #sessionlimitdetailsloc = "Please visit http://your.website.url/ for more information about session limits." - - /* - * If set and is not 0, this directive tells Services to add an AKILL the number of subsequent kills - * for the same host exceeds this value, preventing the network from experiencing KILL floods. - * - * This directive is optional. - */ - maxsessionkill = 15 - - /* - * Sets the expiry time for AKILLs set for hosts exceeding the maxsessionkill directive limit. - * - * This directive is optional, if not set, defaults to 30 minutes. - */ - sessionautokillexpiry = 30m - - /* - * Sets the CIDR value used to determine which IP addresses represent the same person. - * By default this would limit 3 connections per IPv4 IP and 3 connections per IPv6 IP. - */ - session_ipv4_cidr = 32 - session_ipv6_cidr = 128 + killonsqline = yes /* * Adds the nickname of the IRC Operator issuing an AKILL to the kill reason. @@ -204,8 +113,7 @@ operserv akillids = yes /* - * If set, only IRC Operators will be permitted to use OperServ, regardless of module-based command - * access restrictions. + * If set, only IRC Operators will be permitted to use OperServ, regardless of command access restrictions. * * This directive is optional, but recommended. */ @@ -254,10 +162,10 @@ command { service = "OperServ"; name = "CHANKILL"; command = "operserv/chankill" * Allows you to set services in defcon mode, which can be used to restrict services access * during bot attacks. */ -#module { name = "os_defcon" } -#command { service = "OperServ"; name = "DEFCON"; command = "operserv/defcon"; } -defcon +#module { + name = "os_defcon" + /* * Default DefCon level (1-5) to use when starting Services up. Level 5 constitutes normal operation * while level 1 constitutes the most restrictive operation. If this setting is left out or set to @@ -352,6 +260,7 @@ defcon */ #akillreason = "This network is currently not accepting connections, please try again later." } +#command { service = "OperServ"; name = "DEFCON"; command = "operserv/defcon"; } /* * os_dns @@ -384,10 +293,10 @@ defcon * * Finally set a NS record for irc.example.com. to BIND or services. */ -#module { name = "os_dns" } -#command { service = "OperServ"; name = "DNS"; command = "operserv/dns"; permission = "operserv/dns"; } -os_dns +module { + name = "os_dns" + /* TTL for records. This should be very low if your records change often. */ ttl = 1m @@ -412,6 +321,7 @@ os_dns */ readd_connected_servers = no } +#command { service = "OperServ"; name = "DNS"; command = "operserv/dns"; permission = "operserv/dns"; } /* * os_config @@ -502,15 +412,16 @@ command { service = "OperServ"; name = "LOGOUT"; command = "operserv/logout"; } * * Used to search services log files. */ -module { name = "os_logsearch" } -command { service = "OperServ"; name = "LOGSEARCH"; command = "operserv/logsearch"; permission = "operserv/logsearch"; } -logsearch +module { + name = "os_logsearch" + /* The log file name to search. There should be a log{} block configured to log * to a file of this name. */ - name = "services.log" + logname = "services.log" } +command { service = "OperServ"; name = "LOGSEARCH"; command = "operserv/logsearch"; permission = "operserv/logsearch"; } /* * os_mode @@ -553,7 +464,18 @@ command { service = "OperServ"; name = "MODUNLOAD"; command = "operserv/modunloa * * Used to configure news notices shown to users when they connect, and opers when they oper. */ -module { name = "os_news" } +module +{ + name = "os_news" + + /* + * The number of LOGON/OPER news items to display when a user logs on. + * + * This directive is optional, if no set it will default to 3. + */ + #newscount = 3 +} + command { service = "OperServ"; name = "LOGONNEWS"; command = "operserv/logonnews"; permission = "operserv/news"; } command { service = "OperServ"; name = "OPERNEWS"; command = "operserv/opernews"; permission = "operserv/news"; } command { service = "OperServ"; name = "RANDOMNEWS"; command = "operserv/randomnews"; permission = "operserv/news"; } @@ -604,9 +526,84 @@ command { service = "OperServ"; name = "RELOAD"; command = "operserv/reload"; pe * * Provides the commands operserv/exception and operserv/session. * + * This module enables session limiting. Session limiting prevents users from connecting more than a certain + * number of times from the same IP at the same time - thus preventing most types of cloning. + * Once a host reaches it's session limit, all clients attempting to connect from that host will + * be killed. Exceptions to the default session limit can be defined via the exception list. + * * Used to manage the session limit exception list, and view currently active sessions. */ -module { name = "os_session" } +module +{ + name = "os_session" + + /* + * Default session limit per host. Once a host reaches it's session limit, all clients attempting + * to connect from that host will be killed. + * + * This directive is require if os_session is loaded. + */ + defaultsessionlimit = 3 + + /* + * The maximum session limit that may be set for a host in an exception. + * + * This directive is require if os_session is loaded. + */ + maxsessionlimit = 100 + + /* + * Sets the default expiry time for session exceptions. + * + * This directive is require if os_session is loaded. + */ + exceptionexpiry = 1d + + /* + * The message that will be NOTICE'd to a user just before they are removed from the network because + * their host's session limit has been exceeded. It may be used to give a slightly more descriptive + * reason for the impending kill as opposed to simply "Session limit exceeded". + * + * This directive is optional, if not set, nothing will be sent. + */ + sessionlimitexceeded = "The session limit for your IP %IP% has been exceeded." + + /* + * Same as above, but should be used to provide a website address where users can find out more + * about session limits and how to go about applying for an exception. + * + * Note: This directive has been intentionally commented out in an effort to remind you to change + * the URL it contains. It is recommended that you supply an address/URL where people can get help + * regarding session limits. + * + * This directive is optional, if not set, nothing will be sent. + */ + #sessionlimitdetailsloc = "Please visit http://your.website.url/ for more information about session limits." + + /* + * If set and is not 0, this directive tells Services to add an AKILL the number of subsequent kills + * for the same host exceeds this value, preventing the network from experiencing KILL floods. + * + * This directive is optional. + */ + maxsessionkill = 15 + + /* + * Sets the expiry time for AKILLs set for hosts exceeding the maxsessionkill directive limit. + * + * This directive is optional, if not set, defaults to 30 minutes. + */ + sessionautokillexpiry = 30m + + /* + * Sets the CIDR value used to determine which IP addresses represent the same person. + * By default this would limit 3 connections per IPv4 IP and 3 connections per IPv6 IP. + * If you are receiving IPv6 clone attacks it may be useful to set session_ipv6_cidr to + * 64 or 48. + */ + session_ipv4_cidr = 32 + session_ipv6_cidr = 128 +} command { service = "OperServ"; name = "EXCEPTION"; command = "operserv/exception"; permission = "operserv/exception"; } command { service = "OperServ"; name = "SESSION"; command = "operserv/session"; permission = "operserv/session"; } @@ -617,7 +614,19 @@ command { service = "OperServ"; name = "SESSION"; command = "operserv/session"; * * Used to set various settings such as superadmin, debug mode, etc. */ -module { name = "os_set" } +module +{ + name = "os_set" + + /* + * If set, Services Admins will be able to use SUPERADMIN [ON|OFF] which will temporarily grant + * them extra privileges such as being a founder on ALL channels. + * + * This directive is optional. + */ + #superadmin = yes +} + command { service = "OperServ"; name = "SET"; command = "operserv/set"; permission = "operserv/set"; } /* @@ -659,7 +668,7 @@ command { service = "OperServ"; name = "SVSPART"; command = "operserv/svspart"; * * Provides the operserv/snline and operserv/sqline commands. * - * Used to ban different things such as realnames, nicknames, and IPs. + * Used to ban real names, nick names, and possibly channels. */ module { name = "os_sxline" } command { service = "OperServ"; name = "SNLINE"; command = "operserv/snline"; permission = "operserv/snline"; } |
