<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Tuts4Tech &#187; anope</title>
	<atom:link href="http://tuts4tech.net/tag/anope/feed/" rel="self" type="application/rss+xml" />
	<link>http://tuts4tech.net</link>
	<description>Tech Tutorials</description>
	<lastBuildDate>Tue, 04 May 2010 20:35:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>How to Compile a UnrealIRCd Module</title>
		<link>http://tuts4tech.net/2009/07/04/how-to-compile-a-unrealircd-module/</link>
		<comments>http://tuts4tech.net/2009/07/04/how-to-compile-a-unrealircd-module/#comments</comments>
		<pubDate>Sat, 04 Jul 2009 19:43:37 +0000</pubDate>
		<dc:creator>Gamerx287</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[anope]]></category>
		<category><![CDATA[chat]]></category>
		<category><![CDATA[IRCD]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[room]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[unrealircd]]></category>

		<guid isPermaLink="false">http://tuts4tech.net/?p=432</guid>
		<description><![CDATA[This tutorial will show you how to compile in a module for UnrealIRCd. You can find the official list of modules here. First step is to login to the server via SSH and go to the folder where UnrealIRCd is. Then you must go to the "src/modules" directory. Then, of course, you must download the [...]]]></description>
			<content:encoded><![CDATA[<p>This tutorial will show you how to compile in a module for UnrealIRCd.</p>
<p>You can find the official list of modules <a href="http://www.unrealircd.com/modules.php">here</a>.</p>
<p>First step is to login to the server via SSH and go to the folder where UnrealIRCd is. Then you must go to the "src/modules" directory.</p>
<pre class="brush: bash; title: ; notranslate">cd src/modules</pre>
<p>Then, of course, you must download the file into the folder.</p>
<pre class="brush: bash; title: ; notranslate">wget modulelinkhere</pre>
<p>Usually, it will download a .tar.gz file, which you can extract by doing:</p>
<pre class="brush: bash; title: ; notranslate">tar xfz filename.tar.gz</pre>
<p><span id="more-432"></span><br />
Sometimes the actual module file (in the format of modname.c) is in a folder, which you can easily get into the "src/modules" folder by moving it.</p>
<pre class="brush: bash; title: ; notranslate">cd ModnameFolder
mv modname.c ../</pre>
<p>If the .tar.gz opens as just a module file and not a folder, you can ignore the previous step.</p>
<p>The next step is to go back to the main UnrealIRCd folder</p>
<pre class="brush: bash; title: ; notranslate">cd ../../</pre>
<p>To compile the module run the following:</p>
<pre class="brush: bash; title: ; notranslate">make custommodule MODULEFILE=modulename</pre>
<p>Then after that is done, do the final step of compiling:</p>
<pre class="brush: bash; title: ; notranslate">make install</pre>
<p>But before you start anything you must edit the unrealircd.conf</p>
<pre class="brush: bash; title: ; notranslate">nano unrealircd.conf</pre>
<p>There is a part close to the top that has something like this:</p>
<pre class="brush: plain; title: ; notranslate">loadmodule &quot;src/modules/commands.so&quot;;
loadmodule &quot;src/modules/cloak.so&quot;;</pre>
<p>Under the last loadmodule, you put your newly compiled module in there.</p>
<pre class="brush: plain; title: ; notranslate">loadmodule &quot;src/modules/moulefile.so&quot;;</pre>
<p>After that, your all done! All you have to do is rehash Unreal:</p>
<pre class="brush: bash; title: ; notranslate">./unreal rehash</pre>
]]></content:encoded>
			<wfw:commentRss>http://tuts4tech.net/2009/07/04/how-to-compile-a-unrealircd-module/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Setting up a IRCD Server</title>
		<link>http://tuts4tech.net/2009/06/16/setting-up-a-ircd-server/</link>
		<comments>http://tuts4tech.net/2009/06/16/setting-up-a-ircd-server/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 03:08:53 +0000</pubDate>
		<dc:creator>Duffy</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[anope]]></category>
		<category><![CDATA[chat]]></category>
		<category><![CDATA[IRCD]]></category>
		<category><![CDATA[room]]></category>
		<category><![CDATA[services]]></category>
		<category><![CDATA[unrealircd]]></category>

		<guid isPermaLink="false">http://tuts4tech.co.cc/?p=264</guid>
		<description><![CDATA[Preparing the server To compile unrealircd you need to install some software. First off resynchronize the package index files Then we need to install compiling tools If you want SSL your going to need to install openssl It is not recommended to run a IRCd as root for this reason we will be creating a [...]]]></description>
			<content:encoded><![CDATA[<h3>Preparing the server</h3>
<ol>
<li>To compile unrealircd you need to install some software. First off resynchronize the package index files
<pre class="brush: plain; title: ; notranslate">sudo apt-get update</pre>
<p></p>
<p>Then we need to install compiling tools</p>
<pre class="brush: plain; title: ; notranslate">sudo apt-get install build-essential</pre>
<p></p>
<p>If you want SSL your going to need to install openssl</p>
<pre class="brush: plain; title: ; notranslate">sudo apt-get install openssl libssl-dev</pre>
<p>
</li>
<li>It is not recommended to run a IRCd as root for this reason we will be creating a ircd user
<pre class="brush: plain; title: ; notranslate">adduser ircd</pre>
<p></p>
<p>switch to ircd</p>
<pre class="brush: plain; title: ; notranslate">su ircd</pre>
<p>
</li>
<li>wget the latest unrealircd package from http://www.unrealircd.com/downloads.php
<pre class="brush: plain; title: ; notranslate">wget http://unrealircd.icedslash.com/Unreal3.2.8.1.tar.gz&quot;</pre>
<p></li>
<li>Extract the source and rename its folder
<pre class="brush: plain; title: ; notranslate">tar xzvf Unreal3.2.8.1.tar.gz
mv Unreal3.2  unreal</pre>
<p>
</li>
</ol>
<p><span id="more-264"></span></p>
<h3>Compiling Unrealircd</h3>
<ol>
<li>Switch into the ircds directory
<pre class="brush: plain; title: ; notranslate">cd /home/ircd/unreal</pre>
<p></p>
<p>Start The Compile by running Config</p>
<pre class="brush: plain; title: ; notranslate">./Config</pre>
<p></p>
<p>You shall now be asked some questions usually the default answers will do</p>
<pre class="brush: plain; title: ; notranslate">Do you want to enable the server anti-spoof protection?
[No] -</pre>
<p>
This is not necessary needed its only advantage is it will protect against HTTP post proxies(Don't confuse them with HTTP Connect Proxies) I Personally use the default answer of no</p>
<pre class="brush: plain; title: ; notranslate">What directory are all the server configuration files in?
[/home/ircd/unreal] -</pre>
<p>
By default the path for the configuration files is the same as the path to the installation source so again the default would be fine unless you want your configuration files in a seperate directory</p>
<pre class="brush: plain; title: ; notranslate">What is the path to the ircd binary including the name of the binary?
[/home/ircd/Unreal/src/ircd] - </pre>
<p>
By default the path to the ircd binary is in the installation source folder which is fine so again use default values here unless you want to store the binary elsewhere<br />
</p>
<pre class="brush: plain; title: ; notranslate">Would you like to compile as a hub or as a leaf? Type Hub to select hub and Leaf to select leaf. [Hub] -</pre>
<p>
This option is totally up to yourself i personally always use hub</p>
<pre class="brush: plain; title: ; notranslate">What is the hostname of the server running your IRCd?
[localhost.localdomain] -</pre>
<p>
Set this as your domain that you wish to run the ircd server from</p>
<pre class="brush: plain; title: ; notranslate">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] -</pre>
<p>
I see no issue with the configuration files being 0600(read/write only to user ircd) so again i leave this option at default</p>
<pre class="brush: plain; title: ; notranslate">Do you want to support SSL (Secure Sockets Layer) connections?
[No] -</pre>
<p>
If you would like to enable SSL on your servers then use yes personally i always select yes incase in the future the network desies to support SSL you won't have to recompile the ircd</p>
<pre class="brush: plain; title: ; notranslate">If you know the path to OpenSSL on your system, enter it here. If not
leave this blank
[] -</pre>
<p>
If you don't know the path to openssl just leave this blank<br />
</p>
<pre class="brush: plain; title: ; notranslate">Do you want to enable IPv6 support?
[No] -</pre>
<p>
Personally I never enable this as most of the services don't support ipv6 and not many clients use ipv6<br />
</p>
<pre class="brush: plain; title: ; notranslate">Do you want to enable ziplinks support?
[No] -</pre>
<p>
This will make the data sent between linked services and the hub be compressed. I personally always select yes for this</p>
<pre class="brush: plain; title: ; notranslate">If you know the path to zlib on your system, enter it here. If not
leave this blank
[] -</pre>
<p>
If you don't know the path to zlib then just leave this blank and move on<br />
</p>
<pre class="brush: plain; title: ; notranslate">Do you want to enable remote includes?
[No] -</pre>
<p>
Remote includes allows you to remotally include config files e.g include "http://server.com/file.conf"; Personally I don't think this is secure so i select no if you are interested about enabling it you will need to compile cURL for unrealircd for more information about it please see http://forums.unrealircd.com/viewtopic.php?f=3&amp;t=353</p>
<pre class="brush: plain; title: ; notranslate">Do you want to enable prefixes for chanadmin and chanowner?
This will give +a the &amp;amp; prefix and ~ for +q (just like +o is @)
Supported by the major clients (mIRC, xchat, epic, eggdrop, Klient,
PJIRC, irssi, CGI:IRC, etc.)
This feature should be enabled/disabled network-wide.
[Yes] -</pre>
<p>
This enables prefixes for modes +a(SOP) and +q(Owner) Personally i tend to enable this feature as it is easier to tell who has what status in a room</p>
<pre class="brush: plain; title: ; notranslate">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] -</pre>
<p>
It should be safe to leave this at 5 so just press enter and move on</p>
<pre class="brush: plain; title: ; notranslate">How far back do you want to keep the nickname history?
[2000] -</pre>
<p>
This is for /whowas i like to set this figure to 10000 as it will allow me to keep a better track of users</p>
<pre class="brush: plain; title: ; notranslate">What is the maximum sendq length you wish to have?
[3000000] -</pre>
<p>
The Default value is fine here</p>
<pre class="brush: plain; title: ; notranslate">How many buffer pools would you like?
This number will be multiplied by MAXSENDQLENGTH.
[18] -</pre>
<p>Again the default value is fine here</p>
<pre class="brush: plain; title: ; notranslate">How many file descriptors (or sockets) can the IRCd use?
[1024] -</pre>
<p>This is the hardcoded max about of users the ircd server can take some ircd shell providors require you to change this otherwise you can leave it as default</p>
<pre class="brush: plain; title: ; notranslate">Would you like any more parameters to configure?
Write them here:
[]-</pre>
<p>
Just press enter and move on</li>
<li>Run make to start compiling the ircd</li>
<li>When that is finished run make install</li>
<li>Your ircd is now compiled all that needs to be done is your unrealircd.conf</li>
</ol>
<h3>The Configuration</h3>
<ol>
<li>First we need to make some files and folders<br />
go into your unreal directory
<pre class="brush: plain; title: ; notranslate">cd /home/ircd/unreal</pre>
<p>
create ircd.motd and ircd.rules they will hold your /motd and /rules
<pre class="brush: plain; title: ; notranslate">touch ircd.motd
touch ircd.rules</pre>
<p>
make the folder data
<pre class="brush: plain; title: ; notranslate">mkdir data</pre>
</li>
<li>To get started Open unrealircd.conf
<pre class="brush: plain; title: ; notranslate">nano unrealircd.conf</pre>
<p>
All the unrealircd will be doing is including other config files copy and paste be code below into it</p>
<pre class="brush: plain; title: ; notranslate">## Modules ##
loadmodule &quot;src/modules/commands.so&quot;;
loadmodule &quot;src/modules/cloak.so&quot;;

## Include Unrealircd Files ##

include &quot;help.conf&quot;;
include &quot;badwords.channel.conf&quot;;
include &quot;badwords.message.conf&quot;;
include &quot;badwords.quit.conf&quot;;
include &quot;spamfilter.conf&quot;;
include &quot;aliases/anope.conf&quot;;

## Include The Configuration Files ##

include &quot;data/server.conf&quot;;
include &quot;data/ports.conf&quot;;
include &quot;data/domain.network&quot;;
include &quot;data/olines.conf&quot;;
include &quot;data/log.conf&quot;;
include &quot;data/links.conf&quot;;
include &quot;data/local.conf&quot;;

## Mibbit Config Uncomment this if your network has been mibbit enabled please see http://wiki.mibbit.com/index.php/Enable_Mibbit_on_Your_IRC_Server for more information about this
#include &quot;data/mibbit.conf&quot;;</pre>
<p>
move into the data folder we made earlyer
<pre class="brush: plain; title: ; notranslate">cd data</pre>
<p>
We will be starting with server.conf I'll try to explain each block with a commented line above it<br />

<pre class="brush: plain; title: ; notranslate">
/*
 * class (class name)
 * {
 *     pingfreq (how often to ping a user/server in seconds);
 *     maxclients (how many connections for this class);
 *     sendq (maximum send queue from a connection);
 *     recvq (maximum receive queue from a connection [flood control]);
 *  };
 */

 class  clients
{
        pingfreq 90;
        maxclients 1240;
        sendq 100000;
        recvq 8000;
};

class  servers
{
       pingfreq 90;
       maxclients 10;
       sendq 1000000;
       connfreq 100;
};

/*
 * allow {
 *    ip (ip mask to allow);
 *    hostname (host mask);
 *    class (class to send them to [see class {}]);
 *    password &quot;(password)&quot;; (optional)
 *    maxperip (how many connections per ip); (optional)
 * };
 * Below we allow for 10 clients per ip
 */

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

/* U-lines give servers more power/commands, this should ONLY be set services/stats servers */

ulines
{
	services.domain.com;
	stats.domain.com;
};

/* Below defines the passwords to restart or die the server */
drpass {
	restart &quot;some-strong-pass-here&quot;;
	die &quot;another-strong-pass-here&quot;;
};

/* Below sets the motd and rule files */
tld
{
    mask *@*.*;
    rules &quot;ircd.rules&quot;;
    motd &quot;ircd.motd&quot;;
};

/* Certian options set there name pretty much defines what they do */
set {
       kline-address &quot;some-email@yourdomain.com&quot;;
       modes-on-connect &quot;+ixw&quot;;
       modes-on-oper    &quot;+gs&quot;;
       modes-on-join    &quot;+nt&quot;;
       oper-auto-join &quot;#Lobby,#Help,#Opers,#Services&quot;;
       options {
          hide-ulines;
          show-connect-info;
       };

       maxchannelsperuser 120;
       anti-spam-quit-message-time 10s;
       oper-only-stats &quot;okfGsMRUEelLCXzdD&quot;;

       throttle {
          connections 5;
          period 60s;
       };

       anti-flood {
       nick-flood 3:60;
       };
};</pre>
<p>
Now ports.conf this defines the ip and ports to bind the ircd to</p>
<pre class="brush: plain; title: ; notranslate">
/* This binds the ircd to the default ircd ports 6660 to 6669
 listen  YOUR-IP-HERE:6660-6669
{
   options
   {
      clientsonly;
	  java;
   };
};

/* This is a listen block for linking servers */
listen          YOUR-IP-HERE:8067
{
   options
   {
          serversonly;
    };
};

/* This is the listen block for ssl connections */
listen          YOUR-IP-HERE:6697
{
    options
   {
	clientsonly;
	ssl;
   };
};</pre>
<p>
Ok Next up is domain.network this just sets a few settings such as offical channels, modes on join etc</p>
<pre class="brush: plain; title: ; notranslate">/* Sets offical channels for /stats j */
official-channels {
	&quot;#Help&quot; { topic &quot;Official help channel for DefconIRC&quot;; };
	&quot;#Lobby&quot; { topic &quot;Official general chat channel for DefconIRC&quot;; };
};

/* Sets a few options for your ircd server the name pretty much explains what they do */
set {
	network-name &quot;Domain&quot;;
	default-server &quot;hub.domain.com&quot;;
	services-server &quot;services.domain.com&quot;;
	stats-server &quot;stats.domain.com&quot;;
	help-channel &quot;#Help&quot;;
	hiddenhost-prefix &quot;privatehost&quot;;
	prefix-quit &quot;Quit:&quot;;

	/* These are just 3 random generated keys for cloakhost */
    cloak-keys {
         &quot;a2JO6fh3Q6w4oN3s7&quot;;
         &quot;a2Jsgdgsd6w4oN3s7&quot;;
         &quot;asdgsdgsdgw4oN3s7&quot;;
			   };

     hosts {
          local &quot;Local.domain.com&quot;;
          global &quot;IRCop.domain.com&quot;;
          coadmin &quot;Co-Admin.domain.com&quot;;
          admin &quot;Admin.domain.com&quot;;
          servicesadmin &quot;ServicesAdmin.domain.com&quot;;
          netadmin &quot;NetAdmin.domain.com&quot;;
          host-on-oper-up &quot;yes&quot;;
			};
};</pre>
<p>
Ok now for olines.conf this is the file where you setup your operators flags</p>
<pre class="brush: plain; title: ; notranslate">    /* Admin Info */
admin {
       &quot;Your full name.&quot;;
       &quot;email@domain.com&quot;;
       &quot;http://www.domain.com&quot;;
};

/* Oper Blocks
* It is more secure if you encrypt the oper up passwords
* To do so type /mkpasswd encrytion_method password on a active opered up connect to the server
* e.g /mkpasswd sha1 my-really-strong-password
* To use a encrypted password simply replace
* password &quot;PASSWORD-HERE&quot;; With password &quot;PASSWORD-HASH&quot; { encrytion_method; };
*/

/* This block is for network administrators */

    oper NETADMIN-NAME {
       class           clients;
       from {
          userhost *@*;
       };
       password &quot;PASSWORD-HERE&quot;;
       flags
       {
          netadmin;
          can_setq;
          coadmin;
          locop;
          admin;
          can_zline;
          can_gzline;
          can_gkline;
          global;
          services-admin;
          can_rehash;
          can_die;
          can_restart;
          can_wallops;
          helpop;
          can_globops;
          can_localroute;
          can_globalroute;
          can_localkill;
          can_globalkill;
          can_kline;
          can_unkline;
          can_localnotice;
          can_globalnotice;
          can_zline;
          can_gkline;
          can_gzline;
          get_umodew;
          get_host;
          can_override;
          can_setq;
          can_addline;
          can_dccdeny;

       };
       snomask kcfFjveGnNqSso;
};

/* This block is for server administrators */

    oper SERVERADMIN-NAME {
       class           clients;
       from {
          userhost *@*;
       };
       password &quot;PASSWORD-HERE&quot;;
       flags
       {
          admin;
          local;
          can_override;
          can_zline;
          can_gzline;
          can_gkline;
          global;
          can_wallops;
          helpop;
          can_globops;
          can_localroute;
          can_globalroute;
          can_localkill;
          can_globalkill;
          can_kline;
          get_host;
          can_unkline;
          can_localnotice;
          can_globalnotice;

       };
       snomask kcfFjveGnNqSso;
};

/* this block is for IRC Operators */

    oper IRCOPERATOR-NAME {
       class           clients;
       from {
          userhost *@*;
       };
       password &quot;PASSWORD-HERE&quot;;
       flags
       {
          local;
          can_zline;
          can_gzline;
          can_gkline;
          global;
          can_wallops;
          helpop;
          can_globops;
          can_localroute;
          can_globalroute;
          can_localkill;
          can_globalkill;
          can_kline;
          get_host;
          can_unkline;
          can_localnotice;
          can_globalnotice;
          can_override;

       };
       snomask kcfFjveGnNqSso;
};</pre>
<p>
Next is log.conf this sets the log file name and the flags to log</p>
<pre class="brush: plain; title: ; notranslate">log &quot;ircd.log&quot; {
        /* Delete the log file and start a new one when it reaches 2MB, leave this out to always use the same log */
        maxsize 2097152;
        flags {
                oper;
                kline;
                connects;
                server-connects;
                kills;
                errors;
                sadmin-commands;
                chg-commands;
                oper-override;
                spamfilter;
        };
};</pre>
<p>
Next is links.conf which will be used when you try to link services or other unrealircd servers below is two link block examples</p>
<pre class="brush: plain; title: ; notranslate">link            services.domain.com
    {
       username   *;
       hostname   *;
       bind-ip    *;
       port       8067;
       hub             *;
       password-connect &quot;PASSWORD&quot;;
       password-receive &quot;PASSWORD&quot;;
       class           servers;
          options {
          };
    };

    link            leaf.domain.com
    {
       username   *;
       hostname   *;
       bind-ip    *;
       port       8067;
       hub             *;
       password-connect &quot;PASSWORD&quot;;
       password-receive &quot;PASSWORD&quot;;
       class           servers;
          options {
          };
    };</pre>
<p>
And finally local.conf this sets up local info for the server e.g name and description</p>
<pre class="brush: plain; title: ; notranslate">    me
{
       name &quot;hub.domain.com&quot;;
       info &quot;Check out our website http://domain.com&quot;;
       numeric 1;
};
</pre>
<p>
If you have mibbit enabled on your network then simple just change YOUR-PASSWORD in mibbit.conf</p>
<pre class="brush: plain; title: ; notranslate">
except throttle {
      mask 64.62.228.82;
};

except throttle {
      mask 207.192.75.252;
};

allow {
       ip *@*;
       hostname *@mibbit.com;
       class clients;
       maxperip 1000;
};

// For the main client:
cgiirc {
       type webirc;
       hostname 64.62.228.82;
password	PASSWORD-HERE;
};

// For the main widget:
cgiirc {
       type webirc;
       hostname 207.192.75.252;
	password PASSWORD-HERE;
};</pre>
</li>
</ol>
<h3>Starting The Server</h3>
<ol>
<li>To start the server simple cd into the unrealircd dir
<pre class="brush: plain; title: ; notranslate">cd /home/ircd/unreal</pre>
<p>and then run
<pre class="brush: plain; title: ; notranslate">./unreal start</pre>
<p>It should start correctly if you followed everything correctly if you have any issues or questions feel free to join the <a href="http://tuts4tech.co.cc/chat">chat room</a> or leave a comment</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://tuts4tech.net/2009/06/16/setting-up-a-ircd-server/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

