Enable Mibbit on Your IRC Server

From Mibbit Wiki
Revision as of 09:48, 29 April 2010 by Admin (Talk | contribs)

Jump to: navigation, search

Wiki Home | FAQ | Features | IRC Commands | IRC Modes | Widget Information | Widget: WebIRC Server Setup | URI Parameters | Wish List | Registration Information | Mibbit Staff

Home | Quick Start Guide | Blog & News | Live Mibbit Help



If you own an IRC server, and would like to enable people to access it from Mibbit without issues, it's simple to get setup.

First of all, anyone who uses Mibbit connects from the same IP address to your IRC server. This needs to be handled by the IRC server. The default setup for most IRC servers is to only allow 3 or so connections from any single IP, which means that only 3 Mibbitians would be able to connect to the server. There are two solutions to this.

UPDATED Mibbit IP addresses

64.62.228.82 
207.192.75.252
78.129.202.38
109.169.29.95

Please add all 4 blocks if possible, and email axod@mibbit.com to confirm when added.

WEBIRC (Best method)

The webirc protocol allows Mibbit to send over the users real IP address and hostname to the IRC server. This means that cloaks, and bans, and all other hostname/IP based things work exactly as they should. When you whois the user, it'll look like they are connecting directly from their own IP, and not through Mibbit. This is also known as a cgiirc{} block on some servers.

If you wish to set this up, please:

  • Choose a webirc password
  • Configure your servers
  • Let us know your:
    • Network name (will be shown in the server tab, keep it short but meaningful)
    • A list of all DNS entries that point to your network, e.g., irc.blah.net, blah.com, oldname.com etc.
    • A list of the enabled servers (in case that not all servers in your network can be set up to use webirc)
    • Preferred connect server or round robin and the port (if not 6667), e.g., irc.blah.net:1234 (will be used by the main client)
    • Email address of the admin and his nick
    • webirc password (please use 6..20 alpha-numeric characters only)
    • If you have more than 50 users, whether you want to see your server listed in the main client's Home > IRC: dropdown list and on /networks/: public=[yes|no]
    • IRCd version

You can ask a staff member (ircop) in #help to insert the data into the db (via PM, please use the same nick as on your network) or send an email to staff@mibbit.com . If you send an email, make sure you include all the information above. Changes to the db will take effect after 15 minutes.

Note: if there are reports that the mibbit client cannot connect the "public" entry will be removed.

Unrealircd

Example UnrealIRCd cgiirc block setup/configuration (Requires UnrealIRCd 3.2.5 or higher):

// Datacenter one :
cgiirc {
       type webirc;
       hostname 64.62.228.82;
       password <password>; // no brackets ;)
};
// Datacenter two:
cgiirc {
       type webirc;
       hostname 207.192.75.252;
       password <password>; // same password as above!
};
// Datacenter three:
cgiirc {
       type webirc;
       hostname 78.129.202.38;
       password <password>; // same password as above!
};
// Datacenter four:
cgiirc {
       type webirc;
       hostname 109.169.29.95;
       password <password>; // same password as above!
};

Note: UnrealIRCd versions between 3.2.5 to 3.2.7 have cgiirc block bugs in IPv6 compiles of UnrealIRCd, Patch available here, this issue however is resolved in version 3.2.8 and up.

Read the CGI:IRC Block documentation for more information on cgiirc blocks.

Then let us know the information requested above.



For networks that are unable for some reason to use cgiirc blocks, the following will allow an unrestricted number of mibbit clients on your server(s). These blocks should not be necessary while using the cgiirc block, however adding them just in case is suggested;


Throttling blocks allows the mibbit client and widget to bypass throttle by preventing auto-throttle bans:

except throttle {
      mask 64.62.228.82;
};
except throttle {
      mask 207.192.75.252;
};
except throttle {
      mask 78.129.202.38;
};
except throttle {
      mask 109.169.29.95;
};


The allow block will allow more specifically those unable to use cgiirc blocks to prevent having mibbit clients disconnected for maximum connections:

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

Then let us know the information requested above.

Inspircd

These are instructions for how to configure an InspIRCd installation.

  1. Locate the cgiirc module in the inspircd.conf called m_cgiirc.so
    Look for
    <module name="m_cgiirc.so">
    and uncomment it.
  2. Locate the cgihost tag below and configure as follows:
  1. Choose type as Webirc
  2. In the password attribute, enter the password you chose.
  3. In the mask attribute, enter our IP addresses (64.62.228.82, 207.192.75.252, 78.129.202.38, 109.169.29.95)
    Note: In some cases its been reported that connection from mibbit users were not resolved to the correct address. In some cases this can be fixed by setting the mask to "*". This is NOT recommended behavior.
Your cgihost should look like this:
<cgihost type="webirc" password="<password>" mask="64.62.228.82">
<cgihost type="webirc" password="<password>" mask="207.192.75.252">
<cgihost type="webirc" password="<password>" mask="78.129.202.38">
<cgihost type="webirc" password="<password>" mask="109.169.29.95">
  1. Locate your connection block and add an additional block as follows
