# Change the options to suit your network #
# #
# $Id$
-# #
+# #
# ____ _ _____ _ _ ____ _ _ _ #
# | _ \ ___ __ _ __| | |_ _| |__ (_)___ | __ )(_) |_| | #
# | |_) / _ \/ _` |/ _` | | | | '_ \| / __| | _ \| | __| | #
# Syntax is as follows: #
#<include file="file.conf"> #
#<include executable="/path/to/executable parameters"> #
-# #
-# Executable Include Example: #
-#<include executable="/usr/bin/wget -O - http://mynet.net/inspircd.conf">
+# #
+# Executable Include Example: #
+#<include executable="/usr/bin/wget -q -O - http://mynet.net/inspircd.conf">
# #
# Here is where you enter the information about your server. #
# #
-<server
- # name: Hostname of your server. Does not need to be valid.
+<server
+ # name: Hostname of your server. Does not need to resolve, but
+ # does need to be correct syntax (something.somethingelse.tld).
name="penguin.omega.org.za"
# description: Server description. Spaces are allowed.
description="Waddle World"
+ # id: The SID to use for this server. This should not be uncommented
+ # unless there is a SID conflict. This must be three characters long.
+ # The first character must be a digit [0-9], the remaining two chars
+ # may be letters [A-Z] or digits.
+ #id="97K"
+
# network: Network name given on connect to clients.
# Should be the same on all servers on the network and
# not contain spaces.
# nick, and email address. #
# #
-<admin
+<admin
# name: Real Name
name="Johnny English"
# PLEASE NOTE: If you have build InspIRCd with IPv6 support, you MUST #
# specify a bind address if you want the IRCd to bind to a IPv4 IP. #
-<bind
+<bind
# address: IP address to bind to if the box that you are hosting
# on has more than one IP, else the ircd will try to bind to all
- # IP's on the box if this is not defined
- address=""
+ # IP's on the box if this is not defined.
+ address=""
- # port: Port for users and/or servers to be able to connect to.
+ # port: Port for users or servers to be able to connect to.
# you can select multiple ports by separating them
# with a - character like the example below.
- port="6697"
+ port="6697"
# type: Type of bind block this is. It can either be clients or
# servers. Whichever you select will be the only type able to connect
# to this bind section.
- type="clients"
+ type="clients"
# ssl: If you want this bind section to use SSL, define either
# gnutls or openssl here. The appropriate SSL modules must be loaded
# for ssl to work. If you do not want this bind section to support ssl,
- # just remove this option.
- ssl="gnutls">
+ # just remove or comment out this option.
+ ssl="gnutls"
+ >
<bind address="" port="6660-6669" type="clients">
# When linking servers, the openssl and gnutls transports are largely
-# link-compatible and can be used alongside each other or either/or
+# link-compatible and can be used alongside each other
# on each end of the link without any significant issues.
# Transports can only be used on server blocks.
# Supported Transports are: "zip", "openssl" and "gnutls".
# need this ability should know the die and restart password. #
# #
-<power
+<power
+ # hash: what hash these passwords are hashed with. requires the module
+ # for selected hash (m_md5.so, m_sha256.so or m_ripemd160.so) be
+ # loaded and the password hashing module (m_password_hash.so)
+ # loaded. Options here are: "md5", "sha256" and "ripemd160".
+ # Optional, but recommended. Create hashed password with:
+ # /mkpasswd <hash> <password>
+ #hash="sha256"
- # diepass: Password for opers to use if they need to shutdown (die)
- # a server.
- diepass=""
+ # diepass: Password for opers to use if they need to shutdown (die)
+ # a server.
+ diepass=""
- # restartpass: Password for opers to use if they need to restart
- # a server.
- restartpass="">
+ # restartpass: Password for opers to use if they need to restart
+ # a server.
+ restartpass="">
#-#-#-#-#-#-#-#-#-#- CONNECTIONS CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#
# You may have as many of these as you require. To allow/deny all #
# connections, use a '*' or 0.0.0.0/0. #
# #
+# -- It is important to note that connect tags are read from the -- #
+# TOP DOWN. This means that you should have more specific deny #
+# and allow tags at the top, progressively more general, followed #
+# by a <connect allow="*" (should you wish to have one). #
+# #
+# #
+<connect
+ # deny: Will not let people connect if they have specified host/IP.
+ deny="69.254.*">
+
+<connect deny="3ffe::0/32">
+
+<connect
+ # name: Name to use for this connect block. Mainly used for
+ # connect class inheriting.
+ name="secret"
+
+ # parent: This setting is to specify if this connect class
+ # inherits settings from any other. Put the other class's name
+ # in here to use its settings as a template - for example, if
+ # you only want to adjust sendq and a password
+ parent="main"
-<connect
# allow: What IP addresses/hosts to allow for this block.
- allow="196.12.*"
+ allow="196.12.*"
+
+ # hash: what hash this password is hashed with. requires the module
+ # for selected hash (m_md5.so, m_sha256.so or m_ripemd160.so) be
+ # loaded and the password hashing module (m_password_hash.so)
+ # loaded. Options here are: "md5", "sha256" and "ripemd160".
+ # Optional, but recommended. Create hashed password with:
+ # /mkpasswd <hash> <password>
+ #hash="sha256"
# password: Password to use for this block/user(s)
- password="secret"
+ password="secret"
+
+ # maxchans: Maximum number of channels a user in this class
+ # be in at one time. This overrides every other maxchans setting.
+ #maxchans="30"
+
+ # timeout: How long (in seconds) the server will wait before
+ # disconnecting a user if they do not do anything on connect.
+ # (Note, this is a client-side thing, if the client does not
+ # send /nick, /user or /pass)
+ timeout="10"
+
+ # pingfreq: How often (in seconds) the server tries to ping connecting clients.
+ pingfreq="120"
+
+ # sendq: Amount of data (in bytes) that the server is allowed to send to the user
+ # before they are dropped.
+ sendq="262144"
+
+ # recvq: Amount of data (in bytes) allowed in a clients queue before they are dropped.
+ recvq="8192"
+
+ # localmax: Maximum local connections per IP (or CIDR mask, see below).
+ localmax="3"
+
+ # globalmax: Maximum global (network-wide) connections per IP (or CIDR mask, see below).
+ globalmax="3"
+
+ # useident: Defines if users in this class MUST respond to a ident query or not.
+ useident="no"
+
+ # limit: How many users are allowed in this class
+ limit="5000"
+
+ # modes: Usermodes that are set on users in this block on connect.
+ # Enabling this option requires that the m_conn_umodes module be loaded.
+ # This entry is highly recommended to use for/with IP Cloaking/masking.
+ # For the example to work, this also requires that the m_cloaking
+ # module be loaded as well.
+ modes="+x"
# port: What port this user is allowed to connect on. (optional)
# The port MUST be set to listen in the bind blocks above.
port="6667">
-<connect
+<connect
+ # name: Name to use for this connect block. Mainly used for
+ # connect class inheriting.
+ name="main"
+
# allow: What IP addresses/hosts to allow for this block.
allow="*"
# disconnecting a user if they do not do anything on connect.
# (Note, this is a client-side thing, if the client does not
# send /nick, /user or /pass)
- timeout="60"
-
- # flood: After x lines (flood) in x seconds (see threshold)
- # the user is disconnected for flooding.
- flood="20"
+ timeout="10"
- # threshold: In how many seconds can a user flood x lines (see flood)
- # before they are disconnected for excess flood.
- threshold="1"
-
- # pingfreq: How often the server tries to ping connecting clients/servers.
+ # pingfreq: How often (in seconds) the server tries to ping connecting clients.
pingfreq="120"
# sendq: Amount of data that the server is allowed to send to the user
# globalmax: Maximum global (network-wide) connections per IP.
globalmax="3"
+ # useident: Defines if users in this class must respond to a ident query or not.
+ useident="no"
+
# limit: How many users are allowed in this class
- limit="5000"
+ limit="5000"
# modes: Usermodes that are set on users in this block on connect.
# Enabling this option requires that the m_conn_umodes module be loaded.
# This entry is highly recommended to use for/with IP Cloaking/masking.
+ # For the example to work, this also requires that the m_cloaking
+ # module be loaded as well.
modes="+x">
-<connect
- # deny: Will not let people connect if they have specified host/IP.
- deny="69.254.*">
-<connect deny="3ffe::0/32">
#-#-#-#-#-#-#-#-#-#-#-#- CIDR CONFIGURATION -#-#-#-#-#-#-#-#-#-#-#-
# #
# throttle limits across a CIDR range. (A CIDR range is a group of #
# IPs, for example, the CIDR range 192.168.1.0-192.168.1.255 may be #
# represented as 192.168.1.0/24). This means that abuse across an ISP #
-# is detected and curtailed much easier. #
+# is detected and curtailed much easier. Here is a good chart that #
+# shows how many IPs the different CIDRs correspond to: #
+# http://en.wikipedia.org/wiki/CIDR#Prefix_aggregation #
# #
<cidr
- # ipv4clone: specifies how many bits of an IP address should be
- # looked at for clones. The default only looks for clones on a
- # single IP address of a user. You do not want to set this
- # extremely low. (Values are 0-32).
- ipv4clone="32"
-
- # ipv6clone: specifies how many bits of an IP address should be
- # looked at for clones. The default only looks for clones on a
- # single IP address of a user. You do not want to set this
- # extremely low. (Values are 0-128).
- ipv6clone="128">
+ # ipv4clone: specifies how many bits of an IP address should be
+ # looked at for clones. The default only looks for clones on a
+ # single IP address of a user. You do not want to set this
+ # extremely low. (Values are 0-32).
+ ipv4clone="32"
+
+ # ipv6clone: specifies how many bits of an IP address should be
+ # looked at for clones. The default only looks for clones on a
+ # single IP address of a user. You do not want to set this
+ # extremely low. (Values are 0-128).
+ ipv6clone="128">
# This file has all the information about oper classes, types and o:lines.
# You *MUST* edit it.
#-#-#-#-#-#-#-#-#-#- MISCELLANEOUS CONFIGURATION -#-#-#-#-#-#-#-#-#-#
# #
-<files
+<files
# motd: Path to your motd file. Path is relative to the conf directory.
motd="inspircd.motd.example"
# rules: Path to your rules file. Path is relative to the conf directory.
+ # This is optional and is displayed when a user does /rules on the network.
rules="inspircd.rules.example">
#-#-#-#-#-#-#-#-#-#-#-# MAXIMUM CHANNELS -#-#-#-#-#-#-#-#-#-#-#-#-#-#-#
# #
-<channels
+<channels
# users: Maximum number of channels a user can be in at once.
users="20"
# If these values are not defined, InspIRCd uses the default DNS resolver
# of your system.
-<dns
+<dns
# server: DNS server to use to attempt to resolve IP's to hostnames.
- server="127.0.0.1"
+ # in most cases, you won't need to change this, as inspircd will
+ # automatically detect the nameserver depending on /etc/resolv.conf
+ # (or, on windows, your set nameservers in the registry.)
+ # Note that this must be an IP address and not a hostname, because
+ # there is no resolver to resolve the name until this is defined!
+ #
+ # server="127.0.0.1"
# timeout: seconds to wait to try to resolve DNS/hostname.
timeout="5">
# Note that any disabled commands take effect only after the user has #
# 'registered' (e.g. after the initial USER/NICK/PASS on connection) #
# so for example disabling NICK will not cripple your network. #
+# #
+# You can also define if you want to disable any channelmodes #
+# or usermodes from your users. #
# #
# `fakenonexistant' will make the ircd pretend that nonexistant #
# commands simply don't exist to non-opers ("no such command"). #
# Settings to define which features are usable on your server. #
# #
-<options
+<options
# prefixquit: What (if anything) a users' quit message
# should be prefixed with.
prefixquit="Quit: "
suffixpart="\""
# syntaxhints: If enabled, if a user fails to send the correct parameters
- # for a command, the ircd will give back soome help text of what
- # the correct parameters are
+ # for a command, the ircd will give back some help text of what
+ # the correct parameters are.
syntaxhints="no"
# cyclehosts: If enabled, when a user gets a host set, it will cycle
# ircumsgprefix: Use undernet-style message prefixing for NOTICE and
# PRIVMSG. If enabled, it will add users' prefix to the line, if not,
- # it will just message the user.
+ # it will just message the user normally.
ircumsgprefix="no"
- # announcets: If set to yes, when the TS on a channel changes, all users
+ # announcets: If set to yes, when the TimeStamp on a channel changes, all users
# in channel will be sent a NOTICE about it.
announcets="yes"
# hostintopic: If enabled, channels will show the host of the topicsetter
- # in the topic.
+ # in the topic. If set to no, it will only show the nick of the topicsetter.
hostintopic="yes"
# pingwarning: If a server does not respond to a ping within x seconds,
moronbanner="You're banned! Email haha@abuse.com with the ERROR line below for help."
# exemptchanops: Defines what channel modes channel operators are
- # exempt from. Supported modes are +SfFgNc. Defaults to off.
+ # exempt from. Supported modes are +TCGfcSFBgN. Defaults to off.
exemptchanops=""
# invitebypassmodes: This allows /invite to bypass other channel modes.
# (Such as +k, +j, +l, etc)
- invitebypassmodes="yes">
+ invitebypassmodes="yes">
#-#-#-#-#-#-#-#-#-#-#-# PERFORMANCE CONFIGURATION #-#-#-#-#-#-#-#-#-#-#
# #
-<performance
+<performance
# netbuffersize: Size of the buffer used to recieve data from clients.
# The ircd may only read this amount of text in 1 go at any time.
netbuffersize="10240"
softlimit="12800"
# quietbursts: When syncing or splitting from a network, a server
- # can generate a lof ot connect and quit messages to opers with
+ # can generate a lot of connect and quit messages to opers with
# +C and +Q snomasks. Setting this to yes squelches those messages,
# which makes it easier for opers, but degrades the functionality of
# bots like BOPM during netsplits.
quietbursts="yes"
- # nouserdns: If enabled, no user DNS lookups will be performed on
+ # nouserdns: If enabled, no DNS lookups will be performed on
# connecting users. This can save a lot of resources on very busy servers.
nouserdns="no">
#-#-#-#-#-#-#-#-#-#-#-# SECURITY CONFIGURATION #-#-#-#-#-#-#-#-#-#-#-#
# #
-<security
+<security
# announceinvites: If this option is set, then invites are announced
- # to the channel when a user invites another user. If you consider
- # this to be unnecessary noise, set this to 'none'.
+ # to the channel when a user invites another user. If you consider
+ # this to be unnecessary noise, set this to 'none'.
# To announce to all ops, set this to 'ops' and to announce to all users,
# set the value to 'all'. The value 'dynamic' will make the messages
# go to every user who has power of INVITE on the channel. This
# as it may break some functionality in popular clients such as mIRC.
hidemodes="eI"
- # disablehmac: If you are linking your InspIRCd to versions older
- # than 1.1.6 (NOT RECOMMENDED), then you can specify this option and
- # set it to yes. 1.1.6 and above support HMAC and challenge-response
- # for password authentication. These can greatly enhance security of your
- # server-to-server connections when you are not using SSL.
- # It is highly recommended to keep this set to no.
- disablehmac="no"
-
- # hideulines: If this value is set to yes, U-lined server will
+ # hideulines: If this value is set to yes, U-lined servers will
# be hidden from non-opers in /links and /map.
hideulines="no"
# hidebans: If this value is set to yes, when a user is banned ([gkz]lined)
# only opers will see the ban message when the user is removed
- # from the server..
+ # from the server.
hidebans="no"
# hidekills: If defined, replaces who set a /kill with a custom string.
# the ircd. This may be set for security reasons or vanity reasons.
customversion=""
- # operspywhois: If this is set, when a oper /whois 's a user,
+ # operspywhois: If this is set to yes, when a oper /whois 's a user,
# it will show all channels the user is in including +s and +p
# channels.
operspywhois="no"
# runasuser: If this is set, InspIRCd will attempt to setuid
# to run as this user- allows binding of ports under 1024.
- # NOT SUPPORTED/NEEDED UNDER WIINDOWS.
+ # NOT SUPPORTED/NEEDED UNDER WINDOWS.
#runasuser=""
# runasgroup: If this is set, InspIRCd will attempt to set group
- # to run under this group, which allowsof ports under 1024
- # NOT SUPPORTED/NEEDED UNDER WIINDOWS.
+ # to run under this group, which allows binding of ports under 1024
+ # NOT SUPPORTED/NEEDED UNDER WINDOWS.
#runasgroup=""
- # restrictbannedusers: If this is set, InspIRCd will not allow users
+ # restrictbannedusers: If this is set to yes, InspIRCd will not allow users
# banned on a channel to change nickname or message channels they are
# banned on.
- restrictbannedusers="yes"
+ restrictbannedusers="yes"
+
+ # genericoper: Setting this value to yes makes all opers on this server
+ # appear as 'is an IRC operator' in their WHOIS, regardless of their
+ # oper type, however oper types are still used internally. This only
+ # affects the display in WHOIS.
+ genericoper="no"
# userstats: /stats commands that users can run (opers can run all).
userstats="Pu">
# defined to account for a null terminator on the end of the text. #
# #
# These values should match network-wide otherwise issues will occur. #
+# #
+# The highest safe value you can set any of these options to is 500, #
+# but it is recommended that you keep them somewhat #
+# near their defaults (or lower). #
-<limits
+<limits
# maxnick: Maximum length of a nickname.
maxnick="31"
# maxgecos: Maximum length of a GECOS (realname).
maxgecos="128"
- # maxaway: Maximum length of an away messahe.
+ # maxaway: Maximum length of an away message.
maxaway="200">
# your server. #
# #
-<whowas
+<whowas
# groupsize: Maximum entries per nick shown when performing
# a /whowas nick.
groupsize="10"
# maxgroups: Maximum number of nickgroups that can be added to
# the list so that /whowas does not use a lot of resources on
- # large networks.
+ # large networks.
maxgroups="100000"
# maxkeep: Maximum time a nick is kept in the whowas list
- # before being pruned. Time may be specified in seconds,
+ # before being pruned. Time may be specified in seconds,
# or in the following format: 1y2w3d4h5m6s. Minimum is
# 1 hour.
- maxkeep="3d">
+ maxkeep="3d">
#-#-#-#-#-#-#-#-#-#-#-#-#-#- BAN OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#-#
# #
# Your server. #
# #
-<badip
+<badip
# ipmask: IP range to ban. Wildcards and CIDR can be used.
ipmask="69.69.69.69"
# reason: Reason to display when user is disconnected.
reason="No porn here thanks.">
-<badnick
- # nick: Nick to disallow. Wildcards are supported.
- nick="ChanServ"
+<badnick
+ # nick: Nick to disallow. Wildcards are supported.
+ nick="ChanServ"
+
+ # reason: Reason to display on /nick.
+ reason="Reserved For Services">
- # reason: Reason to display on /nick.
- reason="Reserved For Services">
<badnick nick="NickServ" reason="Reserved For Services">
<badnick nick="OperServ" reason="Reserved For Services">
<badnick nick="MemoServ" reason="Reserved For Services">
-<badhost
- # host: ident@hostname to ban.
- # Wildcards and CIDR (if you specify an IP) can be used.
- host="*@hundredz.n.hundredz.o.1337.kiddies.com"
+<badhost
+ # host: ident@hostname to ban.
+ # Wildcards and CIDR (if you specify an IP) can be used.
+ host="*@hundredz.n.hundredz.o.1337.kiddies.com"
+
+ # reason: Reason to display when user is disconnected
+ reason="Too many 1337 kiddiots">
- # reason: Reason to display when user is disconnected
- reason="Too many 1337 kiddiots">
-<badhost host="*@localhost" reason="No irc from localhost!">
+<badhost host="root@*" reason="Don't irc as root!">
<badhost host="*@172.32.0.0/16" reason="This subnet is bad.">
# exception: Hosts that are exempt from [kgz]lines.
-<exception
- # host: ident@hostname to exempt.
- # Wildcards and CIDR (if you specify an IP) can be used.
- host="*@ircop.host.com"
+<exception
+ # host: ident@hostname to exempt.
+ # Wildcards and CIDR (if you specify an IP) can be used.
+ host="*@ircop.host.com"
- # reason: Reason for exception. Only shown in /stats e
- reason="Opers hostname">
+ # reason: Reason for exception. Only shown in /stats e
+ reason="Opers hostname">
#-#-#-#-#-#-#-#-#-#-#- INSANE BAN OPTIONS -#-#-#-#-#-#-#-#-#-#-#-#-#-#
# #
# allow any qline. #
# #
-<insane
- # hostmasks: Allow bans with insane hostmasks (over-reaching bans)
- hostmasks="no"
+<insane
+ # hostmasks: Allow bans with insane hostmasks. (over-reaching bans)
+ hostmasks="no"
- # ipmasks: Allow bans with insane ipmasks (over-reaching bans)
- ipmasks="no"
+ # ipmasks: Allow bans with insane ipmasks. (over-reaching bans)
+ ipmasks="no"
- # nickmasks: Allow bans with insane nickmasks (over-reaching bans)
- nickmasks="no"
+ # nickmasks: Allow bans with insane nickmasks. (over-reaching bans)
+ nickmasks="no"
# trigger: What percentage of users on the network to trigger
# specifying an insane ban as. The default is 95.5%, which means
# if you have a 1000 user network, a ban will not be allowed if it
- # will be banning 955 or more users.
+ # will be banning 955 or more users.
trigger="95.5">
# |_| \_\___|\__,_|\__,_| |_| |_| |_|_|___/ |____/|_|\__(_) #
# #
# Well done, you've reached the end of the basic configuration, your #
-# ircd should now start if you want to try it out! (./inspircd start) #
+# ircd should now start if you want to try it out! (./inspircd start) #
# #
# We now suggest you read and edit modules.conf, as modules are what #
# provide almost all the features of InspIRCd. :) #
# #
# The default does nothing -- we include it for simplicity for you. #
-<include file="modules.conf">
+<include file="modules.conf.example">
#########################################################################