mirror of
https://github.com/anope/anope.git
synced 2026-06-27 08:26:38 +02:00
e66063e630
up into seperate files for each pseudo client. Also reorganized how the modules are stored, and made most of the old "extra" modules "core"
580 lines
18 KiB
Plaintext
580 lines
18 KiB
Plaintext
/*
|
|
* 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"; }
|
|
|