Difference between revisions of "Enable Mibbit on Your IRC Server"

From Mibbit Wiki
Jump to: navigation, search
(Unrealircd: example comments: two datacenters)
m
 
(71 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 +
<center><h1 style="background:#FFFF44">FYI: On the 30th of August, Mibbit will be shutting down. see https://mibbit.com/</h1>
 +
<h2 style="color:#FFFFFF; background:#FF4444">FYI: adding/editing any servers/networks is currently not possible (database issue 2024-05).</h2></center>
 
{{articles}}
 
{{articles}}
  
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.
+
If you own an IRC server, and would like to enable people to access it from Mibbit without issues, it's simple to get set up.
  
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.
+
First of all, anyone who uses Mibbit connects from one of our four 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 .. 12 Mibbitians would be able to connect to the server. There are two solutions to this: WebIRC (<span style="color:darkgreen;">best</span>) or a trust/session increase.
  
== WEBIRC (Best method) ==
+
== Mibbit IP addresses ==
  
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.
+
{| class="wikitable"
This is also known as a cgiirc{} block on some servers.
+
|-
 +
!IP
 +
!rDNS
 +
|-
 +
!{{Template:Mibbit_WIDGET1_IP}}
 +
|ircip1.mibbit.com
 +
|-
 +
|(64.62.228.82) [[Ircip2|No longer used]]
 +
|ircip2.mibbit.com
 +
|-
 +
!{{Template:MibbitIP3}}
 +
|ircip3.mibbit.com
 +
|-
 +
|(109.169.29.95) [[Ircip4|No longer used (but still in RR)]]
 +
|ircip4.mibbit.com
 +
|}
  
If you wish to set this up, please:
+
{{Notice|Advanced:  If you would like to automatically generate your own IRCd configurations using a script of some form either for remote include or other method depending on your IRCd you will be able to find all current Mibbit WEBIRC IPs in the ircip.mibbit.com round robin host name (last change was in 2010). If you don't know what this means, don't ask, just skip it.}}
* 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 [http://www.mibbit.com/networks/ /networks/]: public=[yes|no]
 
** IRCd version
 
  
You can ask a staff member ([[IRC_Operators|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.
+
== WebIRC/CGI:IRC Blocks ==
  
'''Note:''' if there are reports that the mibbit client cannot connect the "public" entry will be removed.
+
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.
 +
This is the best method of having Mibbit connect to your network seamlessly.
 +
 
 +
{{:Setup webirc}}
  
 
=== Unrealircd ===
 
=== Unrealircd ===
Example UnrealIRCd cgiirc block setup/configuration (Requires [http://www.unrealircd.com/downloads.php UnrealIRCd 3.2.5] or higher):
+
Config location and syntax have changed in v. 4.x, see https://www.unrealircd.org/docs/WebIRC_block for details.
  // Datacenter one (Mibbit's main client) :
+
new example (v. 4/5):
  cgiirc {
+
 
        type webirc;
+
  // Datacenter one :
        hostname {{Template:Mibbit_IP}};
+
  webirc {
        password <password>; // no brackets ;)
+
mask {{Template:MibbitIP1}};
 +
password "yourRequestedPwHere"; // no spaces
 +
};
 +
except throttle {
 +
mask {{Template:MibbitIP1}};
 
  };
 
  };
+
  // Datacenter three:
  // Datacenter two (widgets and second main client):
+
  webirc {
  cgiirc {
+
mask {{Template:MibbitIP3}};
        type webirc;
+
password "yourRequestedPwHere"; // same as above!
        hostname {{Template:Mibbit_WIDGET1_IP}};
 
        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, [http://bugs.unrealircd.org/view.php?id=3163 Patch available here], this issue however is resolved in version 3.2.8 and up.
 
 
Read the [http://www.unrealircd.com/files/docs/unreal32docs.html#cgiirc CGI:IRC Block documentation] for more information on cgiirc blocks.<br />
 
 
Then let us know the information requested [[#WEBIRC (Best method)|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:<br />
 
 
  except throttle {
 
  except throttle {
      mask {{Template:Mibbit_IP}};
+
mask {{Template:MibbitIP3}};
 +
};
 +
// Datacenter four:
 +
webirc {
 +
mask {{Template:MibbitIP4}};
 +
password "yourRequestedPwHere"; // same as above!
 
  };
 
  };
 
  except throttle {
 
  except throttle {
      mask {{Template:Mibbit_WIDGET1_IP}};
+
mask {{Template:MibbitIP4}};
 
  };
 
  };
  
 +
old UnrealIRCd v.3 cgiirc block setup/configuration example (Requires [http://www.unrealircd.com/downloads.php UnrealIRCd 3.2.5] or higher):
 +
// Datacenter one :
 +
cgiirc {
 +
type webirc;
 +
hostname {{Template:MibbitIP1}};
 +
password <cgiirc_pw>; // no spaces, no <> brackets around cgiirc_pw!
 +
};
 +
// Datacenter three:
 +
cgiirc {
 +
type webirc;
 +
hostname {{Template:MibbitIP3}};
 +
password <password>; // same as above!
 +
};
 +
// Datacenter four:
 +
cgiirc {
 +
type webirc;
 +
hostname {{Template:MibbitIP4}};
 +
password <password>; // same as above!
 +
};
  
The allow block will allow more specifically those unable to use cgiirc blocks to prevent having mibbit clients disconnected for maximum connections:
+
'''Note:''' UnrealIRCd versions between 3.2.5 to 3.2.7 have cgiirc block bugs in IPv6 compiles of UnrealIRCd, [http://bugs.unrealircd.org/view.php?id=3163 Patch available here], this issue however is resolved in version 3.2.8 and up.
  
allow {
+
Read the [http://www.unrealircd.com/files/docs/unreal32docs.html#cgiirc CGI:IRC Block documentation] for more information on cgiirc blocks.<br />
        ip NOBODY;
 
        hostname *@*.mibbit.com;
 
        class clients;
 
        maxperip 1000;
 
};
 
  
Then let us know the information requested [[#WEBIRC (Best method)|above]].
+
'''After''' updating your configuration please '''rehash''' and let us know the information requested [[#WebIRC/CGI:IRC Blocks|above]].
  
 
=== Inspircd ===
 
=== Inspircd ===
Line 80: Line 96:
 
These are instructions for how to configure an InspIRCd installation.
 
These are instructions for how to configure an InspIRCd installation.
  
:# Locate the cgiirc module in the inspircd.conf called m_cgiirc.so<br />Look for <pre><module name="m_cgiirc.so"></pre> and uncomment it.
+
1.) Locate the cgiirc module in the modules.conf (or inspircd.conf) called m_cgiirc.so<br />Look for <pre><module name="m_cgiirc.so"></pre> and uncomment it.
:# Locate the cgihost tag below and configure as follows:
+
 
::# Choose type as Webirc
+
2.) Locate the cgihost tag below and configure as follows:
::# In the ''password'' attribute, enter the password you chose.
+
:* Choose type as Webirc
::# In the ''mask'' attribute, enter our IP addresses (main:{{Mibbit_IP}}, widget: {{Mibbit_WIDGET1_IP}}<br />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.
+
:* In the ''password'' attribute, replace <password> with the password you chose.
:: Your cgihost should look like this:
+
:* In the ''mask'' attribute, enter our IP addresses ({{Mibbit_WIDGET1_IP}}, {{MibbitIP3}}, {{MibbitIP4}})<br />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 "*". Try it only as last resort.
:::'''&lt;cgihost type="webirc" password="<password>" mask="{{Mibbit_IP}}"&gt;'''
+
: Your cgihost should look like this:
:::'''&lt;cgihost type="webirc" password="<password>" mask="{{Mibbit_WIDGET1_IP}}"&gt;'''
+
::'''&lt;cgihost type="webirc" password="<password>" mask="{{Mibbit_WIDGET1_IP}}"&gt;'''
:# Locate your connection block and add an additional block as follows
+
::'''&lt;cgihost type="webirc" password="<password>" mask="{{MibbitIP3}}"&gt;'''
 +
::'''&lt;cgihost type="webirc" password="<password>" mask="{{MibbitIP4}}"&gt;'''
 +
NO <> brackets around password!
 +
 
 +
3.) Locate your connection block and add an additional block as follows (Inspircd '''1.*'''):
  
 
  &lt;connect  
 
  &lt;connect  
    allow="{{Mibbit_IP}}"
 
 
     allow="{{Mibbit_WIDGET1_IP}}"
 
     allow="{{Mibbit_WIDGET1_IP}}"
 +
    allow="{{MibbitIP3}}"
 +
    allow="{{MibbitIP4}}"
 
     timeout="60"  
 
     timeout="60"  
 
     flood="10"  
 
     flood="10"  
Line 103: Line 124:
 
     port="6667"&gt;
 
     port="6667"&gt;
  
'''<span style="color:red;">Warning</span>''': you need to '''reload the cgiirc module''' after changes!
+
Inspircd '''2.0+''' seems to require '''separate <connect allow="...>''' lines, see their docs.
 +
 
 +
'''<span style="color:red;">Warning</span>''': if '''all''' mibbitians get the '''same''' Mibbit@ircip*.mibbit.com (or the obfuscated version) as ident@host after the changes, you need to '''reload the cgiirc module''' (after '''every''' change, even if they claim the bug was fixed). A password mismatch results in the same "bad host" issue. No "invalid password" error message is sent to us! You might see something like "user tried to use WEBIRC, but didn't match any configured webirc blocks" in your server logs.
  
 
The major difference from your normal &lt;connect&gt; 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.
 
The major difference from your normal &lt;connect&gt; 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.
Line 109: Line 132:
 
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.
 
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: [http://www.inspircd.org/wiki/Modules/cgiirc InspIRCd m_cgiirc documentation]
+
For more information see InspIRCd m_cgiirc documentation
  
Then let us know the information requested [[#WEBIRC (Best method)|above]].
+
Then let us know the information requested [[#WebIRC/CGI:IRC Blocks|above]].
  
 
===Nefarious===
 
===Nefarious===
Line 119: Line 142:
 
  u2.10.11.07+Nefarious(<version>)+[<revision> <date>].
 
  u2.10.11.07+Nefarious(<version>)+[<revision> <date>].
  
Sample config for Nefarious 1.2:
+
Sample config for Nefarious 1.3:
 
+
  WebIRC {
  W:*@{{Template:Mibbit_IP}}:<password>:*::
+
  mask = "*@{{Template:Mibbit_WIDGET1_IP}}";
W:*@{{Template:Mibbit_WIDGET1_IP}}:<password>:*::
+
  pass = "<password>";
 
+
  flags = "s";
Sample config for Nefarious 1.3 up to revision 2244:
+
  ident = "mibbit";
 
+
  desc = "Mibbit";
W:*@{{Template:Mibbit_IP}}:<password>:s:mibbit:"Mibbit"
+
  };
  W:*@{{Template:Mibbit_WIDGET1_IP}}:<password>:s:mibbit:"Mibbit"
 
 
 
Sample config for Nefarious 1.3, revision 2245 and beyond:
 
 
  WebIRC {
 
  WebIRC {
   mask = "*@{{Template:Mibbit_IP}}";
+
   mask = "*@{{Template:MibbitIP3}}";
 
   pass = "<password>";
 
   pass = "<password>";
 
   flags = "s";
 
   flags = "s";
Line 137: Line 157:
 
   desc = "Mibbit";
 
   desc = "Mibbit";
 
  };
 
  };
 
 
  WebIRC {
 
  WebIRC {
   mask = "*@{{Template:Mibbit_WIDGET1_IP}}";
+
   mask = "*@{{Template:MibbitIP4}}";
 
   pass = "<password>";
 
   pass = "<password>";
 
   flags = "s";
 
   flags = "s";
Line 145: Line 164:
 
   desc = "Mibbit";
 
   desc = "Mibbit";
 
  };
 
  };
mask = "*@*.mibbit.com"; seems to work too (or may be neccessary).
 
  
Then let us know the information requested [[#WEBIRC (Best method)|above]].
+
Sample config for Nefarious 2.0:
 +
WebIRC {
 +
  host = "*@{{Template:Mibbit_WIDGET1_IP}}";
 +
  password = "<password>";
 +
  ident = "mibbit";
 +
  description = "Mibbit";
 +
};
 +
WebIRC {
 +
  host = "*@{{Template:MibbitIP3}}";
 +
  password = "<password>";
 +
  ident = "mibbit";
 +
  description = "Mibbit";
 +
};
 +
WebIRC {
 +
  host = "*@{{Template:MibbitIP4}}";
 +
  password = "<password>";
 +
  ident = "mibbit";
 +
  description = "Mibbit";
 +
};
 +
mask = "*@*.mibbit.com"; may be neccessary (encrypted passwords could result in a "WEBIRC Password invalid for your host" error).
 +
 
 +
Then let us know the information requested [[#WebIRC/CGI:IRC Blocks|above]].
  
 
===Charybdis===
 
===Charybdis===
Line 155: Line 194:
 
  # Place it were it belongs.
 
  # Place it were it belongs.
 
  auth {
 
  auth {
         # Mibbit main.       
+
         # Mibbit one     
        user = "*@{{Template:Mibbit_IP}}";
 
        # Mibbit widget.
 
 
         user = "*@{{Template:Mibbit_WIDGET1_IP}}";
 
         user = "*@{{Template:Mibbit_WIDGET1_IP}}";
 +
        # Mibbit three       
 +
        user = "*@{{Template:MibbitIP3}}";
 +
        # Mibbit four       
 +
        user = "*@{{Template:MibbitIP4}}";
 
         # Place here your password (default: unencrypted).
 
         # Place here your password (default: unencrypted).
         password = "<password>";
+
         password = "<password>";  
 
         # The line below makes care that
 
         # The line below makes care that
 
         # Charybdis understands this is the webirc module.
 
         # Charybdis understands this is the webirc module.
Line 167: Line 208:
 
         class = "users";
 
         class = "users";
 
  };
 
  };
 
+
# NO <> brackets around password!
 
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 ...
 
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 [[#WEBIRC (Best method)|above]].
+
Then let us know the information requested [[#WebIRC/CGI:IRC Blocks|above]].
  
 
=== RatboxIRCd===
 
=== RatboxIRCd===
 
Example RatboxIRCd cgiirc block setup/configuration (Requires [http://www.ircd-ratbox.org/download.shtml RatboxIRCd 3.0.x] or higher):
 
Example RatboxIRCd cgiirc block setup/configuration (Requires [http://www.ircd-ratbox.org/download.shtml RatboxIRCd 3.0.x] or higher):
  // For both clients :
+
  // For all datacenters :
 
  auth {
 
  auth {
         user = "webirc@{{Template:Mibbit_IP}}";     
+
         user = "cgiirc@{{Template:Mibbit_WIDGET1_IP}}";     
         user = "webirc@{{Template:Mibbit_WIDGET1_IP}}";     
+
         user = "cgiirc@{{Template:MibbitIP3}}";   
         password = "password";
+
        user = "cgiirc@{{Template:MibbitIP4}}";     
 +
         password = "<password>";
 
         spoof = "webirc.";
 
         spoof = "webirc.";
 
         class = "users";
 
         class = "users";
 +
};
 +
// NO <> brackets around password!
 +
// The above needs to be before the following existing lines in your config
 +
auth {
 +
    user = "*@*";
 +
    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'''.
 
'''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 [[#WEBIRC (Best method)|above]].
+
Then let us know the information requested [[#WebIRC/CGI:IRC Blocks|above]].
 +
 
 +
===Hybrid===
 +
This section applies to [http://ircd-hybrid.org/ ircd-hybrid-8]
 +
 
 +
 
 +
Back-story & credit:
 +
 
 +
While attempting to support webirc for ircd-hybrid I discovered that the module linked by this page no longer compiled properly for the current stable release (as of this writing 7.2.3). After a bit of time with Google I discovered [http://code.freequest.net/2007/04/13/cgiirc-and-ircd-hybrid-and-more/ this article].
 +
*ircd-hybrid Initial help by The_Spider (irc.smoothnet.org)
 +
 
 +
 
 +
To compile:
 +
 
 +
* Download the [http://files.freequest.net/software/hybrid-modules/m_webirc.c m_webirc.c] module and place it in the contrib folder.
 +
* Modify 'Makefile' (not .in, also located in the contrib folder) by adding the line between any line at 34-48:
 +
  m_webirc.c \
 +
* Follow normal installation instructions.(Don't forget to 'make install' in the contrib folder after you configure the main branch. Otherwise none of the modules there will be compiled and installed)
 +
 
 +
 
 +
Configuration:
 +
 
 +
Modify the proper sections of your ircd.conf to reflect the following:
 +
// For all datacenters :
 +
  auth {
 +
    user = "*@{{Template:Mibbit_WIDGET1_IP}}";
 +
    user = "*@{{Template:MibbitIP3}}";
 +
    user = "*@{{Template:MibbitIP4}}";
 +
    password = "<password>";
 +
    encrypted = no;
 +
    spoof = "webirc.";
 +
    class = "users";
 +
    flags = exceed_limit, kline_exempt; //, webirc;??, see docs
 +
  };
 +
// NO <> brackets around password!
 +
 
 +
// The Mibbit webirc auth block has to be before your catch-all auth block,
 +
// since Hybrid will use the first auth block that matches.
 +
auth {
 +
    user = "*@*";
 +
    class = "users";
 +
};
 +
 
 +
// The module should also be loaded after the auth block.
 +
module = "m_webirc.so";
 +
 
 +
* Remove an existing example gecos ban
 +
** This prevents connection after a successful webirc conversion, generating a "Bad user info" ban.
 +
*** After a successful webirc conversion, the RealName/GECOS is changed to "http://www.mibbit.com"
 +
  gecos {
 +
    name = "*http*";
 +
    reason = "Spambot";
 +
  };
 +
 
 +
As of posting, there is concern that host cloaking can override this module and render the host back to the original Mibbit IP. This can be seen as the user is presented with a clear message that webirc conversion was successful, yet /whois shows the host reverted. Disabling host cloaking does prove that the webirc process is working. This is not a recommendation to disable host cloaking. This was seen on hybrid-7.2.3+plexus-3.0.0(20070716_2-509
  
 
===Other===
 
===Other===
Line 191: Line 293:
 
The protocol is pretty simple. The first command sent to the server is:
 
The protocol is pretty simple. The first command sent to the server is:
  
WEBIRC <password> cgiirc <hostname> <ip>
+
WEBIRC <password> cgiirc <hostname> <ip>
 +
(NO <> brackets around password!)
  
 
The server then uses the hostname and ip for that connection.
 
The server then uses the hostname and ip for that connection.
----
 
Here is the '''Hybrid''' module code:
 
[http://www.wohmart.com/ircd/pub/hybrid/2-Patchsets/blitzed/ircd-hybrid-blitzed/modules/m_cgiirc.c 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 ==
 
== Trust/session limit increase ==
Line 208: Line 306:
 
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.
 
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 IP for the main client is {{Mibbit_IP}}
+
Our IPs are {{Mibbit_WIDGET1_IP}}, {{MibbitIP3}}, {{MibbitIP4}}.
Our IP for the widget is {{Mibbit_WIDGET1_IP}}
 
  
 
=== Configuration examples ===
 
=== Configuration examples ===

Latest revision as of 12:53, 23 August 2024

FYI: On the 30th of August, Mibbit will be shutting down. see https://mibbit.com/

FYI: adding/editing any servers/networks is currently not possible (database issue 2024-05).

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 | 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 set up.

First of all, anyone who uses Mibbit connects from one of our four 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 .. 12 Mibbitians would be able to connect to the server. There are two solutions to this: WebIRC (best) or a trust/session increase.

Mibbit IP addresses

IP rDNS
207.192.75.252 ircip1.mibbit.com
(64.62.228.82) No longer used ircip2.mibbit.com
78.129.202.38 ircip3.mibbit.com
(109.169.29.95) No longer used (but still in RR) ircip4.mibbit.com
Advanced: If you would like to automatically generate your own IRCd configurations using a script of some form either for remote include or other method depending on your IRCd you will be able to find all current Mibbit WEBIRC IPs in the ircip.mibbit.com round robin host name (last change was in 2010). If you don't know what this means, don't ask, just skip it.

WebIRC/CGI:IRC Blocks

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. This is the best method of having Mibbit connect to your network seamlessly.

If you wish to set up a Web:IRC configuration for Mibbit, please follow the following steps.

  1. Choose a WebIRC password.
    • This password should be between 6-20 alphanumeric characters. Please don't use special characters.
  2. Configure your servers. How to do so is listed below for each server type.
    • IP addresses are in the section above for reference and in each IRCd specific section below.
    • Please have your settings saved and rehashed
  3. Gather the following information so that you may supply it in the following step.
    • Network name
      • Will be shown in the server tab, so keep it short but meaningful. For irc.example.net could be "Example Net"
    • A list of all DNS entries that point to your network.
      • e.g., irc.blah.net, blah.com, oldname.com etc.
      • In the case that not all servers in your network are set up with WebIRC, a list of the servers with WebIRC enabled.
    • Preferred connect server or round robin and the port number (if not 6667)
      • e.g., irc.blah.net:1234 (will be used by the main client)
      • If you have SSL, we prefer that port (and please tell us that it's SSL).
    • Server admin's Email address
    • Server admin's nickname on server
    • WebIRC password (maximum length 20 characters, please use only a..z,A..Z and 0..9)
    • Public (yes/no)
      • Only say yes if both:
        • you have more than 100 users. No, services and bots do not count. IRC OPs do not count either.
        • you want to see your server listed in the main client's Home > IRC: dropdown list.
      • If there are reports that the Mibbit client cannot connect, once the entry is set up, then the "public" entry will be removed.
    • IRCd version
    • General description of the network
      • A tag such as "Gaming", "Support", "Politics", ect.


Unrealircd

Config location and syntax have changed in v. 4.x, see https://www.unrealircd.org/docs/WebIRC_block for details. new example (v. 4/5):

// Datacenter one :
webirc {
	mask 207.192.75.252;
	password "yourRequestedPwHere"; // no spaces
};
except throttle {
	mask 207.192.75.252;
};
// Datacenter three:
webirc {
	mask 78.129.202.38;
	password "yourRequestedPwHere"; // same as above!
};
except throttle {
	mask 78.129.202.38;
};
// Datacenter four:
webirc {
	mask 109.169.29.95;
	password "yourRequestedPwHere"; // same as above!
};
except throttle {
	mask 109.169.29.95;
};

old UnrealIRCd v.3 cgiirc block setup/configuration example (Requires UnrealIRCd 3.2.5 or higher):

// Datacenter one :
cgiirc {
	type webirc;
	hostname 207.192.75.252;
	password <cgiirc_pw>; // no spaces, no <> brackets around cgiirc_pw!
};
// Datacenter three:
cgiirc {
	type webirc;
	hostname 78.129.202.38;
	password <password>; // same as above!
};
// Datacenter four:
cgiirc {
	type webirc;
	hostname 109.169.29.95;
	password <password>; // same 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.

After updating your configuration please rehash and 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 modules.conf (or 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:

  • Choose type as Webirc
  • In the password attribute, replace <password> with the password you chose.
  • In the mask attribute, enter our IP addresses (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 "*". Try it only as last resort.
Your cgihost should look like this:
<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">

NO <> brackets around password!

3.) Locate your connection block and add an additional block as follows (Inspircd 1.*):

<connect 
   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">

Inspircd 2.0+ seems to require separate <connect allow="...> lines, see their docs.

Warning: if all mibbitians get the same Mibbit@ircip*.mibbit.com (or the obfuscated version) as ident@host after the changes, you need to reload the cgiirc module (after every change, even if they claim the bug was fixed). A password mismatch results in the same "bad host" issue. No "invalid password" error message is sent to us! You might see something like "user tried to use WEBIRC, but didn't match any configured webirc blocks" in your server logs.

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 see 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.3:

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";
};

Sample config for Nefarious 2.0:

WebIRC {
 host = "*@207.192.75.252";
 password = "<password>";
 ident = "mibbit";
 description = "Mibbit";
};
WebIRC {
 host = "*@78.129.202.38";
 password = "<password>";
 ident = "mibbit";
 description = "Mibbit";
};
WebIRC {
 host = "*@109.169.29.95";
 password = "<password>";
 ident = "mibbit";
 description = "Mibbit";
};

mask = "*@*.mibbit.com"; may be neccessary (encrypted passwords could result in a "WEBIRC Password invalid for your host" error).

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 = "*@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";
};
# NO <> brackets around password!

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 = "cgiirc@207.192.75.252";     
        user = "cgiirc@78.129.202.38";     
        user = "cgiirc@109.169.29.95";     
        password = "<password>";
        spoof = "webirc.";
        class = "users";
};
// NO <> brackets around password!
// The above needs to be before the following existing lines in your config
auth {
   user = "*@*";
   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.

Hybrid

This section applies to ircd-hybrid-8


Back-story & credit:

While attempting to support webirc for ircd-hybrid I discovered that the module linked by this page no longer compiled properly for the current stable release (as of this writing 7.2.3). After a bit of time with Google I discovered this article.

  • ircd-hybrid Initial help by The_Spider (irc.smoothnet.org)


To compile:

  • Download the m_webirc.c module and place it in the contrib folder.
  • Modify 'Makefile' (not .in, also located in the contrib folder) by adding the line between any line at 34-48:
 m_webirc.c \
  • Follow normal installation instructions.(Don't forget to 'make install' in the contrib folder after you configure the main branch. Otherwise none of the modules there will be compiled and installed)


Configuration:

Modify the proper sections of your ircd.conf to reflect the following:

// For all datacenters :
 auth {
   user = "*@207.192.75.252";
   user = "*@78.129.202.38";
   user = "*@109.169.29.95";
   password = "<password>";
   encrypted = no;
   spoof = "webirc.";
   class = "users";
   flags = exceed_limit, kline_exempt; //, webirc;??, see docs
 };
// NO <> brackets around password!
// The Mibbit webirc auth block has to be before your catch-all auth block,
// since Hybrid will use the first auth block that matches.
auth {
   user = "*@*";
   class = "users";
};
// The module should also be loaded after the auth block.
module = "m_webirc.so";
  • Remove an existing example gecos ban
    • This prevents connection after a successful webirc conversion, generating a "Bad user info" ban.
 gecos {
   name = "*http*";
   reason = "Spambot";
 };

As of posting, there is concern that host cloaking can override this module and render the host back to the original Mibbit IP. This can be seen as the user is presented with a clear message that webirc conversion was successful, yet /whois shows the host reverted. Disabling host cloaking does prove that the webirc process is working. This is not a recommendation to disable host cloaking. This was seen on hybrid-7.2.3+plexus-3.0.0(20070716_2-509

Other

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

WEBIRC <password> cgiirc <hostname> <ip>

(NO <> brackets around password!)

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

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 207.192.75.252, 78.129.202.38, 109.169.29.95.

Configuration examples