mikaela.github.io/blog/_posts/2015-06-08-private_secret_channels.md
Mikaela Suomalainen 9351e09a4a
Quickly point freenode -> LiberaChat where applicable
* ZNC had to have network name removed to avoid rewriting history.
* Keeping the ops opped is linked too widely and I just added a note
  that it also applies to LiberaChat directly
* umode+g I don't feel good about so I just removed it directly, I am
  not who I was in 2015.
  * references to it had to go away too
* LiberaChat runs Charybdis fork which removes the weird cmode +p
  behaviour to my knowledge
* Stagefright also couldn't have history changed so I just removed
  broken link and said it's now at LiberaChat
* ...
* TeleIRC instead of TeleMatrix had to go away, neither project is alive
  and due to freenode/LiberaChat situation living, I will hopefully
  update it to Matterbridge and more recent solutions in the future.
  TODO! Also RELAYMSG exists.
* links2: mostly dead links, but change network name
* r/chanserv: the link was dead
* r/mer-meeting: I don't think anyone uses that link and I have no idea
  if they are staying on freenode
* r/telefreenode.md: I imagine everyone has took anything useful from
  there a long time ago
2021-05-23 14:10:38 +03:00

3.3 KiB
Raw Blame History

People often wonder about this and I thought that I could probably write about this, how do you make IRC channel secret/private, either hiding it from other people or not letting others in.

Modes spbiI are standard and should be the same on all IRCds. I am also assuming that your network uses Atheme IRC Services or fork of it.

To make channel secret, there are two useful modes. You might also want to mlock them with /msg chanserv help set mlock.

  • +s — hides the channel from all channel lists (for non-opers) -i). Keep in mind that you always see channels that you are on or share with other people in whois. +p also prevents /knock (which is command to request invite to the channel) on some IRCds.

Other nice modes that you may be interested in are:

  • +b — (ban) depnding on does your network support extbans, try /quote help extban.
  • +r — on Charybdis prevents unidentified users from joining the channel, you will want this with RESTRICTED.
    • InspIRCd uses +R
    • S — on Charybdis prevents users not using SSL/TLS from joining.
      • InspIRCd uses +z

And to make channel private, there are two ways, mode +i/+I and ChanServ RESTRICTED (auto-kban unauthorized users).

With RESTRICTED you will want to prevent unidentified users from joining or you will get people attempting to join while unidentified and then banned immediately and unable to join after identifying.

To use it,

  1. Give people who are supposed to be on the channel flags, I use +ViA which means auto-Voice, invite oneself and can see Access lists, you dont have to use these, but these are probably the most safe flags and the users must have at least one account to not be kbanned. /msg ChanServ flags #channel account +ViA
  2. /msg ChanServ set #channel restricted on
  3. You are ready, but you might also want to /msg ChanServ set #channel private on, so people cannot use /msg chanserv access #channel list to see who are the secret people you let in (and who arent on the channel between auto-kban).

And last, mode +i and +I which are the oldest way to do this, but also the most difficult.

First you set the mode +i and now everyone must be /invited to the channel or they cannot join. Then you set +I like you would set a ban (read the `/quote help extban), here I assume you use Charybdis.

To allow user with account friend you would /mode +I $a:friend and they are able to join freely without needing to be /invited every time.

You might also find the modes +g (Charybdis) and +A (InspIRCd) helpful as they allow everyone to use the /invite command.

I said that +iI is difficult and I must probably explain why its so.

  • It doesnt use services and the lists get emptied always when the channel gets empty.
  • Its tied to whatever you give it, if you give it hostmask and that changes, the person cannot get in anymore. Also if you gave it extban matching to accountname and the person changes accountname, they are again unable to join until the +I is updated.
  • These were the reasons that came to mind at first, if you have others, feel free to suggest them.