Difference between revisions of "Operating IRC"

From GnuCash
Jump to: navigation, search
("/op gncbot" instead of "@op gncbot")
 
m (Capitalize section titles)
 
(30 intermediate revisions by 4 users not shown)
Line 1: Line 1:
As we are managing an [[IRC]] channel, here are some operator commands:
+
As we are managing an [[IRC]] channel, here is some background, including a few operator commands.
 +
:Prefix of commands to:
 +
::'''IRC servers''': <code>/</code>
 +
::'''gncbot''': <code>@</code>
  
'''/op gncbot''' to op the gncbot. ''@op gncbot'' returns an error.
+
==Gncbot==
 +
Usually at ''{{BuildServer}}'' '''gncbot''', currently a [https://github.com/Supybot/Supybot Supybot], is running. He has several ''administrative'' tasks like granting rights and '''logging'''. There a several ways to contact him:
 +
:<SyntaxHighlight lang="irc">
 +
<you> /msg gncbot <bot command>
 +
</SyntaxHighlight> or shorter <SyntaxHighlight lang="irc">
 +
<you> @<bot command>
 +
</SyntaxHighlight> In the previous method the <bot command> is always visible to other users, but also in the first, if you mistyped it. If you have to enter a password it is safer to use <SyntaxHighlight lang="irc">
 +
<you> /query gncbot
 +
</SyntaxHighlight> opens (in modern chat clients) a new window with a private query to the bot <SyntaxHighlight lang="irc">
 +
<you> <bot command>
 +
</SyntaxHighlight>
 +
* If you are in the operator group, he should grant you operator rights after identifying.
 +
* If gncbot got disconnected, sombody has to grant him the rights again:
 +
:'''/op gncbot''' to op the gncbot. ''@op gncbot'' returns an error.
 +
* If gncbot got a '''wrong name''' like <tt>gncbot'</tt>, rename him by
 +
    @nick gncbot
 +
 
 +
==Getting Operator Privileges==
 +
If you become a core developer of GnuCash, Operator Privilegs will be granted to you.
 +
There a two alternative ways to activate them (Gncbot is the preferred method):
 +
 
 +
===From Gncbot===
 +
;Setup:
 +
:# ''You'' need to register your nick[s] and a password once with gncbot. The easiest way to do that is to: <SyntaxHighlight lang="irc">
 +
<you> /msg gncbot register <name> <password>
 +
</SyntaxHighLight>
 +
:# Once you are registered, the ''channel owner'' needs to add you to the list of channel operators so that gncbot knows to provide channel ops.  This is done via the <tt>capability add</tt> ''admin function'': <SyntaxHighlight lang="irc">
 +
<admin> capability add <username> #gnucash,op</SyntaxHighlight>
 +
;Usage:
 +
:* Each time you connect, open a query with gncbot: <SyntaxHighlight lang="irc">
 +
<you> identify <nick> <password>
 +
<gncbot> The operation succeeded.
 +
<you> op #gnucash
 +
</SyntaxHighlight>
 +
:* You can also do this within the #gnucash channel directly: <SyntaxHighlight lang="irc">
 +
<you> /msg gncbot identify <name> <password>
 +
<gncbot> The operation succeeded
 +
<you> @op
 +
<gncbot> The operation succeeded
 +
</SyntaxHighlight>
 +
::;Warning: If you mistype the <tt>/msg</tt> command, your password gets exposed to the channel and its logs.
 +
 
 +
===From IRC NickServ and ChanServ ===
 +
;Setup:
 +
:# ''You'' need to register your nick[s] and password once at GIMPnet IRC. You do this by sending a message to the NickServ identity to register after setting your nick: <SyntaxHighlight lang="irc">
 +
<you> /msg nickserv register <password> <email>
 +
<nickserv> The operation Succeeded
 +
</SyntaxHighlight>
 +
:#;Note: The email will be used in other nickserv commands like ''resetpass''.
 +
:# The ''channel owner'' then needs to add you to the list of users in the Channel Server.  This is done by setting the user access in Chanserv:  <SyntaxHighlight lang="irc">
 +
<admin> /msg ChanServ access #gnucash add <username> 5
 +
</SyntaxHighlight>
 +
;Usage: Then each time you connect, you identify with your nick and password against GIMPnet IRC: <SyntaxHighlight lang="irc">
 +
<you> /msg nickserv identify <name> <password>
 +
<nickserv> The operation succeeded
 +
</SyntaxHighlight>
 +
 
 +
==Topic==
 +
The topic is displayed when a user joins the channel.
 +
;Default: /t Free GPL Personal and Small Business Accounting || Please don't ask to ask, just ask and wait! (Possibly a few hours!!) || publicly-logged channel || latest stable: {{Version}} || {{WebServer}} || wiki.gnucash.org/wiki/
 +
;under attack: /t Free GPL Personal and Small Business Accounting || Moderated mode: To get a voice, register with NickServ and then re-join. || Please don't ask to ask, just ask and wait! (Possibly a few hours!!) || publicly-logged channel || latest stable: {{Version}} || {{WebServer}} || wiki.gnucash.org/wiki/
 +
See [[#Channel Moderation]].
 +
 
 +
==Notes Maintenance==
 +
IRC users can post a message to other users that are currently offline by using <syntaxhighlight lang="irc">
 +
@tell <nick> something
 +
</syntaxhighlight>
 +
The next time <nick> speaks up in the channel, gncbot will automatically print the saved message for <nick>.
 +
 
 +
For various reasons these messages can queue up quasi forever in the bot's message queue. For example
 +
 
 +
# <nick> never returns to the channel.
 +
# the @tell command was used incorrectly, like <nick> got misspelled, or a comma or colon were appended to the <nick>, resulting in  messages being queued for  <nick,> or <nick:>
 +
 
 +
There are a few commands that can help in routine maintenance on the message queue:
 +
:;notes: will show all nicks for which messages are queued
 +
:;notes <nick>: will show message for <nick>, including the message age
 +
:;remove <nick>: will remove all queued messages for <nick>. You need to have channel operator privileges to be able to do this for anyone other than yourself (that is your nick has to be registered with gncbot with operator privileges and you have to 'identify' yourself before running remove)
 +
;Note: when on the public channel these commands should be prepended with '@' for our bot to pick them up. If in a private chat with gncbot, that's not needed.
 +
 
 +
Here are my recommendations:
 +
# from time to time enter in private conversation with gncbot and check who has messages waiting in the queue.
 +
# check the messages for individual nicks and if the messages are older than a year, remove them
 +
# for impossible nicks (like those with a : or ,) ping the user when online and play the message for them using the @notes <impossible-nick> command in the public channel. Then remove the message.
 +
 
 +
==Fighting Spam==
 +
===Channel Moderation===
 +
On March 2, 2019, GIMPnet started receiving a flood of flyby spammers using random names AND a whole botnet worth of IP Addresses, making it difficult to defend against.  To that end, we turned on channel moderation (requiring users to have a voice in order to say anything).  This way we know users must have a registered account and can easily be banned if they misbehave.  Then enabled NickServ and ChanServ to auto-voice identified users:  <code>/msg Chanserv levels #gnucash set autovoice 0</code>
 +
 
 +
The next step was to turn moderation on in the #gnucash channel: <code>/mode +m</code>
 +
:;Tip:In clients like Konversation you can click on topic to open a dialog to set topic, modi and bannlist.
 +
This gets accepted but has no effect: <code>/msg ChanServ mode #gnucash set +m</code>
 +
 
 +
If we feel that we don't need it anymore, we can turn it off (<code>/mode -m</code> and no longer require users to have a voice.
 +
 
 +
===Secret Channel===
 +
On September 30, 2023 we got spammed again.
 +
On 2023-10-01 we have set mode: '''+s'''.
 +
We hope the spam bots are using <code>/msg ChanServ list *</code> to get their targets. then they will not see us.
 +
 
 +
==Freenode Redirect==
 +
[[User:Jsled]] created in 2010 irc.freenode.net/gnucash with /topic „The real #gnucash is irc://irc.gnome.org/gnucash ; GnuCash - GPL Personal Finance and Small Business Management“.
 +
 
 +
== Further Reading ==
 +
Because under attack heavy delays can happen, some help is cached here.
 +
 
 +
=== ChanServ Help===
 +
<Syntaxhighlight lang="irc">
 +
/server irc.gnome.org
 +
/msg ChanServ help
 +
</Syntaxhighlight>
 +
will return a text like <Syntaxhighlight lang="irc">
 +
ChanServ allows you to register and control various aspects of channels. ChanServ can often prevent malicious users from "taking over" channels by limiting who is allowed channel operator privileges. Available commands are listed below; to use them, type
 +
/msg ChanServ command. For more information on a specific command, type /msg ChanServ HELP command.
 +
    BAN            Bans a given nick or mask on a channel
 +
    DROP          Cancel the registration of a channel
 +
    GETKEY        Returns the key of the given channel
 +
    HELP          Displays this list and give information about commands
 +
    INFO          Lists information about the specified registered channel
 +
    INVITE        Invites you or an optionally specified nick into a channel
 +
    KICK          Kicks a specified nick from a channel
 +
    LIST          Lists all registered channels matching the given pattern
 +
    REGISTER      Register a channel
 +
    STATUS        Find a user's status on a channel
 +
    UNBAN          Remove all bans preventing a user from entering a channel
 +
 
 +
Used to manage the list of privileged users
 +
  ACCESS, AOP, FLAGS, HOP, LEVELS, QOP, SOP, VOP
 +
 
 +
Used to modify the channel status of you or other users
 +
  DEHALFOP, DEOP, DEOWNER, DEPROTECT, DEVOICE, DOWN, HALFOP, OP, OWNER, PROTECT, UP, VOICE
 +
 
 +
Used to manage channels
 +
  AKICK, CLONE, ENFORCE, ENTRYMSG, LOG, MODE, SET, SYNC, TOPIC
 +
 
 +
Use the HELP ALL command to list all commands and their descriptions.
 +
 
 +
Note that any channel which is not used for 6000 days (i.e. which no user on the channel's access list enters for that period of time) will be automatically dropped.
 +
</Syntaxhighlight>
 +
 
 +
----
 +
Back to [[Project Administration]]

Latest revision as of 11:22, 1 October 2023

As we are managing an IRC channel, here is some background, including a few operator commands.

Prefix of commands to:
IRC servers: /
gncbot: @

Gncbot

Usually at code.gnucash.org gncbot, currently a Supybot, is running. He has several administrative tasks like granting rights and logging. There a several ways to contact him:

<you> /msg gncbot <bot command>
or shorter
<you> @<bot command>
In the previous method the <bot command> is always visible to other users, but also in the first, if you mistyped it. If you have to enter a password it is safer to use
<you> /query gncbot
opens (in modern chat clients) a new window with a private query to the bot
<you> <bot command>
  • If you are in the operator group, he should grant you operator rights after identifying.
  • If gncbot got disconnected, sombody has to grant him the rights again:
/op gncbot to op the gncbot. @op gncbot returns an error.
  • If gncbot got a wrong name like gncbot', rename him by
   @nick gncbot

Getting Operator Privileges

If you become a core developer of GnuCash, Operator Privilegs will be granted to you. There a two alternative ways to activate them (Gncbot is the preferred method):

From Gncbot

Setup
  1. You need to register your nick[s] and a password once with gncbot. The easiest way to do that is to:
    <you> /msg gncbot register <name> <password>
    
  2. Once you are registered, the channel owner needs to add you to the list of channel operators so that gncbot knows to provide channel ops. This is done via the capability add admin function:
    <admin> capability add <username> #gnucash,op
    
Usage
  • Each time you connect, open a query with gncbot:
    <you> identify <nick> <password>
    <gncbot> The operation succeeded.
    <you> op #gnucash
    
  • You can also do this within the #gnucash channel directly:
    <you> /msg gncbot identify <name> <password>
    <gncbot> The operation succeeded
    <you> @op
    <gncbot> The operation succeeded
    
Warning
If you mistype the /msg command, your password gets exposed to the channel and its logs.

From IRC NickServ and ChanServ

Setup
  1. You need to register your nick[s] and password once at GIMPnet IRC. You do this by sending a message to the NickServ identity to register after setting your nick:
    <you> /msg nickserv register <password> <email>
    <nickserv> The operation Succeeded
    
    Note
    The email will be used in other nickserv commands like resetpass.
  2. The channel owner then needs to add you to the list of users in the Channel Server. This is done by setting the user access in Chanserv:
    <admin> /msg ChanServ access #gnucash add <username> 5
    
Usage
Then each time you connect, you identify with your nick and password against GIMPnet IRC:
<you> /msg nickserv identify <name> <password>
<nickserv> The operation succeeded

Topic

The topic is displayed when a user joins the channel.

Default
/t Free GPL Personal and Small Business Accounting || Please don't ask to ask, just ask and wait! (Possibly a few hours!!) || publicly-logged channel || latest stable: 5.9 || www.gnucash.org/ || wiki.gnucash.org/wiki/
under attack
/t Free GPL Personal and Small Business Accounting || Moderated mode: To get a voice, register with NickServ and then re-join. || Please don't ask to ask, just ask and wait! (Possibly a few hours!!) || publicly-logged channel || latest stable: 5.9 || www.gnucash.org/ || wiki.gnucash.org/wiki/

See #Channel Moderation.

Notes Maintenance

IRC users can post a message to other users that are currently offline by using
@tell <nick> something

The next time <nick> speaks up in the channel, gncbot will automatically print the saved message for <nick>.

For various reasons these messages can queue up quasi forever in the bot's message queue. For example

  1. <nick> never returns to the channel.
  2. the @tell command was used incorrectly, like <nick> got misspelled, or a comma or colon were appended to the <nick>, resulting in messages being queued for <nick,> or <nick:>

There are a few commands that can help in routine maintenance on the message queue:

notes
will show all nicks for which messages are queued
notes <nick>
will show message for <nick>, including the message age
remove <nick>
will remove all queued messages for <nick>. You need to have channel operator privileges to be able to do this for anyone other than yourself (that is your nick has to be registered with gncbot with operator privileges and you have to 'identify' yourself before running remove)
Note
when on the public channel these commands should be prepended with '@' for our bot to pick them up. If in a private chat with gncbot, that's not needed.

Here are my recommendations:

  1. from time to time enter in private conversation with gncbot and check who has messages waiting in the queue.
  2. check the messages for individual nicks and if the messages are older than a year, remove them
  3. for impossible nicks (like those with a : or ,) ping the user when online and play the message for them using the @notes <impossible-nick> command in the public channel. Then remove the message.

Fighting Spam

Channel Moderation

On March 2, 2019, GIMPnet started receiving a flood of flyby spammers using random names AND a whole botnet worth of IP Addresses, making it difficult to defend against. To that end, we turned on channel moderation (requiring users to have a voice in order to say anything). This way we know users must have a registered account and can easily be banned if they misbehave. Then enabled NickServ and ChanServ to auto-voice identified users: /msg Chanserv levels #gnucash set autovoice 0

The next step was to turn moderation on in the #gnucash channel: /mode +m

Tip
In clients like Konversation you can click on topic to open a dialog to set topic, modi and bannlist.

This gets accepted but has no effect: /msg ChanServ mode #gnucash set +m

If we feel that we don't need it anymore, we can turn it off (/mode -m and no longer require users to have a voice.

Secret Channel

On September 30, 2023 we got spammed again. On 2023-10-01 we have set mode: +s. We hope the spam bots are using /msg ChanServ list * to get their targets. then they will not see us.

Freenode Redirect

User:Jsled created in 2010 irc.freenode.net/gnucash with /topic „The real #gnucash is irc://irc.gnome.org/gnucash ; GnuCash - GPL Personal Finance and Small Business Management“.

Further Reading

Because under attack heavy delays can happen, some help is cached here.

ChanServ Help

/server irc.gnome.org
/msg ChanServ help
will return a text like
ChanServ allows you to register and control various aspects of channels. ChanServ can often prevent malicious users from "taking over" channels by limiting who is allowed channel operator privileges. Available commands are listed below; to use them, type
/msg ChanServ command. For more information on a specific command, type /msg ChanServ HELP command.
     BAN            Bans a given nick or mask on a channel
     DROP           Cancel the registration of a channel
     GETKEY         Returns the key of the given channel
     HELP           Displays this list and give information about commands
     INFO           Lists information about the specified registered channel
     INVITE         Invites you or an optionally specified nick into a channel
     KICK           Kicks a specified nick from a channel
     LIST           Lists all registered channels matching the given pattern
     REGISTER       Register a channel
     STATUS         Find a user's status on a channel
     UNBAN          Remove all bans preventing a user from entering a channel
  
Used to manage the list of privileged users
   ACCESS, AOP, FLAGS, HOP, LEVELS, QOP, SOP, VOP
  
Used to modify the channel status of you or other users
   DEHALFOP, DEOP, DEOWNER, DEPROTECT, DEVOICE, DOWN, HALFOP, OP, OWNER, PROTECT, UP, VOICE

Used to manage channels
   AKICK, CLONE, ENFORCE, ENTRYMSG, LOG, MODE, SET, SYNC, TOPIC

Use the HELP ALL command to list all commands and their descriptions.

Note that any channel which is not used for 6000 days (i.e. which no user on the channel's access list enters for that period of time) will be automatically dropped.

Back to Project Administration