WebIRC Support

From UnrealIRCd documentation wiki
Jump to: navigation, search
Other languages:
English • ‎français

UnrealIRCd supports the WEBIRC / CGIIRC protocol. This allows users to use a browser rather than a (real) IRC client and still make them show up on IRC with their real IP.

How it works

Take this example:

User (IP: 1.2.3.4) <--browser connection--> WebIRC software (IP: 5.5.5.5) <--IRC connection--> UnrealIRCd (IP: 6.6.6.6)

User

The user only needs a web browser, nothing else. Normally any Firefox, Google Chrome, Internet Explorer or Safari version will do.

WebIRC software

You need to install a web irc client. Which one you choose is up to you. This could be installed on the same machine as the IRC Server is on, but it's also perfectly fine if it's installed on a different machine.

Examples:

UnrealIRCd

Your Web IRC may already work, but all your users will show up with the same IP when they come online. Why? Take a look at the example at the beginning: all IRC connections originate from your WebIRC machine (5.5.5.5 in our example), so all your users will show up with the IP 5.5.5.5. UnrealIRCd has no way of knowing that the actual user 'behind it' actually has IP 1.2.3.4.

This is a real problem if you ban a user from a channel (+b *@5.5.5.5), or /KLINE *@5.5.5.5, as it will affect all the (many) clients that use the WebIRC software. But there's a solution, see next.

Configuring WEBIRC

This is where the WEBIRC protocol comes to the rescue. With WEBIRC you allow a specific IP (your WebIRC machine) with a specific password to "spoof" the host, that is: to change/set the IP of the user on IRC.

  1. On UnrealIRCd: you create a WebIRC block where you specify your webirc machine IP and a secret password
  2. In the WebIRC software: configure it to use WEBIRC and specify the same password.

Then, when all is good your clients will no longer end up with the WebIRC machine's IP but with their real IP instead (1.2.3.4 in our example).

Note that spoofing of the IP is really something powerful, so you should only add webirc blocks for machines you trust.