inspircd/inspircd.conf

588 lines
18 KiB
Plaintext

<include file="/etc/inspircd/modules.conf">
<include file="/etc/inspircd/help.conf">
<include directory="/etc/inspircd/custom">
<badip ipmask="169.254.0.0/16" reason="APIPA">
<badip ipmask="10.0.0.0/8" reason="Unclassified (ARPANET)">
<badip ipmask="100.64.0.0/10" reason="Unclassified (CGNAT)">
<badip ipmask="172.16.0.0/12" reason="Unclassified (private-network)">
<badip ipmask="192.0.0.0/24" reason="Unclassified (private-network)">
<badip ipmask="192.0.2.0/24" reason="Unclassified (TEST-NET-1)">
<badip ipmask="192.88.99.0/24" reason="Unclassified (6-to-4)">
<badip ipmask="192.168.0.0/16" reason="Unclassified (private network)">
<badip ipmask="198.18.0.0/15" reason="benchmarking">
<badip ipmask="198.51.100.0/24" reason="Unclassified (TEST-NET-2)">
<badip ipmask="203.0.113.0/24" reason="Unclassified (TEST-NET-3)">
<badip ipmask="127.0.0.0/8" reason="Unclassified (link-local)">
<badip ipmask="224.0.0.0/3" reason="Unclassified (multi-cast/future-use/limited broadcast)">
<badip ipmask="6.0.0.0/7" reason="You are forbidden from connecting to this network (AIS/DoD)">
<badip ipmask="11.0.0.0/8" reason="You are forbidden from connecting to this network (DoD)">
<badip ipmask="21.0.0.0/7" reason="You are forbidden from connecting to this network (DoD)">
<badip ipmask="26.0.0.0/8" reason="You are forbidden from connecting to this network (DoD)">
<badip ipmask="30.0.0.0/8" reason="You are forbidden from connecting to this network (DoD)">
<badip ipmask="33.0.0.0/8" reason="You are forbidden from connecting to this network (DoD)">
<badip ipmask="55.0.0.0/8" reason="You are forbidden from connecting to this network (DoD/US Postal Service)">
<badip ipmask="214.0.0.0/7" reason="You are forbidden from connecting to this network (DoD)">
<badip ipmask="::1/128" reason="Unclassified (loop-back)">
<badip ipmask="::ffff:0:0/96" reason="Unclassified (IPv4 mapped)">
<badip ipmask="::ffff:0:0:0/96" reason="Unclassified (IPv4 translated)">
<badip ipmask="64:ff9b::/96" reason="Unclassified (Global IPv4 translated)">
<badip ipmask="100::/64" reason="Unclassified (null-routed/discard)">
<badip ipmask="2001:20::/28" reason="Unclassified (ORCHIDv2)">
<badip ipmask="2001:db8::/32" reason="Unclassified (RFC documentation/RFC example subnet)">
<badip ipmask="2002::/16" reason="Unclassified (6-to-4)">
<badip ipmask="fc00::/7" reason="Unclassified (ULA)">
<badip ipmask="fe80::/10" reason="Unclassified (link-local)">
<badnick nick="ALIS" reason="Reserved For Services">
<badnick nick="BOTSERV" reason="Reserved For Services">
<badnick nick="CHANFIX" reason="Reserved For Services">
<badnick nick="CHANSERV" reason="Reserved For Services">
<badnick nick="GAMESERV" reason="Reserved For Services">
<badnick nick="GLOBAL" reason="Reserved For Services">
<badnick nick="GROUPSERV" reason="Reserved For Services">
<badnick nick="HELPSERV" reason="Reserved For Services">
<badnick nick="HOSTSERV" reason="Reserved For Services">
<badnick nick="INFOSERV" reason="Reserved For Services">
<badnick nick="MEMOSERV" reason="Reserved For Services">
<badnick nick="NICKSERV" reason="Reserved For Services">
<badnick nick="OPERSERV" reason="Reserved For Services">
<badnick nick="PROXYSCAN" reason="Reserved For Services">
<badnick nick="RPGSERV" reason="Reserved For Services">
<badnick nick="SASLSERV" reason="Reserved For Services">
<badnick nick="STATSERV" reason="Reserved For Services">
<cidr ipv4clone="&env.IPV4_CLONE;" ipv6clone="&env.IPV6_CLONE;">
<class chanmodes="*"
commands="DIE RESTART REHASH LOADMODULE UNLOADMODULE RELOADMODULE GLOADMODULE GUNLOADMODULE GRELOADMODULE"
name="Shutdown"
privs="users/auspex channels/auspex servers/auspex users/mass-message users/flood/no-throttle users/flood/increased-buffers"
snomasks="*"
usermodes="*">
<class commands="SAJOIN SAPART SANICK SAQUIT SATOPIC SAKICK SAMODE OJOIN"
name="SACommands"
privs="channels/ignore-nonicks">
<class chanmodes="*"
commands="CONNECT SQUIT RCONNECT RSQUIT MKPASSWD ALLTIME SWHOIS LOCKSERV UNLOCKSERV"
name="ServerLink"
privs="servers/auspex"
snomasks="Cc"
usermodes="*">
<class chanmodes="*"
commands="KILL GLINE KLINE ZLINE QLINE ELINE TLINE RLINE CHECK NICKLOCK NICKUNLOCK SHUN CLONES CBAN"
name="BanControl"
snomasks="Xx"
usermodes="*">
<class chanmodes="*"
commands="WALLOPS GLOBOPS"
name="OperChat"
privs="users/mass-message"
snomasks="Gg"
usermodes="*">
<class chanmodes="*"
commands="SETHOST SETIDENT SETIDLE CHGNAME CHGHOST CHGIDENT"
name="HostCloak"
privs="users/auspex"
usermodes="*">
<class name="RolePlay"
priv="channels/roleplay channels/roleplay-override">
<files motd="/etc/inspircd/custom/motd.txt" opermotd="/etc/inspircd/custom/oper.motd.txt">
<insane hostmasks="&env.INSANE_HOSTMASKS;" ipmasks="&env.INSANE_IPMASKS;" nickmasks="&env.INSANE_NICKMASKS;" trigger="&env.INSANE_TRIGGER;">
<limits maxaway="&env.MAX_AWAY;"
maxchan="&env.MAX_CHAN;"
maxgecos="&env.MAX_GECOS;"
maxhost="&env.MAX_HOST;"
maxident="&env.MAX_IDENT;"
maxkick="&env.MAX_KICK;"
maxmodes="&env.MAX_MODES;"
maxnick="&env.MAX_NICK;"
maxquit="&env.MAX_QUIT;"
maxtopic="&env.MAX_TOPIC;">
<maxlist chan="*" limit="&env.LIST_MAX_SIZE;">
<options allowmismatch="&env.ALLOW_MISMATCH;"
allowzerolimit="&env.ALLOW_ZERO_LIMIT;"
announcets="&env.ANNOUNCE_TS;"
cyclehosts="&env.CYCLE_HOST_TS;"
cyclehostsfromuser="&env.CYCLE_HOST_FROM_USER;"
defaultbind="auto"
defaultmodes="npst"
exemptchanops="censor:o filter:o nickflood:o nonick:v regmoderated:o"
fixedpart=""
fixedquit=""
hostintopic="&env.HOST_IN_TOPIC;"
invitebypassmodes="&env.INVITE_BYPASS_MODES;"
modesinlist="&env.MODES_IN_LIST;"
nosnoticestack="&env.NO_SNOTICE_STACK;"
pingwarning="&env.PING_WARNING;"
prefixpart="&env.PREFIX_PART;"
prefixquit="&env.PREFIX_QUIT;"
serverpingfreq="&env.SERVER_PING_FREQ;"
splitwhois="&env.SPLIT_WHOIS;"
suffixpart="&env.SUFFIX_PART;"
suffixquit="&env.SUFFIX_QUIT;"
syntaxhints="&env.SYNTAX_HINTS;"
xlinemessage="&env.XLINE_MESSAGE;">
<path datadir="/var/lib/inspircd"
configdir="/etc/inspircd"
runtimedir="/tmp"
moduledir="/usr/local/modules"
logdir="/var/log/inspircd">
<performance clonesonconnect="&env.CLONES_ON_CONNECT;"
netbuffersize="&env.NET_BUFFER_SIZE;"
quietbursts="&env.QUIET_BURSTS;"
softlimit="&env.SOFT_LIMIT;"
somaxconn="&env.SO_MAX_CONN;"
timeskipwarn="&env.TIME_SKIP_WARN;">
<pid file="/tmp/inspircd.pid">
<security allowcoreunload="&env.ALLOW_CORE_UNLOAD;"
announceinvites="&env.ANNOUNCE_INVITES;"
customversion="&env.CUSTOM_VERSION;"
flatlinks="&env.FLAT_LINKS;"
genericoper="&env.GENERIC_OPER;"
hidebans="&env.HIDE_BANS;"
hidemodes="&env.HIDE_MODES;"
hidesplits="&env.HIDE_SPLITS;"
hideulines="&env.HIDE_ULINES;"
maxtargets="&env.MAX_TARGETS;"
restrictbannedusers="&env.RESTRICT_BANNED_USERS;"
userstats="&env.USER_STATS;">
<type classes="SACommands OperChat BanControl HostCloak Shutdown ServerLink"
modes="+s +cCqQ"
name="NetAdmin"
vhost="&env.NET_ADMIN_VHOST;">
<type classes="SACommands OperChat BanControl HostCloak ServerLink"
name="GlobalOp"
vhost="&env.GLOBAL_OP_VHOST;">
<type classes="HostCloak"
name="Helper"
vhost="&env.HELPER_VHOST;">
<whowas groupsize="&env.WHOWAS_GROUP_SIZE;" maxgroups="&env.WHOWAS_MAX_GROUPS;" maxkeep="&env.WHOWAS_MAX_KEEP;">
<maxmind file="/etc/inspircd/GeoLite2-Country.mmdb">
<sts duration="5m"
host="&env.STS_HOST;"
port="&env.SSL_PORT;"
preload="yes">
<sasl requiressl="&env.SASL_REQUIRE_SSL;"
target="&env.SASL_TARGET;">
<alias format="*"
replace="SQUERY ChanServ :IDENTIFY $2 $3"
requires="CHANSERV"
text="ID"
uline="yes">
<alias replace="SQUERY NickServ :IDENTIFY $2"
requires="NICKSERV"
text="ID"
uline="yes">
<alias format=":IDENTIFY *"
replace="SQUERY NickServ :IDENTIFY $3-"
requires="NICKSERV"
text="NICKSERV"
uline="yes">
<alias channelcommand="yes"
replace="SQUERY ChanServ :$1 $chan $2-"
requires="CHANSERV"
text="CS"
uline="yes"
usercommand="no">
<alias replace="SQUERY $requirement :$2-"
requires="BOTSERV"
text="BOTSERV"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="CHANSERV"
text="CHANSERV"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="HOSTSERV"
text="HOSTSERV"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="MEMOSERV"
text="MEMOSERV"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="NICKSERV"
text="NICKSERV"
uline="yes">
<alias operonly="yes"
replace="SQUERY $requirement :$2-"
requires="OPERSERV"
text="OPERSERV"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="STATSERV"
text="STATSERV"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="BOTSERV"
text="BS"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="CHANSERV"
text="CS"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="HOSTSERV"
text="HS"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="MEMOSERV"
text="MS"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="NICKSERV"
text="NS"
uline="yes">
<alias operonly="yes"
replace="SQUERY $requirement :$2-"
requires="OPERSERV"
text="OS"
uline="yes">
<alias replace="SQUERY $requirement :$2-"
requires="STATSERV"
text="SS"
uline="yes">
<alias format="*"
replace="SQUERY $requirement :IDENTIFY $2-"
requires="NICKSERV"
text="ID"
uline="yes">
<alias format="*"
replace="SQUERY $requirement :IDENTIFY $2-"
requires="NICKSERV"
text="IDENTIFY"
uline="yes">
<alias format="*"
operonly="yes"
replace="SQUERY $requirement :GLOBAL $2-"
requires="GLOBAL"
text="GLOBAL"
uline="yes">
<auditorium opcansee="&env.AUDITORIUM_OP_CAN_SEE;"
opercansee="&env.AUDITORIUM_OPER_CAN_SEE;"
opvisible="&env.AUDITORIUM_OP_VISIBLE;">
<autodrop commands="CONNECT DELETE GET HEAD OPTIONS PATCH POST PUT TRACE">
<blockamsg action="&env.BLOCK_AMSG_ACTION;"
delay="&env.BLOCK_AMSG_DELAY;">
<blockhighlight ignoreextmsg="&env.BLOCK_HL_IGNORE_EXT_MESSAGE;"
minlen="&env.BLOCK_HL_MIN_LEN;"
minusernum="&env.BLOCK_HL_MIN_USER_NUM;"
reason="highlighting has been blocked (exceeded limits)"
stripcolor="&env.BLOCK_HL_STRIP_COLOR;">
<botmode forcenotice="&env.BOT_MODE_FORCE_NOTICE;">
<callerid cooldown="&env.CALLER_ID_COOL_DOWN;"
maxaccepts="&env.CALLER_ID_MAX_ACCEPTS;"
tracknick="&env.CALLER_ID_TRACK_NICK;">
<cban glob="&env.CBAN_GLOB;">
<chanfilter hidemask="&env.CHAN_FILTER_HIDE_MASK;"
maxlen="&env.CHAN_FILTER_MAX_LEN;"
notifyuser="&env.CHAN_FILTER_NOTIFY_USER;">
<chanhistory bots="&env.CHAN_HISTORY_BOTS;"
enableumode="&env.CHAN_HISTORY_ENABLE_UMODE;"
maxlines="&env.CHAN_HISTORY_MAX_LINES;"
prefixmsg="&env.CHAN_HISTORY_PREFIX_MSG;">
<chanlog channel="&env.OPER_CHANNEL;"
snomasks="&env.OPER_CHANNEL_SNOMASK;">
<channames allowrange="&env.CHAN_NAMES_ALLOW_RANGE;"
denyrange="CHAN_NAMES_DENY_RANGE;">
<channels opers="&env.CHANNELS_OPERS;"
users="&env.CHANNELS_USERS;">
<cloak method="hmac-sha256-addr"
key="&env.CLOAK_KEY;"
suffix="&env.CLOAK_SUFFIX;">
<connectban banmessage="filtered for connection hammering; wait 64 seconds to retry"
bootwait="&env.CONNECT_BAN_BOOT_WAIT;"
duration="&env.CONNECT_BAN_DURATION;"
ipv4cidr="&env.CONNECT_BAN_V4_PREFIX_LEN;"
ipv6cidr="&env.CONNECT_BAN_v6_PREFIX_LEN;"
splitwait="&env.CONNECT_BAN_SPLIT_WAIT;"
threshold="&env.CONNECT_BAN_THRESHOLD;">
<ctctags allowclientonlytags="&env.CTC_TAGS_ALLOW_CLIENT_ONLY_TAGS;">
<customprefix letter="q"
name="founder"
prefix="~"
rank="50000"
ranktoset="50000">
<customprefix letter="a"
name="admin"
prefix="&amp;"
rank="40000"
ranktoset="50000">
<customprefix letter="h"
name="halfop"
prefix="%"
rank="20000"
ranktoset="30000">
<customprefix change="yes"
name="op"
rank="30000"
ranktoset="30000">
<customprefix change="yes"
depriv="no"
name="voice"
rank="10000"
ranktoset="20000">
<deaf bypasschars="&env.DEAF_BYPASS_CHARS;"
bypasscharsuline="&env.DEAF_BYPASS_CHARS_ULINE;"
enableprivdeaf="&env.DEAF_ENABLE_PRIV_DEAF;"
privdeafuline="&env.DEAF_PRIV_DEAF_ULINE;">
<delaymsg allownotice="&env.DELAY_MSG_ALLOW_NOTICE;">
<disabled chanmodes="&env.DISABLE_CHMODES;"
commands="&env.DISABLE_COMMANDS;"
fakenonexistant="&env.DISABLE_FAKENONEXISTANT;"
usermodes="&env.DISABLE_USERMODES;">
<dnsbl action="zline"
domain="dnsbl.dronebl.org"
duration="5m"
name="DroneBL"
reason="DroneBL"
records="3,5,6,7,8,9,10,11,13,14,15,16,17,19"
timeout="5s"
type="record">
<dnsbl action="zline"
domain="rbl.efnetrbl.org"
duration="5m"
name="EFnet RBL"
reason="EFnet RBL"
records="1,2,3,4,5"
timeout="5s"
type="record">
<dnsbl action="zline"
domain="torexit.dan.me.uk"
duration="5m"
name="torexit.dan.me.uk"
reason="TOR Exit"
records="100"
timeout="5s"
type="record">
<exemptfromfilter target="ALIS">
<exemptfromfilter target="BOTSERV">
<exemptfromfilter target="CHANFIX">
<exemptfromfilter target="CHANSERV">
<exemptfromfilter target="GAMESERV">
<exemptfromfilter target="GLOBAL">
<exemptfromfilter target="GROUPSERV">
<exemptfromfilter target="HELPSERV">
<exemptfromfilter target="HOSTSERV">
<exemptfromfilter target="INFOSERV">
<exemptfromfilter target="MEMOSERV">
<exemptfromfilter target="NICKSERV">
<exemptfromfilter target="OPERSERV">
<exemptfromfilter target="PROXYSCAN">
<exemptfromfilter target="RPGSERV">
<exemptfromfilter target="SASLSERV">
<exemptfromfilter target="STATSERV">
<hidechans affectsopers="&env.HIDECHANS_AFFECTS_OPERS;">
<hidelist mode="filter"
rank="30000">
<hidelist mode="invex"
rank="0">
<hidemode mode="ban"
rank="10000">
<hostname charmap="&env.HOSTNAME_CHAR_MAP;">
<httpd timeout="&env.HTTPD_TIMEOUT;">
<inviteexception bypasskey="&env.INVITE_EXCEPTION_BYPASS_KEY;">
<ircv3 accountnotify="&env.IRCV3_ACCOUNT_NOTIFY;"
awaynotify="&env.IRCV3_AWAY_NOTIFY;"
extendedjoin="&env.IRCV3_EXTENDED_JOIN;">
<joinflood bootwait="&env.JOIN_FLOOD_BOOT_WAIT;"
duration="&env.JOIN_FLOOD_DURATION;"
splitwait="&env.JOIN_FLOOD_SPLIT_WAIT;">
<knock notify="&env.KNOCK_NOTIFY;">
<messageflood notice="&env.MESSAGE_FLOOD_NOTICE;"
privmsg="&env.MESSAGE_FLOOD_PRIVMSG;"
tagmsg="&env.MESSAGE_FLOOD_TAG_MSG;">
<monitor maxentries="&env.MONITOR_MAX_ENTRIES;">
<muteban notifyuser="&env.MUTE_BAN_NOTIFY_USER;">
<nickdelay delay="&env.NICK_DELAY;"
hint="&env.NICK_DELAY_HINT;">
<nickflood duration="&env.NICK_FLOOD_DURATION;">
<noctcp enableumode="&env.NO_CTCP_ENABLE_UMODE;">
<ojoin notice="&env.OJOIN_NOTICE;"
op="&env.OJOIN_OP;"
prefix="&env.OJOIN_PREFIX;">
<operlog tosnomask="&env.OPER_TO_SNOMASK;">
<opermotd file="/etc/inspircd/oper.motd.txt"
onoper="yes">
<operprefix prefix="&env.OPER_PREFIX;">
<override enableumode="&env.OVERRIDE_ENABLE_UMODE;"
noisy="&env.OVERRIDE_NOISY;"
requirekey="&env.OVERRIDE_REQUIRE_KEY;">
<penalty name="HELPOP"
value="60">
<permchanneldb filename="/var/lib/inspircd/permchannels.db"
listmodes="&env.PERMCHAN_LIST_MODES;"
saveperiod="&env.PERMCHANDB_SAVE_PERIOD;">
<remove protectedrank="50000"
supportnokicks="&env.REMOVE_SUPPORT_NO_KICKS;">
<repeat maxbacklog="&env.REPEAT_MAX_BACK_LOG;"
maxdistance="&env.REPEAT_MAX_DISTANCE;"
maxlines="&env.REPEAT_MAX_LINES;"
maxtime="&env.REPEAT_MAX_TIME;"
size="&env.REPEAT_MAX_SIZE;">
<rline engine="&env.RLINE_ENGINE;"
matchonnickchange="&env.RLINE_MATCH_ON_NICK_CHANGE;"
zlineonmatch="&env.RLINE_ZLINE_ON_MATCH;">
<rotatelog period="&env.ROTATE_LOG_PERIOD;">
<securelist exemptregistered="&env.SECURE_LIST_EXEMPT_REGISTERED;"
showmsg="&env.SECURE_LIST_SHOW_MSG;"
waittime="&env.SECURE_LIST_WAIT_TIME;">
<showwhois opersonly="&env.SHOW_WHOIS_OPER_ONLY;"
showfromopers="&env.SHOW_WHOIS_FROM_OPERS;">
<shun affectopers="&env.SHUN_AFFECT_OPERS;"
allowconnect="&env.SHUN_ALLOW_CONNECT;"
allowtags="&env.SHUN_ALLOW_TAGS;"
cleanedcommands="&env.SHUN_CLEANED_COMMANDS;"
enabledcommands="&env.SHUN_ENABLED_COMMANDS;"
notifyuser="&env.SHUN_NOTIFY_USER;">
<silence exemptuline="&env.SILENCE_EXEMPT_ULINE;"
maxentries="&env.SILENCE_MAX_ENTRIES;">
<sslinfo operonly="&env.SSL_INFO_OPER_ONLY;">
<sslmodes enableumode="&env.SSL_ENABLE_UMODE;">
<stdregex type="&env.REGEX_TYPE;">
<svshold silent="&env.SVS_HOLD_SILENT;">
<timedbans sendnotice="&env.TIMED_BANS_SEND_NOTICE;">
<uline server="&env.SERVICES_ULINE;"
silent="no">
<waitpong killonbadreply="&env.WAIT_PONG_KILL_ON_BAD_REPLY;"
sendsnotice="&env.WAIT_PONG_SEND_NOTICE;">
<watch maxwatch="&env.WATCH_MAX;">
<wsorigin allow="&env.WS_ORIGIN_ALLOW;">
<xlinedb filename="/var/lib/inspircd/xline.db"
saveperiod="&env.XLINEDB_SAVE_PERIOD;">
<zombie cleansplit="&env.ZOMBIE_CLEAN_SPLIT;"
dirtysplit="&env.ZOMBIE_DIRTY_SPLIT;"
maxzombies="&env.ZOMBIE_MAX;"
serverzombietime="&env.ZOMBIE_SERVER_TIME;">
<alias text="HELPOP" replace="HELP $2-">