Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
2800 lines (2534 sloc) 96.5 KB
/* This is an example configuration for Services.
*
* All statements end in semi-colons (';').
* Shell style, C style, and C++ style comments may be used.
*
* Items marked with "(*)" are reconfigurable at runtime via REHASH.
*/
/******************************************************************************
* MODULES SECTION. *
******************************************************************************/
/*
* These are the modules included with the core distribution of Services.
*
* You may be interested in the atheme community modules distribution as
* well, which adds additional features that may or may not be compatible
* with the project paradigms intended for maintainance of the core of
* atheme-services.
*
* Visit the atheme-services website for more information and to download them.
*
* Modules marked [experimental] will taint your atheme-services instance. Do
* not file any bug reports with us about using Services with those modules;
* they will be ignored.
*/
/* Dynamic security modules.
*
* WARNING: If you select one of these modules, the default security policy included
* with Atheme may break. These modules are intended for people who know what they
* are doing and understand the implications of what they do. Security modules which
* are likely to break the default policy are prefixed with [!], if you are new to
* Atheme, you should avoid enabling them.
*
* If you find your security policy is broken, you may debug it while allowing normal
* operation of your IRC network by putting Atheme into "permissive mode". To do this,
* enable general::permissive_mode.
*
* [!] Infer "command:" namespace permissions modules/security/cmdperm
*/
#loadmodule "modules/security/cmdperm";
/* Protocol module.
*
* Please select a protocol module. Different servers use different protocols.
* Below is a listing of ircd's known to work with the various protocol modules
* available.
*
* Asuka 1.2.1 or later modules/protocol/asuka
* Bahamut 2.1.x modules/protocol/bahamut
* Charybdis IRCd modules/protocol/charybdis
* ChatIRCd modules/protocol/chatircd1.1
* DreamForge 4.6.7 or later modules/protocol/dreamforge
* InspIRCd 2.0 modules/protocol/inspircd
* ircd-ratbox 2.0 and later modules/protocol/ratbox
* IRCNet ircd (ircd 2.11) modules/protocol/ircnet
* ircd-seven modules/protocol/ircd-seven
* Nefarious IRCu 0.4.0 or later modules/protocol/nefarious
* ngIRCd 19 or later [experimental] modules/protocol/ngircd
* UnrealIRCd 3.2.* modules/protocol/unreal
* UnrealIRCd 4 or later modules/protocol/unreal4
*
* If your IRCd vendor has supplied a module file, build it and load it here
* instead of one above.
*/
#loadmodule "modules/protocol/charybdis";
/* Protocol mixins.
*
* These should be used if you do not have/want certain features on your
* network that your ircd normally has. If you do not know what this means,
* you do not need any of them.
*
* Disable halfops modules/protocol/mixin_nohalfops
* Disable holdnick (use enforcer clients) modules/protocol/mixin_noholdnick
* Disable "protect" mode on channels modules/protocol/mixin_noprotect
* Disable "owner" mode on channels modules/protocol/mixin_noowner
*/
#loadmodule "modules/protocol/mixin_nohalfops";
#loadmodule "modules/protocol/mixin_noholdnick";
#loadmodule "modules/protocol/mixin_noprotect";
#loadmodule "modules/protocol/mixin_noowner";
/* Database backend module.
*
* Please select a database backend module. Different backends allow for
* different ways in which the services data can be manipulated. YOU MAY
* ONLY HAVE ONE OF THESE BACKENDS LOADED.
*
* The following backends are available:
*
* Atheme 0.1 flatfile database format modules/backend/flatfile
* Open Services Exchange database format modules/backend/opensex
*
* Most networks will want opensex.
*/
loadmodule "modules/backend/opensex";
/* Password hashing modules.
*
* If you would like encryption for your services passwords, or to migrate
* from another IRC services package which used encryption for its passwords,
* please select a module here.
*
* The following encryption-capable crypto modules are available:
*
* Argon2 (Password Hashing Competition 2015) modules/crypto/argon2
* scrypt (Tarsnap Online Backup Service) modules/crypto/scrypt
* PBKDF2 (Including support for SASL SCRAM-SHA) modules/crypto/pbkdf2v2
* OpenBSD crypt_newhash(3) a la '$2b$...$...' modules/crypto/crypt3-openbsd
* SHA2-512 crypt(3) a la '$6$...' modules/crypto/crypt3-sha2-512
* SHA2-256 crypt(3) a la '$5$...' modules/crypto/crypt3-sha2-256
*
* If you do not load an encryption-capable crypto module, some features will
* not work correctly, and errors will be logged on e.g. user registration
* that it was not possible to encrypt their password. Support for running
* without an encryption-capable crypto module will be removed in a later
* version of this software; for now it is just *HIGHLY* discouraged.
*
* Note, that upon starting with an encryption-capable crypto module, YOUR
* UNENCRYPTED PASSWORDS ARE IMMEDIATELY AND *IRREVERSIBLY* CONVERTED. Make
* at least TWO backups of your database before experimenting with this. If
* you have several thousand accounts, this conversion may take a long time.
*
* The following modules can only be used to /verify/ existing encrypted
* passwords, for example when upgrading from an older version of this
* software, or migrating from something else:
*
* PBKDF2 (Atheme <= 7.2 compatibility) modules/crypto/pbkdf2
* RAW SHA2-512 modules/crypto/rawsha2-512
* RAW SHA2-256 modules/crypto/rawsha2-256
* Anope SHA2-256 (Anope 2.0 compatibility) modules/crypto/anope-enc-sha256
* Raw SHA1 (Anope ~1.8 compatibility) modules/crypto/rawsha1
* Raw MD5 (Anope ~1.8 compatibility) modules/crypto/rawmd5
* IRCServices (+ Anope) compatibility modules/crypto/ircservices
* MD5 crypt(3) (Atheme Linux compatibility) modules/crypto/crypt3-md5
* DES crypt(3) (Atheme OS X compatibility) modules/crypto/crypt3-des
* Base64 (Anope ~1.8 compatibility) modules/crypto/base64
*
* To transition between crypto schemes, load the preferred scheme first,
* and as users login or set new passwords, they will be migrated to the new
* preferred scheme. Like so:
*
* loadmodule "modules/crypto/argon2";
* loadmodule "modules/crypto/scrypt";
* loadmodule "modules/crypto/pbkdf2v2";
* loadmodule "modules/crypto/pbkdf2";
* loadmodule "modules/crypto/crypt3-md5";
*
* The crypt3-* modules depend on your platform crypt(3) supporting the
* respective algorithms. This is not guaranteed to be the case. If you used
* modules/crypto/posix on Linux, you need crypt3-md5. If you used
* modules/crypto/posix on OS X, you need crypt3-des. These modules issue
* informational messages when loaded to the effect that they might break in
* the future. They also run selftests on load to verify that they will work.
*
* The Argon2 module requires the argon2 reference library (./configure
* --with-libargon2) and is *NOT* available in Atheme v7.2 or earlier. If you
* wish to use this module while retaining the possibility to downgrade to
* v7.2, please see the crypto {} documentation below.
*
* The Scrypt module requires libsodium (./configure --with-libsodium) and is
* *NOT* available in Atheme v7.2 or earlier. This module may also require a
* 64-bit Operating System to function correctly.
*
* The PBKDF2v2 module has no dependencies and is recommended.
*
* All available modules are listed below, in the preferred load order. The
* modules that are commented out are not available by default (please see
* the v7.3 release notes in NEWS.md) or may require a third-party library to
* use. If you know that you do not need a specific module, it is better to
* not load it, so comment it out. Do not change the order of the modules
* below unless you need to migrate from one to the other (as described
* above); in particular, putting verify-only modules above encryption-
* capable modules would be a waste of CPU time every time password
* verification for a user whose password was not encrypted by them is
* attempted.
*/
#loadmodule "modules/crypto/argon2";
#loadmodule "modules/crypto/scrypt";
loadmodule "modules/crypto/pbkdf2v2";
#loadmodule "modules/crypto/crypt3-openbsd";
#loadmodule "modules/crypto/crypt3-sha2-512";
#loadmodule "modules/crypto/crypt3-sha2-256";
loadmodule "modules/crypto/pbkdf2";
#loadmodule "modules/crypto/crypt3-md5";
#loadmodule "modules/crypto/rawsha2-512";
#loadmodule "modules/crypto/rawsha2-256";
#loadmodule "modules/crypto/anope-enc-sha256";
#loadmodule "modules/crypto/rawsha1";
#loadmodule "modules/crypto/rawmd5";
#loadmodule "modules/crypto/ircservices";
#loadmodule "modules/crypto/crypt3-des";
#loadmodule "modules/crypto/base64";
/* Authentication module.
*
* These allow using passwords from an external system. The password given
* when registering a new account is also checked against the external
* system.
*
* The following authentication modules are available:
*
* LDAP modules/auth/ldap
*
* The LDAP module requires OpenLDAP client libraries. It uses them in a
* synchronous manner, which means that an unresponsive LDAP server can
* freeze services.
*/
#loadmodule "modules/auth/ldap";
/* NickServ modules.
*
* Here you can disable or enable certain features of NickServ, by
* defining which modules are loaded. You can even disable NickServ
* entirely. Please note however, that an authentication service
* (either NickServ, or UserServ) is required for proper functionality.
*
* Core components modules/nickserv/main
* Nickname access lists modules/nickserv/access
* Bad email address blocking modules/nickserv/badmail
* CertFP fingerprint managment modules/nickserv/cert
* DROP command modules/nickserv/drop
* Nickname enforcement modules/nickserv/enforce
* GHOST command modules/nickserv/ghost
* GROUP and UNGROUP commands modules/nickserv/group
* HELP command modules/nickserv/help
* Nickname expiry override (HOLD command) modules/nickserv/hold
* IDENTIFY command modules/nickserv/identify
* INFO command modules/nickserv/info
* Last quit message in INFO modules/nickserv/info_lastquit
* LIST command modules/nickserv/list
* LISTLOGINS command modules/nickserv/listlogins
* LISTMAIL command modules/nickserv/listmail
* LISTOWNMAIL command modules/nickserv/listownmail
* LOGIN command (for no_nick_ownership) modules/nickserv/login
* LOGOUT command modules/nickserv/logout
* MARK command modules/nickserv/mark
* Password quality validation modules/nickserv/pwquality
* FREEZE command modules/nickserv/freeze
* LISTCHANS command modules/nickserv/listchans
* LISTGROUPS command modules/nickserv/listgroups
* REGISTER command modules/nickserv/register
* Bypass registration limits (REGNOLIMIT) modules/nickserv/regnolimit
* Password reset (RESETPASS command) modules/nickserv/resetpass
* RESTRICT command modules/nickserv/restrict
* Password return (RETURN command) modules/nickserv/return
* Password retrieval (SENDPASS command) modules/nickserv/sendpass
* Password retrieval allowed to normal users modules/nickserv/sendpass_user
* Change primary nickname (SET ACCOUNTNAME) modules/nickserv/set_accountname
* SET EMAIL command modules/nickserv/set_email
* SET EMAILMEMOS command modules/nickserv/set_emailmemos
* SET ENFORCETIME command modules/nickserv/set_enforcetime
* SET HIDEMAIL command modules/nickserv/set_hidemail
* SET LANGUAGE command modules/nickserv/set_language
* SET NEVERGROUP command modules/nickserv/set_nevergroup
* SET NEVEROP command modules/nickserv/set_neverop
* SET NOGREET command modules/nickserv/set_nogreet
* SET NOMEMO command modules/nickserv/set_nomemo
* SET NOOP command modules/nickserv/set_noop
* SET NOPASSWORD command modules/nickserv/set_nopassword
* SET PASSWORD command modules/nickserv/set_password
* PRIVMSG instead of NOTICE (SET PRIVMSG cmd) modules/nickserv/set_privmsg
* Account info hiding (SET PRIVATE command) modules/nickserv/set_private
* SET PROPERTY command modules/nickserv/set_property
* SET PUBKEY command modules/nickserv/set_pubkey
* SET QUIETCHG command modules/nickserv/set_quietchg
* Password retrieval uses code (SETPASS cmd) modules/nickserv/setpass
* STATUS command modules/nickserv/status
* Nickname metadata viewer (TAXONOMY command) modules/nickserv/taxonomy
* VACATION command modules/nickserv/vacation
* VERIFY command modules/nickserv/verify
* VHOST command modules/nickserv/vhost
* Delay services account registrations modules/nickserv/waitreg
*/
loadmodule "modules/nickserv/main";
#loadmodule "modules/nickserv/access";
loadmodule "modules/nickserv/badmail";
#loadmodule "modules/nickserv/cert";
loadmodule "modules/nickserv/drop";
#loadmodule "modules/nickserv/enforce";
loadmodule "modules/nickserv/ghost";
loadmodule "modules/nickserv/group";
loadmodule "modules/nickserv/help";
loadmodule "modules/nickserv/hold";
loadmodule "modules/nickserv/identify";
loadmodule "modules/nickserv/info";
#loadmodule "modules/nickserv/info_lastquit";
loadmodule "modules/nickserv/list";
#loadmodule "modules/nickserv/listlogins";
loadmodule "modules/nickserv/listmail";
#loadmodule "modules/nickserv/listownmail";
#loadmodule "modules/nickserv/login";
loadmodule "modules/nickserv/logout";
loadmodule "modules/nickserv/mark";
#loadmodule "modules/nickserv/pwquality";
loadmodule "modules/nickserv/freeze";
loadmodule "modules/nickserv/listchans";
loadmodule "modules/nickserv/listgroups";
loadmodule "modules/nickserv/register";
loadmodule "modules/nickserv/regnolimit";
loadmodule "modules/nickserv/resetpass";
loadmodule "modules/nickserv/restrict";
loadmodule "modules/nickserv/return";
loadmodule "modules/nickserv/setpass";
#loadmodule "modules/nickserv/sendpass";
loadmodule "modules/nickserv/sendpass_user";
loadmodule "modules/nickserv/set_accountname";
loadmodule "modules/nickserv/set_email";
loadmodule "modules/nickserv/set_emailmemos";
#loadmodule "modules/nickserv/set_enforcetime";
loadmodule "modules/nickserv/set_hidemail";
loadmodule "modules/nickserv/set_language";
loadmodule "modules/nickserv/set_nevergroup";
loadmodule "modules/nickserv/set_neverop";
loadmodule "modules/nickserv/set_nogreet";
loadmodule "modules/nickserv/set_nomemo";
loadmodule "modules/nickserv/set_noop";
#loadmodule "modules/nickserv/set_nopassword";
loadmodule "modules/nickserv/set_password";
#loadmodule "modules/nickserv/set_privmsg";
#loadmodule "modules/nickserv/set_private";
loadmodule "modules/nickserv/set_property";
loadmodule "modules/nickserv/set_pubkey";
loadmodule "modules/nickserv/set_quietchg";
loadmodule "modules/nickserv/status";
loadmodule "modules/nickserv/taxonomy";
loadmodule "modules/nickserv/vacation";
loadmodule "modules/nickserv/verify";
loadmodule "modules/nickserv/vhost";
#loadmodule "modules/nickserv/waitreg";
/* ChanServ modules.
*
* Here you can disable or enable certain features of ChanServ, by
* defining which modules are loaded. You can even disable ChanServ
* entirely. Please note that ChanServ requires an authentication
* service, either NickServ or UserServ will do.
*
* Core components modules/chanserv/main
* ACCESS command (simplified ACL editing) modules/chanserv/access
* AKICK command modules/chanserv/akick
* BAN/UNBAN commands modules/chanserv/ban
* UNBAN self only (load ban or this not both) modules/chanserv/unban_self
* BANSEARCH command modules/chanserv/bansearch
* CLOSE command modules/chanserv/close
* CLONE command modules/chanserv/clone
* CLEAR command modules/chanserv/clear
* CLEAR AKICKS command modules/chanserv/clear_akicks
* CLEAR BANS command modules/chanserv/clear_bans
* CLEAR FLAGS command modules/chanserv/clear_flags
* CLEAR USERS command modules/chanserv/clear_users
* COUNT command modules/chanserv/count
* DROP command modules/chanserv/drop
* Forced flags changes modules/chanserv/fflags
* FLAGS command modules/chanserv/flags
* Forced foundership transfers modules/chanserv/ftransfer
* GETKEY command modules/chanserv/getkey
* HALFOP/DEHALFOP commands modules/chanserv/halfop
* HELP command modules/chanserv/help
* Channel expiry override (HOLD command) modules/chanserv/hold
* INFO command modules/chanserv/info
* INVITE command modules/chanserv/invite
* KICK/KICKBAN commands modules/chanserv/kick
* LIST command modules/chanserv/list
* MARK command modules/chanserv/mark
* Moderated channel registrations modules/chanserv/moderate
* OP/DEOP commands modules/chanserv/op
* OWNER/DEOWNER commands modules/chanserv/owner
* PROTECT/DEPROTECT commands modules/chanserv/protect
* QUIET command (+q support) modules/chanserv/quiet
* Channel takeover recovery (RECOVER command) modules/chanserv/recover
* REGISTER command modules/chanserv/register
* SET EMAIL command modules/chanserv/set_email
* SET ENTRYMSG command modules/chanserv/set_entrymsg
* SET FANTASY command modules/chanserv/set_fantasy
* SET GAMESERV command modules/chanserv/set_gameserv
* SET GUARD command modules/chanserv/set_guard
* SET KEEPTOPIC command modules/chanserv/set_keeptopic
* SET LIMITFLAGS command modules/chanserv/set_limitflags
* SET MLOCK command modules/chanserv/set_mlock
* SET PREFIX command modules/chanserv/set_prefix
* Channel info hiding (SET PRIVATE command) modules/chanserv/set_private
* SET PROPERTY command modules/chanserv/set_property
* SET PUBACL command modules/chanserv/set_pubacl
* SET RESTRICTED command modules/chanserv/set_restricted
* SET SECURE command modules/chanserv/set_secure
* SET TOPICLOCK command modules/chanserv/set_topiclock
* SET URL command modules/chanserv/set_url
* SET VERBOSE command modules/chanserv/set_verbose
* STATUS command modules/chanserv/status
* SYNC command (and automatic ACL syncing) modules/chanserv/sync
* Named Successor ACL flag modules/chanserv/successor_acl
* Channel metadata viewer (TAXONOMY command) modules/chanserv/taxonomy
* TEMPLATE command modules/chanserv/template
* TOPIC/TOPICAPPEND commands modules/chanserv/topic
* VOICE/DEVOICE commands modules/chanserv/voice
* WHY command modules/chanserv/why
* VOP/HOP/AOP/SOP commands modules/chanserv/xop
* This module provides emulation of the ircservices XOP scheme ONLY.
* Do not report discrepencies when using native commands to edit channel
* ACLs. This is intentional.
* Flood protection modules/chanserv/antiflood
* This module should be loaded after at least chanserv/quiet if you want
* the autoquiet feature to work.
*/
loadmodule "modules/chanserv/main";
loadmodule "modules/chanserv/access";
loadmodule "modules/chanserv/akick";
loadmodule "modules/chanserv/ban";
#loadmodule "modules/chanserv/unban_self";
loadmodule "modules/chanserv/bansearch";
loadmodule "modules/chanserv/clone";
loadmodule "modules/chanserv/close";
loadmodule "modules/chanserv/clear";
loadmodule "modules/chanserv/clear_akicks";
loadmodule "modules/chanserv/clear_bans";
loadmodule "modules/chanserv/clear_flags";
loadmodule "modules/chanserv/clear_users";
loadmodule "modules/chanserv/count";
loadmodule "modules/chanserv/drop";
#loadmodule "modules/chanserv/fflags";
loadmodule "modules/chanserv/flags";
loadmodule "modules/chanserv/ftransfer";
loadmodule "modules/chanserv/getkey";
#loadmodule "modules/chanserv/halfop";
loadmodule "modules/chanserv/help";
loadmodule "modules/chanserv/hold";
loadmodule "modules/chanserv/info";
loadmodule "modules/chanserv/invite";
loadmodule "modules/chanserv/kick";
loadmodule "modules/chanserv/list";
loadmodule "modules/chanserv/mark";
#loadmodule "modules/chanserv/moderate";
loadmodule "modules/chanserv/op";
#loadmodule "modules/chanserv/owner";
#loadmodule "modules/chanserv/protect";
#loadmodule "modules/chanserv/quiet";
loadmodule "modules/chanserv/recover";
loadmodule "modules/chanserv/register";
loadmodule "modules/chanserv/set_email";
loadmodule "modules/chanserv/set_entrymsg";
loadmodule "modules/chanserv/set_fantasy";
#loadmodule "modules/chanserv/set_gameserv";
loadmodule "modules/chanserv/set_guard";
loadmodule "modules/chanserv/set_keeptopic";
#loadmodule "modules/chanserv/set_limitflags";
loadmodule "modules/chanserv/set_mlock";
loadmodule "modules/chanserv/set_prefix";
#loadmodule "modules/chanserv/set_private";
loadmodule "modules/chanserv/set_property";
#loadmodule "modules/chanserv/set_pubacl";
loadmodule "modules/chanserv/set_restricted";
loadmodule "modules/chanserv/set_secure";
loadmodule "modules/chanserv/set_topiclock";
loadmodule "modules/chanserv/set_url";
loadmodule "modules/chanserv/set_verbose";
loadmodule "modules/chanserv/status";
loadmodule "modules/chanserv/sync";
#loadmodule "modules/chanserv/successor_acl";
loadmodule "modules/chanserv/taxonomy";
loadmodule "modules/chanserv/template";
loadmodule "modules/chanserv/topic";
loadmodule "modules/chanserv/voice";
loadmodule "modules/chanserv/why";
#loadmodule "modules/chanserv/xop";
loadmodule "modules/chanserv/antiflood";
/* CHANFIX module.
*
* Here you can disable or enable certain features of CHANFIX, by
* defining which modules are loaded.
*
* Core components modules/chanfix/main
*/
#loadmodule "modules/chanfix/main";
/* OperServ modules.
*
* Here you can disable or enable certain features of OperServ, by
* defining which modules are loaded.
*
* Core components modules/operserv/main
* AKILL system modules/operserv/akill
* CLEARCHAN command modules/operserv/clearchan
* CLONES system modules/operserv/clones
* COMPARE command modules/operserv/compare
* GENHASH command modules/operserv/genhash
* GREPLOG command modules/operserv/greplog
* HELP command modules/operserv/help
* IGNORE system modules/operserv/ignore
* IDENTIFY command modules/operserv/identify
* INFO command modules/operserv/info
* INJECT command modules/operserv/inject
* JUPE command modules/operserv/jupe
* MODE command modules/operserv/mode
* MODINSPECT command modules/operserv/modinspect
* MODLIST command modules/operserv/modlist
* MODLOAD command modules/operserv/modload
* MODRELOAD command modules/operserv/modreload
* MODUNLOAD command modules/operserv/modunload
* NOOP system modules/operserv/noop
* Regex mass akill (RAKILL command) modules/operserv/rakill
* RAW command modules/operserv/raw
* READONLY command modules/operserv/readonly
* REHASH command modules/operserv/rehash
* RESTART command modules/operserv/restart
* Display regex matching (RMATCH command) modules/operserv/rmatch
* Most common realnames (RNC command) modules/operserv/rnc
* RWATCH system modules/operserv/rwatch
*
* Note that ALL of these SET commands only apply until the next rehash!
*
* ALL of the below SET commands (deprecated) modules/operserv/set
* SET AKICKTIME subcommand (temporarily) modules/operserv/set_akicktime
* SET CHANEXPIRE subcommand (temporarily) modules/operserv/set_chanexpire
* SET COMMITINTERVAL subcommand (temporarily) modules/operserv/set_commitinterval
* SET ENFORCEPREFIX subcommand (temporarily) modules/operserv/set_enforceprefix
* SET KLINETIME subcommand (temporarily) modules/operserv/set_klinetime
* SET MAXCHANACS subcommand (temporarily) modules/operserv/set_maxchanacs
* SET MAXCHANS subcommand (temporarily) modules/operserv/set_maxchans
* SET MAXFOUNDERS subcommand (temporarily) modules/operserv/set_maxfounders
* SET MAXLOGINS subcommand (temporarily) modules/operserv/set_maxlogins
* SET MAXNICKS subcommand (temporarily) modules/operserv/set_maxnicks
* SET MAXUSERS subcommand (temporarily) modules/operserv/set_maxusers
* SET MDLIMIT subcommand (temporarily) modules/operserv/set_mdlimit
* SET NICKEXPIRE subcommand (temporarily) modules/operserv/set_nickexpire
* SET RECONTIME subcommand (temporarily) modules/operserv/set_recontime
* SET SPAM subcommand (temporarily) modules/operserv/set_spam
*
* SGLINE system modules/operserv/sgline
* SHUTDOWN command modules/operserv/shutdown
* Non-config oper privileges (SOPER command) modules/operserv/soper
* Oper privilege display (SPECS command) modules/operserv/specs
* SQLINE system modules/operserv/sqline
* UPDATE command modules/operserv/update
* UPTIME command modules/operserv/uptime
*/
loadmodule "modules/operserv/main";
loadmodule "modules/operserv/akill";
#loadmodule "modules/operserv/clearchan";
#loadmodule "modules/operserv/clones";
loadmodule "modules/operserv/compare";
#loadmodule "modules/operserv/genhash";
#loadmodule "modules/operserv/greplog";
loadmodule "modules/operserv/help";
loadmodule "modules/operserv/identify";
loadmodule "modules/operserv/ignore";
loadmodule "modules/operserv/info";
loadmodule "modules/operserv/jupe";
loadmodule "modules/operserv/mode";
loadmodule "modules/operserv/modinspect";
loadmodule "modules/operserv/modlist";
loadmodule "modules/operserv/modload";
loadmodule "modules/operserv/modunload";
loadmodule "modules/operserv/modreload";
loadmodule "modules/operserv/noop";
#loadmodule "modules/operserv/rakill";
loadmodule "modules/operserv/readonly";
loadmodule "modules/operserv/rehash";
loadmodule "modules/operserv/restart";
loadmodule "modules/operserv/rmatch";
loadmodule "modules/operserv/rnc";
loadmodule "modules/operserv/rwatch";
loadmodule "modules/operserv/set";
loadmodule "modules/operserv/sgline";
loadmodule "modules/operserv/shutdown";
#loadmodule "modules/operserv/soper";
loadmodule "modules/operserv/specs";
loadmodule "modules/operserv/sqline";
loadmodule "modules/operserv/update";
loadmodule "modules/operserv/uptime";
/* MemoServ modules.
*
* Here you can disable or enable certain features of MemoServ, by
* defining which modules are loaded. You can even disable MemoServ
* entirely.
*
* Core components modules/memoserv/main
* HELP command modules/memoserv/help
* SEND command modules/memoserv/send
* Channel memos (SENDOPS command) modules/memoserv/sendops
* Group memos (SENDGROUP command) modules/memoserv/sendgroup
* LIST command modules/memoserv/list
* READ command modules/memoserv/read
* FORWARD command modules/memoserv/forward
* DELETE command modules/memoserv/delete
* IGNORE command modules/memoserv/ignore
*/
loadmodule "modules/memoserv/main";
loadmodule "modules/memoserv/help";
loadmodule "modules/memoserv/send";
loadmodule "modules/memoserv/sendops";
loadmodule "modules/memoserv/sendgroup";
loadmodule "modules/memoserv/list";
loadmodule "modules/memoserv/read";
loadmodule "modules/memoserv/forward";
loadmodule "modules/memoserv/delete";
loadmodule "modules/memoserv/ignore";
/* Global module.
*
* Like the other services, the Global noticer is a module. You can
* disable or enable it to your liking below. Please note that the
* Global noticer is dependent on OperServ for full functionality.
*/
loadmodule "modules/global/main";
/* InfoServ module.
*
* Like the other services, InfoServ is a module. You can disable or
* enable it to your liking below.
*/
loadmodule "modules/infoserv/main";
/* SASL agent module.
*
* Allows clients to authenticate to services via SASL with an appropriate
* ircd. You need the core components and at least one mechanism.
*
* Core components modules/saslserv/main
* AUTHCOOKIE mechanism (for IRIS) modules/saslserv/authcookie
* ECDH-X25519-CHALLENGE mechanism modules/saslserv/ecdh-x25519-challenge
* ECDSA-NIST256P-CHALLENGE mechanism modules/saslserv/ecdsa-nist256p-challenge
* EXTERNAL mechanism (IRCv3.1+) modules/saslserv/external
* PLAIN mechanism modules/saslserv/plain
* SCRAM-SHA-* mechanisms modules/saslserv/scram
*
* ECDH-X25519-CHALLENGE support requires that Atheme be compiled against a
* cryptographic library that provides X25519 ECDH support (BoringSSL,
* LibreSSL, ARM mbedTLS, Nettle, Sodium). This will be checked while running
* ./configure.
*
* ECDSA-NIST256P-CHALLENGE support requires that Atheme be compiled against
* an OpenSSL with ECDSA support (not RHEL etc. unless you compile your own).
* This will be checked while running ./configure.
*
* You MUST read doc/SASL-SCRAM before loading modules/saslserv/scram!
*/
loadmodule "modules/saslserv/main";
loadmodule "modules/saslserv/authcookie";
#loadmodule "modules/saslserv/ecdh-x25519-challenge";
#loadmodule "modules/saslserv/ecdsa-nist256p-challenge";
#loadmodule "modules/saslserv/external";
loadmodule "modules/saslserv/plain";
#loadmodule "modules/saslserv/scram";
/* GameServ modules.
*
* Here you can disable or enable certain features of GameServ, by
* defining which modules are loaded. You can even disable GameServ
* entirely.
*
* Core components modules/gameserv/main
* DICE/WOD commands modules/gameserv/dice
* EIGHTBALL command modules/gameserv/eightball
* Game-specific dice calculators modules/gameserv/gamecalc
* HELP commands modules/gameserv/help
* LOTTERY command modules/gameserv/lottery
* NAMEGEN command modules/gameserv/namegen
* RPS command modules/gameserv/rps
*/
#loadmodule "modules/gameserv/main";
#loadmodule "modules/gameserv/dice";
#loadmodule "modules/gameserv/eightball";
#loadmodule "modules/gameserv/gamecalc";
#loadmodule "modules/gameserv/help";
#loadmodule "modules/gameserv/lottery";
#loadmodule "modules/gameserv/namegen";
#loadmodule "modules/gameserv/rps";
/* RPGServ modules.
*
* Here you can disable or enable certain features of RPGServ, by
* defining which modules are loaded. You can even disable RPGServ
* entirely.
*
* Core components modules/rpgserv/main
* ENABLE/DISABLE commands modules/rpgserv/enable
* HELP command modules/rpgserv/help
* INFO command modules/rpgserv/info
* LIST command modules/rpgserv/list
* SEARCH command modules/rpgserv/search
* SET commands modules/rpgserv/set
*/
#loadmodule "modules/rpgserv/main";
#loadmodule "modules/rpgserv/enable";
#loadmodule "modules/rpgserv/help";
#loadmodule "modules/rpgserv/info";
#loadmodule "modules/rpgserv/list";
#loadmodule "modules/rpgserv/search";
#loadmodule "modules/rpgserv/set";
/* BotServ modules.
*
* Here you can disable or enable certain features of BotServ, by
* defining which modules are loaded. You can even disable BotServ
* entirely.
*
* Core components modules/botserv/main
* HELP command modules/botserv/help
* INFO command modules/botserv/info
* NPC commands (SAY, ACT) modules/botserv/bottalk
* SET FANTASY command modules/botserv/set_fantasy
* SET NOBOT command modules/botserv/set_nobot
* SET PRIVATE command modules/botserv/set_private
* SET SAYCALLER command modules/botserv/set_saycaller
*/
#loadmodule "modules/botserv/main";
#loadmodule "modules/botserv/help";
#loadmodule "modules/botserv/info";
#loadmodule "modules/botserv/bottalk";
#loadmodule "modules/botserv/set_fantasy";
#loadmodule "modules/botserv/set_nobot";
#loadmodule "modules/botserv/set_private";
#loadmodule "modules/botserv/set_saycaller";
/* HostServ modules.
*
* Here you can disable or enable certain features of HostServ, by
* defining which modules are loaded. You can even disable HostServ
* entirely.
*
* HostServ is a more complex, and optional virtual host management service.
* Users wishing only to set vhosts need not use it (they can use the builtin
* vhost management of NickServ instead).
*
* Core components modules/hostserv/main
* HELP command modules/hostserv/help
* OFFER system modules/hostserv/offer
* ON and OFF commands modules/hostserv/onoff
* REQUEST system modules/hostserv/request
* VHOST and LISTVHOST commands modules/hostserv/vhost
* VHOSTNICK command modules/hostserv/vhostnick
* GROUP command modules/hostserv/group
* DROP command modules/hostserv/drop
*/
#loadmodule "modules/hostserv/main";
#loadmodule "modules/hostserv/help";
#loadmodule "modules/hostserv/onoff";
#loadmodule "modules/hostserv/offer";
#loadmodule "modules/hostserv/request";
#loadmodule "modules/hostserv/vhost";
#loadmodule "modules/hostserv/vhostnick";
#loadmodule "modules/hostserv/group";
#loadmodule "modules/hostserv/drop";
/* HelpServ modules.
* HelpServ allows users to request help from network staff in a few different ways.
*
* Core components modules/helpserv/main
* HELPME command modules/helpserv/helpme
* Help Ticket system modules/helpserv/ticket
* Service List modules/helpserv/services
*
* The ticket system works like a bugtracker ot helpdesk ticket system, HELPME
* works like a one-time alert. You should probably only load one of the two systems.
*/
#loadmodule "modules/helpserv/main";
#loadmodule "modules/helpserv/helpme";
#loadmodule "modules/helpserv/ticket";
#loadmodule "modules/helpserv/services";
/* Channel listing service.
*
* Allows users to list channels with more flexibility than the /list
* command.
*
* Core components modules/alis/main
*/
#loadmodule "modules/alis/main";
/* StatServ module.
* StatServ provides basic statistics and split tracking.
*
* Core components modules/statserv/main
* CHANNEL command modules/statserv/channel
* NETSPLIT command modules/statserv/netsplit
* SERVER command modules/statserv/server
*/
loadmodule "modules/statserv/main";
#loadmodule "modules/statserv/channel";
loadmodule "modules/statserv/netsplit";
loadmodule "modules/statserv/server";
/* GroupServ module.
* GroupServ allows users to create groups to easily mass-manage channel
* access and more.
*
* Core components modules/groupserv/main
* ACSNOLIMIT command modules/groupserv/acsnolimit
* DROP command modules/groupserv/drop
* FFLAGS command modules/groupserv/fflags
* FLAGS command modules/groupserv/flags
* HELP command modules/groupserv/help
* INFO command modules/groupserv/info
* JOIN command modules/groupserv/join
* LIST command modules/groupserv/list
* LISTCHANS command modules/groupserv/listchans
* REGISTER command modules/groupserv/register
* REGNOLIMIT command modules/groupserv/regnolimit
* INVITE command modules/groupserv/invite
* SET command modules/groupserv/set
* SET CHANNEL command modules/groupserv/set_channel
* SET DESCRIPTION command modules/groupserv/set_description
* SET EMAIL command modules/groupserv/set_email
* SET GROUPNAME command modules/groupserv/set_groupname
* SET JOINFLAGS command modules/groupserv/set_joinflags
* SET OPEN command modules/groupserv/set_open
* SET PUBLIC command modules/groupserv/set_public
* SET URL command modules/groupserv/set_url
*
*/
loadmodule "modules/groupserv/main";
loadmodule "modules/groupserv/acsnolimit";
loadmodule "modules/groupserv/drop";
loadmodule "modules/groupserv/fflags";
loadmodule "modules/groupserv/flags";
loadmodule "modules/groupserv/help";
loadmodule "modules/groupserv/info";
loadmodule "modules/groupserv/join";
loadmodule "modules/groupserv/list";
loadmodule "modules/groupserv/listchans";
loadmodule "modules/groupserv/register";
loadmodule "modules/groupserv/regnolimit";
#loadmodule "modules/groupserv/invite";
loadmodule "modules/groupserv/set";
loadmodule "modules/groupserv/set_channel";
loadmodule "modules/groupserv/set_description";
loadmodule "modules/groupserv/set_email";
loadmodule "modules/groupserv/set_groupname";
loadmodule "modules/groupserv/set_joinflags";
loadmodule "modules/groupserv/set_open";
loadmodule "modules/groupserv/set_public";
loadmodule "modules/groupserv/set_url";
/*
* Various modules.
*
* Atheme includes an optional HTTP server that can be used for integration
* with portal software and other useful things. To enable it, load this
* module, and uncomment the httpd { } block towards the bottom of the config.
*
* HTTP Server modules/misc/httpd
*/
#loadmodule "modules/misc/httpd";
/* XMLRPC server module.
*
* The XML-RPC handler requires modules/misc/httpd to be loaded as it merely
* registers a path handler for XML-RPC. The path used for XML-RPC is /xmlrpc.
*
* XMLRPC handler for the httpd modules/transport/xmlrpc
*/
#loadmodule "modules/transport/xmlrpc";
/* Extended target entity types. [EXPERIMENTAL]
*
* Atheme can set up special target mapping entities which match multiple
* users in channel access entries. These target mapping entity types are
* defined through the 'exttarget' modules listed below.
*
* Exttarget handling core modules/exttarget/main
* $oper exttarget match type modules/exttarget/oper
* $registered exttarget match type modules/exttarget/registered
* $channel exttarget match type modules/exttarget/channel
* $chanacs exttarget match type modules/exttarget/chanacs
* $server exttarget match type modules/exttarget/server
*/
#loadmodule "modules/exttarget/main";
#loadmodule "modules/exttarget/oper";
#loadmodule "modules/exttarget/registered";
#loadmodule "modules/exttarget/channel";
#loadmodule "modules/exttarget/chanacs";
#loadmodule "modules/exttarget/server";
/* Proxyscan (DNSBL) modules.
*
* Atheme can also check set DNS Blacklists for matches and respond
* as set. Activate modules here and customize further down under Proxyscan
* section.
*/
#loadmodule "modules/proxyscan/main";
#loadmodule "modules/proxyscan/dnsbl";
/* Other modules.
*
* Put any other modules you want to load on startup here. The path
* is relative to PREFIX or PREFIX/lib/atheme, depending on how Atheme
* was compiled.
*/
#loadmodule "modules/contrib/backtrace";
/******************************************************************************
* SERVICES RUNTIME CONFIGURATION SECTION. *
******************************************************************************/
/*
* This block controls the configuration options for crypto modules.
*
* It is recommended to either leave the values at their defaults, or
* experiment with them so that it takes approximately 0.2-0.4 seconds
* for users to identify. Services blocks while the password is being
* encrypted or verified, so don't set these too large, or people can
* hang services by trying many password attempts at once.
*
* A benchmark program for the Argon2, scrypt & PBKDF2 crypto code is
* available to assist with tuning these parameters:
*
* - ./configure --prefix=foo ...
* - make
* - make install
* - ${foo}/bin/atheme-crypto-benchmark -o
*
* If you wish to deploy SASL SCRAM support, please read 'doc/SASL-SCRAM' and
* pass the '-i' flag to the included cryptographic benchmarking utility too.
*
* If you are using the PBKDF2 module, its performance will be significantly
* affected by your choice of cryptographic digest library. This software can
* currently interface with 3 libraries; in decreasing order of performance:
*
* - OpenSSL (libcrypto)
* - GNU Nettle (libnettle)
* - ARM mbedTLS (libmbedcrypto)
*
* If you have one of these libraries available at configure-time, the PBKDF2
* module will perform significantly better, allowing you to raise its
* iteration count without affecting the computation time. This is indicated
* by the output of the configure script; "Digest Frontend". The benchmark
* program will also inform you what cryptographic digest library it is using,
* if any.
*
*
*
* If you are migrating from crypto/argon2d (v7.2) to crypto/argon2, and you
* wish to use the same parameters as the older module's defaults, configure
* it like so:
*
* crypto {
* argon2_type = "argon2d";
* argon2_memcost = 14;
* argon2_timecost = 32;
* argon2_threads = 1;
* argon2_saltlen = 32;
* argon2_hashlen = 64;
* };
*
*
*
* If you are migrating from crypto/pbkdf2 (v7.2) to crypto/pbkdf2v2, and you
* wish to use the same parameters as the older module, configure it like so:
*
* crypto {
* pbkdf2v2_digest = "SHA512";
* pbkdf2v2_rounds = 128000;
* };
*
* Note that this will still result in passwords being re-encrypted with the
* newer module (as the older module successfully verifies them); another new
* PBKDF2 computation with a new salt will occur, but this is still no worse
* than an invocation of NickServ's "SET PASSWORD" command. You will still
* need to keep the old module in your loadmodule configuration above, as the
* new module cannot verify digests produced by the old one.
*
* If you wish to deploy SASL SCRAM support, please read 'doc/SASL-SCRAM'.
* Its advice regarding parameter choice takes precedence over this!
*/
crypto {
/* (*) argon2_type
*
* The algorithm type to use for new passwords.
*
* Argon2d is suitable for use on a dedicated machine that has
* limited access. It provides the most resistance to GPU and ASIC
* cracking attacks, but its operation is data-dependent; that is,
* during its operation, keying material derived from the password
* itself is indirectly affecting the execution choices made by the
* algorithm. This creates a side-channel that can leak information
* about the password to other software running on the same physical
* machine.
*
* Argon2i avoids this by being data-independent. The order of memory
* accesses, conditional execution, etc. does not depend on the
* password, or any material derived from the password, so no side-
* channel that can reveal any information about the password is
* created. However, this means that it is easier to bruteforce by a
* password cracker, which does not have to account for execution
* differences in its implementation. This is the most suitable
* choice for running on a virtual machine that is co-located with
* other, untrusted, virtual machines, or on a dedicated machine that
* runs other, untrusted, software, or has untrusted user access.
*
* Argon2id is a blend of both, limiting the exploitability of any
* side-channels while retaining excellent resistance to GPU and ASIC
* cracking. This is suitable for all but the most sensitive of
* deployments.
*
* All algorithm types perform about equally as well as each other;
* changing this will not significantly affect the computation time.
*
* Valid values are "argon2d", "argon2i", and "argon2id"
* The default is "argon2id"
*/
#argon2_type = "argon2id";
/* (*) argon2_memcost
*
* Memory cost (as a power of 2, in KiB) to use for new passwords.
*
* You should set this as high as is reasonable for the machine you
* will be running this software on. If this results in too slow a
* computation time, reset the time cost below to its minimum value.
* If it is still too slow, decrement this value (halving the memory
* usage) until it is fast enough. Alternatively, if it is still too
* fast after setting this to its highest reasonable value, raise the
* time cost below until it is not. A benchmark program is available
* alongside this software to aid in this process.
*
* WARNING: Do *NOT* set this to more than 20 (1 GiB RAM) on a 32-bit
* machine or a 32-bit Operating System!
*
* Valid values are 3 (8 KiB RAM) to 30 (1 TiB RAM) (inclusive)
* The default is 16 (64 MiB RAM)
*/
#argon2_memcost = 16;
/* (*) argon2_timecost
*
* Time cost (iterations over the memory pool).
*
* Valid values are 3 to 1,048,576 (inclusive)
* The default is 3
*/
#argon2_timecost = 3;
/* (*) argon2_threads
*
* Number of processor threads to use for new passwords.
*
* If you want to increase the amount of computation effort required,
* while not increasing the real ("wall clock") time required, raise
* this setting to its maximum reasonable value for the machine you
* will be running this software on.
*
* This software is not multi-threaded, so only one password will be
* verified at a time. Therefore, you do NOT need to divide this by
* the expected maximum number of simultaneous logins.
*
* It is pointless to set this higher than the number of hardware
* processing threads you have; increase the time cost above instead
* if you want to make it arbitrarily slower. Diminishing returns are
* to be expected once you exceed the number of hardware processing
* /cores/ you have; hyperthreading does NOT provide much (if any) of
* a boost for this workload.
*
* Increasing this value will *decrease* the real time required, so
* you may have to subsequently increase the time cost above again to
* make it "just slow enough" once more. A benchmark program is
* available alongside this software to aid in this process.
*
* WARNING: The (size of the) memory pool configured above is split
* between the threads, which can result in too small a memory area
* per-thread if many threads are used. If you set this value, it is
* HIGHLY RECOMMENDED that you run the included benchmarking program
* with the same configuration options, to confirm that it works!
*
* WARNING: This feature is experimental. Some of the code in this
* software is not thread-safe, and although every effort has been
* made to ensure that this feature will not interfere with the
* operation of this software, this cannot be guaranteed.
*
* Valid values are 1 to 255 (inclusive)
* The default is 1 (do not use any computation parallelism)
*/
#argon2_threads = 1;
/* (*) argon2_saltlen
*
* Salt length (in bytes) to use for new passwords. You should only
* change this if absolutely necessary; for example, to interoperate
* with other software. Its value doesn't significantly affect the
* computation time.
*
* Valid values are 4 to 48 (inclusive)
* The default is 16
*/
#argon2_saltlen = 16;
/* (*) argon2_hashlen
*
* Digest length (in bytes) to use for new passwords. You should only
* change this if absolutely necessary; for example, to interoperate
* with other software. Its value doesn't significantly affect the
* computation time.
*
* Valid values are 16 to 128 (inclusive)
* The default is 64
*/
#argon2_hashlen = 64;
/* (*) scrypt_memlimit
*
* Memory limit (as a power of 2, in KiB) to use for new passwords.
*
* You should set this as high as is reasonable for the machine you
* will be running this software on. If this results in too slow a
* computation time, reset the opslimit below to its default value.
* If it is still too slow, decrement this value (halving the memory
* usage) until it is fast enough. Alternatively, if it is still too
* fast after setting this to its highest reasonable value, raise the
* opslimit below until it is not. A benchmark program is available
* alongside this software to aid in this process.
*
* WARNING: Do *NOT* set this to more than 20 (1 GiB RAM) on a 32-bit
* machine or a 32-bit Operating System!
*
* Valid values are 14 (16 MiB RAM) to 26 (64 GiB RAM) (inclusive)
* The default is 14 (16 MiB RAM)
*/
#scrypt_memlimit = 14;
/* (*) scrypt_opslimit
*
* Amount of computation to perform for new passwords.
*
* The default value for this option is based on the default value of
* the above option. The recommended value is (memlimit_bytes / 32).
*
* Valid values are 32,768 to 4,294,967,295 (inclusive)
* The default is 524,288
*/
#scrypt_opslimit = 524288;
/* (*) pbkdf2v2_digest
*
* Valid values are "SHA1", "SHA256", "SHA512",
* "SCRAM-SHA-1", "SCRAM-SHA-256" and "SCRAM-SHA-512".
*
* For the SCRAM-* variants, please read doc/SASL-SCRAM.
*
* The default is "SHA512"
*/
#pbkdf2v2_digest = "SHA512";
/* (*) pbkdf2v2_rounds
* Valid values are 10,000 to 5,000,000 (inclusive)
* The default is 64,000
*/
#pbkdf2v2_rounds = 64000;
/* (*) pbkdf2v2_saltlen
* You should only change this if you *really* know what you're doing
* Valid values are 8 to 64 (inclusive)
* The default is 32
*/
#pbkdf2v2_saltlen = 32;
/* (*) crypt3_openbsd_newhash_pref
*
* The "pref" parameter for OpenBSD crypt_newhash(3).
* Please see <https://man.openbsd.org/crypt_checkpass.3>
* The default is "bcrypt,a"
*/
#crypt3_openbsd_newhash_pref = "bcrypt,a";
/* (*) crypt3_sha2_256_rounds
* (*) crypt3_sha2_512_rounds
*
* Use of this option is restricted to certain C libraries!
* At present, only GNU libc6 ("glibc") v2.7+ is known to work.
*
* Valid values are 5,000 to 1,000,000 (inclusive)
* The default is 5,000
*/
#crypt3_sha2_256_rounds = 5000;
#crypt3_sha2_512_rounds = 5000;
};
/* The serverinfo{} block defines how we appear on the IRC network. */
serverinfo {
/* name
* The server name that this program uses on the IRC network.
* This is the name you'll have to use in C:/N:Lines. It must be
* unique on the IRC network and contain at least one dot, but does
* not have to be equal to any DNS name.
*/
name = "services.int";
/* desc
* The ``server comment'' we send to the IRC network.
*/
desc = "Atheme IRC Services";
/* numeric
* Some protocol drivers (Charybdis, Ratbox2, P10, IRCNet)
* require a server id, also known as a numeric. Please consult your
* ircd's documentation when providing this value.
*/
numeric = "00A";
/* (*)recontime
* The number of seconds before we reconnect to the uplink.
*/
recontime = 10;
/* (*)netname
* The name of your network.
*/
netname = "misconfigured network";
/* (*)hidehostsuffix
* P10 +x host hiding gives <account>.<hidehostsuffix>.
* If using +x on asuka, this must agree
* with F:HIDDEN_HOST.
*/
hidehostsuffix = "users.misconfigured";
/* (*)adminname
* The name of the person running this service.
*/
adminname = "misconfigured admin";
/* (*)adminemail
* The email address of the person running this service.
*/
adminemail = "misconfigured@admin.tld";
/* (*)registeremail
* The email address that messages should be originated from.
* If this is not set, then "noreply.$adminemail" will be used.
*/
registeremail = "noreply@admin.tld";
/* (*)hidden
* If this is enabled, Atheme will indicate to the uplink IRCd
* that it should not be included in /links output. This only works
* on the following IRCds at present: charybdis, ircd-seven, ratbox.
*/
#hidden;
/* (*)mta
* The full path to your mail transfer agent.
* This is used for email authorization and password retrieval.
* Comment this out to disable sending email.
* Warning: sending email can disclose the IP of your services
* unless you take precautions (not discussed here further).
*/
mta = "/usr/sbin/sendmail";
/* (*)loglevel
* Specify the default categories of logging information to record
* in the master Atheme logfile, usually var/atheme.log.
*
* Options include:
* debug, all - meta-keyword for all possible categories
* trace - meta-keyword for a little bit of info
* misc - like trace, but with some more miscellaneous info
* notice - meta-keyword for notice-like information
* ------------------------------------------------------------------------------
* error - critical errors
* info - miscillaneous log notices
* verbose - A bit more verbose than info, not quite as spammy as debug
* commands - all command use
* admin - administrative command use
* register - account and channel registrations
* set - changes of account or channel settings
* request - user requests (currently only vhosts)
* network - log notices related to network status
* rawdata - log raw data sent and received by services
* wallops - <not yet used>
*/
loglevel = { error; info; admin; network; wallops; };
/* (*)maxlogins
* What is the maximum number of sessions allowed to login to one
* username? This reduces potential abuse. It is only checked on login.
*/
maxlogins = 5;
/* (*)maxusers
* What are the maximum usernames that one email address can register?
* Set to 0 to disable this check (it can be slow currently).
*/
maxusers = 5;
/* (*)mdlimit
* How many metadata entries can be added to an object?
*/
mdlimit = 30;
/* (*)emaillimit, emailtime
* The maximum number of emails allowed to be sent in
* that amount of time (seconds). If this is exceeded,
* wallops will be sent, at most one per minute.
*/
emaillimit = 10;
emailtime = 300;
/* (*)auth
* What type of username registration authorization do you want?
* If "email", Atheme will send a confirmation email to the address to
* ensure it's valid. If registration is not completed within one day,
* the username will expire. If "none", no message will be sent and
* the username will be fully registered.
* Valid values are: email, none.
*/
auth = none;
/* casemapping
* Specify the casemapping to use. Almost all TSora (and any that follow
* the RFC correctly) ircds will use rfc1459 casemapping. Bahamut, Unreal,
* and other ``Dalnet'' ircds will use ascii casemapping.
* Valid values are: rfc1459, ascii.
*/
casemapping = rfc1459;
};
/* uplink{} blocks define connections to IRC servers.
* Multiple may be defined but only one will be used at a time (IRC
* being a tree shaped network). Atheme does not currently link over SSL.
* To link Atheme over ssl, please connect Atheme to a local ircd and have that
* connect to your network over SSL.
*/
uplink "irc.example.net" {
// The server name of the ircd you're linking to goes above.
// host
// The hostname to connect to.
host = "127.0.0.1";
// vhost
// The source IP to connect from, used on machines with multiple interfaces.
#vhost = "192.0.2.5";
// send_password
// The password sent for linking.
send_password = "mypassword";
// receive_password
// The password received for linking.
receive_password = "theirpassword";
// port
// The port to connect to.
port = 6667;
};
/* this is an example for using an IPv6 address as an uplink */
uplink "irc6.example.net" {
host = "::1";
// password
// If you want to have same send_password and accept_password, you
// can specify both using 'password' instead of individually.
password = "linkage";
port = 6667;
};
/* Services configuration.
*
* Each of these blocks can contain a nick, user, host, real and aliases.
* Several of them also have options specific to the service.
*/
/* NickServ configuration.
*
* The nickserv {} block contains settings specific to the NickServ modules.
*
* NickServ provides nickname or username registration and authentication
* services. It provides necessary authentication features required for
* Services to operate correctly. You should make sure these settings
* are properly configured for your network.
*/
nickserv {
/* (*)spam
* Have NickServ tell people about how great it and ChanServ are.
*/
spam;
/* no_nick_ownership
* Enable this to disable nickname ownership (old userserv{}).
* This changes changes "nickname" to "account" in most messages,
* disables GHOST on users not logged in to the same account and
* makes the spam directive ineffective.
* It is suggested that the nick be set to UserServ, login.so
* be loaded instead of identify.so and ghost.so not be loaded.
*/
#no_nick_ownership;
/* (*)nick
* The nickname we want NickServ to have.
*/
nick = "NickServ";
/* (*)user
* The username we want NickServ to have.
*/
user = "NickServ";
/* (*)host
* The hostname we want NickServ to have.
*/
host = "services.int";
/* (*)real
* The realname (gecos) information we want NickServ to have.
*/
real = "Nickname Services";
/* (*)aliases
* Command aliases for NickServ.
*/
aliases {
"ID" = "IDENTIFY";
"MYACCESS" = "LISTCHANS";
};
/* (*)access
* This block allows you to modify the access level required to run
* commands. The list of possible accesses are listed in the operclass
* section later in this .conf . Note that you can only set the access
* on an actual command, not an alias.
*/
access {
};
/* (*)maxnicks
* If GROUP is loaded, what are the maximum nicknames that one
* username can register?
*/
maxnicks = 5;
/* (*)expire
* The number of days before inactive registrations are expired.
*/
expire = 30;
/* (*)enforce_expire
* The number of days of no use after which to ignore enforcement
* settings on nicks.
*/
#enforce_expire = 14;
/* (*)enforce_delay
* The number of seconds to delay nickchange enforcement settings
* on nicks.
*/
#enforce_delay = 30;
/* (*)enforce_prefix
* The prefix to use when changing the user's nick on enforcement
*/
#enforce_prefix = "Guest";
/* (*)waitreg_time
* The amount of time (in seconds) users have to wait between
* connecting to the network, and being able to register a services
* account. Minimum value 0 (disables the enforced delay), default
* value 0, maximum value 43200 (12 hours). Requires the
* "modules/nickserv/waitreg" module to be loaded to do anything.
*/
#waitreg_time = 0;
/* (*)cracklib_dict
* The location and filename prefix of the cracklib dictionaries
* for use with nickserv/pwquality. This must be provided if you are
* going to be using nickserv/pwquality with cracklib support enabled.
*/
#cracklib_dict = "/var/cache/cracklib/cracklib_dict";
/* (*)passwdqc_*
* Please see the passwdqc.conf(5) documentation for an explanation
* of these values. Affects modules/nickserv/pwquality if passwdqc
* support is enabled. Default values given below.
*/
#passwdqc_max = 288; /* (8 <= value <= 288) */
#passwdqc_min_n0 = 20; /* (0 <= value <= passwdqc_max) */
#passwdqc_min_n1 = 16; /* (0 <= value <= passwdqc_min_n0) */
#passwdqc_min_n2 = 16; /* (0 <= value <= passwdqc_min_n1) */
#passwdqc_min_n3 = 12; /* (0 <= value <= passwdqc_min_n2) */
#passwdqc_min_n4 = 8; /* (0 <= value <= passwdqc_min_n3) */
#passwdqc_words = 4; /* (2 <= value <= 8) */
/* (*)pwquality_warn_only
* If this option is set and nickserv/pwquality is loaded, nickserv will just
* warn users that their password is insecure, recommend they change it and
* still register the nick. If this option is unset, it will refuse to
* register the nick at all until the user chooses a better password.
*/
#pwquality_warn_only;
/* (*)show_custom_metadata
* Setting this option to false will prevent user-set metadata (via SET PROPERTY)
* from showing up in the INFO output. The TAXONOMY command will still function
* as usual, and INFO will point this out if users have metadata set.
*/
show_custom_metadata;
/* (*)emailexempts
* A list of email addresses that will be exempt from the check of how many
* accounts one user may have. Any email address in this block may register
* an unlimited number of accounts/usernames.
*/
emailexempts {
};
/*
* (*)shorthelp
*
* A list of commands that are displayed (with their full description) in the
* output of `/msg NickServ HELP'. Commands not in this list will be listed, but
* not with their descriptions. All commands with descriptions are still listed
* in `/msg NickServ HELP COMMANDS' regardless of the value set here.
*
* Optional; defaults to "ACCESS CERT DROP GHOST GROUP IDENTIFY INFO LISTCHANS
* LISTGROUPS LISTLOGINS LISTOWNMAIL LOGOUT REGAIN REGISTER RELEASE SENDPASS SET
* UNGROUP".
*
* A command in this list will only be printed if the corresponding module is
* loaded and the user has permission to use it. Set to an empty string to
* disable listing command descriptions in `/msg NickServ HELP'.
*/
#shorthelp = "";
};
/* ChanServ configuration.
*
* The chanserv {} block contains settings specific to the ChanServ modules.
*
* ChanServ provides channel registration services, which allows users to own
* channels. It is not required, but is strongly recommended.
*/
chanserv {
/* (*)nick
* The nickname we want the client to have.
*/
nick = "ChanServ";
/* (*)user
* The username we want the client to have.
*/
user = "ChanServ";
/* (*)host
* The hostname we want the client to have.
*/
host = "services.int";
/* (*)real
* The GECOS of the client.
*/
real = "Channel Services";
/* reggroup
* The group that will receive Memos about
* channel Registration requests when
* chanserv/moderate is loaded.
*/
#reggroup = "!Services-Team";
/* (*)aliases
* Command aliases for ChanServ.
*/
aliases {
};
/* (*)access
* Command access changes for ChanServ.
*/
access {
};
/* (*)maxchans
* What are the maximum channels that one username can register?
*/
maxchans = 5;
/* fantasy
* Do you want to enable fantasy commands? This can
* use a lot of CPU up, and will only work if you have
* join_chans (in general) enabled as well.
*/
fantasy;
/* (*) hide_xop
* Hide the XOP templates from sight. This is useful if you
* want to use templates and not have the XOP templates displayed.
*/
#hide_xop;
/* (*) templates
* Defines what flags the global templates comprise.
*
* For the special XOP templates:
* These should all be different and not equal to the empty set,
* except that hop may be equal to vop to disable hop.
* Each subsequent level should have more flags (except +VHO).
* For optimal functioning of /cs forcexop, aop should not have
* any of +sRf, hop should not have any of +sRfoOr and vop should
* not have any of +sRfoOrhHt.
* If this is not specified, the values of Atheme 0.3 are used,
* which are generally less intuitive than these.
* Note: changing these leaves the flags of existing channel access
* entries unchanged, thus removing them of the view of /cs xop list.
* Usually the channel founder can use /cs forcexop to update the
* entries to the new levels.
*
* Advice:
* If you want to add a co-founder role, remove the flags permission
* from the SOP role, and define a co-founder role with flags
* permissions.
*/
templates {
vop = "+AV";
hop = "+AHehitrv";
aop = "+AOehiortv";
sop = "+AOaefhiorstv";
founder = "+AFORaefhioqrstv";
/* some examples (which are commented out...) */
#member = "+Ai";
#op = "+AOiortv";
};
/* (*) deftemplates
* Defines default templates to set on new channels, as a
* space-separated list of name=+flags pairs.
* Note: at this time no syntax checking is done on this; it
* is your own responsibility to make sure it is correct.
*/
#deftemplates = "MEMBER=+Ai OP=+AOiortv";
/* (*) changets
* Change the channel TS to the registration time when someone
* recreates a registered channel, ensuring that they are deopped
* and all their modes are undone. Note that this involves ChanServ
* joining. When the channel was not recreated no deops will be done
* (apart from the SECURE option).
* This also solves the "join-mode" problem where someone recreates
* a registered channel and then sets some modes before they are
* deopped.
* This is currently supported for charybdis, ratbox, bahamut,
* and inspircd 1.1+. For charybdis and ratbox it only fully
* works with TS6, with TS5 bans and last-moment modes will
* still apply.
* (That can also be used to advantage, when first enabling this.)
*/
#changets;
/* (*) trigger
* This setting allows you to change the trigger prefix for
* ChanServ's in-channel command feature (disableable via chanserv::fantasy).
* If no setting is provided, the default is used, which is "!".
*
* Other settings you could consider trying: ".", "~", "?", "`", "'".
*/
trigger = "!";
/* (*)expire
* The number of days before inactive registrations are expired.
*/
expire = 30;
/* (*)maxchanacs
* The maximum number of entries allowed in a channel's access list
* (both channel ops and akicks), 0 for unlimited.
*/
maxchanacs = 0;
/* (*)maxfounders
* The maximum number of founders allowed in a channel.
* Note that all founders have the exact same privileges and
* the list of founders is shown in various places.
*/
maxfounders = 4;
/* (*)founder_flags
* The flags a user will get when they register a new channel.
* This MUST include at least 'F' or it will be ignored.
* If it is not set, Atheme will give the user all channel flags.
*/
#founder_flags = "AFORefiorstv";
/* (*)akick_time
* The default expiration time (in minutes) for AKICKs.
* Comment this option out or set to zero for permanent AKICKs
* by default (the old behaviour).
*/
#akick_time = 10;
/* (*)antiflood_enforce_method
* The enforcement method to use for flood protection by default.
* This may be overridden by channel staff.
* Available options are: quiet, kickban and akill.
*/
antiflood_enforce_method = quiet;
/* (*)show_custom_metadata
* Setting this option to false will prevent user-set metadata (via SET PROPERTY)
* from showing up in the INFO output. The TAXONOMY command will still function
* as usual, and INFO will point this out if channels have metadata set.
*/
show_custom_metadata;
/*
* (*)shorthelp
*
* A list of commands that are displayed (with their full description) in the
* output of `/msg ChanServ HELP'. Commands not in this list will be listed, but
* not with their descriptions. All commands with descriptions are still listed
* in `/msg ChanServ HELP COMMANDS' regardless of the value set here.
*
* Optional; defaults to "AKICK BAN CLEAR DEOP DEVOICE DROP FLAGS GETKEY INFO
* INVITE KICK KICKBAN OP QUIET REGISTER SET TOPIC UNBAN UNQUIET VOICE WHY".
*
* A command in this list will only be printed if the corresponding module is
* loaded and the user has permission to use it. Set to an empty string to
* disable listing command descriptions in `/msg ChanServ HELP'.
*/
#shorthelp = "";
};
/* CHANFIX configuration.
*
* The chanfix {} block contains settings specific to the CHANFIX modules.
*
* CHANFIX provides channel recovery services without registration, which
* allows users to maintain control of channels even if ChanServ is not used
* to register them.
*/
chanfix {
/* (*)nick
* The nickname we want the client to have.
*/
nick = "ChanFix";
/* (*)user
* The username we want the client to have.
*/
user = "ChanFix";
/* (*)host
* The hostname we want the client to have.
*/
host = "services.int";
/* (*)real
* The GECOS of the client.
*/
real = "Channel Fixing Service";
/* (*)autofix
* Automatically fix channels if they become opless and meet fixing
* criteria.
*/
autofix;
};
/* Global noticing configuration.
*
* The global {} block contains settings specific to the Global notice module.
*
* The Global notice module provides the ability to mass-notify a network.
*/
global {
/* (*)nick
* Sets the nick used for sending out a global notice.
*/
nick = "Global";
/* (*)user
* Sets the username used for this client.
*/
user = "Global";
/* (*)host
* The hostname used for this client.
*/
host = "services.int";
/* (*)real
* The GECOS (real name) of the client.
*/
real = "Network Announcements";
};
/* InfoServ configuration
*
* The infoserv {} block contains settings specific to the InfoServ module.
*
* The InfoServ modules provides the ability to mass-notify a network and send
* news to users when they connect to the network.
*/
infoserv {
/* (*)nick
* Sets the nick used for InfoServ and sending out informational messages.
*/
nick = "InfoServ";
/* (*)user
* Sets the username used for this client.
*/
user = "InfoServ";
/* (*)host
* The hostname used for this client,
*/
host = "services.int";
/* (*)real
* The GECOS (real name) of the client.
*/
real = "Information Service";
/* (*)logoninfo_count
* The number of InfoServ messages a user will see upon connect.
* If there are more than this number, the user will be able to
* see the rest with /msg infoserv list .
*/
logoninfo_count = 3;
};
/* OperServ configuration.
*
* The operserv {} block contains settings specific to the OperServ modules.
*
* OperServ provides essential network management tools for IRC operators
* on the IRC network.
*/
operserv {
/* (*)nick
* The nickname we want the Operator Service to have.
*/
nick = "OperServ";
/* (*)user
* Sets the username used for this client.
*/
user = "OperServ";
/* (*)host
* The hostname used for this client.
*/
host = "services.int";
/* (*)real
* The GECOS (real name) of the client.
*/
real = "Operator Services";
/* (*)aliases
* Command aliases for OperServ.
*/
aliases {
};
/* (*)access
* Command access changes for OperServ.
*/
access {
};
};
/* SaslServ configuration.
*
* The saslserv {} block contains settings specific to the SaslServ modules.
*
* SaslServ provides an authentication agent which is compatible with the
* SASL over IRC (SASL/IRC) protocol extension.
*/
saslserv {
/* (*)nick
* The nickname we want SaslServ to have.
*/
nick = "SaslServ";
/* (*)user
* The username we want SaslServ to have.
*/
user = "SaslServ";
/* (*)host
* The hostname we want SaslServ to have.
*/
host = "services.int";
/* (*)real
* The realname (gecos) information we want SaslServ to have.
*/
real = "SASL Authentication Agent";
/* (*)hide_server_names
* Hide server names in the bad_password message.
*/
#hide_server_names;
};
/* MemoServ configuration.
*
* The memoserv {} block contains settings specific to the MemoServ modules.
*
* MemoServ provides a note-taking service that you can use to send notes
* to offline users (provided they are registered with Services).
*/
memoserv {
/* (*)nick
* The nickname we want MemoServ to have.
*/
nick = "MemoServ";
/* (*)user
* The username we want MemoServ to have.
*/
user = "MemoServ";
/* (*)host
* The hostname we want MemoServ to have.
*/
host = "services.int";
/* (*)real
* The realname (gecos) information we want MemoServ to have.
*/
real = "Memo Services";
/* (*)aliases
* Command aliases for MemoServ.
*/
aliases {
};
/* (*)access
* Command access changes for MemoServ.
*/
access {
};
/* (*)maxmemos
* What is the maximum amount of memos a user can have in their inbox?
*/
maxmemos = 30;
};
/* GameServ configuration.
*
* The gameserv {} block contains settings specific to the GameServ modules.
*
* GameServ provides various in-channel commands for games.
*/
gameserv {
/* (*)nick
* The nickname we want GameServ to have.
*/
nick = "GameServ";
/* (*)user
* Sets the username used for this client.
*/
user = "GameServ";
/* (*)host
* The hostname used for this client.
*/
host = "services.int";
/* (*)real
* The GECOS (real name) of the client.
*/
real = "Game Services";
/* (*)aliases
* Command aliases for GameServ.
*/
aliases {
};
/* (*)access
* Command access changes for GameServ.
*/
access {
};
};
/* RPGServ configuration.
*
* The rpgserv {} block contains settings specific to the RPGServ modules.
*
* RPGServ provides a facility for finding roleplaying channels.
*/
rpgserv {
/* (*)nick
* The nickname we want RPGServ to have.
*/
nick = "RPGServ";
/* (*)user
* Sets the username used for this client.
*/
user = "RPGServ";
/* (*)host
* The hostname used for this client.
*/
host = "services.int";
/* (*)real
* The GECOS (real name) of the client.
*/
real = "RPG Finding Services";
/* (*)aliases
* Command aliases for RPGServ.
*/
aliases {
};
/* (*)access
* Command access changes for RPGServ.
*/
access {
};
};
/* BotServ configuration.
*
* The botserv {} block contains settings specific to the BotServ modules.
*
* BotServ provides virtual channel bots.
*/
botserv {
/* (*)nick
* The nickname we want BotServ to have.
*/
nick = "BotServ";
/* (*)user
* Sets the username used for this client.
*/
user = "BotServ";
/* (*)host
* The hostname used for this client.
*/
host = "services.int";
/* (*)real
* The GECOS (real name) of the client.
*/
real = "Bot Services";
/* (*)min_users
* Minimum number of users a channel must have before a Bot is allowed
* to be assigned to that channel.
*/
min_users = 0;
};
/* GroupServ configuration.
*
* The groupserv {} block contains settings specific to the GroupServ modules.
*
* GroupServ provides features for managing a collection of channels at once.
*
*/
groupserv {
/* (*)nick
* The nickname we want GroupServ to have.
*/
nick = "GroupServ";
/* (*)user
* The username we want GroupServ to have.
*/
user = "GroupServ";
/* (*)host
* The hostname we want GroupServ to have.
*/
host = "services.int";
/* (*)real
* The realname (gecos) information we want GroupServ to have.
*/
real = "Group Management Services";
/* (*)aliases
* Command aliases for GroupServ.
*/
aliases {
};
/* (*)access
* Command access changes for GroupServ.
*/
access {
};
/* (*)maxgroups
* Maximum number of groups one username can be founder of.
*/
maxgroups = 5;
/* (*)maxgroupacs
* Maximum number of access entries you may have in a group.
*/
maxgroupacs = 100;
/* (*)enable_open_groups
* Setting this option will allow any group founder to mark
* their group as "anyone can join".
*/
enable_open_groups;
/* (*)join_flags
* This is the GroupServ flagset that users who JOIN a open
* group will get upon join. Please check the groupserv/flags
* helpfile before changing this option. Valid flagsets (for
* example) would be: "+v" or "+cv". It is not valid to use
* minus flags (such as "-v") here.
*/
join_flags = "+";
};
/* HostServ configuration.
*
* The hostserv {} block contains settings specific to the HostServ modules.
*
* HostServ provides advanced virtual host management.
*/
hostserv {
/* (*)nick
* The nickname we want HostServ to have.
*/
nick = "HostServ";
/* (*)user
* Sets the username used for this client.
*/
user = "HostServ";
/* (*)host
* The hostname used for this client.
*/
host = "services.int";
/* (*)real
* The GECOS (real name) of the client.
*/
real = "Host Management Services";
/* reggroup
* The group that will receive Memos about
* vHost requests.
*/
#reggroup = "!Services-Team";
/* (*)request_per_nick
* Whether the request system should work per nick or per account.
* The recommended setting is to leave this disabled, so that
* vhosts work as consistently as possible.
*/
#request_per_nick;
/* (*)aliases
* Command aliases for HostServ.
*/
aliases {
"APPROVE" = "ACTIVATE";
"DENY" = "REJECT";
};
/* (*)access
* Command access changes for HostServ.
*/
access {
};
};
/* HelpServ configuration
*
* The helpserv {} block contains settings specific to the HelpServ modules.
*
* HelpServ adds a few different ways for users to request help from network staff.
*/
helpserv {
/* (*)nick
* The nickname we want HelpServ to have.
*/
nick = "HelpServ";
/* (*)user
* The username we want HelpServ to have.
*/
user = "HelpServ";
/* (*)host
* The hostname we want HelpServ to have.
*/
host = "services.int";
/* (*)real
* The realname (gecos) information we want HelpServ to have.
*/
real = "Help Services";
};
/* StatServ configuration
*
* The statserv {} block contains settings specific to the StatServ modules.
*
* StatServ adds basic stats and split tracking.
*/
statserv {
/* (*)nick
* The nickname we want StatServ to have.
*/
nick = "StatServ";
/* (*)user
* The username we want StatServ to have.
*/
user = "StatServ";
/* (*)host
* The hostname we want StatServ to have.
*/
host = "services.int";
/* (*)real
* The realname (gecos) information we want StatServ to have.
*/
real = "Statistics Services";
};
/* ALIS configuration.
*
* The alis {} block contains settings specific to the ALIS modules.
*/
alis {
/* (*)nick
* The nickname we want ALIS to have.
*/
nick = "ALIS";
/* (*)user
* The username we want ALIS to have.
*/
user = "alis";
/* (*)host
* The hostname we want ALIS to have.
*/
host = "services.int";
/* (*)real
* The realname (gecos) information we want ALIS to have.
*/
real = "Channel Directory";
/* (*)maxmatches
* The default maximum number of channels returned in a query.
* Privilege (chan:auspex) is required to ask for more.
* Minimum 8, default 64, maximum 128.
*/
#maxmatches = 64;
};
/* HTTP server configuration.
*
* The httpd {} block contains settings specific to the HTTP server module.
*
* The HTTP server in Services is used for serving XMLRPC requests. It can
* also serve static documents and statistics pages.
*/
httpd {
/* host
* The host that the HTTP server will listen on.
* Use 0.0.0.0 if you want to listen on all available hosts.
*/
host = "0.0.0.0";
/* host (ipv6)
* If you want, you can have Atheme listen on an IPv6 host too.
* Use :: if you want to listen on all available IPv6 hosts.
*/
#host = "::";
/* www_root
* The directory that contains the files that should be served by the httpd.
*/
www_root = "/var/www";
/* port
* The port that the HTTP server will listen on.
*/
port = 8080;
};
/* LDAP configuration.
*
* The ldap {} block contains settings specific to the LDAP authentication
* module.
*/
ldap {
/* (*)url
* LDAP URL of the server to use.
*/
url = "ldap://127.0.0.1";
/* (*)dnformat
* Format string to convert an account name to an LDAP DN.
* Must contain exactly one %s which will be replaced by the account
* name.
* Services will attempt a simple bind with this DN and the given
* password; if this is successful the password is considered correct.
*/
dnformat = "cn=%s,dc=jillestest,dc=com";
};
/******************************************************************************
* LOGGING SECTION. *
******************************************************************************/
/*
* logfile{} blocks can be used to set up log files other than the master
* logfile used by services, which is controlled by serverinfo::loglevel.
*
* The various logging categories are:
* debug, all - meta-keyword for all possible categories
* trace - meta-keyword for a little bit of info
* misc - like trace, but with some more miscillaneous info
* notice - meta-keyword for notice-like information
* ------------------------------------------------------------------------------
* error - critical errors
* info - miscillaneous log notices
* verbose - A bit more verbose than info, not quite as spammy as debug
* commands - all command use
* admin - administrative command use
* register - account and channel registrations
* set - changes of account or channel settings
* request - user requests (currently only vhosts)
* network - log notices related to network status
* rawdata - log raw data sent and received by services
* wallops - <not yet used>
* denycmd - security model denials (commands, permissions)
*/
/*
* This block logs all account and channel registrations and drops,
* and account and channel setting changes to var/account.log.
*/
logfile "var/account.log" { register; set; };
/*
* This block logs all command use to var/commands.log.
*/
logfile "var/commands.log" { commands; };
/*
* This block logs all security auditing information.
*/
logfile "var/audit.log" { denycmd; };
/*
* You can log to IRC channels, and even split it by category, too.
* This entry provides roughly the same functionality as the old snoop
* feature.
*/
logfile "#services" { error; info; admin; request; register; denycmd; };
/*
* This block logs to server notices.
*/
logfile "!snotices" { error; info; request; denycmd; };
/******************************************************************************
* GENERAL PARAMETERS CONFIGURATION SECTION. *
******************************************************************************/
/* The general {} block defines general configuration options. */
general {
/* (*)permissive_mode
* Whether or not security denials should be soft denials instead of
* hard denials. If security denials are soft denials, then they will
* only be logged to the denial log.
*/
#permissive_mode;
/* (*)helpchan
* Network help channel. Shown to users when they request
* help for a command that doesn't exist.
*/
#helpchan = "#help";
/* (*)helpurl
* Network webpage for services help. Shown to users when they
* request help for a command that doesn't exist.
*/
#helpurl = "http://www.stack.nl/~jilles/irc/atheme-help/";
/* (*)silent
* If you want to prevent services from sending
* WALLOPS/GLOBOPS about things uncomment this.
* Not recommended.
*/
#silent;
/* (*)verbose_wallops
* If you want services to send you more information about
* events that are occuring (in particular AKILLs), uncomment the
* directive below.
*
* WARNING! This may result in large amounts of wallops/globops
* floods.
*/
#verbose_wallops;
/* (*)join_chans
* Should ChanServ be allowed to join registered channels?
* This option is useful for the fantasy command set.
*
* If enabled, you can tell ChanServ to join via SET GUARD ON.
*
* If you use ircu-like ircd (asuka), you must
* leave this enabled, and put guard in default cflags.
*
* For ratbox it is recommended to leave it on and put guard in
* default cflags, in order that ChanServ does not have to join/part
* to do certain things. On the other hand, enabling this increases
* potential for bots fighting with ChanServ.
*
* Regardless of this option, ChanServ will temporarily join
* channels which would otherwise be empty if necessary to enforce
* akick/restricted/close, and to change the TS if changets is
* enabled.
*/
join_chans;
/* (*)leave_chans
* Do we leave registered channels after everyone else has left?
* Turning this off serves little purpose, except to mark "official"
* network channels by keeping them open, and to preserve the
* topic and +beI lists.
*/
leave_chans;
/* secure
* Do you want to require the use of /msg <service>@<services host>?
* Turning this on helps protect against spoofers, but is disabled
* as most networks do not presently use it.
*/
#secure;
/* (*)uflags
* The default flags to set for usernames upon registration.
* Valid values are: hold, neverop, noop, hidemail, nomemo, emailmemos,
* enforce, privmsg, private, quietchg and none.
*/
uflags = { hidemail; };
/* (*)cflags
* The default flags to set for channels upon registration.
* Valid values are: hold, secure, verbose, verbose_ops, keeptopic,
* topiclock, guard, private, nosync, limitflags, pubacl and none.
*/
cflags = { verbose; guard; };
/* (*)raw
* Do you want to allow SRAs to use the RAW and INJECT commands?
* These commands are for debugging. If you don't know how to use them
* then don't enable them. They are not supported.
*/
#raw;
/* (*)flood_msgs
* Do you want services to detect floods?
* Set to how many messages before a flood is triggered.
* Note that some messages that need a lot of processing count
* as two or four messages.
* If services receives `flood_msgs' within `flood_time' the user will
* trigger the flood protection.
* Setting this to zero disables flood protection.
*/
flood_msgs = 7;
/* (*)flood_time
* Do you want services to detect floods?
* Set to how long before the counter resets.
* If services receives `flood_msgs' within `flood_time' the user will
* trigger the flood protection.
*/
flood_time = 10;
/* (*)ratelimit_uses
* After how many uses of a command will users be throttled.
* After `ratelimit_uses' of a command within `ratelimit_period', users
* will not be able to run that ratelimited command until the period is up.
* Comment this, ratelimit_period below or both options out to disable rate limiting.
* Currently used in helpserv/helpme, helpserv/ticket, hostserv/request,
* nickserv/register and chanserv/register.
*/
ratelimit_uses = 5;
/* (*)ratelimit_period
* After how much time (in seconds) will the ratelimit_uses counter reset.
* After `ratelimit_uses' of a command within `ratelimit_period', users
* will not be able to run that ratelimited command until the period is up.
* Comment this, ratelimit_uses above or both options out to disable rate limiting.
* Currently used in helpserv/helpme, helpserv/ticket, hostserv/request,
* nickserv/register and chanserv/register.
*/
ratelimit_period = 60;
/* (*)vhost_change
* The default number of days between vHost changes once a user has used HostServ
* TAKE or REQUEST. (Helps to deter rabid host-swappers and ban evaders.)
*/
#vhost_change = 30;
/* (*)kline_time
* The default expire time for KLINE's in days.
* Setting this to 0 makes all KLINE's permanent.
*/
kline_time = 7;
/* (*)kline_with_ident
* KLINE user@host instead of *@host.
* Applies to all automatic KLINE's set by services.
*/
#kline_with_ident;
/* (*)kline_verified_ident
* KLINE *@host if the first character of the ident is ~,
* irrespective of the value of kline_with_ident.
*/
#kline_verified_ident;
/* (*)clone_time
* This is the default expiry time for CLONE exemptions in minutes.
* Setting this to 0 makes all CLONE exemptions permanent.
*/
clone_time = 0;
/* commit_interval
* The time between database writes in minutes.
*/
commit_interval = 5;
/* (*)operstring
* The string returned in WHOIS (against services) for IRC operators.
*/
#operstring = "is an IRC Operator";
/* (*)servicestring
* The string returned in WHOIS (against services) for services.
*/
#servicestring = "is a Network Service";
/* (*)default_clone_allowed
* The limit after which clones will be KILLed or TKLINEd.
* Used by operserv/clones.
*/
default_clone_allowed = 5;
/* (*)default_clone_warn
* The limit after which clones will be warned that they may not
* have any more concurrent connections. Should be lower than
* default_clone_allowed . Used by operserv/clones.
*/
default_clone_warn = 4;
/* (*)clone_identified_increase_limit
* If this option is enabled, the clone limit for a IP/host will
* be increased by 1 per clone that's identified to services.
* This has a limit of double the clone limits above.
*/
clone_identified_increase_limit;
/* (*)uplink_sendq_limit
* The maximum amount of data that may be queued to be sent
* to the uplink, in bytes. This should be enough to contain
* Atheme's response to the netburst, but smaller than the
* IRCd's sendq limit for servers.
*/
uplink_sendq_limit = 1048576;
/* (*)language
* Language to use for channel and oper messages and as default
* for users.
*/
language = "en";
/* exempts
* This block contains a list of user@host masks. Users matching any
* of these will not be automatically K:lined by services.
*/
exempts {
};
/* allow_taint
* By enabling this option, Atheme will run in configurations where
* the upstream will not provide support. By enabling this feature,
* you void any perceived rights to support.
*/
#allow_taint;
/* (*)immune_level
* This option allows you to customize the operlevel which gets kick
* immunity privileges.
*
* The following flags are available:
* immune - require whatever ircd usermode is needed for kick
* immunity (this is the default);
* admin - require admin privileges for kick immunity
* ircop - require any ircop privileges for kick immunity (umode +o)
*/
immune_level = immune;
/* show_entity_id
* This makes nick/user & group entity IDs visible to everyone, rather
* than just opers with user:auspex or group:auspex privileges.
*/
show_entity_id;
/* load_database_mdeps
*
* For module dependencies listed in the services database (if any),
* whether to load those modules on startup (if they are not already
* loaded) or abort startup with a more helpful error message than
* e.g. "db services.db:123: unknown directive 'BE'" --> "corestorage:
* exiting to avoid data loss".
*
* Comment this out to abort startup instead of silently loading the
* modules you need to process the database successfully. The abort
* reason will tell you what module the database requires so that you
* can fix your configuration file.
*/
load_database_mdeps;
};
proxyscan {
/* Here you can configure the details of your Proxyscan (DNS Blacklist)
* scanner service.
*/
nick = "Proxyscan";
user = "dnsbl";
host = "services.int";
real = "Proxyscan Service";
blacklists {
"dnsbl.dronebl.org";
"rbl.efnetrbl.org";
"tor.efnet.org";
};
/* Available dnsbl_action's:
* NONE - Do nothing
* NOTIFY - Notify user that they are listed in a DNSBL and which one
* SNOOP - Report the user to the logchannel or services channel
* KLINE - AKILL the user from the network (default AKILL is 24 hours)
*/
dnsbl_action = kline;
};
/******************************************************************************
* OPERATOR AND PRIVILEGES CONFIGURATION SECTION. *
******************************************************************************/
/* Operator configuration
* See the PRIVILEGES document for more information.
* NOTE: All changes apply immediately upon rehash. You may need
* to send a signal (killall -HUP atheme-services) to regain control.
*/
/* (*) Operclasses specify groups of services operator privileges */
/* The "user" operclass specifies privileges all users get.
* This may be empty (default) in which case users get no special privileges.
* If you use the security/cmdperm module, you will need to grant command: privileges
* to every command that you want users to be able to use.
*/
operclass "user" { };
/* The "ircop" operclass specifies privileges all IRCops get.
* This may be empty in which case IRCops get no privs.
* At least chan:cmodes, chan:joinstaffonly and general:auspex are suggested.
*/
operclass "ircop" {
privs {
special:ircop;
};
privs {
user:auspex;
user:admin;
user:sendpass;
user:vhost;
user:mark;
};
privs {
chan:auspex;
chan:admin;
chan:cmodes;
chan:joinstaffonly;
};
privs {
general:auspex;
general:helper;
general:viewprivs;
general:flood;
};
privs {
operserv:omode;
operserv:akill;
operserv:jupe;
operserv:global;
};
privs {
group:auspex;
group:admin;
};
};
operclass "sra" {
/* You can inherit privileges from a lower operclass. */
extends "ircop";
privs {
user:hold;
user:regnolimit;
};
privs {
general:metadata;
general:admin;
};
privs {
#operserv:massakill;
#operserv:akill-anymask;
operserv:noop;
operserv:grant;
};
/* needoper
* Only grant privileges to IRC users in this oper class if they
* are opered; other use of privilege (channel succession, XMLRPC,
* etc.) is unaffected by this.
*
* This flag is *not* inherited by operclasses that extend this one;
* you will have to set it explicitly for each operclass.
*/
needoper;
};
/* (*) Operator blocks specify accounts with certain privileges
* Oper classes must be defined before they are used in operator blocks.
*/
operator "jilles" {
/* operclass */
operclass = "sra";
/* password
*
* Normally, the user needs to identify/log in using the account's
* password, and may need to be an IRCop (see operclass::needoper
* above). If you consider this not secure enough, you can
* specify an additional password here, which the user must enter
* using the OperServ IDENTIFY command, before the privileges can
* be used.
*
* The password must be encrypted if a crypto module is in use.
*
* If you are using modules/crypto/crypt3-*, you can probably use
* the "mkpasswd" program included with most Linux distributions.
* Otherwise you can use modules/operserv/genhash to encrypt a
* password for use here.
*/
#password = "$1$3gJMO9by$0G60YE6GqmuHVH3AnFPor1";
};
/******************************************************************************
* INCLUDE CONFIGURATION SECTION. *
******************************************************************************/
/* You may also specify other files for inclusion.
* For example:
*
* include "etc/sras.conf";
*/
You can’t perform that action at this time.