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/operserv.example.conf | |
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/operserv.example.conf')
-rw-r--r-- | data/operserv.example.conf | 237 |
1 files changed, 123 insertions, 114 deletions
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"; } |