Install UnrealIRCd on Ubuntu 12.04

From Zam Wiki
Revision as of 19:16, 26 May 2014 by Zam (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

In this tutorial, I will show you how to setup UnrealIRCd properly on Ubuntu 12.04.

1. Update OS and install required packages:

apt-get update
apt-get upgrade
apt-get install gcc make wget

2. Maximize limits The default max amount of connections for a user is 1024. Open the file for edit by:

vi /usr/include/bits/typesizes.h

Scroll down to the end of file (use the [Page Down] button on your keyboard). change the 1024 to 64000

3. Add new user We are not going to install the IRCd from root, so we are adding new user (ircd), and lifting its limit:

vi /etc/security/limits.conf

Scroll down to the end of file (use the [Page Down] button on your keyboard). Add the following 2 lines at the end of file:

ircd hard nofile 64000
ircd soft nofile 64000

4. Now add the new user & change the password

adduser ircd
passwd ircd

5. Login to the newly created user

login ircd

To make sure you're actually logged in as 'ircd' type:

whoami

6. Begin IRCd Setup Download & install UnrealIRCd

wget http://www.unrealircd.com/downloads/Unreal3.2.9.tar.gz
tar -zxf Unreal3.2.9.tar.gz
cd Unreal3.2
./Config
make

Now the configuration script will start. Press [Enter] until 100% of the "Reading" part is reached.

Keep all configurations at their default values by hitting [Enter] for each field... Except for the last one, which will be the maximum connections, here you will type: 64000 and hit [Enter] twice.

If all went good with out any errors, then you may continue..

7. Create the following 3 empty files:

touch ircd.log
touch ircd.motd
touch ircd.rules

You can fill anything in ircd.motd file like welcome note.

8. And finally, the configuration file, unrealircd.conf

vi unrealircd.conf

Here is an example of working configuration file with notes, so you can easily modify it. Copy all line below:

    /**  Unreal Config  **/

    loadmodule "src/modules/commands.so";
    loadmodule "src/modules/cloak.so";
    include "help.conf";

    me
    {
        name "irc.irc"; //server name
        info "Server Info";
        numeric 42;
    };

    admin {
        "zer0";
    };

    class clients
    {
        pingfreq 90;
        maxclients 64000;
        sendq 100000;
        recvq 30000;
    };

    allow {
        ip *@*;
        hostname *@*;
        class clients;
        maxperip 3;
    };

    /* Allows users to create/join specific channels */
    allow channel {
        channel "#xyz";
    };

    /* IRC OPER BLOCK */
    oper zer0 { // change USER to the desired username
        class clients;
        from {
            userhost *@*;
        };
        password "qwerty!"; //change PASS to the desired password
        flags "+oOCAaNrDRhwgcLKkbBnGztZWHvqXdv";
        maxlogins 2;
    };

    listen *:6667; //IRC Port; choose desired port (1 - 65000)

    drpass {
        restart "RESTARTPASS"; //password for restarting the server from your IRC client (mIRC)
        die "DIEPASS";  //password for shutting down the server from your IRC client (mIRC)
    };

    log "ircd.log" {
        maxsize 20;
        flags {
            errors;
        };
    };

    tld {
        mask *@*;
        motd "ircd.motd";
        rules "ircd.rules";
    };

    set {
        network-name "Network"; //network name
        default-server "none.none";
        services-server "none.none";
        stats-server "none.none";
        help-channel "#help";
        hiddenhost-prefix "Null";
        cloak-keys {
            "aoAr4xnR6pl3stttVz4Zb7x4Y32f";
            "g23e1Hntttl32J7hV55ab7x4YwpW";
            "aoAr1HnRxgl3Z57hVtttb7x4Ywqa";
        };
        hosts {
            local "loctttts";
            global "ircttops";
            admin "jhjgjgj";
            coadmin "ctttts";
            servicesadmin "cttps";
            netadmin "netattttn";
            host-on-oper-up "no";
        };
    };

    set {
        kline-address "[email protected]";
        modes-on-connect "+ixw";
        modes-on-oper "+xwgs";
        options {
            hide-ulines;
        };
        maxchannelsperuser 3;
        anti-spam-quit-message-time 30s;
        oper-only-stats "*";
        throttle {
            connections 3;
            period 60s;
        };
    };

    set {
        modes-on-join "+nstum";
        level-on-join "none";
        restrict-usermodes "*";
        restrict-channelmodes "*";
        static-part "yes";
        who-limit "1";
    };

    set {
        options {
            dont-resolve;
        };
        anti-flood {
            nick-flood "1:3360";
        };
    };

9. Now you should be good to go, start the server:

./unreal start

If you get any errors, check the line of the error on the unrealircd.conf

blog comments powered by Disqus