mirror of
https://github.com/NishiOwO/ircservices5.git
synced 2025-04-21 08:44:38 +00:00
2550 lines
93 KiB
HTML
2550 lines
93 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv=Content-Type content="text/html; charset=iso-8859-1">
|
|
<title>IRC Services Manual - Appendix A. List of all configuration directives</title>
|
|
</head>
|
|
|
|
<body>
|
|
<a name=top></a>
|
|
<h1 align=center>IRC Services Manual</h1>
|
|
|
|
<h2 align=center>Appendix A. List of all configuration directives</h2>
|
|
|
|
<p>A-1. <a href="#1">Core configuration directives
|
|
(<tt>ircservices.conf</tt>)</a>
|
|
<br>A-2. <a href="#2">Module configuration directives
|
|
(<tt>modules.conf</tt>)</a>
|
|
<br> <a href="#protocol/(insert_protocol_name_here)">protocol/*</a>
|
|
<br> <a href="#encryption/md5">encryption/md5</a>
|
|
<br> <a href="#mail/main">mail/main</a>
|
|
<br> <a href="#mail/sendmail">mail/sendmail</a>
|
|
<br> <a href="#mail/smtp">mail/smtp</a>
|
|
<br> <a href="#operserv/main">operserv/main</a>
|
|
<br> <a href="#operserv/akill">operserv/akill</a>
|
|
<br> <a href="#operserv/news">operserv/news</a>
|
|
<br> <a href="#operserv/sessions">operserv/sessions</a>
|
|
<br> <a href="#operserv/sline">operserv/sline</a>
|
|
<br> <a href="#nickserv/main">nickserv/main</a>
|
|
<br> <a href="#nickserv/access">nickserv/access</a>
|
|
<br> <a href="#nickserv/autojoin">nickserv/autojoin</a>
|
|
<br> <a href="#nickserv/link">nickserv/link</a>
|
|
<br> <a href="#nickserv/mail-auth">nickserv/mail-auth</a>
|
|
<br> <a href="#chanserv/main">chanserv/main</a>
|
|
<br> <a href="#memoserv/main">memoserv/main</a>
|
|
<br> <a href="#memoserv/forward">memoserv/forward</a>
|
|
<br> <a href="#memoserv/ignore">memoserv/ignore</a>
|
|
<br> <a href="#statserv/main">statserv/main</a>
|
|
<br> <a href="#httpd/main">httpd/main</a>
|
|
<br> <a href="#httpd/auth-ip">httpd/auth-ip</a>
|
|
<br> <a href="#httpd/auth-password">httpd/auth-password</a>
|
|
<br> <a href="#httpd/dbaccess">httpd/dbaccess</a>
|
|
<br> <a href="#httpd/debug">httpd/debug</a>
|
|
<br> <a href="#httpd/redirect">httpd/redirect</a>
|
|
<br> <a href="#httpd/top-page">httpd/top-page</a>
|
|
<br> <a href="#misc/devnull">misc/devnull</a>
|
|
<br> <a href="#misc/helpserv">misc/helpserv</a>
|
|
<br> <a href="#misc/xml-export">misc/xml-export</a>
|
|
<br> <a href="#misc/xml-import">misc/xml-import</a>
|
|
<p align=right><font size=-1><a href=index.html>Table of Contents</a></font>
|
|
|
|
|
|
<p><hr>
|
|
|
|
<a name=1></a>
|
|
<h2 align=center>Core configuration directives
|
|
(<tt>ircservices.conf</tt>)</h2>
|
|
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>Configuration file control</h3>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<a name="IncludeFile"></a>
|
|
<p><ul><li>
|
|
<tt><b>IncludeFile</b> <i>filename</i></tt> [OPTIONAL]
|
|
<p>Specifies another file from which to read configuration directives.
|
|
The file is processed as if its contents were included in place of
|
|
the IncludeFile directive. If a relative pathname is given, it is
|
|
relative to the Services data directory. This directive may be used
|
|
in both ircservices.conf and modules.conf.
|
|
|
|
<p>Note that IncludeFile directives may only be nested to a depth of
|
|
100 levels, in order to prevent infinite loops.
|
|
|
|
<p>Example: <tt>IncludeFile "local.conf"</tt>
|
|
</ul>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>Remote server configuration</h3>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<a name="RemoteServer"></a>
|
|
<p><ul><li>
|
|
<tt><b>RemoteServer</b> <i>hostname</i> <i>port</i> <i>password</i></tt> [REQUIRED]
|
|
<p>Specifies the remote server hostname and port. The hostname may be
|
|
either a standard Internet hostname or dotted-quad numeric address;
|
|
the port number must be an integer between 1 and 65535 inclusive.
|
|
The password is a string which should be enclosed in double quotes
|
|
if it contains any spaces (or just for clarity). Make sure to
|
|
uncomment the directive (remove the leading "#") before running
|
|
Services.
|
|
|
|
<p>The remote server and port may be overridden at runtime with the
|
|
-remote command-line option. The password may not be set at runtime.
|
|
|
|
<p>Example: <tt>RemoteServer 127.0.0.1 6667 "password"</tt>
|
|
</ul>
|
|
|
|
<a name="LocalAddress"></a>
|
|
<p><ul><li>
|
|
<tt><b>LocalAddress</b> <i>hostname</i> [<i>port</i>]</tt> [OPTIONAL]
|
|
<p>Specifies the local address to bind to before connecting to the
|
|
remote server. This may be useful on multihomed hosts. The hostname
|
|
and port number are specified the same way as with the RemoteServer
|
|
directive. If this is not specified, Services will let the operating
|
|
system choose the local address. If only a hostname is specified,
|
|
Services will bind to that address but let the operating system
|
|
choose the local port number.
|
|
|
|
<p>If you don't know what this means or don't need to use it, just leave
|
|
the directive commented out.
|
|
|
|
<p>Example: <tt>LocalAddress host.name.here</tt>
|
|
<br>Example: <tt>LocalAddress host.name.here 6677</tt>
|
|
</ul>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>Services identification</h3>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<a name="ServerName"></a>
|
|
<p><ul><li>
|
|
<tt><b>ServerName</b> <i>name</i></tt> [REQUIRED]
|
|
<p>Specifies the IRC server name which Services should use when it
|
|
connects to the network.
|
|
|
|
<p>Example: <tt>ServerName "services.example.net"</tt>
|
|
</ul>
|
|
|
|
<a name="ServerDesc"></a>
|
|
<p><ul><li>
|
|
<tt><b>ServerDesc</b> <i>text</i></tt> [REQUIRED]
|
|
<p>Specifies the text which should appear as the server's information in
|
|
/whois and similar queries.
|
|
|
|
<p>Example: <tt>ServerDesc "Services for IRC Networks"</tt>
|
|
</ul>
|
|
|
|
<a name="ServiceUser"></a>
|
|
<p><ul><li>
|
|
<tt><b>ServiceUser</b> <i>usermask</i></tt> [REQUIRED]
|
|
<p>Specifies the user@host mask which should be used by the Services
|
|
pseudoclients.
|
|
|
|
<p>Example: <tt>ServiceUser "services@example.net"</tt>
|
|
</ul>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>Unix group and umask to use</h3>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<a name="RunGroup"></a>
|
|
<p><ul><li>
|
|
<tt><b>RunGroup</b> <i>group</i></tt> [OPTIONAL]
|
|
<p>Specify the group which Services should run as. <tt><i>group</i></tt> can be
|
|
either a group name or an equals sign ("=") followed by a group ID.
|
|
If not specified, Services will use the group ID it is started with.
|
|
Note that Unix setgid permission on the executable file will do the
|
|
same thing, but the setgid permission bit is cleared whenever the
|
|
file is modified, while this setting will always be used (if the
|
|
system permits it) when Services is started.
|
|
|
|
<p>Example: <tt>RunGroup services</tt>
|
|
<br>Example: <tt>RunGroup =65534 # A common value for the "nogroup" group</tt>
|
|
</ul>
|
|
|
|
<a name="Umask"></a>
|
|
<p><ul><li>
|
|
<tt><b>Umask</b> <i>umask</i></tt> [RECOMMENDED]
|
|
<p>Sets the umask (file creation mask) for Services. This mask is
|
|
applied to all data files created by Services, including database
|
|
files (which are recreated on every database update) and the process
|
|
ID file (PIDFilename, below), and indicates which file permission
|
|
bits are NOT to be set on those files as an octal value. Common
|
|
values are given in the examples below. If not specified, the umask
|
|
in place when Services is started will be used.
|
|
|
|
<p>Example: <tt>Umask 077 # Disallows access to all but file owner
|
|
# (recommended when RunGroup is not set)</tt>
|
|
<br>Example: <tt>Umask 007 # Allows access to members of file group as well
|
|
# (recommended when RunGroup is set)</tt>
|
|
</ul>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>Services data filenames</h3>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<p>NOTE: All filenames are relative to the Services data directory.
|
|
|
|
<a name="LogFilename"></a>
|
|
<p><ul><li>
|
|
<tt><b>LogFilename</b> <i>filename</i></tt> [REQUIRED]
|
|
<p>Specifies the name of the file into which Services will log data.
|
|
May be overridden by the -log command-line option. If this name
|
|
contains "%y", "%m", or "%d", they will be replaced by the current
|
|
year, month, or day, respectively, and the logfile will be
|
|
automatically rotated as needed when the date changes.
|
|
|
|
<p>Example: <tt>LogFilename ircservices.log</tt>
|
|
</ul>
|
|
|
|
<a name="PIDFilename"></a>
|
|
<p><ul><li>
|
|
<tt><b>PIDFilename</b> <i>filename</i></tt> [REQUIRED]
|
|
<p>Specifies the name of the file containing Services' process ID.
|
|
Note that if you change this filename, and you are using the
|
|
"ircservices-chk" crontab script provided with Services, you will
|
|
need to change the filename in that file as well.
|
|
|
|
<p>Example: <tt>PIDFilename ircservices.pid</tt>
|
|
</ul>
|
|
|
|
<a name="MOTDFilename"></a>
|
|
<p><ul><li>
|
|
<tt><b>MOTDFilename</b> <i>filename</i></tt> [REQUIRED]
|
|
<p>Specifies the name of the Message of the Day file.
|
|
|
|
<p>Example: <tt>MOTDFilename ircservices.motd</tt>
|
|
</ul>
|
|
|
|
<a name="LockFilename"></a>
|
|
<p><ul><li>
|
|
<tt><b>LockFilename</b> <i>filename</i></tt> [REQUIRED]
|
|
<p>Specifies the name of the data directory lock file. This file is
|
|
created in the data directory when Services begins updating
|
|
databases, and is removed after the databases are updated. If the
|
|
file already exists when Services tries to update the databases,
|
|
Services sends a warning (via wallops) and does not write any data.
|
|
|
|
<p>Example: <tt>LockFilename .lock</tt>
|
|
</ul>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>Basic functionality</h3>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<a name="NoBouncyModes"></a>
|
|
<p><ul><li>
|
|
<tt><b>NoBouncyModes</b></tt> [OPTIONAL]
|
|
<p>Normally, Services will check for the remote IRC server reversing its
|
|
mode changes, and issue a warning (and stop changing modes) if it
|
|
detects such a problem. However, the detection will sometimes
|
|
trigger even when there is no problem, thus preventing channel
|
|
mode-locks and other features from working. If you specify this
|
|
directive, Services will not check for mode bouncing, which can avoid
|
|
this problem if you know your servers are set up correctly.
|
|
|
|
<p>WARNING: setting this option when your servers are incorrectly
|
|
configured can result in flooding!
|
|
|
|
<p>Example: <tt>NoBouncyModes</tt>
|
|
</ul>
|
|
|
|
<a name="NoSplitRecovery"></a>
|
|
<p><ul><li>
|
|
<tt><b>NoSplitRecovery</b></tt> [OPTIONAL]
|
|
<p>Disables Services' recognition of users returning from netsplits.
|
|
Normally (on networks with some sort of timestamp support in the IRC
|
|
server), Services will check via the timestamp field whether a user
|
|
is the same as the last user who identified for the nick, and allow
|
|
the user access to that nick without requiring identification again
|
|
if the timestamps match. Enabling this directive will force all
|
|
users to re-identify after a netsplit.
|
|
|
|
<p>It's generally easier on users to leave this disabled, but if you
|
|
suspect one of your servers has been hacked to send false timestamps
|
|
(or you suspect a bug in Services itself) enabling this directive
|
|
will eliminate the possibility of one user "stealing" another's nick
|
|
by pretending to have the same timestamp.
|
|
|
|
<p>You may also want to uncomment this directive if your servers' clocks
|
|
are very far apart; the less synchronized the servers' clocks are,
|
|
the greater the possibility of someone "taking over" another person's
|
|
nick when a server with a fast clock splits.
|
|
|
|
<p>NOTE: On DALnet 4.4.15+, Dreamforge, Bahamut, Unreal, and compatible
|
|
networks, Services takes advantage of an IRC server feature to assign
|
|
each user a permanent ID number, which significantly enhances the
|
|
security of this check. On such networks, you should almost always
|
|
leave this directive commented out. See section 3-1-2 of the manual
|
|
for details.
|
|
|
|
<p>Example: <tt>NoSplitRecovery</tt>
|
|
</ul>
|
|
|
|
<a name="StrictPasswords"></a>
|
|
<p><ul><li>
|
|
<tt><b>StrictPasswords</b></tt> [RECOMMENDED]
|
|
<p>When enabled, causes Services to perform more stringent checks on
|
|
passwords. If this is disabled, Services will only disallow a
|
|
password if it is the same as the entity (nickname or channel name)
|
|
with which it is associated. When enabled, however, Services will
|
|
also check that the password is at least five characters long, and
|
|
disallow it if not.
|
|
|
|
<p>Example: <tt>StrictPasswords</tt>
|
|
</ul>
|
|
|
|
<a name="NoAdminPasswordCheck"></a>
|
|
<p><ul><li>
|
|
<tt><b>NoAdminPasswordCheck</b></tt> [OPTIONAL]
|
|
<p>When enabled, allows Services administrators to set any password
|
|
for a nickname or channel (including their own), bypassing all of
|
|
the password checks. When disabled, Services administrators are
|
|
subject to the same password checks as ordinary users.
|
|
|
|
<p>Example: <tt>NoAdminPasswordCheck</tt>
|
|
</ul>
|
|
|
|
<a name="BadPassLimit"></a>
|
|
<p><ul><li>
|
|
<tt><b>BadPassLimit</b> <i>count</i></tt> [RECOMMENDED]
|
|
<p>Sets the number of invalid password tries before Services removes a
|
|
user from the network. If a user enters <tt><i>count</i></tt> invalid passwords
|
|
for any Services function or combination of functions during a
|
|
single IRC session (subject to BadPassTimeout, below), Services will
|
|
issue a /KILL for the user. If not given, Services will ignore
|
|
failed password attempts (though they will be logged in any case).
|
|
Note that entering a correct password will <i>not</i> reset this count.
|
|
|
|
<p>Example: <tt>BadPassLimit 5</tt>
|
|
</ul>
|
|
|
|
<a name="BadPassTimeout"></a>
|
|
<p><ul><li>
|
|
<tt><b>BadPassTimeout</b> <i>time</i></tt> [OPTIONAL]
|
|
<p>Sets the time after which invalid passwords are forgotten about. If
|
|
a user does not enter any incorrect passwords in this amount of time,
|
|
the incorrect password count will reset to zero. If not given, the
|
|
timeout will be disabled, and the incorrect password count will never
|
|
be reset until the user disconnects.
|
|
|
|
<p>Example: <tt>BadPassTimeout 1h</tt>
|
|
</ul>
|
|
|
|
<a name="BadPassWarning"></a>
|
|
<p><ul><li>
|
|
<tt><b>BadPassWarning</b> <i>count</i></tt> [RECOMMENDED]
|
|
<p>Sets the number of bad passwords <i>for a single nick or channel</i> that
|
|
will be accepted before a warning is sent using WALLOPS/GLOBOPS. If
|
|
not given, no warnings will be sent.
|
|
|
|
<p>Example: <tt>BadPassWarning 5</tt>
|
|
</ul>
|
|
|
|
<a name="IgnoreDecay"></a>
|
|
<p><ul><li>
|
|
<tt><b>IgnoreDecay</b> <i>rate</i></tt> [RECOMMENDED]
|
|
<p>Services keeps track of an "ignore level" for each user, based on how
|
|
often the user sends commands to Services and how long those commands
|
|
take to execute; this directive specifies how quickly that level
|
|
returns to zero when the user idles. The parameter is the number of
|
|
seconds (possibly including a fractional part, like "0.5") it takes
|
|
for the ignore level to drop by half.
|
|
|
|
<p>If either this directive or IgnoreThreshold is not given, the ignore
|
|
code is disabled.
|
|
|
|
<p>Example: <tt>IgnoreDecay 5</tt>
|
|
</ul>
|
|
|
|
<a name="IgnoreThreshold"></a>
|
|
<p><ul><li>
|
|
<tt><b>IgnoreThreshold</b> <i>level</i></tt> [RECOMMENDED]
|
|
<p>This directive specifies the ignore level at which Services decides
|
|
that a user is flooding Services and ignores that user.
|
|
|
|
<p>If either this directive or IgnoreDecay is not given, the ignore code
|
|
is disabled.
|
|
|
|
<p>Example: <tt>IgnoreThreshold 0.1</tt>
|
|
</ul>
|
|
|
|
<a name="UpdateTimeout"></a>
|
|
<p><ul><li>
|
|
<tt><b>UpdateTimeout</b> <i>time</i></tt> [REQUIRED]
|
|
<p>Sets the delay between automatic database updates. This timer is
|
|
reset by the OperServ UPDATE command.
|
|
|
|
<p>Example: <tt>UpdateTimeout 5m</tt>
|
|
</ul>
|
|
|
|
<a name="WarningTimeout"></a>
|
|
<p><ul><li>
|
|
<tt><b>WarningTimeout</b> <i>time</i></tt> [REQUIRED]
|
|
<p>Sets the interval between sending warning messages for program
|
|
errors via WALLOPS/GLOBOPS.
|
|
|
|
<p>Example: <tt>WarningTimeout 4h</tt>
|
|
</ul>
|
|
|
|
<a name="ReadTimeout"></a>
|
|
<p><ul><li>
|
|
<tt><b>ReadTimeout</b> <i>seconds</i></tt> [REQUIRED]
|
|
<p>Sets the timeout period for reading from the network; this is the
|
|
length of time Services will wait to receive data from an external
|
|
source if none is available before proceeding with other actions,
|
|
such as timeout checking. Note that the parameter is a number of
|
|
seconds, not a "time"; it may also include a fractional part, such as
|
|
"0.5".
|
|
|
|
<p>This value also influences the period between timeout checks; see the
|
|
TimeoutCheck directive below.
|
|
|
|
<p>Example: <tt>ReadTimeout 3</tt>
|
|
</ul>
|
|
|
|
<a name="TimeoutCheck"></a>
|
|
<p><ul><li>
|
|
<tt><b>TimeoutCheck</b> <i>seconds</i></tt> [REQUIRED]
|
|
<p>Sets the (maximum) frequency at which the timeout list is checked.
|
|
This, combined with ReadTimeout above, determine how accurately timed
|
|
events, such as nick kills, occur; it also determines how much CPU
|
|
time Services will use doing this. Higher values will cause less
|
|
accurate timing but less CPU usage. Note that the parameter is a
|
|
number of seconds, not a "time", and may include a fractional part.
|
|
|
|
<p>This shouldn't be set any higher than 10 seconds, and 1 second or
|
|
less is best if your system is powerful enough (or your network small
|
|
enough) to handle it. 0 will cause the timeout list to be checked
|
|
every time through the main loop, which provides the most accurate
|
|
timeout response but may require too much processing on large
|
|
networks.
|
|
|
|
<p>Note that if this value is smaller than ReadTimeout (above), then the
|
|
delay between checks of the timeout list may exceed the value given
|
|
here during periods of little or no network activity.
|
|
|
|
<p>Example: <tt>TimeoutCheck 1.0</tt>
|
|
</ul>
|
|
|
|
<a name="PingFrequency"></a>
|
|
<p><ul><li>
|
|
<tt><b>PingFrequency</b> <i>time</i></tt> [OPTIONAL]
|
|
<p>Sets the time after which Services sends a PING message to its uplink
|
|
if no other network activity has occurred. This can be useful if you
|
|
have a low-activity network and your server keeps dropping Services'
|
|
connection with "Ping timeout". If not set, Services will not send
|
|
PING messages.
|
|
|
|
<p>Example: <tt>PingFrequency 30s</tt>
|
|
</ul>
|
|
|
|
<a name="MergeChannelModes"></a>
|
|
<p><ul><li>
|
|
<tt><b>MergeChannelModes</b> <i>seconds</i></tt> [OPTIONAL]
|
|
<p>WARNING: This directive can have security implications; read
|
|
carefully before enabling.
|
|
|
|
<p>If this directive is given, it causes Services to not send out
|
|
channel mode changes immediately, but to wait for the given number of
|
|
seconds (which may be fractional) and collect all channel modes to
|
|
send in a single command. For example, if two users enter a channel
|
|
at nearly the same time and both of them are to be opped, instead of
|
|
sending two MODE +o commands, Services will send a single MODE +oo
|
|
command. This option can help with large channels in reducing mode
|
|
floods, particularly when Services first connects or a server
|
|
reconnects after a split; however, the sending of the mode command
|
|
will be slightly delayed, so that the users will have to wait a short
|
|
time before getting chanop privileges. Furthermore, since this
|
|
increases the time before deops, etc. occur, users can take advantage
|
|
of netsplits to "steal ops" for a short time before Services responds.
|
|
|
|
<p>Services will never send out more than six parameters with each MODE
|
|
command (this limit is part of the IRC protocol specification). If
|
|
more than six +o, +v, etc. modes are to be sent, Services will send
|
|
them out six at a time without waiting for the timeout given with
|
|
this directive. Also, if more than MERGE_CHANMODE_SLOTS (defined in
|
|
defs.h; default 3) channels receive modes before the timeout expires,
|
|
those modes will similarly be sent out at that time.
|
|
|
|
<p>Note that the actual sending of the MODE command may be delayed by as
|
|
much as the TimeoutCheck value; if you use this option, then in
|
|
general you should set TimeoutCheck to the same (or a smaller) value.
|
|
Also, on networks with little traffic there may be an additional
|
|
delay up to the value of ReadTimeout before the modes are sent.
|
|
|
|
<p>If this option is not set, Services will still collect all mode changes
|
|
resulting from a single event (such as a user joining a channel) and
|
|
send them in a single message as soon as the event processing finishes.
|
|
|
|
<p>Example: <tt>MergeChannelModes 0.5</tt>
|
|
</ul>
|
|
|
|
<a name="NetBufferSize"></a>
|
|
<p><ul><li>
|
|
<tt><b>NetBufferSize</b> <i>total-size</i> [<i>per-connection-size</i>]</tt> [RECOMMENDED]
|
|
<p>Sets the maximum amount of memory used by network connection buffers.
|
|
If a second parameter is given, it sets the maximum amount of memory
|
|
used by a single connection; if not given, this defaults to the same
|
|
as the total limit.
|
|
|
|
<p>Example: <tt>NetBufferSize 4194304 1048576 # 4MB and 1MB</tt>
|
|
</ul>
|
|
|
|
<a name="NetBufferLimit"></a>
|
|
<p><ul><li>
|
|
<tt><b>NetBufferLimit</b> <i>inactive-limit</i> [<i>ignore-limit</i>]</tt> [RECOMMENDED]
|
|
<p>Sets the threshold at which Services sends a "busy" reply to PRIVMSGs
|
|
(<tt><i>inactive-limit</i></tt>) and at which Services ignores PRIVMSGs entirely
|
|
(<tt><i>ignore-limit</i></tt>). Both thresholds apply to non-operator users only;
|
|
PRIVMSGs from IRC operators will always be processed normally. A
|
|
WALLOPS/GLOBOPS message will be sent when Services exceeds or drops
|
|
below either of the thresholds. If the thresholds are set to the
|
|
same value, "busy" messages will never be sent.
|
|
|
|
<p>The thresholds are expressed as percentages of the value(s) given for
|
|
NetBufferSize above. If both a total size limit and a per-connection
|
|
size limit are specified, the higher of the two percentages is
|
|
checked against these thresholds.
|
|
|
|
<p>If NetBufferSize is not specified, NetBufferLimit has no effect.
|
|
|
|
<p>Example: <tt>NetBufferLimit 80 95</tt>
|
|
</ul>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>Miscellaneous settings</h3>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<p>These are settings which don't belong anywhere else, or which would
|
|
be module settings but apply to multiple modules.
|
|
|
|
<a name="EncryptionType"></a>
|
|
<p><ul><li>
|
|
<tt><b>EncryptionType</b> <i>type</i></tt> [OPTIONAL]
|
|
<p>Specifies the type of encryption to be used when storing new
|
|
passwords. Changing this has no effect on passwords previously set.
|
|
If not specified, new passwords will not be encrypted.
|
|
|
|
<p>Example: <tt>EncryptionType md5</tt>
|
|
</ul>
|
|
|
|
<a name="GuestNickPrefix"></a>
|
|
<p><ul><li>
|
|
<tt><b>GuestNickPrefix</b> <i>value</i></tt> [REQUIRED]
|
|
<p>Sets the nickname prefix used when Services changes a user's
|
|
nickname (for example, from the "NSForceNickChange" NickServ option).
|
|
A unique series of digits will be appended to this string to form the
|
|
new nickname. This option is ignored for IRC servers which do not
|
|
allow remote clients' nicknames to be forcibly changed, but it must
|
|
be set to something anyway.
|
|
|
|
<p>Example: <tt>GuestNickPrefix "Guest"</tt>
|
|
</ul>
|
|
|
|
<a name="RejectEmail"></a>
|
|
<p><ul><li>
|
|
<tt><b>RejectEmail</b></tt> [OPTIONAL]
|
|
<p>Specifies E-mail addresses (which may include wildcards) which are
|
|
not allowed to be used in nickname or channel registration. This
|
|
directive can be given multiple times to disallow multiple addresses
|
|
or address masks.
|
|
|
|
<p>Example: <tt>RejectEmail *@example.com</tt>
|
|
</ul>
|
|
|
|
<a name="DefTimeZone"></a>
|
|
<p><ul><li>
|
|
<tt><b>DefTimeZone</b> <i>time-zone</i></tt> [OPTIONAL]
|
|
<p>Sets the time zone to be used for displaying the time of day with
|
|
certain commands, such as NickServ INFO. If not given, the system's
|
|
default time zone (the value of the TZ environment variable) is used.
|
|
<tt><i>time-zone</i></tt> is the name of the time zone to be used; consult your
|
|
system manual for how time zone names are specified on your system.
|
|
Note that users can set time zones for their own nicknames
|
|
independently; this setting is only used as a default. The
|
|
following example will cause Services to use United States Pacific
|
|
time on most systems:
|
|
|
|
<p>Example: <tt>DefTimeZone PST8PDT</tt>
|
|
</ul>
|
|
|
|
<a name="ListMax"></a>
|
|
<p><ul><li>
|
|
<tt><b>ListMax</b> <i>count</i></tt> [REQUIRED]
|
|
<p>Specifies the maximum number of nicks to be returned for commands
|
|
that return a list of items, such as NickServ LIST and LISTEMAIL
|
|
or OperServ AKILL LIST.
|
|
|
|
<p>Example: <tt>ListMax 50</tt>
|
|
</ul>
|
|
|
|
<a name="LogMaxUsers"></a>
|
|
<p><ul><li>
|
|
<tt><b>LogMaxUsers</b></tt> [OPTIONAL]
|
|
<p>Causes Services to write a message to the log every time a new
|
|
user maximum is reached.
|
|
|
|
<p>Example: <tt>LogMaxUsers</tt>
|
|
</ul>
|
|
|
|
<a name="EnableGetpass"></a>
|
|
<p><ul><li>
|
|
<tt><b>EnableGetpass</b></tt> [OPTIONAL]
|
|
<p>Allows use of the NickServ and ChanServ GETPASS commands.
|
|
|
|
<p>Example: <tt>EnableGetpass</tt>
|
|
</ul>
|
|
|
|
<a name="WallAdminPrivs"></a>
|
|
<p><ul><li>
|
|
<tt><b>WallAdminPrivs</b></tt> [OPTIONAL]
|
|
<p>Causes Services to send a WALLOPS/GLOBOPS whenever a Services
|
|
administrator uses those privileges to perform a NickServ or
|
|
ChanServ operation (such as setting a nickname or channel
|
|
password).
|
|
|
|
<p>Example: <tt>WallAdminPrivs</tt>
|
|
</ul>
|
|
|
|
<a name="LoadLanguageText"></a>
|
|
<p><ul><li>
|
|
<tt><b>LoadLanguageText</b></tt> [OPTIONAL]
|
|
<p>Loads replacement text for language-specific strings from the given
|
|
file. Relative pathnames are relative to the Services data
|
|
directory. See <a href="3.html#9">section 3-9</a> of the manual for
|
|
the file format.
|
|
|
|
<p>Example: <tt>LoadLanguageText mytext.l</tt>
|
|
</ul>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>Modules to load</h3>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<a name="LoadModule"></a>
|
|
<p><ul><li>
|
|
<tt><b>LoadModule</b> module-name</tt>
|
|
|
|
<p>Causes Services to load the specified module.
|
|
|
|
<p>Example: <tt>LoadModule nickserv/main</tt>
|
|
</ul>
|
|
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font>
|
|
|
|
<p><hr>
|
|
|
|
<a name=2></a>
|
|
<h2 align=center>Module configuration directives
|
|
(<tt>modules.conf</tt>)</h2>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>Protocol module settings</h3>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<p>Enter the protocol name here, then uncomment the appropriate directives.
|
|
<a name="protocol/(insert_protocol_name_here)"></a>
|
|
<p><font size="+1"><b>protocol/(insert protocol name here)</b></font>
|
|
|
|
<a name="protocol/(insert_protocol_name_here).NetworkDomain"></a>
|
|
<p><ul><li>
|
|
<tt><b>NetworkDomain</b> domain</tt> [RECOMMENDED]
|
|
<p>Protocols: bahamut, dalnet, dreamforge, monkey, ptlink, rfc1459,
|
|
trircd, ts8, undernet-p9
|
|
|
|
<p>Specifies the common domain, if any, shared by all servers on
|
|
your IRC network; this is required for global notices to function
|
|
properly. Make sure you do not include a "." before the domain
|
|
name. If you do not specify this, some or all users may not
|
|
receive global notices.
|
|
|
|
<p>Example: <tt>NetworkDomain "example.net"</tt>
|
|
</ul>
|
|
|
|
<a name="protocol/(insert_protocol_name_here).ServerNumeric"></a>
|
|
<p><ul><li>
|
|
<tt><b>ServerNumeric</b> <i>numeric</i></tt> [RECOMMENDED]
|
|
<p>Protocols: unreal
|
|
|
|
<p>Makes Services send a numeric to the remote server on connect.
|
|
This must be a value between 1 and 254, and must not be in use by
|
|
any other IRC server on the network. If you do not want to use a
|
|
numeric for Services, comment the directive out.
|
|
|
|
<p>Example: <tt>ServerNumeric 1</tt>
|
|
</ul>
|
|
|
|
<a name="protocol/(insert_protocol_name_here).SetServerTimes"></a>
|
|
<p><ul><li>
|
|
<tt><b>SetServerTimes</b> [<i>time</i>]</tt> [RECOMMENDED]
|
|
<p>Protocols: unreal
|
|
|
|
<p>Causes Services to synchronize all servers' internal clocks with
|
|
its own; this can help avoid potential problems with users
|
|
improperly gaining chanops, particularly during netsplits. If a
|
|
time parameter is given, Services will repeatedly synchronize the
|
|
servers clocks at that interval, otherwise synchronization will
|
|
only be performed at startup.
|
|
|
|
<p>Example: <tt>SetServerTimes</tt>
|
|
<br>Example: <tt>SetServerTimes 12h</tt>
|
|
</ul>
|
|
|
|
<a name="protocol/(insert_protocol_name_here).CSSetChannelTime"></a>
|
|
<p><ul><li>
|
|
<tt><b>CSSetChannelTime</b></tt> [OPTIONAL]
|
|
<p>Protocols: bahamut, monkey, trircd, unreal
|
|
|
|
<p>When enabled, causes Services to set the "creation time" (the
|
|
time at which the first user joined the channel) of a registered
|
|
channel to the time at which the channel was registered. This
|
|
can help prevent spurious mode changes and "op hacking" when a
|
|
split server reconnects to the network. When using Unreal,
|
|
however, the first user to join the channel when it is empty gets
|
|
set -o and +o in quick succession due to limitations of the IRC
|
|
server; if this bothers you, do not enable this option. Also, some
|
|
servers (such as Bahamut) generate server notices each time a
|
|
channel's timestamp is changed, which can be safely ignored.
|
|
|
|
<p>Example: <tt>CSSetChannelTime</tt>
|
|
</ul>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>Database module configuration</h3>
|
|
|
|
<p><hr width="60%">
|
|
<a name="database/standard"></a>
|
|
<p><font size="+1"><b>database/standard</b></font>
|
|
|
|
<p>This module has no configurable settings.
|
|
<a name="database/version4"></a>
|
|
<p><font size="+1"><b>database/version4</b></font>
|
|
|
|
<a name="database/version4.NickServDB"></a>
|
|
<p><ul><li>
|
|
<tt><b>NickServDB</b> <i>name</i></tt> [REQUIRED]
|
|
<p>Specifies the filename used for the registered nickname databases.
|
|
|
|
<p>Example: <tt>NickServDB "nick.db"</tt>
|
|
</ul>
|
|
|
|
<a name="database/version4.ChanServDB"></a>
|
|
<p><ul><li>
|
|
<tt><b>ChanServDB</b> <i>name</i></tt> [REQUIRED]
|
|
<p>Specifies the filename used for the registered channel databases.
|
|
|
|
<p>Example: <tt>ChanServDB "chan.db"</tt>
|
|
</ul>
|
|
|
|
<a name="database/version4.OperServDB"></a>
|
|
<p><ul><li>
|
|
<tt><b>OperServDB</b> <i>name</i></tt> [REQUIRED]
|
|
<p>Specifies the filename used for the OperServ database.
|
|
|
|
<p>Example: <tt>OperServDB "oper.db"</tt>
|
|
</ul>
|
|
|
|
<a name="database/version4.NewsDB"></a>
|
|
<p><ul><li>
|
|
<tt><b>NewsDB</b> <i>name</i></tt> [REQUIRED]
|
|
<p>Specifies the filename used for the news database.
|
|
|
|
<p>Example: <tt>NewsDB "news.db"</tt>
|
|
</ul>
|
|
|
|
<a name="database/version4.AutokillDB"></a>
|
|
<p><ul><li>
|
|
<tt><b>AutokillDB</b> <i>name</i></tt> [REQUIRED]
|
|
<p>Specifies the filename used for the autokill and autokill
|
|
exclusion databases.
|
|
|
|
<p>Example: <tt>AutokillDB "akill.db"</tt>
|
|
</ul>
|
|
|
|
<a name="database/version4.ExceptionDB"></a>
|
|
<p><ul><li>
|
|
<tt><b>ExceptionDB</b> <i>name</i></tt> [REQUIRED]
|
|
<p>Specifies the filename used for the session exception database.
|
|
|
|
<p>Example: <tt>ExceptionDB "exception.db"</tt>
|
|
</ul>
|
|
|
|
<a name="database/version4.SlineDB"></a>
|
|
<p><ul><li>
|
|
<tt><b>SlineDB</b> <i>name</i></tt> [REQUIRED]
|
|
<p>Specifies the filename used for the SGline, SQline, and SZline
|
|
databases.
|
|
|
|
<p>Example: <tt>SlineDB "sline.db"</tt>
|
|
</ul>
|
|
|
|
<a name="database/version4.StatServDB"></a>
|
|
<p><ul><li>
|
|
<tt><b>StatServDB</b> <i>name</i></tt> [REQUIRED]
|
|
<p>Specifies the filename used for the StatServ server statistics
|
|
database.
|
|
|
|
<p>Example: <tt>StatServDB "stats.db"</tt>
|
|
</ul>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>Encryption module configuration</h3>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<p>No encryption modules have any configurable settings.
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>Encryption module configuration</h3>
|
|
|
|
<p><hr width="60%">
|
|
<a name="encryption/md5"></a>
|
|
<p><font size="+1"><b>encryption/md5</b></font>
|
|
|
|
<a name="encryption/md5.EnableAnopeWorkaround"></a>
|
|
<p><ul><li>
|
|
<tt><b>EnableAnopeWorkaround</b></tt> [OPTIONAL]
|
|
<p>Enables a workaround for encrypted passwords imported from the
|
|
Anope or Epona programs, which have a bug (inherited from an old
|
|
version of Services) causing passwords to be incorrectly
|
|
encrypted.
|
|
|
|
<p>WARNING: Enabling this option may reduce the security of
|
|
encrypted passwords! If you need this option for importing an
|
|
Anope or Epona database, it is recommended that you enable this
|
|
only long enough to ensure that all users have used SET PASSWORD
|
|
to reset their passwords (possibly to the same password).
|
|
|
|
<p>Example: <tt>EnableAnopeWorkaround</tt>
|
|
</ul>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>Mail module configuration</h3>
|
|
|
|
<p><hr width="60%">
|
|
<a name="mail/main"></a>
|
|
<p><font size="+1"><b>mail/main</b></font>
|
|
|
|
<a name="mail/main.FromAddress"></a>
|
|
<p><ul><li>
|
|
<tt><b>FromAddress</b> <i>email</i></tt> [REQUIRED]
|
|
<p>Specifies the E-mail address to be used on outgoing mail. Make
|
|
sure you enter the correct address here before uncommenting the
|
|
directive.
|
|
|
|
<p>Example: <tt>FromAddress services@example.net</tt>
|
|
</ul>
|
|
|
|
<a name="mail/main.FromName"></a>
|
|
<p><ul><li>
|
|
<tt><b>FromName</b> <i>name</i></tt> [OPTIONAL]
|
|
<p>Specifies the "real name" to be used on outgoing mail. Make sure
|
|
to include quotes if this is a multi-word string.
|
|
|
|
<p>Example: <tt>FromName "ExampleNet Services"</tt>
|
|
</ul>
|
|
|
|
<a name="mail/main.MaxMessages"></a>
|
|
<p><ul><li>
|
|
<tt><b>MaxMessages</b> <i>count</i></tt> [RECOMMENDED]
|
|
<p>Specifies the maximum number of messages that are permitted to be
|
|
in transit simultaneously. Attempts to send messages above this
|
|
limit will be rejected with a "no resources" error. If not
|
|
given, no limit is enforced.
|
|
|
|
<p>Example: <tt>MaxMessages 100</tt>
|
|
</ul>
|
|
|
|
<a name="mail/main.SendTimeout"></a>
|
|
<p><ul><li>
|
|
<tt><b>SendTimeout</b> <i>time</i></tt> [RECOMMENDED]
|
|
<p>Specifies the amount of time Services will wait before aborting a
|
|
mail message in the process of being sent. If not specified,
|
|
message sends will not time out.
|
|
|
|
<p>Example: <tt>SendTimeout 1m</tt>
|
|
</ul>
|
|
<a name="mail/sendmail"></a>
|
|
<p><font size="+1"><b>mail/sendmail</b> (Sendmail-based low-level module)</font>
|
|
|
|
<a name="mail/sendmail.SendmailPath"></a>
|
|
<p><ul><li>
|
|
<tt><b>SendmailPath</b> <i>path</i></tt> [REQUIRED]
|
|
<p>Specifies the full path to the "sendmail" program to be used to
|
|
send mail. This program must accept a command-line option "-t"
|
|
to extract recipient addresses from a mail message given on
|
|
standard input (the standard "sendmail" program does this).
|
|
The program will be executed with the same environment as
|
|
Services itself is run with.
|
|
|
|
<p>Example: <tt>SendmailPath /usr/lib/sendmail</tt>
|
|
</ul>
|
|
<a name="mail/smtp"></a>
|
|
<p><font size="+1"><b>mail/smtp</b> (SMTP-based low-level module)</font>
|
|
|
|
<a name="mail/smtp.RelayHost"></a>
|
|
<p><ul><li>
|
|
<tt><b>RelayHost</b> <i>hostname</i></tt> [REQUIRED]
|
|
<p>Specifies the host to which all mail will be sent, e.g. your
|
|
local mail server. This directive may be given multiple times to
|
|
specify backup servers; the servers will be tried in the order
|
|
listed.
|
|
|
|
<p>Example: <tt>RelayHost mail.example.net</tt>
|
|
</ul>
|
|
|
|
<a name="mail/smtp.SMTPName"></a>
|
|
<p><ul><li>
|
|
<tt><b>SMTPName</b> <i>hostname</i></tt> [REQUIRED]
|
|
<p>Specifies the hostname Services will use in the HELO command to
|
|
the remote server. Normally, this should be set to the same as
|
|
the hostname of the machine Services runs on.
|
|
|
|
<p>Example: <tt>SMTPName services.example.net</tt>
|
|
</ul>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>OperServ configuration</h3>
|
|
|
|
<p><hr width="60%">
|
|
<a name="operserv/main"></a>
|
|
<p><font size="+1"><b>operserv/main</b></font>
|
|
|
|
<a name="operserv/main.OperServName"></a>
|
|
<p><ul><li>
|
|
<tt><b>OperServName</b> <i>nick</i> <i>string</i></tt> [REQUIRED]
|
|
<p>Specifies the nickname (first parameter) and "real" name (second
|
|
parameter) used by the OperServ pseudoclient.
|
|
|
|
<p>Example: <tt>OperServName "OperServ" "Operator Server"</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/main.GlobalName"></a>
|
|
<p><ul><li>
|
|
<tt><b>GlobalName</b> <i>nick</i> <i>string</i></tt> [REQUIRED]
|
|
<p>Specifies the nickname (first parameter) and "real" name (second
|
|
parameter) used by the global-noticer pseudoclient. This client
|
|
is used to send messages from the OperServ GLOBAL command and
|
|
news messages.
|
|
|
|
<p>Example: <tt>GlobalName "Global" "Global Noticer"</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/main.ServicesRoot"></a>
|
|
<p><ul><li>
|
|
<tt><b>ServicesRoot</b> <i>nick</i></tt> [REQUIRED]
|
|
<p>Specifies the Services "super-user". The super-user, or "root" as
|
|
in Unix terminology, is the only user who can add or delete
|
|
Services admins.
|
|
|
|
<p>This is commented out by default; make sure you insert the correct
|
|
nick before uncommenting it.
|
|
|
|
<p>Example: <tt>ServicesRoot SuperUser</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/main.KillClonesAutokill"></a>
|
|
<p><ul><li>
|
|
<tt><b>KillClonesAutokill</b> <i>expiry-time</i></tt> [RECOMMENDED]
|
|
<p>Causes Services to add an autokill for hosts killed using the
|
|
KILLCLONES command, to prevent the clients from immediately
|
|
reconnecting. The expiry-time parameter sets the expiry time for
|
|
the autokill.
|
|
|
|
<p>If the autokill module (operserv/akill) is not loaded, this
|
|
directive has no effect.
|
|
|
|
<p>Example: <tt>KillClonesAutokill 30m</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/main.AllowRaw"></a>
|
|
<p><ul><li>
|
|
<tt><b>AllowRaw</b></tt> [DISCOURAGED]
|
|
<p>Enables use of the OperServ RAW command. This command can be
|
|
used for testing IRC server features and other limited uses, but
|
|
can also wreak havoc on a network if used improperly; use with
|
|
extreme caution.
|
|
|
|
<p>Example: <tt>AllowRaw</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/main.WallOper"></a>
|
|
<p><ul><li>
|
|
<tt><b>WallOper</b></tt> [OPTIONAL]
|
|
<p>Causes Services to send a WALLOPS/GLOBOPS when a user becomes an
|
|
IRC operator. Note that this can cause WALLOPS floods when
|
|
Services first connects to the network.
|
|
|
|
<p>Example: <tt>WallOper</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/main.WallBadOS"></a>
|
|
<p><ul><li>
|
|
<tt><b>WallBadOS</b></tt> [OPTIONAL]
|
|
<p>Causes Services to send a WALLOPS/GLOBOPS if a non-IRC-operator
|
|
tries to use OperServ.
|
|
|
|
<p>Example: <tt>WallBadOS</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/main.WallOSChannel"></a>
|
|
<p><ul><li>
|
|
<tt><b>WallOSChannel</b></tt> [OPTIONAL]
|
|
<p>Cause Services to send a WALLOPS/GLOBOPS on use of any of the
|
|
MODE, KICK, CLEARMODES, and CLEARCHAN commands.
|
|
|
|
<p>Example: <tt>WallOSChannel</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/main.WallSU"></a>
|
|
<p><ul><li>
|
|
<tt><b>WallSU</b></tt> [OPTIONAL]
|
|
<p>Causes Services to send a WALLOPS/GLOBOPS whenever a Services
|
|
admin successfully obtains Services super-user privileges with
|
|
the SU command. Note that Services will always send a
|
|
WALLOPS/GLOBOPS when an incorrect password is given to the SU
|
|
command or a user without Services admin privileges attempts to
|
|
use the SU command.
|
|
|
|
<p>Example: <tt>WallSU</tt>
|
|
</ul>
|
|
<a name="operserv/akill"></a>
|
|
<p><font size="+1"><b>operserv/akill</b> (Autokill module settings)</font>
|
|
|
|
<a name="operserv/akill.AutokillReason"></a>
|
|
<p><ul><li>
|
|
<tt><b>AutokillReason</b> <i>reason</i></tt> [REQUIRED]
|
|
<p>The reason to use when sending out KILLs for autokills and with
|
|
the actual AKILL/GLINE commands. Some servers show this reason
|
|
to users if their connection is rejected because they match an
|
|
autokill. If you include a "%s" in the reason, it will be
|
|
replaced by the reason given with the autokill itself.
|
|
|
|
<p>Example: <tt>AutokillReason "You are banned from this network"</tt>
|
|
<br>Example: <tt>AutokillReason "Autokilled: %s"</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/akill.AutokillExpiry"></a>
|
|
<p><ul><li>
|
|
<tt><b>AutokillExpiry</b> <i>time</i></tt> [RECOMMENDED]
|
|
<p>Sets the default expiry time for autokills. If not defined,
|
|
autokills will not expire by default.
|
|
|
|
<p>Example: <tt>AutokillExpiry 30d</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/akill.AkillChanExpiry"></a>
|
|
<p><ul><li>
|
|
<tt><b>AkillChanExpiry</b> <i>time</i></tt> [REQUIRED]
|
|
<p>Sets the default expiry time for autokills added by an AKILLCHAN
|
|
command.
|
|
|
|
<p>Example: <tt>AkillChanExpiry 7d</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/akill.OperMaxExpiry"></a>
|
|
<p><ul><li>
|
|
<tt><b>OperMaxExpiry</b> <i>time</i></tt> [OPTIONAL]
|
|
<p>Sets the maximum expiry time usable by Services operators. If
|
|
not defined, Services operators can set any expiry time, just as
|
|
Services administrators can. If this is set to a value lower
|
|
than AutokillExpiry or AkillChanExpiry, autokills entered without
|
|
an expiry time will use this setting instead of the relevant
|
|
default.
|
|
|
|
<p>Example: <tt>OperMaxExpiry 7d</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/akill.EnableExclude"></a>
|
|
<p><ul><li>
|
|
<tt><b>EnableExclude</b></tt> [OPTIONAL]
|
|
<p>Causes autokill exclusions to be usable. If not given, the
|
|
EXCLUDE command will be unavailable, and any autokill
|
|
exclusions previously added will be ignored.
|
|
|
|
<p>NOTICE: On IRC servers without autokill exclusion functionality
|
|
(such as that in trircd version 5), this will cause autokills to
|
|
not be sent to the server; instead, Services will issue a KILL
|
|
for each user that matches an autokill and does not match any
|
|
autokill exclusions. This is necessary to allow Services to
|
|
apply exclusions to users before they are disconnected.
|
|
|
|
<p>Example: <tt>EnableExclude</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/akill.ExcludeReason"></a>
|
|
<p><ul><li>
|
|
<tt><b>ExcludeReason</b> <i>reason</i></tt> [REQUIRED if EnableExclude set]
|
|
<p>The reason to use when sending out EXCLUDE commands on servers
|
|
which support them. If you include a "%s" in the reason, it will
|
|
be replaced by the reason given with the exclusion itself.
|
|
|
|
<p>Example: <tt>ExcludeReason "IRC operator host"</tt>
|
|
<br>Example: <tt>ExcludeReason "Excluded from autokills: %s"</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/akill.ExcludeExpiry"></a>
|
|
<p><ul><li>
|
|
<tt><b>ExcludeExpiry</b> <i>time</i></tt> [OPTIONAL]
|
|
<p>Sets the default expiry time for autokill exclusions. If not
|
|
defined, autokill exclusions will not expire by default.
|
|
|
|
<p>Example: <tt>ExcludeExpiry 30d</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/akill.ImmediatelySendAutokill"></a>
|
|
<p><ul><li>
|
|
<tt><b>ImmediatelySendAutokill</b></tt> [OPTIONAL]
|
|
<p>Causes OperServ to inform all servers of a new autokill the
|
|
moment it is added, rather than waiting for someone to match it
|
|
first. (Note that autokill exclusions are always sent to the
|
|
server immediately; this is to avoid an autokill being triggered
|
|
by a non-excluded match before the exclusion has been sent,
|
|
resulting in the excluded users being autokilled as well.)
|
|
|
|
<p>Example: <tt>ImmediatelySendAutokill</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/akill.WallOSAkill"></a>
|
|
<p><ul><li>
|
|
<tt><b>WallOSAkill</b></tt> [OPTIONAL]
|
|
<p>Cause Services to send a WALLOPS/GLOBOPS on use of the AKILL or
|
|
EXCLUDE command to add or delete autokills or exclusions.
|
|
|
|
<p>Example: <tt>WallOSAkill</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/akill.WallAutokillExpire"></a>
|
|
<p><ul><li>
|
|
<tt><b>WallAutokillExpire</b></tt> [OPTIONAL]
|
|
<p>Causes Services to send a WALLOPS/GLOBOPS whenever an autokill
|
|
or autokill exclusion expires.
|
|
|
|
<p>Example: <tt>WallAutokillExpire</tt>
|
|
</ul>
|
|
<a name="operserv/news"></a>
|
|
<p><font size="+1"><b>operserv/news</b> (News module settings)</font>
|
|
|
|
<p>This module has no configurable settings.
|
|
<a name="operserv/sessions"></a>
|
|
<p><font size="+1"><b>operserv/sessions</b> (Sessions module settings)</font>
|
|
|
|
<a name="operserv/sessions.DefSessionLimit"></a>
|
|
<p><ul><li>
|
|
<tt><b>DefSessionLimit</b> <i>limit</i></tt> [RECOMMENDED]
|
|
<p>Default session limit per host. Once a host reaches its session
|
|
limit, all clients attempting to connect from that host will be
|
|
killed. A value of zero (or omitting the option entirely) means
|
|
an unlimited session limit.
|
|
|
|
<p>Example: <tt>DefSessionLimit 3</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/sessions.MaxSessionLimit"></a>
|
|
<p><ul><li>
|
|
<tt><b>MaxSessionLimit</b> <i>limit</i></tt> [OPTIONAL]
|
|
<p>The maximum session limit that may be set for a host in an
|
|
exception.
|
|
|
|
<p>Example: <tt>MaxSessionLimit 100</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/sessions.ExceptionExpiry"></a>
|
|
<p><ul><li>
|
|
<tt><b>ExceptionExpiry</b> <i>time</i></tt> [RECOMMENDED]
|
|
<p>Sets the default expiry time for exceptions. If not set,
|
|
exceptions will not expire by default.
|
|
|
|
<p>Example: <tt>ExceptionExpiry 1d</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/sessions.SessionLimitExceeded"></a>
|
|
<p><ul><li>
|
|
<tt><b>SessionLimitExceeded</b> <i>message</i></tt> [OPTIONAL]
|
|
<p>The message that will be NOTICE'd to a user just before they are
|
|
removed from the network because their host's session limit has
|
|
been exceeded. It may be used to give a slightly more
|
|
descriptive reason for the impending kill as opposed to simply
|
|
"Session limit exceeded". If this is commented out, nothing will
|
|
be sent.
|
|
|
|
<p>Example: <tt>SessionLimitExceeded "The session limit for your host <b>%s</b> has been exceeded."</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/sessions.SessionLimitDetailsLoc"></a>
|
|
<p><ul><li>
|
|
<tt><b>SessionLimitDetailsLoc</b> <i>message</i></tt> [OPTIONAL]
|
|
<p>Same as above, but should be used to provide a website address
|
|
where users can find out more about session limits and how to go
|
|
about applying for an exception. If this is commented out,
|
|
nothing will be sent.
|
|
|
|
<p>This option has been intentionally commented out in an effort to
|
|
remind you to change the URL it contains. It is recommended that
|
|
you supply an address/URL where people can get help regarding
|
|
session limits.
|
|
|
|
<p>Example: <tt>SessionLimitDetailsLoc "Please visit <b>http://your.website.url/</b> for more information about session limits."</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/sessions.SessionLimitAutokill"></a>
|
|
<p><ul><li>
|
|
<tt><b>SessionLimitAutokill</b> <i>max-kill-interval</i> <i>num-kills</i> <i>expiry</i> <i>reason</i></tt> [OPTIONAL]
|
|
<p>With this option, Services will add an automatic autokill when
|
|
the same host's session limit is exceeded repeatedly in a short
|
|
period of time. If not given, autokills will not be
|
|
automatically added (Services will just keep killing users from
|
|
the host as they come on). Note that the autokill module
|
|
(operserv/akill) must be loaded for this to work.
|
|
|
|
<p><tt><i>max-kill-interval</i></tt> sets the maximum interval which can elapse
|
|
between kills before the kill counter is reset.
|
|
|
|
<p><tt><i>num-kills</i></tt> sets the number of kills before an autokill is added.
|
|
|
|
<p><tt><i>expiry</i></tt> sets the expiration time for the autokill.
|
|
|
|
<p><tt><i>reason</i></tt> sets the reason for the autokill.
|
|
|
|
<p>Example: <tt>SessionLimitAutokill 10s 5 30m "Exceeding session limit"</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/sessions.WallOSException"></a>
|
|
<p><ul><li>
|
|
<tt><b>WallOSException</b></tt> [OPTIONAL]
|
|
<p>Cause Services to send a WALLOPS/GLOBOPS on use of the EXCEPTION
|
|
command to add or delete a session exception.
|
|
|
|
<p>Example: <tt>WallOSException</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/sessions.WallExceptionExpire"></a>
|
|
<p><ul><li>
|
|
<tt><b>WallExceptionExpire</b></tt> [OPTIONAL]
|
|
<p>Causes Services to send a WALLOPS/GLOBOPS whenever a session
|
|
limit exception expires.
|
|
|
|
<p>Example: <tt>WallExceptionExpire</tt>
|
|
</ul>
|
|
<a name="operserv/sline"></a>
|
|
<p><font size="+1"><b>operserv/sline</b> (S-line module settings)</font>
|
|
|
|
<a name="operserv/sline.SGlineReason"></a>
|
|
<p><ul><li>
|
|
<tt><b>SGlineReason</b> <i>reason</i></tt> [REQUIRED]
|
|
<p>The reason to use when sending out KILLs and SGLINE commands.
|
|
Some servers show this reason to users if their connection is
|
|
rejected because they match an SGline. If you include a "%s"
|
|
in the reason, it will be replaced by the reason given with the
|
|
SGline entry itself.
|
|
|
|
<p>Example: <tt>SGlineReason "Invalid real name"
|
|
#SGlineReason "Invalid real name: %s"</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/sline.SQlineReason"></a>
|
|
<p><ul><li>
|
|
<tt><b>SQlineReason</b> <i>reason</i></tt> [REQUIRED]
|
|
<p>The reason to use when sending out KILLs and SQLINE commands.
|
|
Some servers show this reason to users if their connection is
|
|
rejected because they match an SQline. If you include a "%s"
|
|
in the reason, it will be replaced by the reason given with the
|
|
SQline entry itself.
|
|
|
|
<p>Example: <tt>SQlineReason "Reserved nickname"
|
|
#SQlineReason "Reserved nickname: %s"</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/sline.SZlineReason"></a>
|
|
<p><ul><li>
|
|
<tt><b>SZlineReason</b> <i>reason</i></tt> [REQUIRED]
|
|
<p>The reason to use when sending out KILLs and SZLINE commands.
|
|
Some servers show this reason to users if their connection is
|
|
rejected because they match an SZline. If you include a "%s"
|
|
in the reason, it will be replaced by the reason given with the
|
|
SZline entry itself.
|
|
|
|
<p>Example: <tt>SZlineReason "You are banned from this network"</tt>
|
|
<br>Example: <tt>SZlineReason "Z-lined: %s"</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/sline.ImmediatelySendSline"></a>
|
|
<p><ul><li>
|
|
<tt><b>ImmediatelySendSline</b></tt> [OPTIONAL]
|
|
<p>Causes OperServ to inform all servers of a new S-line the moment
|
|
it is added, rather than waiting for someone to match it first.
|
|
|
|
<p>Example: <tt>ImmediatelySendSline</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/sline.SGlineExpiry"></a>
|
|
<p><ul><li>
|
|
<tt><b>SGlineExpiry</b> <i>time</i></tt> [OPTIONAL]
|
|
<p>Sets the default expiry time for SGlines. If not defined,
|
|
SGlines of that type will not expire by default.
|
|
|
|
<p>Example: <tt>SGlineExpiry 30d</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/sline.SQlineExpiry"></a>
|
|
<p><ul><li>
|
|
<tt><b>SQlineExpiry</b> <i>time</i></tt> [OPTIONAL]
|
|
<p>Sets the default expiry time for SQlines. If not defined,
|
|
SQlines of that type will not expire by default.
|
|
|
|
<p>Example: <tt>SQlineExpiry 30d</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/sline.SZlineExpiry"></a>
|
|
<p><ul><li>
|
|
<tt><b>SZlineExpiry</b> <i>time</i></tt> [OPTIONAL]
|
|
<p>Sets the default expiry time for SZlines. If not defined,
|
|
SZlines of that type will not expire by default.
|
|
|
|
<p>Example: <tt>SZlineExpiry 30d</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/sline.WallOSSline"></a>
|
|
<p><ul><li>
|
|
<tt><b>WallOSSline</b></tt> [OPTIONAL]
|
|
<p>Cause Services to send a WALLOPS/GLOBOPS on use of the SGLINE,
|
|
SQLINE, or SZLINE commands to add or delete S-lines.
|
|
|
|
<p>Example: <tt>WallOSSline</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/sline.WallSlineExpire"></a>
|
|
<p><ul><li>
|
|
<tt><b>WallSlineExpire</b></tt> [OPTIONAL]
|
|
<p>Causes Services to send a WALLOPS/GLOBOPS whenever an autokill
|
|
expires.
|
|
|
|
<p>Example: <tt>WallSlineExpire</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/sline.SQlineIgnoreOpers"></a>
|
|
<p><ul><li>
|
|
<tt><b>SQlineIgnoreOpers</b></tt> [OPTIONAL]
|
|
<p>Allows IRC operators to use nicknames that match an SQline.
|
|
(Note that this may not function properly if the IRC server does
|
|
not allow IRC operators to use such nicknames.)
|
|
|
|
<p>Example: <tt>SQlineIgnoreOpers</tt>
|
|
</ul>
|
|
|
|
<a name="operserv/sline.SQlineKill"></a>
|
|
<p><ul><li>
|
|
<tt><b>SQlineKill</b></tt> [OPTIONAL]
|
|
<p>Normally, users whose nickname matches an SQline will have their
|
|
nickname changed (on servers which support forced nickname
|
|
changing) instead of being killed. Setting this option causes
|
|
such users to be killed even on such servers, which may be
|
|
helpful for dealing with clone attacks.
|
|
|
|
<p>Note that if this option is set, Services will not send SQlines
|
|
to the IRC network; if it did, the IRC servers would step in and
|
|
send the user an "invalid nickname" message before Services had a
|
|
chance to kill the user.
|
|
|
|
<p>Example: <tt>SQlineKill</tt>
|
|
</ul>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>NickServ configuration</h3>
|
|
|
|
<p><hr width="60%">
|
|
<a name="nickserv/main"></a>
|
|
<p><font size="+1"><b>nickserv/main</b></font>
|
|
|
|
<a name="nickserv/main.NickServName"></a>
|
|
<p><ul><li>
|
|
<tt><b>NickServName</b> <i>nick</i> <i>string</i></tt> [REQUIRED]
|
|
<p>Specifies the nickname (first parameter) and "real" name (second
|
|
parameter) used by the NickServ pseudoclient.
|
|
|
|
<p>Example: <tt>NickServName "NickServ" "Nickname Server"</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSEnableRegister"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSEnableRegister</b></tt> [OPTIONAL]
|
|
<p>Allows the REGISTER command to be used. This is usually a good
|
|
thing, but if you don't want your users to be able to register
|
|
nicknames, remove (or comment out) this directive. Note that you
|
|
will need to at least enable this to register the Services
|
|
super-user nick (defined in the operserv/main ServicesRoot
|
|
directive), or you will not be able to use any privileged
|
|
OperServ functions!
|
|
|
|
<p>Example: <tt>NSEnableRegister</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSRegEmailMax"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSRegEmailMax</b> <i>count</i></tt> [OPTIONAL]
|
|
<p>Sets the maximum number of nicknames that can be registered to a
|
|
single E-mail address; this affects both ordinary registration as
|
|
well as changing the address using SET EMAIL, and also nickname
|
|
linking (if the appropriate module is loaded). If not given,
|
|
there is no limit.
|
|
|
|
<p>This option is most useful in combination with NSRequireEmail,
|
|
below.
|
|
|
|
<p>Example: <tt>NSRegEmailMax 20</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSRequireEmail"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSRequireEmail</b></tt> [OPTIONAL]
|
|
<p>Makes an E-mail address required at registration time. Users
|
|
also will not be able to clear the address once registered,
|
|
though they can change it. If not set, an E-mail address is not
|
|
required (but may still be given), and the address may be cleared
|
|
later on.
|
|
|
|
<p>Example: <tt>NSRequireEmail</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSRegDenyIfSuspended"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSRegDenyIfSuspended</b></tt> [OPTIONAL]
|
|
<p>Disallows the use of REGISTER if the E-mail address given with
|
|
the command is associated with a suspended nickname. This can
|
|
help prevent users from getting around nickname suspensions by
|
|
registering a new nickname.
|
|
|
|
<p>Example: <tt>NSRegDenyIfSuspended</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSRegDelay"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSRegDelay</b> <i>time</i></tt> [RECOMMENDED]
|
|
<p>Sets the minimum length of time between consecutive uses of the
|
|
REGISTER command. If not given, this restriction is disabled.
|
|
|
|
<p>WARNING: Not setting NSRegDelay, or setting it too low, will not
|
|
only allow "registration flooding" but, if the mail-auth
|
|
module is also loaded, will also allow users to abuse
|
|
this command to send large quantities of mail (mailbombs)
|
|
to arbitrary users!
|
|
|
|
<p>Example: <tt>NSRegDelay 5m</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSInitialRegDelay"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSInitialRegDelay</b> <i>time</i></tt> [OPTIONAL]
|
|
<p>Sets the minimum length of time the user must be connected before
|
|
using the REGISTER command for the first time. If not given,
|
|
this restriction is disabled. This option can be helpful in
|
|
preventing malicious bots from flooding your network with
|
|
registrations.
|
|
|
|
<p>Example: <tt>NSInitialRegDelay 30s</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSSetEmailDelay"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSSetEmailDelay</b> <i>time</i></tt> [RECOMMENDED]
|
|
<p>Sets the minimum length of time between consecutive uses of the
|
|
SET EMAIL command. If not given, this restriction is disabled.
|
|
|
|
<p>WARNING: If you use the mail-auth module, then not setting
|
|
NSSetEmailDelay, or setting it too low, will allow users
|
|
to abuse this command to send large quantities of mail
|
|
(mailbombs) to arbitrary users!
|
|
|
|
<p>Example: <tt>NSSetEmailDelay 5m</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSDef..."></a>
|
|
<p><ul><li>
|
|
<tt><b>NSDef...</b></tt> [OPTIONAL]
|
|
<p>Sets the default options for newly registered nicks. Note that
|
|
changing these options will have no effect on nicks which are
|
|
already registered. Options not listed here will be unset on new
|
|
nicks.
|
|
|
|
<p>If both NSDefKill and NSDefKillQuick are given, NSDefKillQuick
|
|
takes precedence. KILL IMMED cannot be specified as a default.
|
|
|
|
<p>Example: <tt>NSDefKill</tt>
|
|
<br>Example: <tt>NSDefKillQuick</tt>
|
|
<br>Example: <tt>NSDefSecure</tt>
|
|
<br>Example: <tt>NSDefPrivate</tt>
|
|
<br>Example: <tt>NSDefNoOp</tt>
|
|
<br>Example: <tt>NSDefHideEmail</tt>
|
|
<br>Example: <tt>NSDefHideUsermask</tt>
|
|
<br>Example: <tt>NSDefHideQuit</tt>
|
|
<br>Example: <tt>NSDefMemoSignon</tt>
|
|
<br>Example: <tt>NSDefMemoReceive</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSExpire"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSExpire</b> <i>time</i></tt> [RECOMMENDED]
|
|
<p>Sets the length of time before a nick registration expires. If
|
|
not set, nicknames will not expire.
|
|
|
|
<p>Example: <tt>NSExpire 30d</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSExpireWarning"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSExpireWarning</b> <i>time</i></tt> [OPTIONAL]
|
|
<p>Sets the length of time before nick expiration during which
|
|
warnings are sent to the user when the user is online (and not
|
|
identified). If not set, no warnings will be sent; however, a
|
|
message will still be sent when the nickname actually expires.
|
|
|
|
<p>Example: <tt>NSExpireWarning 3d</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSSuspendExpire"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSSuspendExpire</b> <i>time</i> <i>grace-period</i></tt> [RECOMMENDED]
|
|
<p>Sets the default expiry time and recovery grace period for
|
|
nickname suspensions. (The expiry time can be set individually
|
|
for each suspension; the grace period cannot.)
|
|
|
|
<p>The recovery grace period is the length of time a nick must exist
|
|
for, after being unsuspended, before it is allowed to expire.
|
|
This gives the owner a chance to reclaim the nick. It is
|
|
enforced, if necessary, by adjusting the "last seen time" value,
|
|
as well as the AUTH timeout when the mail-auth module is in use,
|
|
when the nick is unsuspended. If set to zero, nicknames that are
|
|
suspended for longer than "NSExpire" will be expired (dropped)
|
|
during the next check for nickname expiration, giving the owners
|
|
very little time to identify for their nicknames and prevent
|
|
their expiry.
|
|
|
|
<p>If not specified, nickname suspensions will not expire by
|
|
default, and there will be no grace period for recovering the nick.
|
|
|
|
<p>Example: <tt>NSSuspendExpire 25d 5d</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSShowPassword"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSShowPassword</b></tt> [OPTIONAL]
|
|
<p>Causes the user's password to be sent back to them in a NOTICE at
|
|
registration time, as a reminder.
|
|
|
|
<p>Example: <tt>NSShowPassword</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSEnforcerUser"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSEnforcerUser</b> <i>user</i>[@<i>host</i>]</tt> [REQUIRED]
|
|
<p>Sets the username (and possibly hostname) used for the fake user
|
|
created when NickServ collides a user. Should be in user@host
|
|
format. If the host is not given, the one from ServicesUser is
|
|
used.
|
|
|
|
<p>Example: <tt>NSEnforcerUser enforcer</tt>
|
|
<br>Example: <tt>NSEnforcerUser enforcer@localhost.net</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSForceNickChange"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSForceNickChange</b></tt> [OPTIONAL]
|
|
<p>When enabled, makes NickServ change a user's nick to a
|
|
"Guest######" nick instead of killing them when enforcing a
|
|
"nick kill". (The actual nickname used is determined by the
|
|
GuestNickPrefix setting in ircservices.conf.)
|
|
|
|
<p>This setting has no effect with IRC servers that do not support
|
|
forcibly changing a client's nickname, and a warning will be
|
|
written to the log file if this option is used in such a case.
|
|
|
|
<p>Example: <tt>NSForceNickChange</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSReleaseTimeout"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSReleaseTimeout</b> <i>time</i></tt> [REQUIRED]
|
|
<p>Sets the delay before a NickServ-collided nick is released.
|
|
|
|
<p>Example: <tt>NSReleaseTimeout 1m</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSAllowKillImmed"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSAllowKillImmed</b></tt> [OPTIONAL]
|
|
<p>When given, allows the use of the IMMED option with the NickServ
|
|
SET KILL command.
|
|
|
|
<p>Example: <tt>NSAllowKillImmed</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSListOpersOnly"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSListOpersOnly</b></tt> [OPTIONAL]
|
|
<p>When enabled, limits use of the NickServ LIST and LISTEMAIL
|
|
commands to IRC operators.
|
|
|
|
<p>Example: <tt>NSListOpersOnly</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSSecureAdmins"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSSecureAdmins</b></tt> [RECOMMENDED]
|
|
<p>When enabled, prevents the use of the DROPNICK, GETPASS, FORBID,
|
|
SUSPEND, and SET PASSWORD commands by Services admins on other
|
|
Services admins or the Services root. (These restrictions do not
|
|
apply to the Services root.)
|
|
|
|
<p>Example: <tt>NSSecureAdmins</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSEnableDropEmail"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSEnableDropEmail</b></tt> [OPTIONAL]
|
|
<p>Allows the DROPEMAIL command to be used. This command can help
|
|
recover from mass-registration attacks, but can also destroy your
|
|
database if used improperly.
|
|
|
|
<p>Example: <tt>NSEnableDropEmail</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSDropEmailExpire"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSDropEmailExpire</b></tt> [REQUIRED]
|
|
<p>Sets the maximum length of time allowed between a DROPEMAIL
|
|
command and the corresponding DROPEMAIL-CONFIRM command.
|
|
|
|
<p>Example: <tt>NSDropEmailExpire 10m</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSHelpWarning"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSHelpWarning</b> <i>time</i></tt> [OPTIONAL]
|
|
<p>When enabled, displays a "do not abuse NickServ" warning at the
|
|
end of the NickServ HELP output similar to previous versions of
|
|
Services. Otherwise, the warning is not displayed.
|
|
|
|
<p>Example: <tt>NSHelpWarning</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/main.NSAlias"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSAlias</b> <i>alias</i>=<i>command</i></tt> [OPTIONAL]
|
|
<p>Creates an alias for a command. "alias" is the name of the
|
|
alias, and "command" is the command which should be executed for
|
|
that alias; the two are joined by an equals sign ("=") with no
|
|
intervening whitespace. The alias and command names are
|
|
case-insensitive.
|
|
|
|
<p>Any number of aliases can be created by adding more NSAlias
|
|
directives, but recursive aliases are not allowed; "command" must
|
|
be a valid (unaliased) command name.
|
|
|
|
<p>Example: <tt>NSAlias ID=IDENTIFY</tt>
|
|
</ul>
|
|
<a name="nickserv/access"></a>
|
|
<p><font size="+1"><b>nickserv/access</b> (Access list module)</font>
|
|
|
|
<a name="nickserv/access.NSAccessMax"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSAccessMax</b> <i>count</i></tt> [REQUIRED]
|
|
<p>Sets the maximum number of entries allowed on a nickname access
|
|
list.
|
|
|
|
<p>Example: <tt>NSAccessMax 32</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/access.NSFirstAccessEnable"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSFirstAccessEnable</b></tt> [OPTIONAL]
|
|
<p>When enabled, causes an access entry based on the registering
|
|
user's username and hostname to be automatically added to the
|
|
access list of a newly-registered nickname. When disabled,
|
|
newly-registered nicknames will have an empty access list.
|
|
|
|
<p>Example: <tt>NSFirstAccessEnable</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/access.NSFirstAccessWild"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSFirstAccessWild</b></tt> [OPTIONAL]
|
|
<p>When enabled, causes the first access list entry added to a newly
|
|
registered nickname to use a wildcard in the hostname when
|
|
appropriate. When disabled, the first access list entry consists
|
|
of the registering user's username and hostname as-is, without
|
|
wildcards. This directive has no effect if NSFirstAccessEnable
|
|
is disabled.
|
|
|
|
<p>Example: <tt>NSFirstAccessWild</tt>
|
|
</ul>
|
|
<a name="nickserv/autojoin"></a>
|
|
<p><font size="+1"><b>nickserv/autojoin</b> (Autojoin module)</font>
|
|
|
|
<a name="nickserv/autojoin.NSAutojoinMax"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSAutojoinMax</b> <i>count</i></tt> [REQUIRED]
|
|
<p>Sets the maximum number of entries allowed on an autojoin list.
|
|
There is little point in setting this higher than the maximum
|
|
number of channels a client is allowed to join by the server
|
|
(usually 10).
|
|
|
|
<p>Example: <tt>NSAutojoinMax 10</tt>
|
|
</ul>
|
|
<a name="nickserv/link"></a>
|
|
<p><font size="+1"><b>nickserv/link</b> (Link module)</font>
|
|
|
|
<a name="nickserv/link.NSLinkMax"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSLinkMax</b> <i>count</i></tt> [REQUIRED]
|
|
<p>Sets the maximum number of links allowed for a single nickname
|
|
group.
|
|
|
|
<p>Example: <tt>NSLinkMax 20</tt>
|
|
</ul>
|
|
<a name="nickserv/mail-auth"></a>
|
|
<p><font size="+1"><b>nickserv/mail-auth</b> (Authentication module)</font>
|
|
|
|
<a name="nickserv/mail-auth.NSNoAuthExpire"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSNoAuthExpire</b> <i>time</i></tt> [OPTIONAL]
|
|
<p>Sets the period of time after which a newly registered nickname
|
|
will expire if it is not authenticated. If not specified, the
|
|
standard nickname expiration time (NSExpire) is used.
|
|
|
|
<p>Example: <tt>NSNoAuthExpire 12h</tt>
|
|
</ul>
|
|
|
|
<a name="nickserv/mail-auth.NSSendauthDelay"></a>
|
|
<p><ul><li>
|
|
<tt><b>NSSendauthDelay</b> <i>time</i></tt> [RECOMMENDED]
|
|
<p>Sets the minimum length of time between consecutive uses of the
|
|
SENDAUTH command for the same nick group. If not specified, this
|
|
restriction is disabled.
|
|
|
|
<p>WARNING: Not setting NSSendauthDelay, or setting it too low, will
|
|
allow users to abuse this command to send large
|
|
quantities of mail (mailbombs) to arbitrary users!
|
|
|
|
<p>Example: <tt>NSSendauthDelay 1d</tt>
|
|
</ul>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>ChanServ configuration</h3>
|
|
|
|
<p><hr width="60%">
|
|
<a name="chanserv/main"></a>
|
|
<p><font size="+1"><b>chanserv/main</b></font>
|
|
|
|
<a name="chanserv/main.ChanServName"></a>
|
|
<p><ul><li>
|
|
<tt><b>ChanServName</b> <i>nick</i> <i>string</i></tt> [REQUIRED]
|
|
<p>Specifies the nickname (first parameter) and "real" name (second
|
|
parameter) used by the ChanServ pseudoclient.
|
|
|
|
<p>Example: <tt>ChanServName "ChanServ" "Channel Server"</tt>
|
|
</ul>
|
|
|
|
<a name="chanserv/main.CSEnableRegister"></a>
|
|
<p><ul><li>
|
|
<tt><b>CSEnableRegister</b></tt> [OPTIONAL]
|
|
<p>Allows the REGISTER command to be used. This is usually a good
|
|
thing, but if you don't want your users to be able to register
|
|
channels, remove (or comment out) this directive. Note, however,
|
|
that Services administrators and the Services super-user will
|
|
still be able to use the REGISTER command regardless of whether
|
|
this directive is given or not.
|
|
|
|
<p>Example: <tt>CSEnableRegister</tt>
|
|
</ul>
|
|
|
|
<a name="chanserv/main.CSRegisteredOnly"></a>
|
|
<p><ul><li>
|
|
<tt><b>CSRegisteredOnly</b></tt> [OPTIONAL]
|
|
<p>Treats unregistered channels as if they were forbidden,
|
|
disallowing access by ordinary users to any channels not
|
|
explicitly registered with ChanServ. IRC operators will be
|
|
allowed to enter such channels, as they are for ordinary
|
|
forbidden channels. Note that this directive operates
|
|
independently from the CSEnableRegister directive; if
|
|
CSEnableRegister is commented out, non-Services-admin IRC
|
|
operators will be able to join unregistered channels but will
|
|
not be permitted to register them.
|
|
|
|
<p>Example: <tt>CSRegisteredOnly</tt>
|
|
</ul>
|
|
|
|
<a name="chanserv/main.CSMaxReg"></a>
|
|
<p><ul><li>
|
|
<tt><b>CSMaxReg</b> <i>count</i></tt> [RECOMMENDED]
|
|
<p>Limits the number of channels which may be registered to a single
|
|
nickname. In the case of linked nicks, this limit applies to the
|
|
entire set of linked nicks.
|
|
|
|
<p>Example: <tt>CSMaxReg 20</tt>
|
|
</ul>
|
|
|
|
<a name="chanserv/main.CSDef..."></a>
|
|
<p><ul><li>
|
|
<tt><b>CSDef...</b></tt> [OPTIONAL]
|
|
<p>Sets the default options for newly registered channels. Note
|
|
that changing these options will have no effect on channels which
|
|
are already registered. Options not listed here will be unset on
|
|
new channels.
|
|
|
|
<p>Example: <tt>CSDefKeepTopic</tt>
|
|
<br>Example: <tt>CSDefSecureOps</tt>
|
|
<br>Example: <tt>CSDefPrivate</tt>
|
|
<br>Example: <tt>CSDefTopicLock</tt>
|
|
<br>Example: <tt>CSDefLeaveOps</tt>
|
|
<br>Example: <tt>CSDefSecure</tt>
|
|
<br>Example: <tt>CSDefOpNotice</tt>
|
|
<br>Example: <tt>CSDefEnforce</tt>
|
|
<br>Example: <tt>CSDefMemoRestricted</tt>
|
|
<br>Example: <tt>CSDefHideEmail</tt>
|
|
<br>Example: <tt>CSDefHideTopic</tt>
|
|
<br>Example: <tt>CSDefHideMlock</tt>
|
|
</ul>
|
|
|
|
<a name="chanserv/main.CSDefModeLock"></a>
|
|
<p><ul><li>
|
|
<tt><b>CSDefModeLock</b> <i>mode-string</i></tt> [OPTIONAL]
|
|
<p>Sets the default mode lock for newly registered channels, in the
|
|
same format as the SET MLOCK command. If not set, the default is
|
|
"+nt". Note that only binary modes (modes which take no
|
|
parameters) can be used with this directive.
|
|
|
|
<p>Example: <tt>CSDefModeLock +nt</tt>
|
|
</ul>
|
|
|
|
<a name="chanserv/main.CSExpire"></a>
|
|
<p><ul><li>
|
|
<tt><b>CSExpire</b> <i>time</i></tt> [RECOMMENDED]
|
|
<p>Sets the length of time before a channel expires. If not set,
|
|
channels will not expire.
|
|
|
|
<p>Example: <tt>CSExpire 14d</tt>
|
|
</ul>
|
|
|
|
<a name="chanserv/main.CSSuspendExpire"></a>
|
|
<p><ul><li>
|
|
<tt><b>CSSuspendExpire</b> <i>time</i></tt> [RECOMMENDED]
|
|
<p>Sets the default expiry time and recovery grace period for channel
|
|
suspensions. If not set, channel suspensions will not expire by
|
|
default and there will be no recovery grace period.
|
|
|
|
<p>Example: <tt>CSSuspendExpire 12d 2d</tt>
|
|
</ul>
|
|
|
|
<a name="chanserv/main.CSShowPassword"></a>
|
|
<p><ul><li>
|
|
<tt><b>CSShowPassword</b></tt> [OPTIONAL]
|
|
<p>If specified, causes the user's password to be sent back to them
|
|
in a NOTICE at registration time, as a reminder.
|
|
|
|
<p>Example: <tt>CSShowPassword</tt>
|
|
</ul>
|
|
|
|
<a name="chanserv/main.CSAccessMax"></a>
|
|
<p><ul><li>
|
|
<tt><b>CSAccessMax</b> <i>count</i></tt> [REQUIRED]
|
|
<p>Sets the maximum number of entries on a channel's access list.
|
|
Channel access lists may contain only registered nicknames;
|
|
therefore, checking each entry on the list requires only a single
|
|
scalar comparison instead of a wildcard match, and this limit may
|
|
be safely set much higher than (for example) the autokick list
|
|
size limit without impacting performance significantly.
|
|
|
|
<p>Example: <tt>CSAccessMax 1024</tt>
|
|
</ul>
|
|
|
|
<a name="chanserv/main.CSAutokickMax"></a>
|
|
<p><ul><li>
|
|
<tt><b>CSAutokickMax</b> <i>count</i></tt> [REQUIRED]
|
|
<p>Sets the maximum number of entries on a channel's autokick list.
|
|
|
|
<p>Example: <tt>CSAutokickMax 32</tt>
|
|
</ul>
|
|
|
|
<a name="chanserv/main.CSInhabit"></a>
|
|
<p><ul><li>
|
|
<tt><b>CSInhabit</b> <i>time</i></tt> [REQUIRED]
|
|
<p>Sets the length of time ChanServ stays in a channel after kicking
|
|
a user from a channel s/he is not permitted to be in. This only
|
|
occurs when the user is the only one in the channel.
|
|
|
|
<p>Example: <tt>CSInhabit 15s</tt>
|
|
</ul>
|
|
|
|
<a name="chanserv/main.CSRestrictDelay"></a>
|
|
<p><ul><li>
|
|
<tt><b>CSRestrictDelay</b> <i>time</i></tt> [OPTIONAL]
|
|
<p>When enabled, causes ChanServ to permit users to join channels
|
|
with the RESTRICTED option set if they would be permitted to join
|
|
after identifying for their nick, and to not remove mode +o (ops)
|
|
from users who would be auto-opped if identified for their nick,
|
|
for the given period of time after Services starts up. This gives
|
|
such users time to identify to NickServ before being kicked out of
|
|
restricted channels or getting deopped.
|
|
|
|
<p>Example: <tt>CSRestrictDelay 15s</tt>
|
|
</ul>
|
|
|
|
<a name="chanserv/main.CSListOpersOnly"></a>
|
|
<p><ul><li>
|
|
<tt><b>CSListOpersOnly</b></tt> [OPTIONAL]
|
|
<p>When enabled, limits use of the ChanServ LIST command to IRC
|
|
operators.
|
|
|
|
<p>Example: <tt>CSListOpersOnly</tt>
|
|
</ul>
|
|
|
|
<a name="chanserv/main.CSForbidShortChannel"></a>
|
|
<p><ul><li>
|
|
<tt><b>CSForbidShortChannel</b></tt> [OPTIONAL]
|
|
<p>When enabled, treats the channel "#" as a forbidden channel, not
|
|
allowing any users to join it. When not enabled, the channel "#"
|
|
can be used normally, although ChanServ functions cannot be used
|
|
with it. If CSRegisteredOnly is enabled, this directive has no
|
|
effect (the "#" channel will be treated as forbidden along with
|
|
all other unregistered channel).
|
|
|
|
<p>Example: <tt>CSForbidShortChannel</tt>
|
|
</ul>
|
|
|
|
<a name="chanserv/main.CSSkipModeRCheck"></a>
|
|
<p><ul><li>
|
|
<tt><b>CSSkipModeRCheck</b></tt> [OPTIONAL]
|
|
<p>When enabled, causes ChanServ to not kick users with unregistered
|
|
nicknames who try to join <tt><i>tt</i></tt>+R<tt><i>/tt</i></tt> channels (on networks
|
|
supporting <tt><i>tt</i></tt>+R<tt><i>/tt</i></tt> or another mode restricting channels to
|
|
registered nicknames only).
|
|
|
|
<p>Example: <tt>CSSkipModeRCheck</tt>
|
|
</ul>
|
|
|
|
<a name="chanserv/main.CSAlias"></a>
|
|
<p><ul><li>
|
|
<tt><b>CSAlias</b> <i>alias</i>=<i>command</i></tt> [OPTIONAL]
|
|
<p>Creates an alias for a command. The parameter format is the same
|
|
as for the NSAlias directive.
|
|
|
|
<p>Example: <tt>CSAlias ID=IDENTIFY</tt>
|
|
</ul>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>MemoServ configuration</h3>
|
|
|
|
<p><hr width="60%">
|
|
<a name="memoserv/main"></a>
|
|
<p><font size="+1"><b>memoserv/main</b></font>
|
|
|
|
<a name="memoserv/main.MemoServName"></a>
|
|
<p><ul><li>
|
|
<tt><b>MemoServName</b> <i>nick</i> <i>string</i></tt> [REQUIRED]
|
|
<p>Specifies the nickname (first parameter) and "real" name (second
|
|
parameter) used by the MemoServ pseudoclient.
|
|
|
|
<p>Example: <tt>MemoServName "MemoServ" "Memo Server"</tt>
|
|
</ul>
|
|
|
|
<a name="memoserv/main.MSMaxMemos"></a>
|
|
<p><ul><li>
|
|
<tt><b>MSMaxMemos</b> <i>count</i></tt> [RECOMMENDED]
|
|
<p>Sets the maximum number of memos a user is allowed to keep by
|
|
default. Normal users may set the limit anywhere between zero
|
|
and this value; Services admins can change it to any value or
|
|
disable it. If not given, the limit is disabled by default, and
|
|
normal users can set any limit they want.
|
|
|
|
<p>Example: <tt>MSMaxMemos 20</tt>
|
|
</ul>
|
|
|
|
<a name="memoserv/main.MSExpire"></a>
|
|
<p><ul><li>
|
|
<tt><b>MSExpire</b> <i>time</i></tt> [OPTIONAL]
|
|
<p>Sets the length of time after a memo is sent until it expires and
|
|
is automatically deleted. If not set, memos will not expire.
|
|
Note that memos sent while MSExpire is disabled will not expire
|
|
even if MSExpire is later enabled.
|
|
|
|
<p>Example: <tt>MSExpire 3d</tt>
|
|
</ul>
|
|
|
|
<a name="memoserv/main.MSExpireDelay"></a>
|
|
<p><ul><li>
|
|
<tt><b>MSExpireDelay</b> <i>time</i></tt> [OPTIONAL]
|
|
<p>Sets the length of time after first being read a memo's
|
|
expiration will be delayed. Even if a memo reaches the age given
|
|
in the MSExpire directive, it will not be deleted until at least
|
|
the length of time given in this directive has passed since the
|
|
memo was first read. If not set, memo expiration will not be
|
|
delayed, and unread memos which have expired will be deleted
|
|
immediately upon being read.
|
|
|
|
<p>If MSExpire is not set, this directive is ignored.
|
|
|
|
<p>Example: <tt>MSExpireDelay 1d</tt>
|
|
</ul>
|
|
|
|
<a name="memoserv/main.MSSendDelay"></a>
|
|
<p><ul><li>
|
|
<tt><b>MSSendDelay</b> <i>time</i></tt> [RECOMMENDED]
|
|
<p>Sets the delay between consecutive uses of the MemoServ SEND
|
|
command. This can help prevent spam as well as denial-of-service
|
|
attacks from sending large numbers of memos and filling up disk
|
|
space (and memory). A 3-second wait means a maximum average of
|
|
150 bytes of memo per second per user under the current IRC
|
|
protocol.
|
|
|
|
<p>Example: <tt>MSSendDelay 3s</tt>
|
|
</ul>
|
|
|
|
<a name="memoserv/main.MSAlias"></a>
|
|
<p><ul><li>
|
|
<tt><b>MSAlias</b> <i>alias</i>=<i>command</i></tt> [OPTIONAL]
|
|
<p>Creates an alias for a command. The parameter format is the same
|
|
as for the NSAlias directive.
|
|
|
|
<p>Example: <tt>MSAlias R=READ</tt>
|
|
</ul>
|
|
<a name="memoserv/forward"></a>
|
|
<p><font size="+1"><b>memoserv/forward</b> (FORWARD module)</font>
|
|
|
|
<a name="memoserv/forward.MSAllowForward"></a>
|
|
<p><ul><li>
|
|
<tt><b>MSAllowForward</b></tt> [OPTIONAL]
|
|
<p>If given, allows the FORWARD command to be used (the SET FORWARD
|
|
command is always available). While the FORWARD command can be
|
|
useful particularly for users first setting the FORWARD option
|
|
on, a large number of users using the FORWARD ALL command can
|
|
place a significant load on Services.
|
|
|
|
<p>Example: <tt>MSAllowForward</tt>
|
|
</ul>
|
|
|
|
<a name="memoserv/forward.MSForwardDelay"></a>
|
|
<p><ul><li>
|
|
<tt><b>MSForwardDelay</b> <i>time</i></tt> [RECOMMENDED if MSAllowForward is set]
|
|
<p>Sets the minimum length of time between consecutive uses of the
|
|
FORWARD command. If not given, this restriction is disabled.
|
|
(Note that this can allow users to place a significant load on
|
|
Services and/or your mail server!)
|
|
|
|
<p>If MSAllowForward is not set, this directive is ignored.
|
|
|
|
<p>Example: <tt>MSForwardDelay 10s</tt>
|
|
</ul>
|
|
<a name="memoserv/ignore"></a>
|
|
<p><font size="+1"><b>memoserv/ignore</b> (IGNORE module)</font>
|
|
|
|
<a name="memoserv/ignore.MSIgnoreMax"></a>
|
|
<p><ul><li>
|
|
<tt><b>MSIgnoreMax</b></tt> [REQUIRED]
|
|
<p>Sets the maximum number of entries a user can have for their
|
|
nickname group's memo ignore list.
|
|
|
|
<p>Example: <tt>MSIgnoreMax 32</tt>
|
|
</ul>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>StatServ configuration</h3>
|
|
|
|
<p><hr width="60%">
|
|
<a name="statserv/main"></a>
|
|
<p><font size="+1"><b>statserv/main</b></font>
|
|
|
|
<a name="statserv/main.StatServName"></a>
|
|
<p><ul><li>
|
|
<tt><b>StatServName</b> <i>nick</i> <i>string</i></tt> [REQUIRED]
|
|
<p>Specifies the nickname (first parameter) and "real" name (second
|
|
parameter) used by the StatServ pseudoclient.
|
|
|
|
<p>Example: <tt>StatServName "StatServ" "Statistics Server"</tt>
|
|
</ul>
|
|
|
|
<a name="statserv/main.SSOpersOnly"></a>
|
|
<p><ul><li>
|
|
<tt><b>SSOpersOnly</b></tt> [OPTIONAL]
|
|
<p>Limits the use of StatServ to IRC operators only.
|
|
|
|
<p>Example: <tt>SSOpersOnly</tt>
|
|
</ul>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>HTTP server modules</h3>
|
|
|
|
<p><hr width="60%">
|
|
<a name="httpd/main"></a>
|
|
<p><font size="+1"><b>httpd/main</b></font>
|
|
|
|
<a name="httpd/main.ListenTo"></a>
|
|
<p><ul><li>
|
|
<tt><b>ListenTo</b> <i>address</i>:<i>port</i></tt> [REQUIRED]
|
|
<p>Specifies the address and port number on which the HTTP server
|
|
will listen for incoming requests. <tt><i>address</i></tt> may be specified as
|
|
an IP address (first example below), a hostname (second example),
|
|
or the special string "*", which means "any IP address" (third
|
|
example).
|
|
|
|
<p>When a hostname is given, as in the second example below,
|
|
Services will look up the address(es) associated with the
|
|
hostname at startup time, and bind to every IP address found.
|
|
This can be useful, for example, with dynamic DNS, in which
|
|
the server's IP address changes periodically; however, the
|
|
hostname lookup can take time—especially if there is no DNS
|
|
server on the local network—and is susceptible to network or
|
|
DNS server outages, so IP addresses or "*" should be used
|
|
whenever possible.
|
|
|
|
<p>Note that many systems restrict low port numbers to the system
|
|
administrator; in particular, Unix-like systems allow only the
|
|
root user (UID 0) to use ports less than 1024.
|
|
|
|
<p>Example: <tt>ListenTo 127.0.0.1:12701</tt>
|
|
<br>Example: <tt>ListenTo services.example.net:8080</tt>
|
|
<br>Example: <tt>ListenTo *:80</tt>
|
|
</ul>
|
|
|
|
<a name="httpd/main.ListenBacklog"></a>
|
|
<p><ul><li>
|
|
<tt><b>ListenBacklog</b></tt> [REQUIRED]
|
|
<p>Specifies the maximum number of connections that can be received
|
|
by the operating system without being accepted by Services (the
|
|
second parameter, `backlog', to the listen() system call). If
|
|
you start seeing refused or delayed connections on a busy server,
|
|
try increasing this value.
|
|
|
|
<p>If you don't understand the above, leave this setting alone.
|
|
|
|
<p>Example: <tt>ListenBacklog 5</tt>
|
|
</ul>
|
|
|
|
<a name="httpd/main.RequestBufferSize"></a>
|
|
<p><ul><li>
|
|
<tt><b>RequestBufferSize</b> <i>bytes</i></tt> [REQUIRED]
|
|
<p>Specifies the size of the buffer allocated for each HTTP request.
|
|
Note that this buffer is allocated for every connection, and an
|
|
additional amount of memory will be allocated for header pointers
|
|
(in the pathological case this extra amount could reach 4/3 of
|
|
the value given for this directive). If a client sends a request
|
|
(including POST data) exceeding this value, an error will be
|
|
returned and the connection terminated.
|
|
|
|
<p>If you don't understand the above, leave this setting alone.
|
|
|
|
<p>Example: <tt>RequestBufferSize 4096</tt>
|
|
</ul>
|
|
|
|
<a name="httpd/main.MaxConnections"></a>
|
|
<p><ul><li>
|
|
<tt><b>MaxConnections</b> <i>count</i></tt> [RECOMMENDED]
|
|
<p>Specifies the maximum number of simultaneous connections allowed.
|
|
If not given, no limit is placed on the number of connections;
|
|
however, the operating system may impose its own limits, which
|
|
are not under the control of Services.
|
|
|
|
<p>Example: <tt>MaxConnections 10</tt>
|
|
</ul>
|
|
|
|
<a name="httpd/main.MaxRequests"></a>
|
|
<p><ul><li>
|
|
<tt><b>MaxRequests</b> <i>count</i></tt> [RECOMMENDED]
|
|
<p>Specifies the maximum number of requests that can be made over a
|
|
single connection before the server disconnects it. If not
|
|
given, no limit is placed on the number of requests per
|
|
connection; note that this may allow malicious users to interfere
|
|
with Services' normal operations by sending large numbers of
|
|
requests over a single connection.
|
|
|
|
<p>Example: <tt>MaxRequests 20</tt>
|
|
</ul>
|
|
|
|
<a name="httpd/main.IdleTimeout"></a>
|
|
<p><ul><li>
|
|
<tt><b>IdleTimeout</b> <i>time</i></tt> [RECOMMENDED]
|
|
<p>Specifies the length of time a connection can be idle (not
|
|
sending data) before it will be automatically closed. If not
|
|
given, connections will never be closed automatically.
|
|
|
|
<p>Example: <tt>IdleTimeout 30s</tt>
|
|
</ul>
|
|
|
|
<a name="httpd/main.LogConnections"></a>
|
|
<p><ul><li>
|
|
<tt><b>LogConnections</b></tt> [OPTIONAL]
|
|
<p>If given, a log message will be written for each connection to
|
|
the server.
|
|
|
|
<p>Example: <tt>LogConnections</tt>
|
|
</ul>
|
|
<a name="httpd/auth-ip"></a>
|
|
<p><font size="+1"><b>httpd/auth-ip</b> (IP address authorization module)</font>
|
|
|
|
<a name="httpd/auth-ip.AllowHost"></a>
|
|
<p><ul><li>
|
|
<tt><b>AllowHost</b> <i>path</i> <i>address</i></tt> [OPTIONAL]
|
|
<br><tt><b>DenyHost</b> <i>path</i> <i>address</i></tt> [OPTIONAL]
|
|
<p>Specifies which hosts will be allowed (or not allowed) to access
|
|
resources provided by the HTTP server. The <tt><i>path</i></tt> parameter is a
|
|
URL path (not including the "<tt>http://host.name</tt>"), and matches any
|
|
URL which begins with the same string; for example, "<tt>/dir</tt>"
|
|
matches both "<tt>/dir/file</tt>" and "<tt>/dirty</tt>". The <tt><i>address</i></tt> can be an
|
|
IP address, a hostname (as with <a href="#httpd/main.ListenTo"><tt>ListenTo</tt></a> in the main server
|
|
module, all addresses associated with the hostname will be
|
|
allowed or denied), the string "<tt>*</tt>" (which means all addresses),
|
|
or the special format "<tt><i>IP-address</i>/<i>mask</i></tt>", where <tt><i>mask</i></tt> is an
|
|
integer from 1 to 31 giving the number of bits in the subnet
|
|
address, which indicates that the entire subnet of addressess
|
|
specified should be allowed or denied; for example,
|
|
"<tt>192.168.1.64/26</tt>" represents the range of addresses from
|
|
192.168.1.64 to 192.168.1.127.
|
|
<p>
|
|
Examples:
|
|
<div align=center><p><table border=1 cellpadding=1 cellspacing=1>
|
|
<tr><th>Directive<th>Meaning
|
|
<tr><td><tt>AllowHost /debug 127.0.0.1</tt>
|
|
<td>Allow all requests from <tt>localhost</tt> to the debug page
|
|
<tr><td><tt>AllowHost / 192.168.0.0/24</tt>
|
|
<td>Allow any host in the <tt>192.168.0.*</tt> network access to the entire server
|
|
<tr><td><tt>DenyHost / shell.example.org</tt>
|
|
<td>Deny connections from any address associated with <tt>shell.example.org</tt>
|
|
</table></div>
|
|
<p>
|
|
Multiple <tt>AllowHost</tt> or <tt>DenyHost</tt> directives for the same path may
|
|
be used to specify multiple addresses to allow or deny. Each
|
|
condition will be checked in the order they are listed here, and
|
|
the first matching one will be used. For example, these lines:
|
|
<blockquote>
|
|
<tt>AllowHost / 192.168.0.1</tt>
|
|
<br><tt>DenyHost / 192.168.0.0/24</tt>
|
|
</blockquote>
|
|
deny access to all hosts in the <tt>192.168.0.*</tt> network <i>except</i>
|
|
<tt>192.168.0.1</tt>. However, the reverse:
|
|
<blockquote>
|
|
<tt>DenyHost / 192.168.0.0/24</tt>
|
|
<br><tt>AllowHost / 192.168.0.1</tt>
|
|
</blockquote>
|
|
simply blocks all hosts in the <tt>192.168.0.*</tt> network, since the
|
|
first rule matches <tt>192.168.0.1</tt> and the second is never checked.
|
|
<p>
|
|
Access to the entire server can be allowed or denied by using the
|
|
path "<tt>/</tt>", which matches every URL (since all URLs begin with a
|
|
slash). Such a rule should always be included at the end of the
|
|
rule list to explicitly indicate what should be done with
|
|
requests that do not match any other rule; the behavior of the
|
|
module for requests without a matching rule is undefined. For
|
|
example:
|
|
<blockquote>
|
|
<tt>AllowHost / *</tt>
|
|
</blockquote>
|
|
or:
|
|
<blockquote>
|
|
<tt>DenyHost / *</tt>
|
|
</blockquote>
|
|
<p>
|
|
<b>WARNING: Hostnames are resolved only once at startup; any changes
|
|
in a host's IP address will not be seen by Services.</b>
|
|
<p>
|
|
Note: These directives are listed as "optional" only because the
|
|
module will still load even if no directives are listed;
|
|
however, unless <tt>AllowHost</tt>/<tt>DenyHost</tt> directives are given,
|
|
the module will not have any effect.
|
|
|
|
<p>Example: <tt>AllowHost / *</tt>
|
|
</ul>
|
|
<a name="httpd/auth-password"></a>
|
|
<p><font size="+1"><b>httpd/auth-password</b> (Password authorization module)</font>
|
|
|
|
<a name="httpd/auth-password.AuthName"></a>
|
|
<p><ul><li>
|
|
<tt><b>AuthName</b> <i>name</i></tt> [REQUIRED]
|
|
<p>Specifies the name to be used by the user's browser when asking
|
|
for a password (as in "Enter username and password for <tt><i>name</i></tt>:").
|
|
|
|
<p>Example: <tt>AuthName "IRC Services"</tt>
|
|
</ul>
|
|
|
|
<a name="httpd/auth-password.Protect"></a>
|
|
<p><ul><li>
|
|
<tt><b>Protect</b> <i>path</i> <i>user</i>:<i>pass</i></tt> [OPTIONAL]
|
|
<p>Sets the URLs (paths) which will be protected by password
|
|
authorization, and the username and password for each path. The
|
|
username and password can be different for each path. The path
|
|
given will match any URL beginning with that string, as with the
|
|
<tt>auth-ip</tt> module.
|
|
<p>
|
|
Examples:
|
|
<blockquote>
|
|
<tt>Protect /debug "debug:debug"</tt>
|
|
<br><tt>Protect /~ "nickuser:nickpass"</tt>
|
|
</blockquote>
|
|
<p>
|
|
Note: This directive is listed as "optional" only because the
|
|
module will still load even if no directives are listed;
|
|
however, unless <tt>Protect</tt> directives are given, the module
|
|
will not have any effect. Use a path of "<tt>/</tt>" to apply
|
|
password protection to the entire server.
|
|
</ul>
|
|
<a name="httpd/dbaccess"></a>
|
|
<p><font size="+1"><b>httpd/dbaccess</b> (Database access module)</font>
|
|
|
|
<p>NOTICE: This module allows complete access to all Services data;
|
|
be certain to protect it from unauthorized access using
|
|
authorization modules or other means.
|
|
|
|
<a name="httpd/dbaccess.Prefix"></a>
|
|
<p><ul><li>
|
|
<tt><b>Prefix</b> <i>path</i></tt> [REQUIRED]
|
|
<p>Sets the URL (path) at which database access will be accessible.
|
|
If this does not end with a slash, one will be appended
|
|
automatically. Access is provided using the following directory
|
|
tree:
|
|
<div align=center><p><table border=0 cellspacing=2>
|
|
<tr><td><tt><i>path</i>/</tt>
|
|
<td>Main menu
|
|
<tr><td><tt><i>path</i>/operserv/</tt>
|
|
<td>OperServ data and menu
|
|
<tr><td><tt><i>path</i>/operserv/akill/</tt>
|
|
<td>Autokill list
|
|
<tr><td><tt><i>path</i>/operserv/news/</tt>
|
|
<td>News item list
|
|
<tr><td><tt><i>path</i>/operserv/sessions/ </tt>
|
|
<td>Session and exception lists
|
|
<tr><td><tt><i>path</i>/operserv/sline/</tt>
|
|
<td>S-line lists
|
|
<tr><td><tt><i>path</i>/nickserv/</tt>
|
|
<td>Nickname list and information
|
|
<tr><td><tt><i>path</i>/chanserv/</tt>
|
|
<td>Channel list and information
|
|
<tr><td><tt><i>path</i>/statserv/</tt>
|
|
<td>Network statistics
|
|
<tr><td><tt><i>path</i>/xml-export/</tt>
|
|
<td>XML-format database download
|
|
</table></div>
|
|
Categories for which the relevant module is not loaded will not
|
|
be accessible.
|
|
<p>
|
|
<b>WARNING: These functions, particularly the XML export function,
|
|
can cause Services to stop for a significant period of
|
|
time while they are processed!</b>
|
|
<p>
|
|
This is commented out by default; make sure you implement proper
|
|
access protection (see above) before uncommenting it.
|
|
|
|
<p>Example: <tt>Prefix "/dbaccess"</tt>
|
|
</ul>
|
|
<a name="httpd/debug"></a>
|
|
<p><font size="+1"><b>httpd/debug</b> (Debug page module)</font>
|
|
|
|
<a name="httpd/debug.DebugURL"></a>
|
|
<p><ul><li>
|
|
<tt><b>DebugURL</b> <i>path</i></tt> [REQUIRED]
|
|
<p>Sets the URL (path) at which the debug page will be accessible.
|
|
This must begin with a slash.
|
|
|
|
<p>Example: <tt>DebugURL "/debug"</tt>
|
|
</ul>
|
|
<a name="httpd/redirect"></a>
|
|
<p><font size="+1"><b>httpd/redirect</b> (Nick/channel redirect module)</font>
|
|
|
|
<a name="httpd/redirect.NicknamePrefix"></a>
|
|
<p><ul><li>
|
|
<tt><b>NicknamePrefix</b> <i>path</i></tt> [OPTIONAL]
|
|
<p>Sets the URL (path) at which nickname redirects will be
|
|
accessible; all characters after this prefix, up to the next
|
|
slash, will be taken as the nickname. This must begin with a
|
|
slash. The default value, "/~", emulates the traditional home
|
|
page URL of "http://www.example.net/~username/". If you use a
|
|
directory name instead, it must end with a slash, for example:
|
|
"/nickname/". See also ChannelPrefix, below.
|
|
|
|
<p>If not set, nickname redirects will not be done.
|
|
|
|
<p>Example: <tt>NicknamePrefix "/~"</tt>
|
|
</ul>
|
|
|
|
<a name="httpd/redirect.ChannelPrefix"></a>
|
|
<p><ul><li>
|
|
<tt><b>ChannelPrefix</b> <i>path</i></tt> [OPTIONAL]
|
|
<p>Sets the URL (path) at which channel redirects will be
|
|
accessible; all characters after this prefix, up to the next
|
|
slash, will be taken as the channel name (without the leading
|
|
"#", which cannot be used in URLs). The path must begin with
|
|
a slash. The default value, "/channel/", gives URLs like
|
|
"http://services.example.net/channels/channelname/" for channel
|
|
"#channelname".
|
|
|
|
<p>If not set, channel redirects will not be done.
|
|
|
|
<p>Note: If a URL could be interpreted as both a nickname URL and a
|
|
channel URL, the nickname will take precedence, even if it
|
|
is not registered or does not have a URL associated with it.
|
|
|
|
<p>Example: <tt>ChannelPrefix "/channel/"</tt>
|
|
</ul>
|
|
<a name="httpd/top-page"></a>
|
|
<p><font size="+1"><b>httpd/top-page</b> (Top page module)</font>
|
|
|
|
<a name="httpd/top-page.Filename"></a>
|
|
<p><ul><li>
|
|
<tt><b>Filename</b> <i>path</i> [<i>content-type</i>]</tt> [OPTIONAL]
|
|
<p>Sets the name of a file to be delivered as the server's top page.
|
|
If this does not begin with a slash, then it is taken as relative
|
|
to the Services data directory. The second parameter specifies
|
|
the MIME content type of the file; if not given, it defaults to
|
|
text/html.
|
|
|
|
<p>Example: <tt>Filename "Top Page.txt" text/plain</tt>
|
|
<br>Example: <tt>Filename /var/www/html/ircservices/top-page.html</tt>
|
|
</ul>
|
|
|
|
<a name="httpd/top-page.Redirect"></a>
|
|
<p><ul><li>
|
|
<tt><b>Redirect</b> <i>URL</i></tt> [OPTIONAL]
|
|
<p>Sets a URL to be provided as a redirect to a client accessing the
|
|
top page. This must be a full URL, beginning with "http://" (or
|
|
some other protocol specifier). If both Filename and Redirect
|
|
are given, Redirect takes precedence.
|
|
|
|
<p>Example: <tt>Redirect http://www.example.net/ircservices/</tt>
|
|
</ul>
|
|
|
|
<p><hr width="60%">
|
|
|
|
<h3 align=center>Miscellaneous modules</h3>
|
|
|
|
<p><hr width="60%">
|
|
<a name="misc/devnull"></a>
|
|
<p><font size="+1"><b>misc/devnull</b> (DevNull settings)</font>
|
|
|
|
<a name="misc/devnull.DevNullName"></a>
|
|
<p><ul><li>
|
|
<tt><b>DevNullName</b> <i>nick</i> <i>string</i></tt> [REQUIRED]
|
|
<p>Specifies the nickname (first parameter) and "real" name (second
|
|
parameter) used by the DevNull pseudoclient.
|
|
|
|
<p>Example: <tt>DevNullName "DevNull" "/dev/null -- message sink"</tt>
|
|
</ul>
|
|
<a name="misc/helpserv"></a>
|
|
<p><font size="+1"><b>misc/helpserv</b> (HelpServ settings)</font>
|
|
|
|
<a name="misc/helpserv.HelpServName"></a>
|
|
<p><ul><li>
|
|
<tt><b>HelpServName</b> <i>nick</i> <i>string</i></tt> [REQUIRED]
|
|
<p>Specifies the nickname (first parameter) and "real" name (second
|
|
parameter) used by the HelpServ pseudoclient.
|
|
|
|
<p>Example: <tt>HelpServName "HelpServ" "Help Server"</tt>
|
|
</ul>
|
|
|
|
<a name="misc/helpserv.HelpDir"></a>
|
|
<p><ul><li>
|
|
<tt><b>HelpDir</b> <i>dirname</i></tt> [REQUIRED]
|
|
<p>Specifies the name of the subdirectory containing help files for
|
|
HelpServ.
|
|
|
|
<p>Example: <tt>HelpDir helpfiles</tt>
|
|
</ul>
|
|
<a name="misc/xml-export"></a>
|
|
<p><font size="+1"><b>misc/xml-export</b> (XML export settings)</font>
|
|
|
|
<p>This module has no configurable settings.
|
|
<a name="misc/xml-import"></a>
|
|
<p><font size="+1"><b>misc/xml-import</b> (XML import settings)</font>
|
|
|
|
<a name="misc/xml-import.OnNicknameCollision"></a>
|
|
<p><ul><li>
|
|
<tt><b>OnNicknameCollision</b> <i>action</i></tt> [OPTIONAL]
|
|
<p>Specifies the action to be taken when a nickname in the data to
|
|
import is already registered. The string must be one of either
|
|
"skipgroup" (skip over the nickname group containing the nickname
|
|
in the imported data), "skipnick" (skip only the colliding
|
|
nickname), "overwrite" (drop the existing nickname), or "abort"
|
|
(do not import any data). Note that when "abort" is selected,
|
|
the entire XML input is still checked for errors, but Services
|
|
will abort before actually merging any data.
|
|
|
|
<p>When using "overwrite", if a nickname group has only one nickname
|
|
and that nickname is overwritten, the nickname group will be
|
|
dropped as well. As a consequence, any channels owned by such a
|
|
nickname will be dropped (or shifted to their successors) as
|
|
well. All nicknames and channels overwritten or dropped in this
|
|
manner will be displayed on standard error.
|
|
|
|
<p>If not specified, defaults to "skipgroup".
|
|
|
|
<p>Example: <tt>OnNicknameCollision skipgroup</tt>
|
|
</ul>
|
|
|
|
<a name="misc/xml-import.OnChannelCollision"></a>
|
|
<p><ul><li>
|
|
<tt><b>OnChannelCollision</b> <i>action</i></tt> [OPTIONAL]
|
|
<p>Specifies the action to be taken when a channel in the data to
|
|
import is already registered. The string must be one of either
|
|
"skip" (skip over the channel in the imported data), "overwrite"
|
|
(drop the existing channel), or "abort" (do not import any data).
|
|
Note that when "abort" is selected, the entire XML input is still
|
|
checked for errors, but Services will abort before actually
|
|
merging any data. If not specified, defaults to "skip".
|
|
|
|
<p>Example: <tt>OnChannelCollision skip</tt>
|
|
</ul>
|
|
|
|
<a name="misc/xml-import.ImportNews"></a>
|
|
<p><ul><li>
|
|
<tt><b>ImportNews</b></tt> [OPTIONAL]
|
|
<p>Causes news items in the XML data to be imported into the
|
|
database (normally, news items are skipped).
|
|
|
|
<p>Example: <tt>ImportNews</tt>
|
|
</ul>
|
|
|
|
<a name="misc/xml-import.VerboseImport"></a>
|
|
<p><ul><li>
|
|
<tt><b>VerboseImport</b></tt> [OPTIONAL]
|
|
<p>Causes a detailed list of imported nicknames, channels, and other
|
|
data to be printed to standard output.
|
|
|
|
<p>Example: <tt>VerboseImport</tt>
|
|
</ul>
|
|
|
|
<p align=right><font size="-1"><a href="#top">Back to top</a></font>
|
|
|
|
<p><hr>
|
|
|
|
<p align=right><font size=-1><a href=index.html>Table of Contents</a></font>
|
|
|
|
</body>
|
|
</html>
|