Thread Rating:
  • 1 Vote(s) - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Setup an IRC server.
#1
Ok if you want to host your own irc server on a linux box then this is how you do it.
First you need to download an IRCD package and for this tutorial i am using hybridIRCD.
Now download latest release from here.

http://www.ircd-hybrid.org/downloads.html

Now as we are installing on linux then download the .tgz file.
Now its a good idea to create another user for this. Lets call it ircd.
Thats simple to do so im not going to tell you how to do that.

Now once you have that done grab your hybrid file and extract it to somewhere you plan to keep it. Like /home/ircd/hybridircd/ or whatever.
Now once extracted then from console as user not root cd to extracted directory.
Now run ./configure
Now run make
That will compile the ircd for you. Now you can close your console.
You now need to open the /etc/example.conf file and edit that to suit your needs. THIS IS A MUST BY THE WAY.
Now the example is heavily documented so its pretty easy that way.
Once you have finished editing the config file you need to save it as ircd.conf and save it inside the /etc/ircd-hybrid/ folder. NOT IN THE FOLDER YOU JUST CREATED BUT FROM ROOT DIRECTORY /etc/ircd-hybrid/
Now thats done.
Now you will need to open up your firewall to allow the port you specified in your config file. #6667 is default.
Now you need to sort your router out to affix an ip address to your system and to open up the ports needed. DMZ zone may be a good choice if you have it.
Once that is done you then should go get a free domain name to point to your new irc server. I use no-ip as they have a client you run to update your ip address if its dynamic.

Now all that is done simply start your ircd server.
To start cd to /<install path>/bin/ and type ./ircd to get your server going.
Or as i do i go to the system manager and start it that way.

Now time to test it. Get out your irc client and try hook into your newly created irc server.
Sounds simple dont it.
Wait until you have to edit the config file. Sigh.

This is an old tut i made on my forum perhaps a year ago.
I will review this when i am sober and if i need to edit anything i will.
The Rules!
FTW Forum <-- Home of the Damned! --> Join me On MM


Reply
#2
A little help in the ircd.conf file for those who don't understand.
Code:
ircd-hybrid configuration file [ircd.conf]
# customized for Debian by Joshua Kwan <joshk@triplehelix.org>
# modified for Debian by Aurélien GÉRÔME <ag@roxor.cx>

/* serverinfo {}:  Contains information about the server. (OLD M:) */
serverinfo {
    /* name: the name of our server */
    name = "NAME OF SERVER!!!";

    /* description: the description of our server.  '[' and ']' may not
     * be used here for compatibility with older servers.
     */
    description = "ircd-hybrid 7.2-debian";

    /* network info: the name and description of the network this server
     * is on.  Shown in the 005 reply and used with serverhiding.
     */
    network_name = "NAME OF YOUR IRC SERVER!!!!";
    network_desc = "DESCRIPTION!!!";

    /* hub: allow this server to act as a hub and have multiple servers
     * connected to it.  This may not be changed if there are active
     * LazyLink servers.
     */
    hub = yes;

    /* vhost: the IP to bind to when we connect outward to ipv4 servers.
     * This should be an ipv4 IP only.
     */
    vhost = "YOUR LOCAL IP!!!!!!!";

    /* vhost6: the IP to bind to when we connect outward to ipv6 servers.
     * This should be an ipv6 IP only.
     */
    #vhost6 = "3ffe:80e8:546::2";

    /* max clients: the maximum number of clients allowed to connect */
    max_clients = 512;
};

/* admin {}: contains admin information about the server. (OLD A:) */
admin {
    name = "YOUR NAME!!!!!";
    description = "Main Server Administrator";
    email = "<root@localhost>";
};

/*
* log {}:  contains information about logfiles.
*/
log {
    /* Do you want to enable logging to ircd.log? */
    use_logging = yes;

    /*
     * logfiles: the logfiles to use for user connects, /oper uses,
     * and failed /oper.  These files must exist for logging to be used.
     */
    fname_userlog = "logs/userlog";
    fname_operlog = "logs/operlog";
    fname_killlog = "logs/kill";
    fname_klinelog = "logs/kline";
    fname_glinelog = "logs/gline";

    /*
     * log_level: the amount of detail to log in ircd.log.  The
     * higher, the more information is logged.  May be changed
     * once the server is running via /quote SET LOG.  Either:
     * L_CRIT, L_ERROR, L_WARN, L_NOTICE, L_TRACE, L_INFO or L_DEBUG
     */
    log_level = L_INFO;
};