<connect 
   allow="64.62.228.82" 
   allow="207.192.75.252"
   allow="78.129.202.38" 
   allow="109.169.29.95" 
   timeout="60" 
   flood="10" 
   pingfreq="120"
   threshold="5" 
   sendq="131074"
   recvq="4096"
   globalmax="30"
   localmax="30"
   port="6667">

Warning: you need to reload the cgiirc module after changes!

The major difference from your normal <connect> block should be the allow parameter and the globalmax and localmax. The reason for these changes is so that the server does not identify several users of mibbit as coming from the same IP and then raises a session exceeded error.

If you are having problems getting the module to work, try rehashing and reloading the module after configuration changes. The easiest way to do this is by rehashing, then issuing the command "/reloadmodule m_cgiirc.so". Sometimes only a server restart helps.

For more information: InspIRCd m_cgiirc documentation

Then let us know the information requested above.

Nefarious

If F:CRYPT_OPER_PASSWORD is set to TRUE (default) you will need to use "/mkpasswd <password>" to crypt the password before adding it to the W:Line. If F:CRYPT_OPER_PASSWORD is set to FALSE then you will have to put the password in the W:Line in plain text.

To check the version and revision use "/version" or "/quote version" depending on your IRC client and then look for:

u2.10.11.07+Nefarious(<version>)+[<revision> <date>].

Sample config for Nefarious 1.2:

W:*@64.62.228.82:<password>:*::
W:*@207.192.75.252:<password>:*::
W:*@78.129.202.38:<password>:*::
W:*@109.169.29.95:<password>:*::

Sample config for Nefarious 1.3 up to revision 2244:

W:*@64.62.228.82:<password>:s:mibbit:"Mibbit"
W:*@207.192.75.252:<password>:s:mibbit:"Mibbit"
W:*@78.129.202.38:<password>:s:mibbit:"Mibbit"
W:*@109.169.29.95:<password>:s:mibbit:"Mibbit"

Sample config for Nefarious 1.3, revision 2245 and beyond:

WebIRC {
  mask = "*@64.62.228.82";
  pass = "<password>";
  flags = "s";
  ident = "mibbit";
  desc = "Mibbit";
};

WebIRC {
  mask = "*@207.192.75.252";
  pass = "<password>";
  flags = "s";
  ident = "mibbit";
  desc = "Mibbit";
};

WebIRC {
  mask = "*@78.129.202.38";
  pass = "<password>";
  flags = "s";
  ident = "mibbit";
  desc = "Mibbit";
};

WebIRC {
  mask = "*@109.169.29.95";
  pass = "<password>";
  flags = "s";
  ident = "mibbit";
  desc = "Mibbit";
};

mask = "*@*.mibbit.com"; seems to work too (or may be neccessary).

Then let us know the information requested above.

Charybdis

(tested with Charybdis-3.1.0)

# Enable the webirc module:
loadmodule "extensions/m_webirc.so";
# Place it were it belongs.
auth {
       # Mibbit one      
       user = "*@64.62.228.82";
       # Mibbit two
       user = "*@207.192.75.252";
       # Mibbit three        
       user = "*@78.129.202.38";
       # Mibbit four        
       user = "*@109.169.29.95";
       # Place here your password (default: unencrypted).
       password = "<password>";
       # The line below makes care that
       # Charybdis understands this is the webirc module.
       spoof = "webirc.";
       # The class.
       class = "users";
};

Always check your config with the following command (path to your charybdis installation)/bin/ircd -conftest to make sure it loads the module correctly and your config is intact. Anyways, if that succeeds it shows: notice: loading module extensions/m_webirc.so ...

Then let us know the information requested above.

RatboxIRCd

Example RatboxIRCd cgiirc block setup/configuration (Requires RatboxIRCd 3.0.x or higher):

// For all datacenters :
auth {
        user = "webirc@64.62.228.82";     
        user = "webirc@207.192.75.252";     
        user = "webirc@78.129.202.38";     
        user = "webirc@109.169.29.95";     
        password = "password";
        spoof = "webirc.";
        class = "users";
};

Note: The m_webirc.c module is not installed by default. Compile the m_webirc.c module, then loadmod contribs/m_webirc.so. See the output similar to *** Notice -- Module m_webirc.so [version: $Revision: 26401 $; MAPI version: 1] loaded at 0x29e3c580.

Then let us know the information requested above.

Other

The protocol is pretty simple. The first command sent to the server is:

WEBIRC <password> cgiirc <hostname> <ip>

The server then uses the hostname and ip for that connection.


Here is the Hybrid module code: m_cgiirc.c (?). Always use the latest module and recompile, otherwise all mibbit clients get the same ident@host "Mibbit@w*.mibbit.com"!


Send any questions/requests for adding your server to the list of approved servers to ircstaff[at]mibbit.com

Trust/session limit increase

If webirc is unavailable, mibbit sends over the users IP address and hostname. In the ident reply, we send the users IP address in hex form. We also set the users realname to be their hostname. If you use this method, you can ban individuals on their username. You just need to increase the connection limit for the Mibbit IP, and please remember NOT to k-line/ban the whole of *.mibbit.com . Ban individuals instead.

Our IPs are 64.62.228.82, 207.192.75.252, 78.129.202.38, 109.169.29.95.

Configuration examples