2019-02-17 15:58:31 +01:00
#-#-#-#-#-#-#-#-#-#-#-#-# CLASS CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#
2008-10-07 18:34:27 +00:00
# #
# Classes are a group of commands which are grouped together and #
# given a unique name. They're used to define which commands #
# are available to certain types of Operators. #
# #
# #
# Note: It is possible to make a class which covers all available #
# commands. To do this, specify commands="*". This is not really #
# recommended, as it negates the whole purpose of the class system, #
2014-03-19 15:52:07 +01:00
# however it is provided for fast configuration (e.g. in test nets). #
2008-10-07 18:34:27 +00:00
# #
<class
2009-10-23 19:07:40 +00:00
name="Shutdown"
2008-10-07 18:34:27 +00:00
2014-03-19 15:52:07 +01:00
# commands: Oper-only commands that opers of this class can run.
2014-11-08 18:45:55 -05:00
commands="DIE RESTART REHASH LOADMODULE UNLOADMODULE RELOADMODULE GLOADMODULE GUNLOADMODULE GRELOADMODULE"
2008-10-07 18:34:27 +00:00
2014-03-19 15:52:07 +01:00
# privs: Special privileges that users with this class may utilise.
2008-10-18 16:52:55 +00:00
# VIEWING:
2019-02-17 15:58:31 +01:00
# - channels/auspex: allows opers with this priv to see more details about channels than normal users.
2014-03-19 15:52:07 +01:00
# - users/auspex: allows opers with this priv to view more details about users than normal users, e.g. real host and IP.
2018-03-25 09:02:00 -07:00
# - users/channel-spy: allows opers with this priv to view the private/secret channels that a user is on.
2019-02-17 15:58:31 +01:00
# - servers/auspex: allows opers with this priv to see more details about server information than normal users.
2019-04-02 05:11:26 +02:00
# ACTIONS:
2019-02-17 15:58:31 +01:00
# - users/mass-message: allows opers with this priv to PRIVMSG and NOTICE to a server mask (e.g. NOTICE $*).
# - users/samode-usermodes: allows opers with this priv to change the user modes of any other user using /SAMODE.
2019-04-02 05:11:26 +02:00
# PERMISSIONS:
2022-03-28 17:22:51 +01:00
# - channels/ignore-chanfilter: allows opers with this priv to be immune to channel filters.
2022-02-13 15:54:47 +01:00
# - channels/ignore-delaymsg: allows opers with this priv to be immune to delaymsg restriction on a +d channel.
2019-03-13 03:04:13 -06:00
# - channels/ignore-noctcp: allows opers with this priv to send a CTCP to a +C channel.
2019-02-17 15:58:31 +01:00
# - channels/ignore-nonicks: allows opers with this priv to change their nick when on a +N channel.
2021-06-17 00:16:34 +01:00
# - channels/ignore-opmoderated: allows opers with this priv to ignore +U.
2021-09-20 18:10:36 -05:00
# - channels/ignore-repeat: allows opers with this priv to be immune to repeat punishment on a +E channel.
2019-02-17 15:58:31 +01:00
# - channels/restricted-create: allows opers with this priv to create channels if the restrictchans module is loaded.
2019-04-04 15:09:23 +01:00
# - users/flood/increased-buffers: allows opers with this priv to send and receive data without worrying about being disconnected for exceeding limits (*NOTE).
2019-02-17 15:58:31 +01:00
# - users/flood/no-fakelag: prevents opers from being penalized with fake lag for flooding (*NOTE).
# - users/flood/no-throttle: allows opers with this priv to send commands without being throttled (*NOTE).
2019-04-04 15:09:23 +01:00
# - users/ignore-callerid: allows opers with this priv to message people using callerid without being on their callerid list.
2019-04-02 05:11:26 +02:00
# - users/ignore-commonchans: allows opers with this priv to send a message to a +c user without sharing common channels.
2019-03-13 03:04:13 -06:00
# - users/ignore-noctcp: allows opers with this priv to send a CTCP to a +T user.
2019-04-04 15:09:23 +01:00
# - users/ignore-privdeaf: allows opers with this priv to message users with +D set.
2019-02-17 15:58:31 +01:00
# - users/sajoin-others: allows opers with this priv to /SAJOIN users other than themselves.
2022-07-21 18:27:53 +01:00
# - users/secret-whois: allows opers with this priv to /WHOIS +W users without them being notified.
2022-12-19 09:25:18 +00:00
# servers/ignore-blockamsg: allows opers with this priv to use /AMSG and /AME.
2020-03-29 12:06:06 +01:00
# - servers/ignore-shun: allows opers with this priv to ignore shuns.
2021-04-01 13:01:46 +01:00
# - servers/ignore-securelist: allows opers with this priv to ignore securelist.
2019-02-17 15:58:31 +01:00
# - servers/use-disabled-commands: allows opers with this priv to use disabled commands.
# - servers/use-disabled-modes: allows opers with this priv to use disabled modes.
2008-12-01 18:10:24 +00:00
#
2013-08-27 18:30:59 +02:00
# *NOTE: These privs are potentially dangerous, as they grant users with them the ability to hammer your server's CPU/RAM as much as they want, essentially.
2014-03-19 20:52:56 +00:00
privs="users/auspex channels/auspex servers/auspex users/mass-message users/flood/no-throttle users/flood/increased-buffers"
2008-10-18 16:52:48 +00:00
2019-04-28 10:14:21 +02:00
# usermodes: Oper-only user modes that opers with this class can use.
2009-10-23 19:07:40 +00:00
usermodes="*"
2008-10-07 18:34:27 +00:00
# chanmodes: Oper-only channel modes that opers with this class can use.
2020-04-11 15:09:34 +01:00
chanmodes="*"
# snomasks: The snomasks that opers with this class can use.
snomasks="*">
2008-10-07 18:34:27 +00:00
2014-11-08 18:45:55 -05:00
<class name="SACommands" commands="SAJOIN SAPART SANICK SAQUIT SATOPIC SAKICK SAMODE OJOIN">
2021-06-01 02:55:29 +01:00
<class name="ServerLink" commands="CONNECT SQUIT RCONNECT RSQUIT MKPASSWD ALLTIME SWHOIS" usermodes="*" chanmodes="*" privs="servers/auspex" snomasks="Cc">
2021-06-01 02:53:40 +01:00
<class name="BanControl" commands="KILL GLINE KLINE ZLINE QLINE ELINE TLINE RLINE CHECK NICKLOCK NICKUNLOCK SHUN CBAN" usermodes="*" chanmodes="*" snomasks="Xx">
2020-04-11 15:09:34 +01:00
<class name="OperChat" commands="WALLOPS GLOBOPS" usermodes="*" chanmodes="*" privs="users/mass-message" snomasks="Gg">
2014-11-08 18:45:55 -05:00
<class name="HostCloak" commands="SETHOST SETIDENT SETIDLE CHGNAME CHGHOST CHGIDENT" usermodes="*" chanmodes="*" privs="users/auspex">
2008-10-07 18:34:27 +00:00
#-#-#-#-#-#-#-#-#-#-#-#- OPERATOR COMPOSITION -#-#-#-#-#-#-#-#-#-#-#
# #
# This is where you specify which types of operators you have on #
# your server, as well as the commands they are allowed to use. #
# This works alongside with the classes specified above. #
# #
<type
2019-02-17 15:58:31 +01:00
# name: Name of the type. Used in actual server operator accounts below.
2008-10-07 18:34:27 +00:00
name="NetAdmin"
2014-03-19 15:52:07 +01:00
# classes: Classes (blocks above) that this type belongs to.
classes="SACommands OperChat BanControl HostCloak Shutdown ServerLink"
2008-10-07 18:34:27 +00:00
2019-02-17 15:58:31 +01:00
# vhost: Host that opers of this type get when they log in (oper up). This is optional.
2014-03-19 15:52:07 +01:00
vhost="netadmin.omega.example.org"
2008-10-07 18:34:27 +00:00
2014-03-19 20:52:56 +00:00
# maxchans: Maximum number of channels opers of this type can be in at once.
maxchans="60"
2022-12-09 16:09:38 +00:00
# motd: The server operator MOTD that this should be shown to this
# operator type. This can be viewed with /OPERMOTD or automatically
# on login if automotd (see below) is enabled.
# Requires the opermotd module to be loaded.
2024-08-30 15:31:47 +01:00
motd="&dir.example;/opermotd.example.txt"
2022-12-09 16:09:38 +00:00
# automotd: Whether to send the server operator MOTD (see above)
# to operators of this type when they log in.
# Requires the opermotd module to be loaded.
automotd="yes"
2014-03-19 15:52:07 +01:00
# modes: User modes besides +o that are set on an oper of this type
2008-10-07 18:34:27 +00:00
# when they oper up. Used for snomasks and other things.
2019-02-17 15:58:31 +01:00
# Requires the opermodes module to be loaded.
2008-10-12 17:33:29 +00:00
modes="+s +cCqQ">
2008-10-07 18:34:27 +00:00
2019-04-28 10:14:21 +02:00
<type name="GlobalOp" classes="SACommands OperChat BanControl HostCloak ServerLink" vhost="serverop.omega.example.org">
2014-03-19 15:52:07 +01:00
<type name="Helper" classes="HostCloak" vhost="helper.omega.example.org">
2008-10-07 18:34:27 +00:00
#-#-#-#-#-#-#-#-#-#-#- OPERATOR CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
# #
# Opers are defined here. This is a very important section. #
2014-03-19 15:52:07 +01:00
# Remember to only make operators out of trustworthy people. #
2008-10-07 18:34:27 +00:00
# #
2019-02-17 15:58:31 +01:00
# Operator account with a plaintext password.
2009-10-23 19:07:40 +00:00
<oper
2019-02-17 15:58:31 +01:00
# name: Oper login that is used to oper up (/OPER <username> <password>).
2014-03-19 15:52:07 +01:00
# Remember: This is case sensitive.
name="Attila"
2008-10-07 18:34:27 +00:00
2014-03-19 15:52:07 +01:00
# password: Case-sensitive, unhashed (plaintext).
2008-10-07 18:34:27 +00:00
password="s3cret"
2024-05-16 12:29:32 +01:00
# nopassword: Whether to allow logging into an account without a password.
#
# IMPORTANT: As this option overrides the password field it should **NOT** be used
# unless you are certain that nobody other than the intended user will match the
# restrictions of this <oper> block. Failure to do this may result in your server
# being compromised.
#nopassword="no"
2014-03-19 15:52:07 +01:00
# host: What hostnames and IPs are allowed to use this operator account.
# Multiple options can be separated by spaces and CIDRs are allowed.
# You can use just * or *@* for this section, but it is not recommended
2010-02-04 14:36:16 +00:00
# for security reasons.
2014-03-19 15:52:07 +01:00
host="attila@inspircd.org *@2001:db8::/32"
2008-10-07 18:34:27 +00:00
2022-12-10 14:14:37 +00:00
# account: A space delimited list of account names or account ids that are allowed
# to log into this account.
# Requires the account module.
account="Attila 1234567890"
2020-04-14 04:51:05 -06:00
# fingerprint: When using the sslinfo module, you may specify a space separated
2021-04-08 11:29:16 +01:00
# list of TLS client certificate fingerprints here. These can be obtained by using
2020-04-14 04:51:05 -06:00
# the /SSLINFO command while the module is loaded, and is also noticed on connect.
2010-02-04 14:36:16 +00:00
# This enhances security by verifying that the person opering up has
2021-04-08 11:29:16 +01:00
# a matching TLS client certificate, which is very difficult to
2010-02-04 14:36:16 +00:00
# forge (impossible unless preimage attacks on the hash exist).
2015-05-20 15:20:00 +02:00
# If the sslinfo module isn't loaded, this option will be ignored.
2010-02-04 14:36:16 +00:00
#fingerprint="67cb9dc013248a829bb2171ed11becd4"
2008-10-07 18:34:27 +00:00
2022-12-11 09:58:27 +00:00
# autologin: Whether to automatically log this server operator in on connect if all
# of their details match the ones in this <oper> block. Can be set to "strict" to
# automatically log in if the user's nickname matches the oper account name and the
# account/host/sslonly/etc fields match, "relaxed" to automatically log in if the
# account/host/sslonly/etc fields match, and "never" to not allow automatically
# logging in to this oper account. Defaults to "never".
#
# IMPORTANT: As this option overrides the password field it should **NOT** be used
# unless you are certain that nobody other than the intended user will match the
# restrictions of this <oper> block. Failure to do this may result in your server
# being compromised.
#autologin="strict"
2010-02-16 16:22:53 +00:00
2021-04-08 11:29:16 +01:00
# sslonly: If enabled, this oper can only oper up if they're using a TLS connection.
2010-02-04 14:36:16 +00:00
# Setting this option adds a decent bit of security. Highly recommended
# if the oper is on wifi, or specifically, unsecured wifi. Note that it
# is redundant to specify this option if you specify a fingerprint.
2015-05-20 15:20:00 +02:00
# This setting only takes effect if the sslinfo module is loaded.
2009-07-02 19:58:43 +00:00
#sslonly="yes"
2014-03-19 15:52:07 +01:00
# vhost: Overrides the vhost in the type block. Class and modes may also
# be overridden.
vhost="attila.example.org"
2009-10-23 19:07:40 +00:00
2014-03-19 15:52:07 +01:00
# type: Which type of operator this person is; see the block
# above for the list of types. NOTE: This is case-sensitive as well.
2008-10-07 18:34:27 +00:00
type="NetAdmin">
2014-03-19 15:52:07 +01:00
# Operator with a plaintext password and no comments, for easy copy & paste.
2008-10-16 19:50:48 +00:00
<oper
name="Brain"
2014-11-08 19:40:08 -05:00
password="youshouldhashthis"
host="brain@dialup15.isp.test.com *@localhost *@example.com *@2001:db8::/32"
2010-02-04 14:36:16 +00:00
#fingerprint="67cb9dc013248a829bb2171ed11becd4"
2008-10-16 19:50:48 +00:00
type="NetAdmin">
2014-03-19 15:52:07 +01:00
# Operator with a hashed password. It is highly recommended to use hashed passwords.
2009-10-23 19:07:40 +00:00
<oper
2019-02-17 15:58:31 +01:00
# name: Oper login that is used to oper up (/OPER <username> <password>).
2014-03-19 15:52:07 +01:00
# Remember: This is case sensitive.
name="Adam"
2008-10-07 18:34:27 +00:00
2019-02-17 15:58:31 +01:00
# hash: The hash function this password is hashed with. Requires the
2018-09-06 11:29:45 +01:00
# module for the selected function (bcrypt, md5, sha1, or sha256) and
# the password hashing module (password_hash) to be loaded.
#
2016-09-09 10:20:16 +01:00
# You may also use any of the above other than bcrypt prefixed with
# either "hmac-" or "pbkdf2-hmac-" (requires the pbkdf2 module).
2019-02-17 15:58:31 +01:00
# Create hashed passwords with: /MKPASSWD <hashtype> <plaintext>.
2016-09-09 10:20:16 +01:00
hash="bcrypt"
2008-10-07 18:34:27 +00:00
2014-03-19 15:52:07 +01:00
# password: A hash of the password (see above option) hashed
2019-02-17 15:58:31 +01:00
# with /MKPASSWD <hashtype> <plaintext>. See the password_hash module
2015-05-20 15:20:00 +02:00
# in modules.conf for more information about password hashing.
2014-03-19 15:52:07 +01:00
password="qQmv3LcF$Qh63wzmtUqWp9OXnLwe7yv1GcBwHpq59k2a0UrY8xe0"
2008-10-07 18:34:27 +00:00
2014-03-19 15:52:07 +01:00
# host: What hostnames and IPs are allowed to use this operator account.
# Multiple options can be separated by spaces and CIDRs are allowed.
# You can use just * or *@* for this section, but it is not recommended
2010-02-04 14:36:16 +00:00
# for security reasons.
2014-03-19 15:52:07 +01:00
host="*@127.0.0.1 *@192.0.2.40 *@198.51.100.4"
2008-10-07 18:34:27 +00:00
2014-03-19 15:52:07 +01:00
# type: Which type of operator this person is; see the block
# above for the list of types. NOTE: This is case-sensitive as well.
type="Helper">
2018-10-27 14:18:52 +01:00
# Once you have edited this file you can remove this line. This is just to
# ensure that you don't hastily include the file without reading it.
2024-06-17 17:09:54 +01:00
<die reason="Using opers.example.conf without editing it is a security risk">