/* class {}: contain information about classes for users (OLD Y:) */
class {
    /* name: the name of the class.  classes are text now */
    name = "users";

    /* ping time: how often a client must reply to a PING from the
     * server before they are dropped.
     */
    ping_time = 2 minutes;

    /* number per ip: the number of users per host allowed to connect */
    number_per_ip = 2;

    /* max number: the maximum number of users allowed in this class */
    max_number = 100;

    /* sendq: the amount of data allowed in a clients queue before
     * they are dropped.
     */
    sendq = 100 kbytes;
};

class {
    name = "restricted";
    ping_time = 1 minute 30 seconds;
    number_per_ip = 1;
    max_number = 100;
    sendq = 60kb;
};

class {
    name = "opers";
    ping_time = 5 minutes;
    number_per_ip = 10;
    max_number = 100;
    sendq = 100kbytes;
};

class {
    name = "server";
    ping_time = 5 minutes;

    /* connectfreq: only used in server classes.  specifies the delay
     * between autoconnecting to servers.
     */
    connectfreq = 5 minutes;

    /* max number: the amount of servers to autoconnect to */
    max_number = 1;

    /* sendq: servers need a higher sendq as they send more data */
    sendq=2 megabytes;
};

/* listen {}: contain information about the ports ircd listens on (OLD P:) */
listen {
    /* port: the specific port to listen on.  if no host is specified
     * before, it will listen on all available IPs.
     *
     * ports are seperated via a comma, a range may be specified using ".."
     */
    
    /* port: listen on all available IPs, ports 6665 to 6669 */
    host = "LOCAL IP!!!!!!!!!!!!!!!";    # change this!
    port = PORT!!!!!!!!!;
};

.............................
.............................
Also,
Configure the the ircd.motd file to display the message at the beginning of connecting to the server.
Code:
nano /etc/ircd-hybrid/ircd.motd
end result
Do what thou wilt shall be the whole of the Law. Love is the law, love under will.
.::The Rights of Man::.
Reply
#3
That be the ircd.conf file. I would recommend perhaps putting in the edits you did rather than the core file as it will not work for anyone else obviously.
And we both know there are crap loads of edits needed to get a secure running IRC server.
I will add more to my tut regarding changes i did also. But i will setup another IRC server so i can show the results etc.
The Rules!
FTW Forum <-- Home of the Damned! --> Join me On MM


Reply
#4
(12-30-2009, 10:41 PM)DAMINK™ Wrote: That be the ircd.conf file. I would recommend perhaps putting in the edits you did rather than the core file as it will not work for anyone else obviously.
And we both know there are crap loads of edits needed to get a secure running IRC server.
I will add more to my tut regarding changes i did also. But i will setup another IRC server so i can show the results etc.
Of course, but this is a basic set-up.
Do what thou wilt shall be the whole of the Law. Love is the law, love under will.
.::The Rights of Man::.
Reply
#5
(12-30-2009, 10:45 PM)Аноним Интерфейс Wrote: Of course, but this is a basic set-up.

Yea it gets really complicated when you fully edit that conf file.
I spent i think about 1 week trying to get it how i wanted it and never really did.
I have all the bots and crap running but never got it just how i like it.
The Rules!
FTW Forum <-- Home of the Damned! --> Join me On MM


Reply
#6
PROTIP: UnrealIRCd is better.
[Completely Honest. Seriously.]

Protip: Anonymous Reputation Points are for Pussies
Reply
#7
What makes UnrealIRCd better exactly?
The Rules!
FTW Forum <-- Home of the Damned! --> Join me On MM


Reply
#8
(01-01-2010, 07:15 PM)DAMINK™ Wrote: What makes UnrealIRCd better exactly?
Yes, a little more detail please....
Do what thou wilt shall be the whole of the Law. Love is the law, love under will.
.::The Rights of Man::.
Reply
#9
Ease of setup (once you actually read how to set it up) - the configuration file layout is better than any other IRCd I've tried.
Stability ...most of the big networks use it.
Compatibility with Services and Stats daemons [see last comment]
Support [see last comment]

There's a lot of good things that go along with being the most popular IRCd.
[Completely Honest. Seriously.]

Protip: Anonymous Reputation Points are for Pussies
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  [Linux] Staying connected to IRC through SSH (No BNC Needed) Natha 1 1,703 06-14-2010, 01:06 PM
Last Post: MarkW7

Forum Jump:


Users browsing this thread: 2 Guest(s)