Routing

From Buzznet
Jump to: navigation, search

Step 1: Preparing your system

  • you will need a few tools, like: wget, libssl-dev, etc.
  • On Ubuntu, Debian and the like, you can install these with apt install wget build-essential python3 libssl-dev
  • It is usually a good idea to run UnrealIRCd on it's own user. You can create a ircd user with adduser ircd
  • Switch to the new ircd user with su ircd

Step 2: Downloading and building the IRCd

We will download Unrealircd

  • Get the IRCD source code with wget --trust-server-names https://www.unrealircd.org/downloads/unrealircd-latest.tar.gz
  • Configure it for compilation with ./Config
  • The script will ask you a few questions. It is recommended to pick the defaults for everything, so you can just hit enter on every question.
  • After you finish configuring, you can now compile and install UnrealIRCd with make && make install

Step 3: Preparing Your Configuration

Edit the conf/unrealircd.conf with your favorite text editor. The parts you want to change are: Change the network name for like this network-name "Buzznet";

   The me {} block:
       name is the name of your server. It doesn't need to resolve to your server, but it's a plus if it does. You can find available domains at Domains.
       info a description for your server, you can be creative here.
       sid is an identifier for your server and it should be unique. You can check out the Great big-ass server list of doom to find an unused one for your server.
   The admin {} block:
       In this block you can have up to three lines of free text. Ideally it should have some kind of info so we can contact you in case something goes wrong. You can put just your nick, nick and email or whatever.
   The oper ... {} block:
       This block sets the username and password you will use with the /oper command to admin your server. The default user and password are "bobsmith" and "test". CHANGE IT.

Now you can start your IRCd with ./unrealircd start.

Cloak keys for your conf below:

  /* Buzznet uses "cloak_md5" module. */
set {
   cloak-keys {
                "55c5lCu203i311G18MsldHwqwPA2848aRFrm7d0BbCMf2718p0oxyyR2NKwdSHkfSJ11y6OSXQO4K1b2";
                "jwc3i6Satr17n5YLA251sRpvdO3Lty8DmHmAp6hT3KFaRhR6aPLPqtN7A188VjIPD51oT7dM0Sgl54Mv";
                "7RsJm0h0l7yEu4R51wdo20RQM8SJ65jT5f60L08KB1CH53aJ7x1dX360eS8XH4dK8gfPc581005ED3J0";
        }
}

Note: If you are not a hub, make sure to edit your servers class as follows, so you don't connect to more than one hub at a time:

  /* Server class with good defaults */
  class servers
  {
          pingfreq 60;
          connfreq 15; /* try to connect every 15 seconds */
          maxclients 1; /* max servers */
          sendq 20M;
  }

Suggested leaf setup

If you're running a leaf server you might be interested in these instructions:

  1. Create a separate hubs class with maxclients set to 1.
  2. Add all the hubs from further down the page to your config. Make sure their link blocks use the hubs class.
  3. Enable autoconnect for the hubs that are geographically closest to you by adding autoconnect; to the options { tls; } block.
  4. Profit.

A hubs class block would look like this:

 class hubs {       
       pingfreq 60;
       connfreq 60;
       maxclients 1;
       sendq 20M;
 }

An autoconnect hub link block would look like this:

 link irc.buzznet.ovh {
     incoming {
         mask *;
     }
     outgoing {
         hostname irc.buzznet.ovh;
         port 6900;
         options { tls; autoconnect; }
     }
     password "awesome.base64.fingerprint" { spkifp; }
     class hubs;
 }

Suggested server setup

UnrealIRCd by default does not send a fake quit/join for "Changing host" when a ip/spoof/cloak/vhost/whatever is changed. This can be an issue for some clients and bots. This setting will only send the fake quit/join to clients on your server that do not support CHGHOST. This setting will not override CHGHOST. NOTE: UnrealIRCd uses PART instead of QUIT.

/* Server specific configuration */
set {
    allow-userhost-change force-rejoin;
}

Step 4: Blank

Step 5: Blank