Head Coders: Stskeeps / Codemastr
Coding Team: Grievre / Luke / nighthawk
Documentation: CKnight^
Due to the increasing complexity of UnrealIRCd3.2 We have switched to a easier to navigate, more inclusive documentation set. To view this documentation you must have a compatible browser, which are listed below. Up to date docs are available @ http://www.unrealircd.com/unreal32docs.html
Compatible Browsers:
Opera 6.02
Microsoft Internet Explorer 6.X / 5.5
Netscape Navigator 6.X
Lynx (to a point)
INDEX / TABLE OF CONTENTS
1. Introduction & Notes
---1.1. Notes on new documentation
---1.2. Notes on current release
---1.3. Notes on compatibility
2. Installation
3. Configuring your unrealircd.conf
file
---3.1. Configuration file explained
---3.2. Me Block -=- (M:Line)
---3.3. Admin Block -=- (A:Line)
---3.4. Class Block -=- (Y:Line)
---3.5. Allow Block -=- (I:Line)
---3.6. Listen Block -=- (P:Line)
---3.7. Oper Block -=- (O:Line)
---3.8. DRpass Block -=-(X:Line)
---3.9. Include Directive
---3.10. Loadmodule Directive
---3.11. Log Block
---3.12. TLD Block -=- (T:Line)
---3.13. Ban Nick Block -=- (Q:Line)
---3.14. Ban User Block -=- (K:Line)
---3.15. Ban IP Block -=- (Z:Line)
---3.16. Ban Server Block -=-(q:Line)
---3.17. Ban Realname Block -=- (n:Line)
---3.18. Ban Exception Block -=- (E:Line)
---3.19. Scan Exception Block -=- (e:Line)
---3.20. Deny DCC Block -=- (dccdeny.conf)
---3.21. Deny Version Block -=- (V:Line)
---3.22. Deny Link Block -=- (D:Line / d:Line)
---3.23. Deny Channel Block -=- (chrestrict.conf)
---3.24. Allow Channel Block
---3.25. Vhost Block Block -=- (vhost.conf)
---3.26. Badwords Block -=- (badwords.conf)
---3.27. Uline Block -=- (U:Line)
---3.28. Link Block -=- (C/N/H:Lines)
---3.29. Alias Block
---3.30. Help Block
---3.31. Set Block -=- (networks/unrealircd.conf)
4. User & Channel Modes
5. User & Oper Commands
This document was written for exclusively for use with UnrealIRCd. Use of this document with another software package, or distribution of this document with another software package is strictly prohibited with out the written permission of the UnrealIRCd Development Team. This document may be copied/printed/reproduced/published as many times as you like, providing it is for use with UnrealIRCd and is not modified in anyway. – Copyright UnrealIRCd Development Team 2002
1.1 – Notes on new documentation
This document is the first try at an official COMPLETE Unreal3.2 Document. It is still a work in progress. I rushed a bit to get it ready for the beta12 release. I will be adding a lot more detail & examples as time goes on.
If you have any feedback, comments, suggestions, please feel free to contact me with them, and I will do my best to work them in. My goal is to make Unreal3.2 and its powerful features, easier to setup, and easier to use.
Email: docs@unrealircd.com
1.2 – Notes on current release
I M P O R T A N T R E A D I N G
(YES, YOU WILL NEED TO READ ALL OF THIS)
* Unreal3.2-Selene is a lot different than Unreal3.1.1. Forget all you have learned about setting up Unreal3.1.1 - this is a lot different. We have got a new configuration format that integrates all the former config files,ircd.conf, vhost.conf, chrestrict.conf, unrealircd.conf, into to one newunrealircd.conf (what the ircd.conf is called now). See doc/ for more information on the configuration format
* THIS IS A BETA VERSION, REPORT BUGS ON http://bugs.unrealircd.org
* We have introduced a new cloaking algorithm (+x), which makes it incompatible with Unreal3.1.1 - these can however still link, but the hostname will look different. This is made of three big numbers, configured in the config file - and these MUST be the same on all servers on the network. Keep these numbers secret, and the cloaking algorithm is uncrackable (within 55 years, that is). The +x algorithm was changed slightly to fix a method of cracking that was found. #define COMPAT_BETA4_KEYS to use the beta4 system for compatibility with older betas.
* If you use Linux and have problems where the IRCd complains that MAXCONNECTIONS is larger than FD_SETSIZE, you need to get your root to edit /usr/include/bits/types.h - #define __FD_SETSIZE 1024 to be somenumber that is equal or higher than MAXCONNECTIONS. This is a problem with Linux that it is hard coded and non override able in some distributions. We recommend you use FreeBSD or the variants of this if you need to run high load IRC servers.
* We use autoconf to help with compilation, and this should make us able to a lot more platform (we have even ported to BeOS).
* We require a pthreads library for the SOCKS scan now - and this is now done in the background (no more waiting!).
* The IRCd is now modularized, and you load modules with the
loadmodule command. You will most likely want to add these lines:
loadmodule "src/modules/commands.so";
loadmodule "src/modules/scan.so";
loadmodule "src/modules/scan_socks.so";
loadmodule "src/modules/scan_http.so";
If you would like to code a module, doc/ will contain a module guide,and we got an example module in src/modules/m_dummy.c.
* We have some IPv6 support, and there are some minor bugs in it.
* The documentation is NOT yet 100% complete
* We have added snomask (similar to ircu), basically this allowed us to remove several modes. Modes +cfFkje are gone, but don't worry, you can still use them. They are now added like this:
/mode yournick +s +cF
You set the flags in the second parameter of the mode command for a mode change +s, setting -s with no parameters removes all your snomask. You can remove a specific snomask by doing:
/mode yournick -s -c
The current snomasks are:
c - local connects
F - far connects
f - flood notices
k - kill notices
e - 'eyes' notices
j - 'junk' notices
v - vhost notices
G - gline/shun notices
n - nick change notices
q - deny nick (Q:line) rejection notices
It shouldn't be too hard to figure out, just play around with it a bit :)
* /who needs testing it was recorded and may contain bugs
* We have added alias {} which allows you to dynamically create commands such as /nickserv Read example.conf for more information on how to create your own. To use standard ones include one of the following files
aliases/ircservices.conf (IRCServices, Daylight)
aliases/epona.conf (Epona)
aliases/auspice.conf (Auspice)
aliases/generic.conf (Magick, Sirius, Wrecked)
aliases/operstats.conf (OperStats)
aliases/genericstats.conf (GeoStats, NeoStats)
* You can now use an IP in the oper::from and vhost::from fields even if the host resolves
* Added an http proxy scanner (scan_http.so)
* Added oper::snomask to specify default oper snomask modes
* /helpop text has been moved to a config directive, help {}. To keep the standard help text you need to include help.conf so add include "help.conf"; to your config file.
* To be able to use G:lines you must now have the can_gkline flag (or t if old style flags)
* Usermode +T (Tech Admin) has been removed, since it is 100% useless
* Added a make install to copy files to the installation location
* Removed ./ircd, ./killircd, crypt/mkpasswd, ./rehash and merged them into a new ./unreal [start|stop|rehash|mkpasswd] for mkpasswd the format is
./unreal mkpasswd [method] [password]
* Added a new system for crypting passwords. You now do for example password "my password" { crypt; }; This allows you to have some crypted passwords and others not. If you have SSL enabled you may also use the md5 and sha1 methods.
* The old blackhole is now set::scan::endpoint and specifies an IP and port to tell proxies to connect to.
* You can now specify a cipher list for SSL links (read doc/conf.doc for more info)
* +I is now in invisibility.so so it is easily disabled
* set::socks has been replaced by set::scan (read doc/conf.doc for more info)
* If you experience problems with the scanners, perhaps check out BOPM (http://www.blitzed.org/bopm)
* log {} syslog support added (read doc/conf.doc for more info)
* Added ripemd-160 password encryption support
* Enabled sha1 and md5 password encryption on Win32 regardless of whether SSL is used.
* Added WinNT/2k/XP service support (experimental) To use this
you use the unreal.exe utility: unreal install -installs the service
unreal uninstall -uninstalls the service
unreal start -starts the service
unreal stop -stops the service
unreal restart -restarts the service
unreal rehash -rehashes the config file
Config errors and crashes are now logged to service.log when in service mode.
* Implemented a new win32 debugger to make fixing bugs much easier.
* Added a win32 installer to simplify installing under Windows.
* AKILL/RAKILL is deprecated. Server command still works but will be removed eventually (aliases to TKL G). For normal opers it notices that the commands are deprecated.
Made the config parser smarter when it comes to time values and size values. Entries are no longer limited to 1d2h1m. You can now enter "1day 2 hours 1 minute" for example. See doc/conf.doc for more information.
* The oper override code has been rewritten to be less intrusive. You can now no longer automatically join a channel for which you must override a mode. You must /invite yourself to the channel. The idea behind this is it prevents the accidental "rejoin on kick" ban override and joining a +s channel without realizing it is +s and therefore you shouldn't know it exists.
* If you use the SSL features of Unreal, you should use OpenSSL 0.9.6e or later. This is important as the older versions may make the program exploitable. See http://www.openssl.org for more information
* We have made a lot of changes to deal with SSL, and if you find any flaws or problems, please contact the coder team. We however think that the changes will make SSL more transparent and make it work more efficiently.
* Added technical documentation in doc/technical. This directory will contain information about the protocol used by Unreal.
* Added EGD support for SSL. EGD allows entropy to be gathered on systems that do not have a random device (/dev/random or /dev/urandom) or have an unreliable random device. Unreal has been tested using EGADS (http://www.securesoftware.com/egads.php) [With EGD support enabled], PRNGD (http://www.aet.tu-cottbus.de/personen/jaenicke/postfix_tls/prngd.html), and EGD (http://egd.sourceforge.net). Other EGD compatible programs should work as well.
* We have created a new complete set of docs! doc/unreal32docs.html
is now a complete
set of docs! It is still not finished, however it contains atleast what was
already
avail. in the other doc files.
It can also be view online @ http://www.unrealircd.com/unreal32docs.html
* We have removed ./Setup - Please read the new docs for information
on configuring &
setting up Unreal3.2
* MAKE SURE YOU RERUN ./Config AND RUN make clean BEFORE USING THIS VERSION!!!
Unreal 3.2 is ONLY compatible with Unreal3.1.4 and Unreal3.2 servers. DO NOT ATTEMPT to link to servers that it is NOT compatible with.
2.0 - Installation
Tested & Supported Operating Systems:
* inux version:
Linux 2.2.x
FreeBSD 4.6-STABLE
FreeBSD 4.5-STABLE
Slackware 8.0
Solaris 2.x
SunOS is NOT supported
Windows version:
WindowsXP Home
WindowsXP Pro
If you have Unreal3.2 working correctly under other operating systems, please
send the details to docs@unrealircd.com
Installation Instructions
1. gunzip -d Unreal3.2-beta12.tar.gz
2. tar xvf Unreal3.2-beta12.tar
3. cd Unreal3.2
DO NOT EDIT MAKEFILE
4. ./Config
5. Answer these questions to the best of your knowledge. Generally if your not
sure, the default will work just fine!
Now edit your unrealircd.conf file and your networkfile if you chose to use
one, refer to section 3
3.0 - Configuring your unrealircd.conf
3.1 Configuration File Explained
This section will help explain the way the new unrealircd.conf works. It is A LOT different than any ircd.conf you have seen in the past! This file as a C based structure, and is a bit scary when you first look at it. But as you learn it, and start to understand it, it is acutely much easier to use.
The new system uses a block-based system. Each entry, or block, in the new format has a specific format. The format works like:
<block-name> <block-value> {
<block-directive> <directive-value>;
};
<block-name> is the type of block, such as me, or admin. <block-value> sometimes specifies a value, such as /oper login, but other times it will be a sub-type such as in ban user.
<block-directive> is an individual variable specific to the block, and <directive-value> is the Associated value. Directives and their values do not have to be separated by an equal sign, but they maybe if you choose to do so. If <directive-value> contains spaces, or characters that represents a comment it must be contained in double quotes. If you want to use a quote character inside a quoted string use \" and it will be understood as a quote character.
A <block-directive> can have directives within it, if that’s the case it will have it's own set of curly braces surrounding it. Some blocks do not have directives and are specified just by <block-value>, such as include. Also note that there is no set format, meaning the whole block can appear on one line or over multiple lines. The format above is what is normally used (and what will be used in this file) because it is easy to read.
Note: the configuration file is currently case sensitive so BLOCK-NAME is not the same as block-name. There is a special notation used to talk about entries in the config file. For example, to talk about <directive-name> in the example above, you'd say <block-name>::<block-directive>, and if that directive has a sub block you want to reverence, you would add another :: and the name of the sub directive.
To talk about an unnamed directive you would do <block-name>:: which would in this case mean <block-value>, or it could be an entry in a sub block that has no name.
Comments are supported in three formats, both multi-line and single-line comments are supported. To comment a single line there are two options, a shell style comment, or a C++ style comment. A shell style comment begins with a # and a C++ style begins with a //. These comments can appear anywhere in a line and comment anything until the end of the line. For multi-line comments, a C style comment is supported. To start the comment you enter /* and anything from there until the */ is commented.
Examples of comments that are ignored:
#Comment type 1 (Shell type)
// Comment type 2(C++ style)
/* Comment type 3 (C Style) */
3.2 - Me Block (Previously known as the M:Line)
Syntax:
me {
name <name-of-server>;
info <server-description>;
numeric <server-numeric>;
};
These values are pretty obvious. The me::name specifies the name of the server, me::info specifies the server's info line, me::numeric specifies a numeric to identify the server. This must be a value between 1 and 255 that is unique to the server meaning no other servers on the network may have the same numeric.
Example:
me {
name "irc.foonet.com";
info "FooNet Server";
numeric 1;
};
3.3 - Admin Block (Previously known as the A:Line)
Syntax:
admin {
<text-line>;
<text-line>;
};
The admin block defines the text displayed in a /admin request. You can specify as many lines as you want and you they can contain whatever information you choose, but it is standard to include the admin's nickname and email address at a minimum. Other information may include any other contact information you wish to give.
Example:
admin {
"Bob Smith";
"bob";
"widely@used.name";
};
3.4 - Class Block (Previously known as the Y:Line)
Syntax:
class <name> {
pingfreq <ping-frequency>;
connfreq <connect-frequency>;
maxclients <maximum-clients>;
sendq <send-queue>;
};
The class block is a vastly simplified version of the Y:line. You are no longer limited to naming them with a number, you can now use an alpha-numeric string which is specified in the class::. The values of this block define the connection classes, class::pingfreq specifies the number of seconds between PINGs, class::connfreq is only used in server classes to specify the time in seconds between connection attempts, class::maxclients specifies the maximum amount of clients that may use this class to connect, and class::sendq specifies the amount of information that can remain in the send queue buffer.
Examples:
class clients {
pingfreq 90;
maxclients 500;
sendq 100000;
};
class servers{
pingfreq 90;
maxclients 10; /* Max servers we can have linked at a time */
sendq 1000000;
connfreq 100; /* How many seconds between each connection attempt */
};
3.5 - Allow Block (Previously known as the I:Line)
Syntax:
allow {
ip <user@ip-connection-mask>;
hostname <user@host-connection-mask>;
class <connection-class>;
password <connection-password> { <auth-type>; };
maxperip <max-connections-per-ip>;
redirect-server <server-to-forward-to>;
redirect-port <port-to-forward-to>;
};
The allow class is similar to an I:line but provides more features. The allow::ip specifies a user@ip hostmask for a user to match to connect and allow::hostname specifies a user@host to match to connect, allow::class is the name of a preexisting (must appear before this) class block that will be used for this class. The rest of the directives are optional, allow::password specifies a password that users must enter to connect. The allow::password:: allows you to specify an authentication method. Currently supported methods are crypt, md3, and sha1, ripemd-160. If you are using plain-text you can just leave this sub-block out. This directive also allows you to configure clone killing, allow::maxperip lets you specify the maximum number of clients that may connect from a single IP. Lastly, the allow block supports redirection when the server is full, allow::redirect-server specifies the address of a server to forward to, and allow::redirect-port specifies the port, if no port is specified, 6667 is assumed.
Note: for auto-redirection to occur the client must have support for the redirection numeric, at this time not many clients do.
Examples:
allow {
ip *;
hostname *;
class clients;
maxperip 5;
};
allow {
ip *@*;
hostname *@*.passworded.ugly.people;
class clients;
password "f00Ness";
maxperip 1;
};
3.6 - Listen Block (Previously known as the P:Line)
Syntax:
listen <ip:port> {
options {
<option>;
<option>;
...
};
};
This block allows you to specify the ports on which the IRCD will listen. If no options are required, you may specify this without any directives in the form listen <ip:port>;. Valid listen::options are clientsonly (only users may connect), serversonly (only servers nameconnect), java (CR javachat support), ssl (SSL encrypted port). A combination of any of those flags may be specified.
Since IPv6 is now supported, and the IPv6 seperator is a : it makes the
ip:port format a bit difficult. To compensate, you should enclose the IP in
brackets. For
example, [::1]:6667. Which will bind to the localhost on port 6667. If you are
using IPv6 and want to listen on an IPv4 IP use the format [::ffff:<ip>]:<port>.
For example, [::ffff:203.123.67.1]:6667. Which will bind to the IPv4 203.123.67.1
on port 6667. You may also specify * as the IP to bind to all interfaces.
Examples:
listen *:6601 {
options {
ssl;
clientsonly;
};
};
Or if there are no options:
listen *:8067;
listen *:6667;
3.7 - Oper Block (Previously known as the O:Line)
oper <name> {
from {
userhost <hostmask>;
userhost <hostmask>;
};
password <password> { <auth-type>; };
class <class-name>;
flags <flags>;
flags {
<flag>;
<flag>;
};
swhois <whois info>;
snomask <snomask>;
};
The oper block allows you to assign IRC Operators for your server. The oper:: specifies the login name for the /oper. The oper::from::userhost is a user@host mask that the user must match, you can specify more than one hostmask by creating more than one oper::from::userhost. The oper::password is the password the user must specify, oper::password:: allows you to specify an authentication method for this password, valid auth-types are crypt, md5, and sha1, ripemd-160. If you want to use a plain-text password leave this sub-block out.
The oper::class directive specifies the name of a preexisting (appears before this in the config file) class name that the oper block will use.
The oper::flags directive has two formats. If you wish to use the old style oper flags i.e., OAa, you use the flags <flags> method, if you want to use the new style,i.e., services-admin, then you use the flags { <flag>; } method. Below is a list of all the flags (in both formats) and what they do.
Old Flag |
New Flag |
Description |
o |
local |
Makes you a local operator |
O |
global |
Makes you a global operator |
C |
coadmin |
Makes you a coadmin |
A |
admin |
Makes you a admin |
a |
services-admin |
Makes you a services admin |
N |
netadmin |
Makes you a Network Admin |
r |
can_rehash |
Oper may use /rehash |
D |
can_die |
Oper may use /die |
R |
can_restart |
Oper may use /restart |
h |
helpop |
Oper receives umode +h (helpop) |
w |
can_wallops |
Oper can send /wallops |
g |
can_globops |
Oper can send /globops |
c |
can_localroute |
Can connect servers locally |
L |
can_globalroute |
Can connect servers globally |
k |
can_localkill |
Can /kill local users |
K |
can_globalkill |
Can /kill global users |
b |
can_kline |
Can use /kline |
B |
can_unkline |
Can use /unkline |
t |
can_gkline |
Can use /gline |
n |
can_localnotice |
Can send local server notices |
G |
can_globalnotice |
Can send global server notices |
z |
can_zline |
Can use /zline |
W |
get_umodew |
Sets umode +W when u oper |
H |
get_host |
Sets your host to an oper host |
^ |
can_stealth |
Can use +I |
Certin flags give you other flags by default:
local | global | admin | services-admin | netadmin |
can_rehash | can_rehash | can_rehash | can_rehash | can_rehash |
helpop | helpop | helpop | helpop | helpop |
can_globops | can_glopops | can_glopops | can_glopops | can_glopops |
can_wallops | can_wallops | can_wallops | can_wallops | can_wallops |
can_localroute | can_localroute | can_localroute | can_localroute | can_localroute |
can_localkill | can_localkill | can_localkill | can_localkill | can_localkill |
can_kline | can_kline | can_kline | can_kline | can_kline |
can_unkline | can_unkline | can_unkline | can_unkline | can_unkline |
can_localnotice | can_localnotice | can_localnotice | can_localnotice | can_localnotice |
can_globalroute | can_globalroute | can_globalroute | can_globalroute | |
can_globalkill | can_globalkill | can_globalkill | can_globalkill | |
can_globalnotice | can_globalnotice | can_globalnotice | can_globalnotice |
The oper::swhois directive allows you to add an extra line to an opers whois information.
The oper::snomask directive allows you to preset an opers service notice mask
on oper up.
Vaild Service Notice Masks (snomask) are:
Snowmask Mode | Description |
k | See's All the /kill's which are executed |
c | See's All the local connects |
F | Lets you receive Far AND Local Connects |
f | Listens to flood alerts from server |
j | See's misc. messages generated by the server |
v | Lets you receive notices of /vhost usages |
G | Lets you see TKL (G:Lines/shuns) notifies |
e | Can listen to Server messages sent to +e users (eyes) |
n | Lets you see notices when a user changes his/her nickname |
q | Lets you see notices when a user is rejected because of a Q:Line |
Example:
oper bobsmith {
class clients;
from {
userhost bob@smithco.com;
userhost boblaptop@somedialupisp.com};
password "f00";
flags {
netadmin;
global;
};
swhois “Example of a whois mask”;
snomask frebWqFv;
};
3.8 - DRpass Block (Previously known as the X:Line)
Syntax:
drpass {
restart <restart-password> { <auth-type>; };
die <die-password> { <auth-type>; };
};
This block sets the /restart and /die passwords with drpass::restart and drpass::die respectively. The drpass::restart:: and drpass::die:: allow you to specify the type of authentication used by this item. The currently supported authentication types are crypt, md5, and sha1, ripemd-160.
Example:
drpass {
restart "I-love-to-restart";
die "die-you-stupid";
};
Syntax:
include <file-name>;
This directive specifies a filename to be loaded as a separate configuration file. This file may contain any type of config block and can even include other files. Wildcards are supported in the file name to allow you to load multiple files at once.
Example:
Include mynetwork.network;
That would be the statement to use if you wanted to use a separate network file. Separate network files are no longer required; all the network settings can be inserted directly into the unrealircd.conf. Or you can put an include statement them to load the file.
Syntax:
loadmodule <file-name>;
This directive specifies a filename to be loaded as a module. Some modules may have there own documentation which should be consulted when setting it up. Loadmodule also supports wildcards to easily load multiple modules at once.
Modules that come standard with Unreal3.2:
scan_http.so - HTTP proxy scanner module
scan_socks.so - SOCKS proxy scanner module
scan.so - Main scanner module (scan_socks and scan_http rely on it)
commands.so - All the / commands (well not all yet, but will eventually be all)
Example:
Loadmodule socks.so;
Syntax:
log <file-name> {
maxsize <max-file-size>;
flags {
<flag>;
<flag>;
...
};
};
The log block allows you to assign different log files for different purposes. The log:: contains the name of the log file. log::maxsize is an optional directive that allows you to specify a size that the log file will be wiped and restarted. You can enter this string using MB for megabytes, KB, for kilobytes, GB, for gigabytes. The log::flags specifies which types of information will be in this log. You can specify one or more of the following, errors, kills, tkl (G:lines and Shuns), connects, server-connects, kline, and oper.
You may also have multiple log blocks, to log different things to different log files.
Available Flags:
errors self explanatory
kills logs /kill notices
tkl logs info on glines, shuns, tklines, tzlines, gzlines
connects logs user connects/quits
server-connects logs server connects/squits
kline logs kline and unkline
oper logs oper attempts (both failed and successful)
Example:
log ircd.log {
maxsize 5MB;
flags {
errors;
kills;
oper;
kline;
tkl;
};
};
3.12 – TLD Block (Previously known as the T:Line)
Syntax:
tld {
mask <hostmask>;
motd <motd-file>;
rules <rules-file>;
channel <channel-name>;
};
The tld block allows you to specify a motd, rules, and channel for a user based on their host. This is useful if you want different motds for different languages. The tld::mask is a user@host mask that the user's username and hostname must match. The tld::motd and tld::rules specify the motd and rules file, respectively, to be displayed to this hostmask. Lastly the tld::channel is optional, it allows you to specify a channel that this user will be forced to join on connect. If this exists it will override the default auto join channel.
Example:
tld {
mask *@*.fr;
motd "ircd.motd.fr";
rules "ircd.rules.fr";
};
3.13 – Ban Nick Block (Previously known as the
Q:Line)
Syntax:
ban nick {
mask <nickname>;
reason <reason-for-ban>;
};
The ban nick block allows you to disable use of a nickname on the server. The ban::mask allows wildcard masks to match multiple nicks, and ban::reason allows you to specify the reason for which this ban is placed. Most commonly these blocks are used to ban usage of the nicknames commonly used for network services.
Example
ban nick {
mask "*C*h*a*n*S*e*r*v*";
reason "Reserved for Services";
};
3.14 – Ban User Block (Previously known as the
K:Line)
Syntax:
ban user {
mask <hostmask>;
reason <reason-for-ban>;
};
This block allows you to ban a user@host mask from connecting to the server. The ban::mask is a wildcard string of a user@host to ban, and ban::reason is the reason for a ban being placed. Note, this is only a local ban and therefore the user may connect to other servers on the network.
Example
ban user {
mask *tirc@*.saturn.bbn.com;
reason "Idiot";
};
3.15 – Ban IP Block (Previously known as the
Z:Line)
Syntax:
ban ip {
mask <ipmask>;
reason <reason-for-ban>;
};
The ban ip block bans an IP from accessing the server. This includes both users and servers attempting to link. The ban::mask parameter is an IP which may contain wildcard characters, and ban::reason is the reason why this ban is being placed. Since this ban affects servers it should be used very carefully.
Example
ban ip {
mask 192.168.1.*;
reason “Get a real ip u lamer!”;
};
3.16 – Ban Server Block (Previously known as
the q:Line)
Syntax:
ban server {
mask <server-name>;
reason <reason-for-ban>;
};
This block disables a server's ability to connect to your server. The ban::mask field specifies a wildcard mask to match against the server attempting to connect's name, and ban::reason specifies the reason for which this ban has been placed.
Example
ban server {
mask broken.server.my.network.com;
reason “Its broken!”;
};
3.17 – Ban RealName Block (Previously known as
the n:Line)
Syntax:
ban realname {
mask <realname-mask>;
reason <reason-for-ban>;
};
The ban realname block allows you to ban a client based on the GECOS (realname) field. This is useful to stop clone floods because often clone bots use the same realname. The ban::mask specifies the realname which should be banned. The mask may contain wildcards. The ban::reason specifies the reason why this ban is being placed.
Example
ban realname {
mask “Bob*”;
reason “Bob sucks!”;
};
3.18 – Ban Exceptions Block (Previously known
as the E:Line)
Syntax:
except ban {
mask <hostmask>;
};
The except ban block allows you to specify a user@host that will override a ban placed on a broader host. This is useful when you want an ISP banned, but still want specific users to be able to connect. The except::mask directive specifies the user@host mask of the client who will be allowed to connect.
Example
except ban {
mask myident@my.isp.com;
};
3.19 – Scan Exception Block (Previously known
as the e:Line)
Syntax:
except scan {
mask <ipmask>;
};
The except scan block allows you to specify an IP mask that will override the scanners. This only works if you have chosen to load the scanner modules. The except::mask specifies an IP mask that will not be banned because of any type of scanner problem.
Example
except scan {
mask 192.168.1.*;
};
3.20 – Deny DCC Block (Previously known as the
dccdeny.conf)
Syntax:
deny dcc {
filename <file-to-block>;
reason <reason-for-ban>;
};
The deny dcc block allows you to specify a filename which will not be allowed to be sent via DCC over the server. This is very useful in helping stop distribution of trojans and viruses.
The deny::filename parameter specifies a wildcard mask of the filename to reject sends of, and deny::reason specifies the reason why this file is blocked.
Example
deny dcc {
filename virus.exe;
reason “This is a GD Virus”;
};
3.21 – Deny Version Block (Previously known as
the V:Line)
Syntax:
deny version {
mask <server-name>;
version <version-number>;
flags <compile-flags>;
};
This block allows you to deny a server from linking based on the version of Unreal it is running and what compile time options it has. The format for this block is somewhat complex but isn't too hard to figure out. The deny::mask directive specifies a wildcard mask of the server name this applies to. The deny::version specifies the protocol number of the version this refers to.
For example, 3.0 is 2301, 3.1.1/3.1.2 is 2302, 3.2 is 2303. The first character of this parameter can be one of the following >, <, =, !. This character tells the IRCd how to interpret the version. If the first character is a > then all version greater than the specified version are denied, if it is a < all versions lower are denied, if it is an = only that version is denied, and if it is a ! then all versions except the specified are denied. The deny::flags directive allows you to specify what compile time flags the server may or may not have. The flags are arranged one after the other with no separation between, if a character is prefixed by a ! then it means the server may not have this flag compiled into it, if it does not have a ! prefix, then it means the server must have this flag compiled.
3.22 – Deny Link Block (Previously known as the
D/d:Line)
Syntax:
deny link {
mask <server-name>;
rule <crule-expression>;
type <type-of-denial>;
};
This block allows you to use specific rules to deny a server from linking. The deny::mask specifies a wildcard mask of the server name to apply this rule to. The deny::rule directive is very complex. A crule expression allows you to control the link in great detail, and it is set up like a programming expression. Four operators are supported, connected(<servermask>), returns true if a server matching servermask is connected, directcon(<servermask>), returns true if the server matching servermask is directly connected to this server, via(<viamask>,<servermask>), returns true if a server matching servermask is connected by a server matching viamask, and directop(), which returns true if the operator issuing a /connect is directly connected to this server. These operators can be combined using && (and) and || (or), items may also be enclosed in parenthesis to allow grouping. In addition, an operator preceded with a ! checks if the operator returned false. If the entire expression evaluates to true, then the link is denied. The deny::type allows two different values, auto (only applies to autoconnects, /connect will still work), and all (applies to all connection attempts).
3.23 – Deny Channel Block (Previously known as
the chrestrict.conf)
Syntax:
deny channel {
channel “<channel-mask>”;
reason <reason-for-ban>;
};
The deny channel block allows you to disallow users from joining specific channels. The deny::channel directive specifies a wildcard mask of channels the users may not join, and the deny::reason specifies the reason why the channel may not be joined.
Example
deny channel {
channel “#unrealsucks”;
reason “No it don’t!”;
};
Syntax:
allow channel {
channel “<channel-mask>”;
};
The allow channel block allows you to specify specific channels that users may join. The allow::channel directive specifies the wildcard mask of the channels which may be joined.
Example
allow channel {
channel “#something”;
};
3.25 – Vhost Block (Previously Known As vhosts.conf)
Syntax:
vhost {
vhost <vhost>;
from {
userhost <hostmask>;
userhost <hostmask>;
...
};
login <login-name>;
password <password> { <auth-type>; };
};
The vhost block allows you to specify a login/password that can be used with the /vhost command to obtain a fake hostname. The vhost::vhost parameter can be either a user@host or just a host that the user will receive upon successful /vhost. The vhost::from::userhost contains a user@host that the user must match to be eligible for the vhost. You may specify more than one hostmask. The vhost::login in the login name the user must enter and vhost::password is the password that must be entered. Lastly vhost::password:: allows you to specify the type of authentication used by this item. The currently supported authentication types are crypt, md5, and sha1, ripemd-160.
Example
vhost {
vhost my.own.personal.vhost.com;
from {
my@isp.com;
myother@isp.com;
};
login mynick;
password mypassword;
};
3.26 – Bad Words Block (Previously Known As badwords.*.conf)
Syntax:
badword <type> {
word <text-to-match>;
replace <replace-with>;
};
The badword block allows you to manipulate the list used for user and channel mode +G to strip "badwords". The badword:: specifies the type, valid types are channel and messages, channel is for the channel +G list, and message is for the user +G list. The badword::word is a regular expression of the word we should search for and remove. The badword::replace is what we should replace this match with. If badword::replace is left out, the word is replaced with <censored>.
Example
banword channel {
word shit;
replace shoot;
};
3.27 – ULines Block (Previously Known As U:Line)
Syntax:
ulines {
<server-name>;
<server-name>;
...
};
The ulines block lets you define certain servers as having extra abilities. This should only be used for servers such as services and stats. This should not be set for a normal server. Each entry is the name of the server which will receive the extra abilities.
Example
ulines {
services.mynetwork.com;
stats.mynetwork.com;
};
3.28 – Link Block (Previously Known As C/N/H:Lines)
Syntax:
link <server-name> {
username <usermask>;
hostname <ipmask>;
bind-ip <ip-to-bind-to>;
port <port-to-connect-on>;
password-connect <password-to-connect-with>;
password-receive <password-to-receive> { <auth-type>; };
hub <hub-mask>;
leaf <leaf-mask>;
leafdepth <depth>;
class <class-name>;
options {
<option>;
<option>;
...
};
};
The link block is a simplified way to link servers. The link:: should be the name of the server which is to be linked, link::username is a wildcard mask of the username the server must have, and link::hostname is an IP mask the server must match. If you are running with IPv6 enabled and you want to link to an IPv4 server, specify the hostname in the format ::ffff:<ip>, example ::ffff:203.123.67.1.
The link::bind-ip specifies an IP that the server will bind to in order to make this connection and link::port specifies the port it will establish the connection on.
The link::password-connect must be a plain-text password since it will be sent to the other server, but link::password-receive may be encrypted using a method specified in link::password-receive:: valid methods are crypt, md5, and sha1, ripemd-160. You can leave the auth-type parameter out to have it remain plain-text.
The link::hub and link::leaf directives may not be used together, either a server is a hub or a leaf. If link::hub is specified, the value is a mask of what servers this hub may connect. If link::leaf is specified the value specifies the mask that this server will act like a leaf towards. The link::leafdepth directive should only be specified if link::leaf exists and is also optional. This value specifies the depth (number of hops) this server may have beneath it.
The link::class is the name of a preexisting (appears before this in the config) class block that will be used for the server connecting with the link block.
The link::options is a list of one or more options you wish this server to use, valid options are ssl (the server will connect using SSL encryption), autoconnect (the server will be autoconnected based on the value in the specified link::class), quarantine (opers on this server will maintain locop status).
Example
link hub.mynet.com {
username *;
hostname 1.2.3.4;
bind-ip *;
port 7029;
hub *;
password-connect "LiNk";
password-receive "LiNk";
class servers;
options {
autoconnect;
ssl;
zip;
};
};
Syntax [standard alias]:
alias <name> {
nick <nick-to-forward-to>;
type <type-of-alias>;
};
The alias block [standard alias] allows you to forward a command to a user, for example /chanserv sends a message to the user chanserv. The alias:: specifies the name of the command that will be the alias, ex /chanserv, alias::nick is the nickname it will forward to, if the alias:: is the same as the nick it will forward to, alias::nick can be left out. The alias::type specifies the type of alias, valid types are services (the user is on the services server), stats (the user is on the stats server), and normal (the user is a normal user on any server). The alias block also has another purpose which is explained below.
Syntax [command alias]:
alias <name> {
format <regex-expression> {
alias <alias-to-forward-to>;
parameters <parameter-string>;
};
format <regex-expression> {
...
};
type command;
};
When the alias block is used in this format, it allows you a much broader range of usage. For example you can create aliases such as /identify. The alias:: is the same as above, the name of the alias command. The alias::format specifies a regular expression that compares against the text sent to the alias command, when matched the sub-entries of that alias::format will be used, you may have multiple alias::format's to make the command do different things depending on the text sent to it. The alias::format::alias is the name of a preexisting (appears before this in the config file) alias block in the standard format that when that format is matched will be used. The alias::format::parameters is what will be sent as the parameters to this alias. To specify one of the parameters given to the command alias specify % followed by a number, for example, %1 is the first parameter. To specify all parameters from a given parameter to the end do % followed by the number and a -, for example %2- returns all parameters from the second till the last. For examples of using the alias block in the command format, consult doc/example.conf.
Syntax:
help <name> {
<text-line>;
<text-line>;
...
};
The help block allows you to create entries for use in /helpop. The help:: is the value that must be passed to /helpop as a parameter, if the help:: is left out, then it will be used when no parameter is passed to /helpop. The entries for the help block are the text that will be displayed to the user when requesting the /helpop.
3.31 – Set Block (Previosuly Known As unrealircd.conf / networks file)
The set file is what use to be our networks/unrealircd.conf and our networks file. On single server networks, rather than have 3 files, I recommend including all of the set commands in the unrealircd.conf .
Now, if your server is on a network, chances are you will all basicly use the same Set settings. Therefore it makes more sense to have a network file, which is loaded with a include:: directive. Below you will find all of the set directives available.
Also, please note, that this release was rushed a bit, in future releases; I will expand on all of the set settings and syntax listed below.
Syntax:
set {
<entry> <value>;
<entry> <value>;
...
};
The set block sets options for individual server features. Each entry does something different and therefore each will be described below. Some directives have sub blocks which will also be described.
set::kline-address <email-address>;
The email address that K:line questions should be sent to. This value must be
specified.
set::modes-on-connect <+modes>;
The modes that will be set on a user at connection.
set::modes-on-oper <+modes>;
The modes that will be set on a user when they /oper.
set::auto-join <channels>;
The channel(s) a user will be forced to join at connection. To specify more
than one channel use a comma seperated list.
set::oper-auto-join <channels>;
The channel(s) a user will be forced to join when they /oper. To specify more
than one channel use a comma seperated list.
set::anti-spam-quit-message-time <timevalue>;
A time value specifying the length of time a user must be connected for before
a /quit message will be displayed. Used to prevent spam. A time value is a numeric
string with d meaning days, h meaning hours, m meaning minutes, and s meaning
seconds, for example 1d2h3m means 1 day, 2 hours, 3 minutes.
set::prefix-quit <text-to-prefix-quit>;
Sets the text that will be used to prefix a quit message. If this value is set
to 0 then the standard "Quit:" is used.
set::static-quit {quit message};
Sets a static quit message that will be sent whenever a client logs off the
network. This eliminates the need for anti-spam-quit-message-time, as well as
the set::prefix-quit. It will NOT replace ERRORS with the static-quit message.
set::oper-only-stats <stats-list>;
Specifies a list of stats flags with no seperators that defines stats flags
only opers can use. Leave this value out to allow users to use all flags, or
specify * for users to be able to use no flags.
set::maxchannelsperuser <amount-of-channels>;
Specifies the number of channels a single user may be in at any one time.
set::options::hide-ulines;
If this is present, Ulined server will be hidden in a /links requested by non-opers.
set::options::no-stealth;
If present usermode +I may not be used by anyone on this server.
set::options::show-opermotd;
If present the opermotd will be shown to users once they successfully /oper.
set::options::identd-check;
If present the presence of an identd server will be checked and the returned
value will be used for the username. If no ident request is returned or the
identd server doesn't exist, the user's specified username will be prefixed
with a ~. If this value is omitted no such check is made.
set::options::show-connect-info;
If present notices showing "ident request", "hostname lookup",
etc. will be displayed when a user connects.
set::dns::timeout <timevalue>;
A time value specifying the length of time a DNS server has to respond before
a timeout. A time value is a numeric string with d meaning days, h meaning hours,
m meaning minutes, and s meaning seconds, for example 1d2h3m means 1 day, 2
hours, 3 minutes.
set::dns::retries <number-of-retries>;
A numeric value specifying the number of times the DNS lookup will be retried
if failure occurs.
set::dns::nameserver <name-of-dns-server>;
Specifies the hostname of the server that will be used for DNS lookups.
set::network-name <name-of-network>;
Specifies the name of the network on which this server is run. This value should
be exactly the same on all servers on a network.
set::default-server <server-name>;
Defines the name of the default server to tell users to connect to if this server
is full.
set::services-server <server-name>;
Specifies the name of the server that the services bots are connected to. If
services are not run this value may be left out.
set::stats-server <server-name>;
Sets the name of the server on which the stats bot is located. If stats are
not run this value may be left out.
set::help-channel <network-help-channel>;
Sets the name of the help channel for this network.
set::cloak-keys { <value>; <value>; <value>; };
Sets the keys to be used to generate a +x host. This value must be the same
on all servers or the servers will not link. Each of the set::cloak-keys:: must
be a numeric value greater than 10000. You must have exactly three values specified.
set::hiddenhost-prefix <prefix-value>;
Defines the prefix that will be used on hiddenhosts (+x) this is usually three
or four letters representing the network name.
set::hosts::local <locop-host-name>;
Defines the hostname that will be assigned to local opers when they set +x.
set::hosts::global <globop-host-name>;
Defines the hostname that will be assigned to global operators when they set
+x.
set::hosts::coadmin <coadmin-host-name>;
Sets the hostname that will be assigned to co-admins when they set +x.
set::hosts::admin <admin-host-name>;
Defines the hostname that will be set for admins when they set +x.
set::hosts::servicesadmin <servicesadmin-host-name>;
Sets the hostname that will be given to services-admins when they set +x.
set::hosts::netadmin <netadmin-host-name>;
Sets the hostname that will be given to netadmins when they set +x.
set::hosts::host-on-oper-up <yes/no>;
If set to yes, the H/get_host flag will be honored and +x will be automatically
set at /oper. If set to no, the user must set +x manually to receive the oper
host.
set::scan::endpoint <ip:port>;
Specifies the IP and port that the server will tell an incoming open proxy to
connect to.
set::bind-ip {ip};
What ip should the scanner bind to before connecting
set::message {message};
Put a message that users will see when scanner is scanning
set::ban-time {time}
Sets the time of the ban (1d,2h,1w)
set::ssl::egd <filename>;
Specifies that EGD (Entropy Gathering Daemon) support should be enabled. If
you run OpenSSL 0.9.7 or higher, then /var/run/egd-pool, /dev/egd-pool, /etc/egd-pool,
and /etc/entropy will be searched by default so no filename is necessary, you
may simply specify set::ssl::egd with no value. If you are using a version of
OpenSSL prior to 0.9.7 or you want to use a EGD socket located somewhere other
than the above listed locations you may specify the filename of the UNIX Domain
Socket that an EGD is listening on.
Mode |
Description |
Channel Modes |
|
A |
Only Administrators may join |
a {nick} |
Goves protection to that user, may not be kicked |
b {nick!user@host} |
Bans the givin user from the channel |
c |
No ANSI color can be sent to the channel |
C |
No CTCP's allowed in the channel |
e {nick!user@host} |
Execption ban – If someone matches this, they can join a channel even if they match an existing ban |
f * {lines:seconds} |
Flood protection, if the * is given a user will kick banned when they send {lines:seconds} if no * they are just kicked |
G |
Makes channel G rated. Checks for words listed in the Bad Word Blocks, and replaces them with the words specified |
H |
No +I users may join (only settable by admins) |
h {nick} |
Gives half-op status to the user |
i |
Invite required |
K |
/knock is not allowed |
k {key} |
Sets a key needed to join |
l {##} |
Sets max number of users |
L {Chan} |
If the amount set by +l has been reached, users will be sent to this channel |
m |
Moderated channel. Only +v/o/h users may speak |
N |
No nick name changes permitted |
n |
No messages from outside channels |
O |
Only IRCops may join |
o {nick} |
Gives a user channel operator status |
p |
Makes channel private |
q |
Sets channel owner |
Q |
Only U:Lined servers can kick users |
R |
Requires a registered nickname to join |
S |
Strips all incoming colors |
s |
Makes channel secret |
u |
Auditorium Makes /names and /who #channel only show channel ops |
V |
/invite is not allowed |
v {nick} |
Gives a voice to users. (May speak in +M Channels |
z |
Only clients on a Secure (SSL) Connection may join |
Mode |
Description |
User Modes |
|
r |
Identifies the nick as being registered |
s |
Can listen to server notices |
v |
Receives infected DCC Send Rejection notices |
o |
Global IRC Operator (Set in Oper Block) |
O |
Local IRC Operator (Set in Oper Block) |
B |
Marks you as being a Bot |
b |
Can send and read ChatOps |
i |
Invisible (not shown in /who) |
A |
Server Admin (Set in Oper Block) |
x |
Gives user a hidden hostname |
q |
Only U:Lines can kick you (Services Admins Only) |
a |
Services Admin (Set in Oper Block) |
g |
Can send & read globops and locops |
H |
Hide IRCop Status (IRCop Only) |
S |
Used to protect Services Daemons |
I |
Invisible Join/Part's. Makes you hidden in channes (For Network Admins only, and MUST be enabled) (Set In Oper Block) |
t |
Says you are using a /vhost |
C |
Co-Admin (Set in Oper Block) |
d |
Makes it so you can not receive private messages |
k |
Can see all the /kill commands executed |
N |
Network Administrator (Set in Oper Block) |
w |
Can listen to wallop messages |
h |
Available for help (HelpOp) (Set in OperBlock) |
G |
Filters out all the bad words per configuration |
W |
Lets you see when people do a /whois on you (IRCops Only) |
5 – User & Oper Commands Table
Command |
Description |
Who |
nick {newnickname} | Changes your online nick name. Alerts others to the change of your nick |
All |
whois {nick} | Displays information of user requested. Includes Full Name, Host, Channels
User is in, and Oper Status |
All |
who {mask} | Who allows you to search for users (who do not have mode +I set). Masks
include: nickname, #channel, hostmask (*.attbi.com) |
All |
whowas {nick} {maxreplys} | Displays information on a nick that has logged off. The {max replies}
field is optional, and limits how many records will be returned. |
All |
ison {nick1 nick2 nick3 ...} | Allows you to check the online status of a user, or a list of users. Simple
return, best used for scripts |
All |
join {channel1,channel2, ...} | Allows you to join channels. Using the /join #channel1, #channel2, channel3 will allow you to join more than one channel at a time. The /join 0 command makes you PART | All |
part {channel1, channel2, ...} | Allows you to part (leave) channels. Using the /part #channel1, #channel2, channel3 will allow you to part more than one channel at a time. | All |
motd {server} | Displays the servers motd. Adding a server name allows you to view motd’s
on other servers. |
All |
rules {server} | Displays the ircd.rules of a server. Adding a server name allows you to view rules on other servers | All |
lusers | Displays current & max user loads, both global and local. |
All |
map | Displays a network map | All |
quit {reason} | Causes you to disconnect from the server. If you include a reason, it will be displayed on all channels as you quit | All |
ping {user} | Sends a PING request to a user. Used for checking connection and lag.
Servers issue pings on a timed basis to determine if users are still connected. |
All |
version {nick} | Sends a CTCP Version request to the user. If configured to do so, their
client will respond with the client version. |
All |
links | Displays a list of all servers linked to the network | All |
Admin {server} | Displays the admin info of a server. If a server name is included it will
display the info of that server. |
All |
userhost {nick} | Displays the userhost of the nick given. Generally used for scripts |
All |
topic {channel} {topic} | Topic {channel} will display the current topic of the given channel. Topic
{channel} {topic} will change the topic of the given channel. |
All |
invite {nick} {channel} | Invites the given user to the given channel. (Must be a channel Op) |
ChanOp |
kick {channel, channel} {user, user} {reason} | Kicks a user or users out of a channel, or channels. A reason may also
be supplied. |
ChanOp |
away {reason} | Marks you as being away. A reason may also be supplied. |
All |
Watch +-{nick} +-{nick} |
Watch is a new notify-type system in UnrealIRCd which is both faster and
uses less network resources than any old-style notify system. The server
will send you a message when any nickname in your watch list logs on or
off. The watch list DOES NOT REMAIN BETWEEN SESSIONS - you (or your script
or client) must add the nicknames to your watch list every time you connect
to an IRC server. |
All |
helpop ?{topic} or !{topic} |
HelpOp is a new system of getting IRC Server help. You type either /HELPOP ? <help system topic> or /HELPOP ! <question> The "?" in /HELPOP means query the help system and if you get no response you can choose '!' to send it to the Help Operators online Using neither ? nor ! will mean the command will be first queried within the help system and if no match if found , it will be forwarded to the help operators | All |
list {search string} | Lists all channels on the network. If a search string is supplied, it will apply that to the search. Wildcards are supported | All |
quote | If you don't include any options, the default is to send you the entire
unfiltered list of channels. Below are the options you can use, and what
channels LIST will return when you use them. >number List channels with more than <number> people. <number List channels with less than <number> people. C>number List channels created between now and <number> minutes ago. C<number List channels created earlier than <number> minutes ago. T>number List channels whose topics are older than <number> minutes (Ie., they have not changed in the last <number> minutes. T<number List channels whose topics are newer than <number> minutes. *mask* List channels that match *mask* !*mask* List channels that do not match *mask* |
All |
Knock {channel} {message} |
Allows you to ‘knock’ on an invite only channel and ask for
access. Will not work if channel has one of the following modes set: +K
+I. Will also not work if you are banned |
All |
setname | Allows users to change their ‘Real Name’ without reconnecting |
All |
vhost {login} {password} | Hides your host name by using a vhost provided by the server. |
All |
mode {chan/nick} {mode} |
Lets you set channel and user modes. Refer to section 4 for lists of modes |
All |
credits | Lists credits for everyone that has helped create UnrealIRCD |
All |
license | Displays the GNU License | All |
time {server} | Displays the servers date and time. Including a server name allows you
to check other servers. |
All |
botmotd {server} |
Displays the servers bot message of the day. Including a server name allows you to check other servers | All |
identify {password} | Sends your password to the services system to identify to your nick. |
All |
identify {channel} {password} | Sends your password to the services system to identify as the founder
of a channel. |
All |
oper {userid} {password} |
Command to give a user operator status if they match an Oper Block |
IRCop |
wallop {message} | Sends a message to all users with umode +w | IRCop |
globops {message} | Sends a message to all IRCops | IRCop |
chatops {message} | Send a message to all IRCops with umode +c | IRCop |
locops {message} | Sends a message to all local IRCops | IRCop |
adchat {message} | Sends a message to all Admins | IRCop |
nachat {message} | Sends a message to all Net Admins | IRCop |
kill {nick} {reason} | Kills a user from the network | IRCop |
kline {hostmask} {reason} | Bans the hostmask from the server it is issued on. It is not a global ban. | IRCop |
unkline {hostmask} | Removes a kline | IRCop |
zline {ip} :{reason} | Bans an IP Address from the local server it is issued on |
IRCop |
unzline {ip} | Removes a zline | IRCop |
gline {user@host} {time to ban} :{reason} |
Adds a global ban to anyone that matches. Time to ban is in seconds, or
u can use 1d for 1 days. To remove a gline, put a –user@host |
IRCop |
shun +-{user@host} {time to shun} :{reason} |
Prevents a user from executing ANY commands on the server, and prevents
them from speaking. Time to ban is in seconds, or u can use 1d for 1 days.
To remove a shun, put a –user@host. Setting time to 0 makes it permanent.
|
IRCop |
gzline {ip} {time to ban} :{reason} |
Adds a global zline. Time to ban is in seconds, or u can use 1d for 1
days. To remove a gzline, put a –user@host. Setting time to 0 makes
it permanent. |
IRCop |
tkline {user@host} {time to ban} :{reason} |
Timed Kline. . Time to ban is in seconds, or u can use 1d for 1 days.
To remove a tkline, put a –user@host. Setting time to 0 makes it permanent. |
IRCop |
tzline {ip} {time to ban} :{reason} |
Timed Zline. . Time to ban is in seconds, or u can use 1d for 1 days. To remove a tzline, put a –user@host. Setting time to 0 makes it permanent | IRCop |
akill {user@host} :{reason} |
Adds an akill (Services Admins & Network Admins ONLY) |
IRCop |
rakill {user@host} |
Removes an akill |
IRCop |
rehash {server} –{flags} | Rehashes the servers config file. Incluidng a server name allows you to
rehash a remote servers config file. Several flags are also available. They
Include -dccdeny - Rehashes dccdeny.conf -dynconf - Rehashes UnrealIRCd Config and Network file -restrict - Rehashes chrestrict.conf -vhost - Rehashes vhost.conf -motd - Rehashes all MOTD files and RULES files (including T:lines) -opermotd - Rehashes the OPERMOTD -botmotd - Rehashes the BOTMOTD -garbage - Force garbage collection -badwords - Rehashes the badwords config. |
IRCop |
restart {server} {password} |
Restarts the IRCD Process. Password is required. You may also include
a server name to restart a remote server. |
IRCop |
die {password} |
Terminates the IRCD Process. Password is required | IRCop |
lag {server} |
This command is like a Sonar or Traceroute for IRC server. You type in
/LAG irc.fyremoon.net and it will reply from every server it passes with
time and so on Useful for looking where lag is and optional TS future/past
travels |
IRCop |
sethost {newhost} | Lets you change your vhost to what ever you want it to be. |
IRCop |
setident {newident} |
Lets you set your ident to what ever you want it to be |
IRCop |
chghost {nick} {newhost} |
Lets you change the host name of a user currently on the system |
IRCop |
chgident {nick} {newident} |
Lets you set your ident to what ever you want it to be |
IRCop |
chgname {nick} {newname} |
Lets you change the realname of a user currently on the system |
IRCop |
squit {sever} |
Disconnects a server from the network |
IRCop |
connect {server} {port} {server} | If only one server is givin, it will attempt to connect the server you
are ON to the given server. If 2 servers are given, it will attempt to connect
the 2 servers together. Put the hub server as the first, and the leaf server
as the second. |
IRCop |
dccdeny {filemask} {reason} |
Adds a DCCDENY for that filemask. Preventing that file from being sent. |
IRCop |
undccdeny {filemask} |
Removes a DCCDENY | IRCop |
sajoin {nick} {channel}, {channel} |
Forces a user to join a channel(s). Available to services & network admins only | IRCop |
sapart {nick} {channel}, {channel} |
Forces a user to part a channel(s). Available to services & network
admins only. |
IRCop |
samode {channel} {mode} |
Allows Network & Services admins to change modes of a channel without
having ChanOps. |
IRCop |
rping {servermask} |
Will calculate in milliseconds the lag between servers |
IRCop |
trace {servermask} |
Will calculate in milliseconds the lag between servers |
IRCop |
opermotd |
Displays the servers OperMotd File |
IRCop |
addmotd :{text} |
Will add the given text to the end of the Motd |
IRCop |
addomotd :{text} |
Will add the given text to the end of the OperMotd |
IRCop |
sdesc {newdescription} |
Allows server admins to change the description line of their server without
restarting. |
IRCop |
addline {text} |
Allows you to add lines to the unrealircd.conf |
IRCop |
mkpasswd {password} |
Will encrypt a clear text password to add it to the unrealircd.conf |
IRCop |
tsctl offset +/- {time} |
Adjust the IRCD’s Internal clock (Do NOT use if you do not understand
EXACTLY what it does) |
IRCop |
tsctl time |
Will give a TS Report | IRCop |
tsctl alltime | Will give a TS Report of ALL servers | IRCop |
tsctl svstime {timestamp} |
Sets the TS time of all servers (Do NOT use if you do not understand EXACTLY
what it does) |
IRCop |
htm {option} |
Controls settings related to high traffic mode. High Traffic Mode (HTM)
basically disables certain user commands such as: list whois who etc in
response to extremely high traffic on the server. Options include: -ON Forces server into HTM -OFF Forces server out of HTM -NOSIY Sets the server to notify users/admins when in goes in and out of HTM -QUITE Sets the server to NOT notify when going in and out of HTM -TO {value} Sets Traffic rate HTM activate |
IRCop |
stats {option} |
b - Send the badwords list C - Send the link block list d - Send the deny link (auto) block list D - Send the deny link (all) block list e - Send the except socks block list E - Send the except ban block list F - Send the deny dcc block list G - Report TKL information (G:lines/Shuns) H - Send the link block list I - Send the allow block list K - Send the ban user/ban ip/except ban block list (Includes AKILLs) L - Send Link information m - Send the events list M - Send list of how many times each command was used n - Send the ban realname block list N - Send network configuration list O - Send the oper block list q - Send the SQLINE list Q - Send the ban nick block list r - Send the channel deny/allow block list s - Send the SCache and NS list S - Send the dynamic configuration list t - Send the tld block list T - Send connection information u - Send server uptime and connection count U - Send the ulines block list v - Send the deny version block list V - Send the vhost block list y - Send the class block list Z - Send memory usage information |
IRCop/All |