How To Set Up An IRC Server (IRCD) Tutorial
Page 1 of 2 12 LastLast
Results 1 to 10 of 12

Thread: How To Set Up An IRC Server (IRCD) Tutorial

  1. #1
    Banned
    Join Date
    Sep 2001
    Posts
    522

    How To Set Up An IRC Server (IRCD) Tutorial

    How to create an IRC Server - By Liran Cohen!

    I wasnt planning on it being this long, but if your a more advanced user you can skip alot of the reading Have fun!!

    In this tutorial i will show you how easy it is to create an IRCd with UnrealIRCd 3.2 running a Linux Box.



    First of all download the Unreal IRCD 3.2 Beta11 from: http://unreal.secure-tech.net/Unreal3.2-beta11.tar.gz - this was taken from the original unrealIRCD site www.unrealircd.com.

    When you have finished downloading it you have to decompress it and install it.

    I reccomend creating a seperate linux user that runs the unrealIRCd.

    Lets pretend this user is "ircd"

    your Unreal3.2-beta11.tar.gz file should be located in /home/ircd/

    now type in the command:
    [ircd@server ircd]$ tar xvfz Unreal3.2-beta11.tar.gz

    after all of the files have been extracted go into the Unreal3.2 directory.
    [ircd@server ircd]$ cd Unreal3.2

    in this folder there is an "INSTALL" file, there is no need to read this because I will explain what is said in it in this tutorial.

    now enter the following commands:

    [ircd@server Unreal3.2]$ ./Config

    I will go through the questions quickly...

    Do you have an insecure operating system and therefore want to
    use the server anti-spoof protection?
    [No] ->

    - leave this ad the default no [press enter]

    What directory are all the server configuration files in?
    [/home/ircd/Unreal3.2] ->



    - This asks you what directory your configuration files are in, i left it as default [press enter]

    What is the path to the ircd binary including the name of the binary?
    [/home/dome/Unreal3.2/src/ircd] ->

    - Also asks you where the binary files are located, also i left it as default [press Enter]

    Would you like to compile as a hub or as a leaf?
    Type Hub to select hub and Leaf to select leaf.
    [Hub] ->

    - This is totaly up to you, i myself left it as the default which is Hub [press enter]

    What is the hostname of the server running your IRCd?
    [yourserver.com] ->

    - enter the hostname of the server your running, most of this will be default but some will have to put in their own. In my case it was "linux-usrs.net"

    What should the default permissions for your configuration files be? (Set this to 0 to disable)
    It is strongly recommended that you use 0600 to prevent unwanted reading of the
    file
    [0600] ->

    - I would leave the default 0600 [press enter]

    Do you want to support SSL (Secure Sockets Layer) connections?
    [No] ->

    - again up to you, I put yes because to me its better

    Do you want to enable IPv6 support?
    [No] ->

    - this is depending on you, i do not need IPv6 support because i dont have IPv6 and msot people in the US do not either(if any) so i left the default.

    What listen() backlog value do you wish to use? Some older servers
    have problems with more than 5, others work fine with many more.
    [5] ->

    - again, these are your settings, i left the default.[press enter]

    How far back do you want to keep the nickname history?
    [2000] ->

    - another question that i suggest just leaving the default.[press enter]

    What is the maximum sendq length you wish to have?
    [3000000] ->

    - default as well.[press enter]

    How many buffer pools would you like?
    This number will be multiplied by MAXSENDQLENGTH.
    [9] ->

    - i again left the default, but this is depending on you.

    How many file descriptors (or sockets) can the IRCd use?
    [1024] ->

    - i highly suggest leaving this one as is. [press enter]

    Would you like any more parameters to configure?
    Write them here:
    []->

    - just press enter (unless you know of ahead of time any more parimeters)

    Now it shold start configuring. wait till it is done you should see soemthing like this:

    __________________________________________________
    | |
    | UnrealIRCd Compile-Time Config |
    |__________________________________________________|
    |__________________________________________________|
    | |
    | Now all you have to do is type 'make' and let it compile. |
    | When that's done, you will receive other instructions |
    | on what to do next. |
    | |
    |__________________________________________________|
    |__________________________________________________|
    | - The UnrealIRCd Team - |
    | |
    | * Stskeeps stskeeps@unrealircd.com |
    | * codemastr codemastr@unrealircd.com |
    |__________________________________________________|

    Just do what it tells you to.

    [ircd@server Unreal3.2]$ make

    now it should start compiling the IRCd (almost done)

    at the end of compiling you should get this:

    ___________________________________________
    | Compile is now complete. |
    | You should now read the documentation and learn |
    | how to configure your IRCd. |
    | |
    | If you really like UnrealIRCd, and would like to |
    | make a donation, please read the Donation file in |
    | this archive. :) |
    | |
    | Thanks for using Unreal IRCd! If you are in need |
    | for any kind of help regarding the IRCd please |
    | read the Unreal.nfo file. |
    |___________________________________________|

    almost home free :)

    now there has been a program created that helps you with further configuration that i HIGHLY reccomend using. (it will create unrealircd.conf for you)

    [ircd@server Unreal3.2]$ ./makeconf

    |=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|
    | Welcome to the unrealircd.conf generator. |
    |=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=|

    What will your server name be? (ie: Server.IRC.net)
    [Server.IRC.net] ->

    -here put in your the server name... irc.domain.com (remember to add this in your DNS Settigns!)

    What is your IRC server's IP? (ie: 1.2.3.4)
    Use * to bind to all interfaces
    [1.2.3.4] ->

    -put in the IP that your server is on... also irc.domain.com should point to this IP (example 209.42.44.106)

    Server comment? (ie: Main Hub Server)
    [IRC server!] ->

    -you can leave this as is, it really doesnt make a difference, or if your IRC Network has a name put that in it.

    Main port? (ie: 6667)
    [6667] ->

    -i suggest leaving this as is if u want it to be a public IRCD on the other had if you want it alittle hidden you can change it. Just make sure to let people know because they will need to know the port in order to log in

    What server numeric does the server have (range = 1..256)
    Must NOT be the same as other servers you link with
    [] ->

    -unless you are running multiple servers this wont matter to you, just leave it blank.

    What is your real name? (ie: John Doe)
    [Admin-name] ->

    -self explanitory.

    What is your IRC nickname? (ie: JD)
    [Admin] ->

    -just put in whatever nickname you usualy use when your on IRC.

    What is your e-mail address? (ie: john@doe.com)
    [admin@no.where.com] ->

    -also self explanitory.

    What will your opername be for your O:line? (ie: johndoe)
    [Admin] ->

    -O:line if you dont already know is IRCOp, you NEED this, i suggest using your Nick.

    What oper flags do you want to have? (ie: OAWZ)
    Some flags to choose from:
    o = local oper
    O = global oper
    N = network administrator
    A = server administrator
    C = co administrator
    T = technical administrator
    read unrealircd.doc for more info about O:line flags)
    [OAZHWe] ->

    -I suggest leaving it as as... it gives you all of them since you run the server its ok. (regular OPers on the otherhand should just have the global Op, we will get to that later

    What will your /oper password be? (ie: snoopy67)
    [password] ->

    -this password is the password you will use when doing an O:line - REMEMBER THIS PASSWORD!

    What is your user@host mask on IRC? (ie: *@*.toronto.globalserve.net)
    [*@*] ->

    -find out your host mask on IRC this is how the server knows its your O:line and not someone else. Its NOT reccomended to make it *@* because if your password is guessed your screwed.)

    What do you want your die password to be?
    [diepass] ->

    -self explanitory, just make a PW that you can remember.

    What do you want your restart password to be?
    [restartpass] ->

    -same as above.

    If your running services, or linking to a network that has
    services, please state the services servername.
    If you are running a non-services network, just type 'next'
    [Services.IRC-Net.Org] ->

    -self explanitory most of you will type 'next'

    Would you like to configure any servers for linking?
    Type the servername, or type 'done' when finished.
    [done] ->

    -most of you will just do done.

    Would you like any extra ports, other than 6667? Enter them here.
    Type 'done' when you are finished. Type 'default' to use 6665-6669/7000.
    [default] ->

    -this is up to you - i added a few more ports just because it doesnt hurt.

    OK, unrealircd.conf has been generated according to what you specified.
    Make sure you double check for errors in unrealircd.conf. We recommend that
    you take a look at your unrealircd.conf right now. Thanks for using UnrealIRCd

    Have a nice day.
    [Press enter to continue]

    w00h00!! You think your done?? Not yet.... sorry

    Almost there though.

    now with your favorite text editor edit the "template.network" file in your /home/ircd/Unreal3.2/networks directory

    it should look like this:
    set {
    network-name "IRC"; // sets the name of your network
    default-server "irc.ircnet.org"; // sets the address of your default server (like irc.dal.net)
    services-server "services.ircnet.org"; // sets the name of your services server
    stats-server "stats.ircnet.org"; // sets the name of your stats server
    help-channel "#IRC"; // sets the name of your help channel
    hiddenhost-prefix "mpx"; // sets the prefix for the hidden hosts
    prefix-quit "Quit:"; // sets the first word to be used in a quit message
    hosts {
    local "locop.ircnet.org"; // sets the host to be given to locops
    global "ircop.ircnet.org"; // sets the host to be given to global ops
    coadmin "coadmin.ircnet.org"; // sets the host to be given to coadmins
    admin "admin.ircnet.org"; // sets the host to be given to admins
    servicesadmin "serviceop.ircnet.org"; // sets the host to be given to services admins
    netadmin "netadmin.ircnet.org"; // sets the host to be given to netadmins
    host-on-oper-up "off"; // sets whether to assign the hosts on oper up
    };
    };

    change the settings to what you would like... again this is all self explanitory... most of it will be irc.domain.com

    now i will paste my file into here what it looked like after i edited it, with some comments of course

    /*
    * Linux Users IRC Network (irc.linux-users.net) Network Configuration File
    *
    * Added-at: 29 July 2002 22:04
    * Author: Liran
    * Email: ecmdome@yahoo.com
    */

    set {
    network-name "Linux Users IRC Network"; //name of the network
    kline-address "*!*@linux-users.net";
    default-server "irc.linux-users.net";
    services-server "irc.linux-users.net";
    stats-server "irc.linux-users.net";
    help-channel "#help"; //help channel :)
    nameserver "linux-users.net"; //DNS Nameserver
    hiddenhost-prefix "hide";
    cloak-keys {
    "334234"; // make sure these are ALL RANDOM NUMBERS!!!!
    "496345";
    "634574";
    };
    hosts {
    local "irc.linux-users.net";
    global "irc.linux-users.net";
    coadmin "irc.linux-users.net";
    admin "irc.linux-users.net";
    servicesadmin "irc.linux-users.net";
    techadmin "";
    netadmin "irc.linux-users.net";
    host-on-oper-up yes; //put this to yes!
    };
    modes-on-connect "+wx"; //the wx are good to have especial x (it masks the users host, for security resons)
    auto-join "#linux-users"; //channels to auto-join when the server is accessed.
    };

    save this as "servername.network"

    One more step and your finished.

    now in your /home/ircd/Unreal3.2 directory edit the "unrealircd.conf" file

    if you would like to add OPers its really not hard, look for your name and password that you set up as your O:line and do the same for the others, one difference is take out the A for network administartor.

    at the bottom of the file add this in:
    include "networks/linux-users.network"; //where "networks/linux-users.network" is the file we edited.

    now save and exit.

    in your Unreal3.2 directory type the following command:

    [ircd@server Unreal3.2]$ ./unreal start

    VOILA!!! your server is up and running, or it should be if you followed the instructions correctly

    Have fun and dont kick/ban too many people, they might not come back lol

    Also reply or e-mail me (ecmdome@yahoo.com) if you have any problems...

  2. #2
    Awesome tutorial man. I have always wanted to have my own IRC server and all that but can you do a tutorial teaching on how to Setup and IRC server on Windows? I hope you can. Nice tutorial though dude! --Jason (JC) Copeland

  3. #3
    Member
    Join Date
    Jul 2002
    Posts
    83
    i don't use IRC much so thanks for the info

  4. #4
    Banned
    Join Date
    Sep 2001
    Posts
    522
    I have never set up an IRC server for windows... but if you go to www.unrealircd.com you can download that same IRCd for Windows, most of it is actualy the same accept for the commands.... it comes fully equipt with a readme and is probably a bit easier to install and configure.

    good luck

  5. #5
    Thanks Dome!

    It was a great tutorial for your first one. Thanks for the information! --JC

  6. #6
    Senior Member
    Join Date
    Apr 2002
    Posts
    1,049
    sweet tutorial dome or liran if u prefer i am going to buy a spare box and use it as a server to host a webpage i was wondering if
    u could host an irc channel on it to would it just depend on the size of the server i was using ?
    By the sacred **** of the sacred psychedelic tibetan yeti ....We\'ll smoke the chinese out
    The 20th century pharoes have the slaves demanding work
    http://muaythaiscotland.com/

  7. #7
    Banned
    Join Date
    Sep 2001
    Posts
    522
    Well, currently i run my DNS/Apache/IRCd/SSH/E-Mail all on one server, thats untill i get a switch so i can seperate them into my multiple boxes

    running an IRCd is really fun, you learn about IRC alittle more and about the different O:line functions.

  8. #8
    Senior Member
    Join Date
    Apr 2002
    Posts
    1,049
    so i should be fine then im getting the other box for 200 pound *its refurbished* with a 256 mb ram hard drive
    so i shouldnt have to much worry`s then ty for replying to my question *i will probably need to update a lot in the box to old parts*
    By the sacred **** of the sacred psychedelic tibetan yeti ....We\'ll smoke the chinese out
    The 20th century pharoes have the slaves demanding work
    http://muaythaiscotland.com/

  9. #9
    Banned
    Join Date
    Sep 2001
    Posts
    522
    yeah, you should be fine... i mean it depends on the traffic you get, and also remember IRC works over the internet so it depends on your connection. But for a small server with 30 max users at a time an older box with a nice connection should be just fine.

  10. #10
    Hi mom!
    Join Date
    Aug 2001
    Posts
    1,103
    Addendum:

    A lot of networks have some services running to make life on irc a little more bareable. On most, larger networks, you can make use the services 'nickserv', 'chanserv' and 'memoserv'. With those, you can respectivly register your nickname (so that no other user can use it), register channels, and send and receive memo's (messages left for you when you were offline).

    If you choose not to use these three services, you might want to protect your users against their own stupidity.

    To use 'nickserv', you have to register your nickname, and identify yourself to nickserv everytime you log on. Doing this, you make sure you are the only one that uses your nickname.

    Because you have to register yourself to nickserv everytime you log on, most people have this process automated. Each time they log on to a server, they will send their password to nickserv. But what if the server doesn't use nickserv? Normally, the user would receive a message telling him no user Nickserv exists.

    A malicious person however, could himself use the nickname 'nickserv'. Every automated identify-request would then end at his console.

    "There's not a user that stupid" you could say. Well, irc.antionline.com does not have nickserv. Last night, I renamed myself to nickserv. Before I went to work, I already had three users telling me their passwords, and one user telling me to piss off.

    One thing to ponder about: Where could the same passwords be used as well?
    I wish to express my gratitude to the people of Italy. Thank you for inventing pizza.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •