diff options
Diffstat (limited to 'data/operserv.example.conf')
| -rw-r--r-- | data/operserv.example.conf | 579 |
1 files changed, 579 insertions, 0 deletions
diff --git a/data/operserv.example.conf b/data/operserv.example.conf new file mode 100644 index 000000000..48d6c4b42 --- /dev/null +++ b/data/operserv.example.conf @@ -0,0 +1,579 @@ +/* + * Example configuration file for OperServ. + */ + +/* + * First, create the service. + */ +service +{ + /* + * The name of the OperServ client + */ + nick = "OperServ" + + /* + * The username of the OperServ client. + */ + user = "services" + + /* + * The hostname of the OperServ client. + */ + host = "localhost.net" + + /* + * The realname of the OperServ client. + */ + gecos = "Operator Service" +} + +/* + * Core OperServ module. + * + * Provides essential functionality for OperServ. + */ +module { name = "os_main" } + +/* + * Configuration for OperServ provided by os_main. + */ +operserv +{ + /* + * The name of the client that should be 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. + */ + #superadmin = yes + + /* + * These define the default expiration times for, respectively, AKILLs, CHANKILLs, SNLINEs, + * SQLINEs, and SZLINEs. + */ + autokillexpiry = 30d + chankillexpiry = 30d + snlineexpiry = 30d + sqlineexpiry = 30d + szlineexpiry = 30d + + /* + * If set, this option will make Services send an AKILL command immediately after it has been + * added with AKILL ADD. This eliminates the need for killing the user after the AKILL has + * been added. + * + * This directive is optional, but recommended. + */ + akillonadd = yes + + /* + * 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. + */ + #killonsnline = yes + + /* + * If set, this option will make Services send an (SVS)KILL command immediately after SQLINE ADD. + * This eliminates the need for killing the user after the SQLINE has been added. + * + * This directive is optional. + */ + #killonsqline = yes + + /* + * Defines what actions should trigger notifications. The list must be separated by spaces. + * + * The notifications are: + * - oper: A user has become an IRC operator + * - bados: A non-IRCop attempts to use OperServ + * - akillexpire: An AKILL has expired + * - snlineexpire: An SNLINE has expired + * - sqlineexpire: An SQLINE has expired + * - szlineexpire: An SZLINE has expired + * - exceptionexpire: A session exception has expired + * + * This directive is optional, if left blank, there will be no notifications. + */ + notifications = "oper" + + /* + * 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 source and comments in sessions.c and 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 host %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 + + /* + * Adds the nickname of the IRC Operator issuing an AKILL to the kill reason. + * + * This directive is optional. + */ + addakiller = yes + + /* + * If set, only IRC Operators will be permitted to use OperServ, regardless of module-based command + * access restrictions. + * + * This directive is optional, but recommended. + */ + opersonly = yes +} + +/* + * Core OperServ commands. + * + * In Anope modules can provide (multiple) commands, each of which has a unique command name. Once these modules + * are loaded you can then configure the commands to be added to any client you like with any name you like. + * + * Additionally, you may provide a permission name that must be in the opertype of users executing the command. + * + * Sane defaults are provided below that do not need to be edited unless you wish to change the default behavior. + */ + +/* Give it a help command */ +command { service = "OperServ"; name = "HELP"; command = "generic/help"; } + +/* + * os_akill + * + * Provides the command operserv/akill. + * + * Used to ban users from the network. + */ +module { name = "os_akill" } +command { service = "OperServ"; name = "AKILL"; command = "operserv/akill"; permission = "operserv/akill"; } + +/* + * os_chankill + * + * Provides the command operserv/chankill. + * + * Used to akill uses from an entire channel. + */ +module { name = "os_chankill" } +command { service = "OperServ"; name = "CHANKILL"; command = "operserv/chankill"; permission = "operserv/chankill"; } + +/* + * os_defcon + * + * Provides the command operserv/defcon. + * + * 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 +{ + /* + * 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 + * 0, DefCon will be disabled and the rest of this block will be ignored. + */ + #defaultlevel = 5 + + /* + * The following 4 directives define what operations will take place when DefCon is set to levels + * 1 through 4. Each level is a list that must be separated by spaces. + * + * The following operations can be defined at each level: + * - nonewchannels: Disables registering new channels + * - nonewnicks: Disables registering new nicks + * - nomlockchanges: Disables changing MLOCK on registered channels + * - forcechanmodes: Forces all channels to have the modes given in the later chanmodes directive + * - reducedsessions: Reduces the session limit to the value given in the later sessionlimit directive + * - nonewclients: KILL any new clients trying to connect + * - operonly: Services will ignore all non-IRCops + * - silentoperonly: Services will silently ignore all non-IRCops + * - akillnewclients: AKILL any new clients trying to connect + * - nonewmemos: No new memos will be sent to block MemoServ attacks + */ + level4 = "nonewchannels nonewnicks nomlockchanges reducedsessions" + level3 = "nonewchannels nonewnicks nomlockchanges forcechanmodes reducedsessions" + level2 = "nonewchannels nonewnicks nomlockchanges forcechanmodes reducedsessions silentoperonly" + level1 = "nonewchannels nonewnicks nomlockchanges forcechanmodes reducedsessions silentoperonly akillnewclients" + + /* + * New session limit to use when a DefCon level is using "reduced" session limiting. + */ + #sessionlimit = 2 + + /* + * Length of time to add an AKILL for when DefCon is preventing new clients from connecting to the + * network. + */ + #akillexpire = 5m + + /* + * The channel modes to set on all channels when the DefCon channel mode system is in use. + * + * Note 1: Choose these modes carefully, because when DefCon switches to a level which does NOT have + * the mode setting selected, Services will set the reverse on all channels, e.g. if this setting + * is +RN when DefCon is used, all channels will be set to +RN, when DefCon is removed, all + * channels will be set to -RN. You don't want to set this to +k for example, because when DefCon + * is removed all channels with -k. + * + * Note 2: MLOCKed modes will not be lost. + */ + #chanmodes = "+R" + + /* + * This value can be used to automatically return the network to DefCon level 5 after the specified + * time period, just in case any IRC Operator forgets to remove a DefCon setting. + * + * This directive is optional. + */ + #timeout = 15m + + /* + * If set, Services will send a global message on DefCon level changes. + * + * This directive is optional. + */ + #globalondefcon = yes + + /* + * If set, Services will send the global message defined in the message directive on DefCon level + * changes. + * + * This directive is optional. + */ + #globalondefconmore = yes + + /* + * Defines the message that will be sent on DefCon level changes when globalondefconmore is set. + * + * This directive is required only when globalondefconmore is set. + */ + #message = "Put your message to send your users here. Dont forget to uncomment globalondefconmore" + + /* + * Defines the message that will be sent when DefCon is returned to level 5. This directive is optional, + * and will also override globalondefcon and globalondefconmore when set. + */ + #offmessage = "Services are now back to normal, sorry for any inconvenience" + + /* + * Defines the reason to use when clients are KILLed or AKILLed from the network while the proper + * DefCon operation is in effect. + */ + #akillreason = "This network is currently not accepting connections, please try again later" +} + +/* + * os_list + * + * Provides the commands operserv/chanlist and operserv/userlist. + * + * Used to list and search the channels and users currently on the network. + */ +module { name = "os_list" } +command { service = "OperServ"; name = "CHANLIST"; command = "operserv/chanlist"; } +command { service = "OperServ"; name = "USERLIST"; command = "operserv/userlist"; } + +/* + * os_config + * + * Provides the command operserv/config. + * + * Used to view and set configuration options while services are running. + */ +module { name = "os_config" } +command { service = "OperServ"; name = "CONFIG"; command = "operserv/config"; permission = "operserv/config"; } + +/* + * os_forbid + * + * Provides the command operserv/forbid. + * + * Used to forbid specific nicks, channels, emails, etc. from being used. + */ +module { name = "os_forbid" } +command { service = "OperServ"; name = "FORBID"; command = "operserv/forbid"; permission = "operserv/forbid"; } + +/* + * os_ignore + * + * Provides the command operserv/ignore. + * + * Used to make Services ignore users. + */ +module { name = "os_ignore" } +command { service = "OperServ"; name = "IGNORE"; command = "operserv/ignore"; permission = "operserv/ignore"; } + +/* + * os_jupe + * + * Provides the command operserv/jupe. + * + * Used to disconnect servers from the network and prevent them from relinking. + */ +module { name = "os_jupe" } +command { service = "OperServ"; name = "JUPE"; command = "operserv/jupe"; permission = "operserv/jupe"; } + +/* + * os_kick + * + * Provides the command operserv/kick. + * + * Used to kick users from channels. + */ +module { name = "os_kick" } +command { service = "OperServ"; name = "KICK"; command = "operserv/kick"; permission = "operserv/kick"; } + +/* + * os_kill + * + * Provides the command operserv/kill. + * + * Used to forcibly disconnect users from the network. + */ +module { name = "os_kill" } +command { service = "OperServ"; name = "KILL"; command = "operserv/kill"; permission = "operserv/kill"; } + +/* + * os_login + * + * Provides the command operserv/login. + * + * Used to login to OperServ, only required if your oper block requires this. + */ +module { name = "os_login" } +command { service = "OperServ"; name = "LOGIN"; command = "operserv/login"; } + +/* + * os_mode + * + * Provides the commands operserv/mode and operserv/umode. + * + * Used to change user and channel modes. + */ +module { name = "os_mode" } +command { service = "OperServ"; name = "MODE"; command = "operserv/mode"; permission = "operserv/mode"; } +command { service = "OperServ"; name = "UMODE"; command = "operserv/umode"; permission = "operserv/umode"; } + +/* + * os_modinfo + * + * Provides the commands operserv/modinfo and operserv/modlist. + * + * Used to show information about loaded modules. + */ +module { name = "os_modinfo" } +command { service = "OperServ"; name = "MODINFO"; command = "operserv/modinfo"; } +command { service = "OperServ"; name = "MODLIST"; command = "operserv/modlist"; permission = "operserv/modlist"; } + +/* + * os_module + * + * Provides the commands operserv/modload, operserv/modreload, and operserv/modunload. + * + * Used to load, reload, and unload modules. + */ +module { name = "os_module" } +command { service = "OperServ"; name = "MODLOAD"; command = "operserv/modload"; permission = "operserv/modload"; } +command { service = "OperServ"; name = "MODRELOAD"; command = "operserv/modreload"; permission = "operserv/modload"; } +command { service = "OperServ"; name = "MODUNLOAD"; command = "operserv/modunload"; permission = "operserv/modload"; } + +/* + * os_news + * + * Provides the commands operserv/logonnews, operserv/opernews, and operserv/randomnews. + * + * Used to configure news notices shown to users when they connect, and opers when they oper. + */ +module { name = "os_news" } +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"; } + +/* + * os_noop + * + * Provides the command operserv/noop. + * + * Used to NOOP a server, which prevents users from opering on that server. + */ +module { name = "os_noop" } +command { service = "OperServ"; name = "NOOP"; command = "operserv/noop"; permission = "operserv/noop"; } + +/* + * os_oline + * + * Provides the command operserv/oline. + * + * What even does this do. + */ +module { name = "os_oline" } +command { service = "OperServ"; name = "OLINE"; command = "operserv/oline"; permission = "operserv/oline"; } + +/* + * os_oper + * + * Provides the command opersev/oper. + * + * Used to configure opers and show information about opertypes. + */ +module { name = "os_oper" } +command { service = "OperServ"; name = "OPER"; command = "operserv/oper"; permission = "operserv/oper"; } + +/* + * os_reload + * + * Provides the command operserv/relad. + * + * Used to reload the services.conf configuration file. + */ +module { name = "os_reload" } +command { service = "OperServ"; name = "RELOAD"; command = "operserv/reload"; permission = "operserv/reload"; } + +/* + * os_session + * + * Provides the commands operserv/exception and operserv/session. + * + * Used to manage the session limit exception list, and view currently active sessions. + */ +module { name = "os_session" } +command { service = "OperServ"; name = "EXCEPTION"; command = "operserv/exception"; permission = "operserv/exception"; } +command { service = "OperServ"; name = "SESSION"; command = "operserv/session"; permission = "operserv/session"; } + +/* + * os_set + * + * Provides the command operserv/set. + * + * Used to set various settinsg such as superadmin, debug mode, etc. + */ +module { name = "os_set" } +command { service = "OperServ"; name = "SET"; command = "operserv/set"; permission = "operserv/set"; } + +/* + * os_shutdown + * + * Provides the commands operserv/quit, operserv/restart, and operserv/shutdown. + * + * Used to quit, restart, or shutdown services. + */ +module { name = "os_shutdown" } +command { service = "OperServ"; name = "QUIT"; command = "operserv/quit"; permission = "operserv/quit"; } +command { service = "OperServ"; name = "RESTART"; command = "operserv/restart"; permission = "operserv/restart"; } +command { service = "OperServ"; name = "SHUTDOWN"; command = "operserv/shutdown"; permission = "operserv/shutdown"; } + +/* + * os_stats + * + * Provides the operserv/stats command. + * + * Used to show statistics about services. + */ +module { name = "os_stats" } +command { service = "OperServ"; name = "STATS"; command = "operserv/stats"; permission = "operserv/stats"; } + +/* + * os_svsnick + * + * Provides the operserv/svsnick command. + * + * Used to force change user's nicks. + */ +module { name = "os_svsnick" } +command { service = "OperServ"; name = "SVSNICK"; command = "operserv/svsnick"; permission = "operserv/svsnick"; } + +/* + * os_sxline + * + * Provides the operserv/snline, operserv/sqline, and operserv/szline commands. + * + * Used to ban different things such as realnames, nicknames, and IPs. + */ +module { name = "os_sxline" } +command { service = "OperServ"; name = "SNLINE"; command = "operserv/snline"; permission = "operserv/snline"; } +command { service = "OperServ"; name = "SQLINE"; command = "operserv/sqline"; permission = "operserv/sqline"; } +command { service = "OperServ"; name = "SZLINE"; command = "operserv/szline"; permission = "operserv/szline"; } + +/* + * os_update + * + * Provides the opersev/update command. + * + * Use to immediately update the databases. + */ +module { name = "os_update" } +command { service = "OperServ"; name = "UPDATE"; command = "operserv/update"; permission = "operserv/update"; } + |
