IRC/Guide

This guide Article description::provides a broad overview of concepts related to IRC. It intends to be a handy resource for those who want to go deeper than the IRC article. Topics such as IRC clients, convenience, and hardening will be covered in this guide.

What is Internet Relay Chat (IRC)?
Internet Relay Chat (IRC) is a way to communicate about a specific topic of interest in real time over the internet with other people. If put into physical terms it can be thought of as a room filled with people sitting around tables. Each table has a focused topic of discussion. Some of the people at the tables are actively engaged in conversation, others are actively listening to the conversation, still others attention have moved away from the topic and are ignoring the conversation entirely. In IRC terms, each table in this illustration is a channel (often a  is used to denote specific channels). There are many other terms that should be described in order for the reader to develop a full understanding of IRC.

Terminology
When learning new technologies it is important to understand and implement precise terminology. Using correct terminology is helpful to both readers and writers because distinctions must be made in order to accurately transmit information. Several IRC related terms are used in the next sections; unless the reader is completely comfortable with the terminology of IRC it is wise to briefly scan through them to gain an understanding before proceeding:

Uses
IRC is for communication. In the Gentoo project it is among the primary means of:


 * Getting support
 * Providing support to others
 * Fulfilling the desire for a community
 * Tracking or discussing bugs on Bugzilla
 * Discussing Wiki-related content or changes
 * Tracking Wiki changes
 * Discussing Gentoo website related changes
 * Making a complaint, feature request, or suggestion (any project specific channel)

Installation
Before an IRC client is be installed, a few of the available clients should be reviewed. IRC clients enables users to connect to an IRC server. After a connection to the server a channel can be entered. Inside channels is where the action takes place. Many clients exist, each with their own features, advantages and disadvantages. Review the list of available clients below:

If needed, click the name of the client software to gather more knowledge on installation, configuration, usage, etc. Return to this article after a client has been configured.

Nick names
Like on websites and forums nick names are used on IRC. Choose a nick name and setup the IRC client to use the nick name each time it connects to the network. This process is different for each client. If any extended length of time is to be spent on IRC it is important to register a nick name for personal use so that the nick name is available on each connection. Without registering a nick name other users may claim the nick name or pretend to be you.

After connecting to the Freenode Network, follow these steps to register a nick name.

Upon successful identification of a nick name the following message should appear:

Securing
IRC software is like any other software: it needs to be secured. There are several methods to security for IRC clients.

Cloaks
Cloaks help users stay secure on IRC by hiding the user's IP address. Without a cloak all users on the channel can ask for an /info or a whois on the uncloaked user and see the public IP address their client is using to connect. If the user is connected from home via their primary internet connection, which is more than likely the case, this can potentially have negative consequences. There are exceptions to this rule. Some users connect to the IRC server through proxy connections, onion router networks (Tor), or other means in order to conceal their IP actual IP address. In these cases (without a cloak) an IP address will still be visible, but it will not be the actual (original) IP address of the client.

If the reader of this guide will be doing any long-term communication over IRC, obtaining a cloak should be a high priority.

Two types of cloaks exist:


 * Affiliated cloaks - These kind of cloaks are given out by various projects. They are to associate the user's nick name to a specific organization on the IRC network. When a user is on staff with an organization that has a presence on Freenode, an affiliated cloak should be obtained.
 * Unaffiliated cloaks - Unaffiliated cloaks exist for all users who are not part of an organization with a presence on Freenode. These can be obtained by asking an Admin on the network. Most users think these are difficult to obtain; they are not. The Admins on the Freenode network provide unaffiliated cloaks to users who ask for them in . For the reader interested in a cloak, enter into the channel and simply ask (politely) for an unaffiliated cloak. It could take a few minutes for someone on staff to notice the query, so keep an active watch for someone to reply.

Tor
Using Tor is a method of getting a cloak on Freenode. A successful connection using Tor with SASL will result in a cloak like: ~ident@gateway/tor-sasl/account-name. It is not possible to connect directly with Tor, so an authenticated gateway provided by Freenode must be used.

After a period of no Tor support, Freenode has brought it back. Refer to your client's instructions on SASL authentication.


 * Connect to Freenode: irc.freenode.net with port 6697 (SSL)
 * Generate an SSL certificate and tell NickServ about it
 * Configure your client with SASL EXTERNAL or ECDSA-NIST256P-CHALLENGE using the certificate
 * Connect to ajnvpgl6prmkb7yktvue6im5wiedlz2w32uhcwaamdiecdrfpwwgnlqd.onion:6667. Use 6697 with SSL if using EXTERNAL.

Invocation
The invocation of relay chat software will change based on what chat client has been chosen for use. To start command-line clients such as irssi or weechat open a terminal window and call the program:

Graphical clients such as KDE's Konversation or GNOME's Pidgin are usually called through an icon in the desktop environment.

Client
Client commands will change based upon the client in use. Visit the respective software article or see the client's man page for information on commands specific to the client in use.

Server
When corrected to a server, the server software will dictate what commands are or are not acceptable. In this section the Freenode IRC network will be used as an example for server commands.

Message the ChanServ user in order to gain a list of available server commands. This can be done by issuing a  command:

Or by opening a new buffer/chat window directly to ChanServ.

Channel
These kinds of commands narrow in scope to the channel they are executed in.

Bot
There are many IRC bots that are available for general use in IRC channels. Since each of them are separate projects, Bots do not have a unified command interfaces. Research the bot software or ask a user in the channel for help interacting with the bot.

Channel guidelines
It is typical for each IRC channel to have guidelines. Gentoo's official IRC guidelines can be seen on the main site, however they will be repeated here for the reader's convenience:


 * Please act sensibly and maturely, abiding by the Code of Conduct.
 * Please read the topic when entering a channel, it contains valuable information!
 * Bots or scripts that talk or create public logs are not welcome in most channels. If in doubt, please ask.
 * Please do not use CTCP VERSION or the like on users/channels without their consent.

It is important for each potential IRC user to read the Behaviour and consequences section of the Code of Conduct.

External resources

 * https://www.irchelp.org/ - A site dedicated to helping users understand IRC.
 * http://tldp.org/HOWTO/IRC/index.html - The Linux Documentation Project's IRC HOWTO.