User Tools

Site Tools

tools:irc

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
tools:irc [2025/08/30 11:24] – [Managing Channel Access] Humphrey Boa-Garttools:irc [2025/09/01 08:19] (current) Humphrey Boa-Gart
Line 1: Line 1:
 ====== Internet Relay Chat (IRC) ====== ====== Internet Relay Chat (IRC) ======
- 
-[{{ :tools:ss_1756546943.png?300|Use the following Hexchat config to connect to our IRC server. //(Click to enlarge)//}}] 
  
 **Internet Relay Chat** (or **IRC**) is one of the oldest chat platforms. However, it is not a service, nor an application, but a //**communication protocol**//. Using the IRC protocol, anyone can spin up a chat server with any number of individual chat rooms, and any compatible program can connect to any of these servers. **Internet Relay Chat** (or **IRC**) is one of the oldest chat platforms. However, it is not a service, nor an application, but a //**communication protocol**//. Using the IRC protocol, anyone can spin up a chat server with any number of individual chat rooms, and any compatible program can connect to any of these servers.
Line 10: Line 8:
 ===== AMI @ IRC ===== ===== AMI @ IRC =====
  
-The Anonymous Military Institute's conference hall is located at **#ami** on **irc.freenode.net**. If you are using IRC for the first time, it is recommended you use something simple like [[https://hexchat.github.io/|HexChat]]. Refer to the image to the right for configuring Hexchat, then type ''/join #ami'' once you are connected to Freenode.+The Anonymous Military Institute's conference hall is located at **#ami** on [[irc://irc.hackint.org/ami|irc.hackint.org]]. If you are using IRC for the first time, it is recommended you use the [[https://chat.hackint.org/?join=ami|webchat]], or install [[https://hexchat.github.io/|HexChat]].
  
 ===== IRC Clients ===== ===== IRC Clients =====
Line 23: Line 21:
 If you're just getting started and are feeling apprehensive about installing software right away, perhaps consider a **browser-based client** to get a feel for the IRC ecosystem first. If you're just getting started and are feeling apprehensive about installing software right away, perhaps consider a **browser-based client** to get a feel for the IRC ecosystem first.
  
 +  * [[https://chat.hackint.org/?join=ami]] //(official Hackint IRC webchat service)//
   * [[https://kiwiirc.com/|KiwiIRC]]   * [[https://kiwiirc.com/|KiwiIRC]]
   * [[https://www.irccloud.com/|IRCCloud]] //("always-on" paid service)//   * [[https://www.irccloud.com/|IRCCloud]] //("always-on" paid service)//
Line 72: Line 71:
 Chat rooms on IRC are called **channels**, which are hosted on **servers**. One server will typically have many channels, and not everyone in one channel will be in the other channels on the same server. Before you can join a channel, you have to connect to a server first. Chat rooms on IRC are called **channels**, which are hosted on **servers**. One server will typically have many channels, and not everyone in one channel will be in the other channels on the same server. Before you can join a channel, you have to connect to a server first.
  
-There are many servers, but for the sake of this tutorial, we will use **Freenode** as an example, since that's where the AMI's channel is hosted. In most clients, you can do this with the ''/server'' command:+There are many servers, but for the sake of this tutorial, we will use **Hackint** as an example, since that's where the AMI's channel is hosted. In most clients, you can do this with the ''/server'' command:
  
-  /server irc.freenode.net+  /server irc.hackint.org
      
 Once you are connected, you can type ''/join #ami'' to join our channel. Once you are connected, you can type ''/join #ami'' to join our channel.
  
 All channels are prefixed with the pound (#) sign //(like a hashtag)//. You can type ''/list'' to get a full list of other channels on the server, which you can also join with the ''/join'' command. All channels are prefixed with the pound (#) sign //(like a hashtag)//. You can type ''/list'' to get a full list of other channels on the server, which you can also join with the ''/join'' command.
 +
 +To find more servers, check out this [[https://netsplit.de/networks/top100.php|fairly updated list of popular IRC servers]].
  
 ==== Managing Your "Account" ==== ==== Managing Your "Account" ====
  
-IRC does not require registration, and allows you to chat under almost any name //(aka 'nick' or 'nickname' in IRC terminology)// as a guest. To change your nick, type ''/nick newnickhere''. There is a limit on how long the nick can be; some networks only allow a maximum of 9 characters, while others let you go up to 18.+IRC does not require registration, and allows you to chat under almost any name //(aka 'nick' or 'nickname' in IRC terminology)// as a guest. To change your nick, type ''/nick newnickhere''.
  
-Some servers have nickname registration services, allowing you to keep other people from stealing your nick. On Freenode (and many other servers) this service is called **NickServ**.+Some servers have nickname registration services, allowing you to keep other people from stealing your nick. On Hackint (and many other servers) this service is called **NickServ**.
  
 You can get a list of available NickServ options with the ''help'' command: You can get a list of available NickServ options with the ''help'' command:
Line 143: Line 144:
  
 IRC's simple text-based interface hides a lot of functionality. Some things which you may find useful: IRC's simple text-based interface hides a lot of functionality. Some things which you may find useful:
 +
 +
 +==== Secure IRC ====
 +
 +IRC is not the most secure platform in the world, but a few simple tricks can dramatically increase your privacy:
 +
 +=== IRC over VPN's ===
 +
 +Depending on how you are using IRC, you may not always need a [[security:vpn|VPN]]. If you are using TLS to connect to your favorite IRC servers, then your connection is already encrypted. If you are using IRC remotely //(see **"IRC in the Cloud"** below)// via SSH, then know SSH encrypts your connection as well. So rest assured, if you are hanging out with terrorists on EFNet, all anyone can really see is that you are connecting to EFNet - but they cannot see anything else unless this is happening in a public room on EFNet, which they would have to go find in a list of thousands of channels unless they have a way to man-in-the-middle a TLS connection.
 +
 +In many cases you will want to use a VPN. This is mainly because on IRC //everyone can see your hostname and IP address//. So if you do not want people tracing back to your location, connect to IRC from a VPN, or from a //via media// remote server in the cloud.
 +
 +You will also want a VPN if you are working sensitive [[:op:operations]] on a private IRC server. If you have a remote client in an opsec-conscious environment, you will want a VPN both ways: both between your local machine and your remote client, and between your remote client and the server. Even with encrypted connections using SSH and TLS, the datacenter can still pick up the IP addresses of everything your remote client talks to, and you cannot always trust the datacenter.
 +
 +=== IRC over TLS/SSL ===
 +
 +Most modern IRC clients support encrypted connections between client-server with TLS //(the modern successor to SSL)//. You should enable this, as it will keep people on your local network from being able to read your communications, as well as prevent [[tactics:man-in-the-middle|man-in-the-middle attacks]].
 +
 +TLS/SSL connections are made over different ports than non-encrypted connections. For IRC, this is usually be on **Port 6697**, but it can vary from server to server.
  
 ==== Channel Management ==== ==== Channel Management ====
Line 160: Line 180:
  
 ChanServ runs on autopilot, and can be set to dole out the various op & voice modes to users. //(Note that when using ChanServ to give automatic privileges out like this, that user must be registered with NickServ first.)// ChanServ runs on autopilot, and can be set to dole out the various op & voice modes to users. //(Note that when using ChanServ to give automatic privileges out like this, that user must be registered with NickServ first.)//
- 
-=== XOP System === 
  
   /msg ChanServ xop #channelname add nick   /msg ChanServ xop #channelname add nick
Line 167: Line 185:
 Where "xop" is either: Where "xop" is either:
  
-  * "vopfor auto-voice +  * ''vop'' for auto-voice 
-  * "hopfor auto-halfops +  * ''hop'' for auto-halfops 
-  * "aopfor auto-ops +  * ''aop'' for auto-ops 
-  * "sopfor auto-superops+  * ''sop'' for auto-superops
  
-You can also change "addto "delto delete someone from your list.+You can also change ''add'' to ''del'' to revoke privileges from the specified nick.
  
-=== Access Level System === 
  
-  /msg ChanServ access #channelname add nick level+=== Kicking People Out ===
  
-Adds user to the access list with that level. If a user is already on the list, their level will simply be changed to the specified level.+Too much of pussy to kick or ban someone yourself? ChanServ can do it for you!
  
-  /msg ChanServ access #channelname del nick+  /msg chanserv (kick|ban) #channelname nick reason
  
-Deletes a user from the access list.+**Note:** If the channel has signkick enabled (default), your nick will be displayed in the kick message.
  
-By default, the following access levels are defined:+==== Secure Noticing ====
  
-  * Founder - Gives +qo upon enteringallows full access to ChanServ commands. Only one user may have this status. +To send a message to everyone on a channel with a certain level or highertype this:
-  * 10 - Gives +ao upon entering, allows access to akick. +
-  * 5 - Gives +o upon entering. +
-  * 3 - Gives +v upon entering. +
-  * 0 - Nothing. +
-  * <0 - User cannot be opped.+
  
-=== ChanServ kick ===+  /notice (~|&|@|%|+)#channel message
  
-Too much of a pussy to kick/ban someone yourself? ChanServ can do it for you!+where the symbol represents the minimum level to send the message to (see "People on IRC").
  
-  /msg ChanServ (kick|ban) #channelname nick reason+Use this to share sensitive information without spais finding out.
  
-Note that if the channel has signkick enabled (default), your nick will be displayed in the kick message. 
  
 +==== Custom Hostnames ====
  
-==== Secure Noticing ====+Normally when you join a channel, people see a long ugly hostname - a sort of long-form address that corresponds to your IP address. However, with a registered nick, you can replace your plain old hostname with a vHost, which is basically just a fake hostname that looks a lot prettier.
  
-To send a message to everyone on a channel with a certain level or higher, type this:+To request vHost, you will typically have to message **HostServ**:
  
-  /notice (~|&|@|%|+)#channel message+  /msg hostserv request vhost@goes.here
  
-where the symbol represents the minimum level to send the message to (see "People on IRC").+You will then have to wait for your vHost to be approved. Some networks do it automatically after about a few hours, while other nets have it to where it must be manually approved. This command can vary from server to server, and sometimes you will have to contact a server operator directly to make it happen.
  
-Use this to share sensitive information without spais finding out.+Some networks let you use real domain names as a vhost... provided you can prove you own it. This is useful if you are connecting from a cloud machine that is providing other services. (See next section)
  
  
-==== HostServ ====+==== IRC in the Cloud ==== 
 + 
 +IRC was developed in a time before the prevalence of mobile phones & wireless internet connections. Because of this, it is a little frustrating to use on unstable connections. Furthermore, when you are disconnected and waiting to reconnect, you completely miss any messages that are being sent in your favorite channels. 
 + 
 +To get around this, you will want to set up an IRC client on a remote machine. For under $10/m, you can get a [[https://www.vultr.com/?ref=9732786-9J|Debian VPS with Vultr]] //(complete with automated backups)// on which you want to install [[tools:byobu]] or [[tools:tmux]], and a [[tools:bash|terminal-based]] IRC client like [[https://weechat.org/|WeeChat]] or [[https://irssi.org/|irssi]]. 
 + 
 +By running an IRC client in this type of software stack, it will stay alive 24/7 even if you disconnect or close the window. When combined with a remote machine, you can use [[tools:ssh|SSH]] to check IRC at your leisure without missing a single message. You can even combine it with [[tools:wireguard|WireGuard]] to obfuscate the location of your VPS's datacenter from other IRC users. 
 + 
 + 
 +===== Application Specific Instructions ===== 
 + 
 +Here are some quick-start guides for several popular IRC clients, if you need help getting started. 
 + 
 +==== Configuring HexChat ==== 
 + 
 +To point HexChat to our IRC, configure it as follows. (Click to enlarge) 
 + 
 +<gallery> 
 +:tools:ss_1756624530.png Server Settings Pt 2 | Add #ami to your autojoin, save and connect 
 +:tools:ss_1756624511.png Server Settings Pt 1 | Fill out connection info 
 +:tools:ss_1756624463.png Network List | Create entry for Hackint, favor and edit 
 +</gallery> 
 + 
 + 
 + 
 +==== Configuring WeeChat ==== 
 + 
 +Eventually you may need more functionality out of your IRC client, and when that time comes you will need a [[tools:bash|terminal]] client. WeeChat is probably the simplest of the terminal clients to configure. It also has a pretty robust out-of-the-box setup without having to track down plugins. For both these reasons, we recommend using WeeChat if you have never used a terminal-based client before. 
 + 
 +You can install WeeChat in Debian with the ''apt'' command, and then the ''weechat'' command to start it: 
 + 
 +  $ sudo apt install weechat 
 +  $ weechat 
 + 
 +WeeChat requires a little bit of configuration to get going. First off, you will need to tell WeeChat to use Dynamic Rejoining. With this set, WeeChat will remember which channels you were in last, and automatically rejoin them when you connect: 
 + 
 +  /set irc.server_default.autojoin_dynamic on 
 + 
 +Next, you need to connect WeeChat to a server //(again, we will use Hackint as an example)//. To do this, you first need to define some details about the server: 
 + 
 +  /server add hackint irc.hackint.org/6697 -ssl -autoconnect 
 +   
 +Then, use the ''/connect'' command to connect to Hackint: 
 + 
 +  /connect hackint 
 +   
 +Once you are connected, you can type ''/join #ami'' to enter our IRC channel. To test that autoconnect works, type ''/quit'' to exit WeeChat. Then reopen WeeChat. It should dump you right back into #ami on Hackint. There is no real limit to how many servers/channels you can have WeeChat automatically join. 
 + 
 +To keep WeeChat alive on a remote machine, simply run it inside [[tools:byobu]] or [[tools:tmux]] via [[tools:ssh|SSH]]. Then just reattach to your session when you SSH back in.
  
-With a registered nick, you can replace your plain old hostname with a vHost, which is basically just a fake hostname.+==== Configuring irssi ====
  
-To request vHosttype:+Many power users prefer irssi as terminal IRC client. Like WeeChatit can be run locally, and on a remote machine via SSH.
  
-  /msg HostServ request vhost@goes.here+{{wst>expand}}
  
-You will then have to wait for your vHost to be approved. Some networks do it automatically after about a few hours, while other nets have it to where it must be manually approved. 
  
 {{tag>Tools Communication}} {{tag>Tools Communication}}
tools/irc.1756553053.txt.gz · Last modified: by Humphrey Boa-Gart

Find this page online at: https://bestpoint.institute/tools/irc