Configuring Unrealircd by Jethro
--------------------------------

Index:

o Introductions
o Compiling unrealircd.conf
o Services
o Links
o Conclusion



Introduction
------------

I chose to install the Unreal IRC server on my (Windows) box, because
it seemed very secure and stable and I had seen it used in many places
before (such as irc.antionline.com).

I had no wish to keep it online for very long, or even get the network
very big and popular. I just wanted to know more about IRC servers and
the best way to do that, I felt, was to successfully install on
myself. Which is what I did.



Compiling unrealircd.conf
-------------------------

Unrealirc.conf is the main configuration file of the software package
and is new to version 3.2.

You have to compile this file yourself from scratch, as there is no
default configuration. So it was time to research it.

Here is my unrealircd.conf file

****
Note: You know that everything is correct in your configuration file
(fields, syntax...etc) if you get no message when you start
"WIRCD.exe".
****
Note #2: Some fields *may* be beyond the scope of this text.
****


me {
name technorats.dynu.com; # The Server address
info "TechnoRatsIRC"; # The Server name
numeric 1; # The Server number which is unique to every...
# ...server which connects
};



class clients # The people who join your server
{
pingfreq 90; # Just leave this at 90 (ping frequency)
maxclients 500; # Maximum number of clients
sendq 100000; # Just leave this at 100,000 (limit for sends, ie. DCC)
};

class servers # The servers which connect
{
pingfreq 90; # Just leave this at 90
maxclients 10; # Maximum amount of clients
sendq 1000000; # Just leave this at 100,000
connfreq 100; # Just leave this at 100
};

class oper { # The all-powerful operators
pingfreq 120; # Just leave this at 120
maxclients 10; # Maximum amount of opers
sendq 1000000; # Just leave this at 1,000,000 (rougly 1MB)
};

ulines {
127.0.0.1; # List of servers which...
localhost; # ... are allow to modify channels...
# ... without being opers ...
# ... useful for services
};

allow {
ip *; # Allow the following IP addresses (* = everything)
hostname *; # Allow the following hostnames
class clients; # Which class this affects
maxperip 5; # Maximum amount of connections from the one IP address.
};

allow {
ip *; # Allow all IPs
hostname *; # Allow all hostnames
class oper; # Who this affects
maxperip 5;
};

log "ircd.log" {

maxsize 2097152; # Maximum size the "ircd.log" file can get
flags { # What to log
oper; # People using /oper
kline; # People klining
connects; # People connecting
server-connects; # Servers connecting
kills; # People being killed from the server
errors; # General errors
};
};

tld { # Defines which hosts read from a certain MOTD and RULES files...
# ... used to accomadate people from different countries usually...
# ... eg: someone with a hostmask *.fr would get the French MOTD/RULES
mask *; # Every (*) gets the same files (I'm lazy)
motd "ircd.motd"; # Where to find the MOTD (Message Of The Day) file
rules "ircd.rules";# Where to find the RULES file (can be accessed with /RULES)
};



admin { # What the person sees when they enter /ADMIN
"Admin: Jethro"; # One Line
"URL: http://jethro.antionline.org"; # Another Line
"Email: jethrojones@gmx.net"; # Another Line
};




drpass {
die "xxxxxxxx"; # The password needed to shutdown the server
restart "xxxxxxxx"; # The password needed to restart the server
};



oper jethro { # This affects some who enters /oper jethro <pass> to gain OPER status
class oper; # Classifies jethro as an oper
from {
userhost *@*; # Connecting from any userhost
};
password "xxxxxxxx"; # The password needed
flags
{
netadmin; # Network Administrator
global; # Global Administrator
can_kline; # Can KLINE people
can_stealth; # Can set mode +i (invisible)
can_globalkill; # Can make global kills
can_die; # Can shutdown the server (with password)
global; # Global Administrator
admin; # Server Administrator
helpop; # Jethro is available for help (when someone /WHOIS's an oper)

};
};


listen *:6601 # Listen to port 6601 (* means any IP address)
{
options
{
ssl; # Port is available to accept SSL connections
clientsonly; # Port can only have clients connect to it
};
};

listen *:8067; # Listen to port 8067
listen *:6667; # Listen to port 6667 (important)




vhost { # Vhost allows someone to change their hostmask
vhost vhost; # Name of the vhost to use
from {
userhost *@*; # What userhost can use it
};
login vhost; # The login name
password xxxxx; # The password
};

set {
network-name "TechnoRats IRC"; # The network on
default-server "technorats.dynu.com"; # The default server
services-server "technorats.dynu.com"; # The services server
stats-server "technorats.dynu.com"; # The stats server
help-channel "#technorats"; # The help channel
hiddenhost-prefix "TR"; # The prefix for hidden hosts
prefix-quit "Quit:"; # The prefix for quit messages
auto-join "#technorats"; # The channel to auto-join
kline-address "jethrojones@gmx.net"; # Kline email address
maxchannelsperuser 5; # Max channels a user can join/
cloak-keys {
1345757578577537; 31578578578578857337; 2575757857575785600; # These numbers...
# Are you used in the +x algorhythm
};
hosts {
local "localhost"; # Host to become local operators
global "localhost"; # Global operators
coadmin "localhost"; # Co administrators
admin "localhost"; # Administrators
servicesadmin "localhost"; # Services Administrator
netadmin "localhost"; # Network Administrator
host-on-oper-up yes; # Automatically oper the host on connection
};
dns {
nameserver 127.0.0.1; # The nameserver dns name
timeout 2s; # Timeout after 2 seconds
retries 2s; # Retries after 2 seconds
};
};



Services
--------

Services like NickServ and ChanServ need to be installed seperately.
You usually have to compile this yourself, but you might be able to
find a set of services as a binary package.

Here is an example of a services package:
Magick - http://www.magick.tm


Links
-----

o http://www.unrealircd.com
o http://www.phishy.net/irc/drphegg/services.htm
o http://www.onemarq.com/irc/
o http://www.irc-mania.de/eggdrops.php
o http://www.mirc.com



Conclusion
----------

As you can see, UnrealIRCD is a very easy-to-configure IRC server and
you can do some really cool stuff. Don't let oper power go to your
head!


Have fun IRCing,
Jethro.