Hi all,
This post will cover the basic setup of Unreal IRC server. UnrealIRCd is an open-source irc server daemon (ircd) that allows users to run their own IRC server from their system. Unreal is just one of the many ircds out there for use. This server is described as having “possibly the most security features of any IRC server.” Unreal can be configured on both Windows and Linux.
Installation
Step 1: Download Unreal3.2.8.1.exe from www.unrealircd.com.
Step 2: Navigate to the download destination on your computer and run the file named “Unreal3.2.8.1.exe”.
Step 3: Move through the installer by pressing Next. The installer will let you choose the location in which UnrealIRCd will be installed. The default location is C:\Program Files\Unreal3.2.
Step 4: Click Next. If you haven’t already got the Microsoft Visual C++ Redistributable package installed, it will now be installed. Simply click Next, check the box that indicates that you have read the terms and then click Install. When it’s done, click Finish.
Step 5: UnrealIRCd will now install automatically.
Configuring Unreal
Now that we have completed the installation process. We will now need to configure UnrealIRCd.
Step 1: Open the example.conf file and rename it as unrealircd.conf and move it to the main Unreal3.2 directory. (C:\Program Files\Unreal3.2 by default)
Step 2: Open up unrealircd.conf in a text editor.
Step 3: Do the following changes,
Necessary Modules
In unrealircd.conf locate the Linux and Windows module section near the top of the configuration file. Uncomment (Remove the two slashes in front of the lines) the two “loadmodule” lines for your server’s respective operating system.
/*FOR Windows, uncomment the following 2 lines:*/ loadmodule "modules/commands.dll"; loadmodule "modules/cloak.dll";
Me Block
After opening unrealircd.conf, locate the me {} block. Edit the name and the info lines with the server name and description that you want.
me {
name "server.name";
info "Server Description";
numeric (server numeric*);
};
Example:
me {
name "irc.foonet.com";
info "FooNet Server";
numeric 1; };
Admin block
Locate the admin {} block and add in some information about the server admin (you). You can have as many or as little lines as you want here.
admin {
"first line";
"second line";
[etc]
};
Example:
admin { "Bob Smith"; "bob"; "widely@used.name"; };
Oper Block
Locate the oper {} block. Edit “YourName” in the first line of the block to what you want your oper login to be. You’ll also have to change the host in the “userhost” line to your own host.
oper (login) { class newclass from { userhost (ident@host); userhost (ident@host); }; flags { (flags here*); }; };
Example:
oper test { class clients; from { userhost *@*; password "test1"; }; flags { netadmin; can_zline; can_gzline; can_gkline; global; }; };
Listen block
This defines a port for the ircd to bind to and to allow users/servers to
connect to the server.
listen (ip number):(port number)
{
options {
(options here);
};
};
Example:
listen 192.168.1.4:8067;
listen 192.168.1.4:6667;
Link Block
Next, move down to the services link block. If we are connecting 2 servers we need a link {} setting to connect properly. We are not going to do that so we just remove the link block.
TLD Block
This sets a different motd and rules files depending on the clients hostmask.
tld {
mask (ident@host);
motd "(motd file)";
rules "(rules file)";
};
Example:
tld {
mask *@*.fr;
motd "ircd.motd.fr";
rules "ircd.rules.fr";
};
Note that if we delete the above block, the a defaults (ircd.motd.fr, ircd.rules.fr) will be used by everyone.
Network Settings Block
Find the network settings block and change the network-name, default-server, services-server, stats-server and hidden-host prefix lines to your own network name.
Next you’ll have to change all three cloak keys to three random strings of numbers and letters. Cloak keys should be the same at all servers on the network. They are used for generating masked hosts and should be kept secret. The keys should be 3 random strings of 5-100 characters, (10-20 chars is just fine) and must consist of lowcase (a-z), upcase (A-Z) and digits (0-9).
After that, change the host block within the network settings block to your own network name. The host-on-oper-up value can be either ‘yes’ or ‘no’. Setting it to yes will automatically give people, when they oper up, the host specified for their position.
set { network-name "ROXnet"; default-server "irc.roxnet.org"; services-server "services.roxnet.org"; stats-server "stats.roxnet.org"; help-channel "#ROXnet"; hiddenhost-prefix "rox"; cloak-keys {"aoAr1HnR6gl3sJ7hVz4Zb7x4YwpW";
"90jioIOjhiUIOH877h87UGU898hgF";
"IOjiojiio8990UHUHij89KJBBKU898";
}; hosts { local "locop.roxnet.org"; global "ircop.roxnet.org"; coadmin "coadmin.roxnet.org"; admin "admin.roxnet.org"; servicesadmin "csops.roxnet.org"; netadmin "netadmin.roxnet.org"; host-on-oper-up "no"; }; };
Server settings Block
Change the kline-address to a working email address so that people who get banned can contact you. TheMaxchannelsperuser is the maximum number of channels a user can be logged in. Anti-spam-quit-message-time is the minimum time a user must be connected before being allowed to use a QUIT message. This will hopefully help stop spam. Oper-only-stats allows you to make certain stats oper only, use * for all stats, leave it out to allow users to see all stats.The Throttle is the limit of connection attempts per second per user.
set { kline-address "test@test.com"; modes-on-connect "+ixw"; modes-on-oper "+xwgs"; oper-auto-join "#opers"; maxchannelsperuser 10; anti-spam-quit-message-time 10s; oper-only-stats "okfGsMRUEelLCXzdD"; throttle { connections 3; period 60s; }; anti-flood { nick-flood 3:60; }; spamlter { ban-time 1d; ban-reason "Spam/Advertising"; virus-help-channel "#help"; }; };
Step 4: Save the file unrealircd.conf.
Step 5: Now double-click the UnrealIRCd icon on the desktop. After that go to default UnrealIRCd folder and open the file service.log. If the IRCd configuration is loaded without any errors then the file should have text something like this,
* Loading IRCd conguration . . * Configuration loaded without any problems . .
Note: To connect to your IRC server, IRC client is required.
Thats it. Hope this post was helpful. 🙂