]> jfr.im git - irc/freenode/Sigyn.git/commitdiff
Overhaul README, move most of the configuration stuff to the wiki
authorEmerson Veenstra <redacted>
Sat, 2 Dec 2017 03:14:09 +0000 (22:14 -0500)
committerEmerson Veenstra <redacted>
Sat, 2 Dec 2017 03:14:09 +0000 (22:14 -0500)
README.md

index e115aef5c6dcd1b7eb2244de22190740c7ad21b2..668dc123185c7a58594bc150cb23d413428895b3 100644 (file)
--- a/README.md
+++ b/README.md
-# Sigyn #
+# Sigyn
 
-A Limnoria's plugin to handle various spam and abuses with network hammer
-You must install python-dnspython and python-ipaddress
+A Limnoria plugin to handle spam and abuse on a network level
 
-You must tweak default settings to fits your needs.
+Sigyn is developed primarily for the freenode irc network. As with most of
+freenode's utility bots, Sigyn is named after a [Norse goddess]
+(https://en.wikipedia.org/wiki/Sigyn)
 
-## Commands ##
+# Installation
 
-    addpattern <limit> <life> <pattern> : add a permanent pattern, triggers kill & kline if called more than <limit> during <life> in seconds, use 0 as limit for immediate action
-    addregexpattern <limit> <life> <pattern> : add a permanent regular expression /pattern/, triggers kill & kline if called more than <limit> during <life> in seconds, use 0 as limit for immediate action
-    lspattern [--deep] <id|pattern> : search patterns inside database, use pattern's id for full information, and --deep to search on disabled pattern
-    editpattern <id> <limit> <life> [<comment>] : change some values of a pattern and add a optional comment
-    togglepattern <id> <boolean> : enable or disable a pattern
-    checkpattern <text> : checks text against permanent patterns
-    lstmp <channel> : list computed pattern for a given <channel>
-    rmtmp <channel> : remove computed pattern for a given <channel>
-    addtmp <channel> <text> : add a temporary pattern for a given <channel>
-    addglobaltmp <text> : add a temporary pattern to all channels
-    defcon [<channel>]: put the bot in a agressive mode where limits are lowered and ignores are lifted
-    oper : tell the bot to oper
-    state [<channel>] : debug informations about internal state, for the whole ircd or a channel
-    vacuum : optimize the database
-    resync : synchronize user's presence ( after a plugin reload )
-        
-## Behaviour ##
+If you're running this on a production network, you should probably use the
+latest stable release. The master branch is considered unstable and may break at
+any time.
 
-Sigyn is coming from https://en.wikipedia.org/wiki/Sigyn
+See the [wiki](https://github.com/freenode/Sigyn/wiki) for setup instructions
+and commands, as well as a work-in-progress configuration manual.
 
-The plugin works with TimeoutQueue ( https://github.com/ProgVal/Limnoria/blob/master/src/utils/structures.py#L308 ) : 
-Queues are filled on abuses, when the length of a queue exceeds limits, kill and kline are triggered.
+# Support and Development
 
-Limits of queues may be lowered under conditions ( same abuse repeated by various users in a channel, network abuse, etc )
-
-Sigyn is able to detect and extract spam pattern, and use them as lethal pattern of a period of time.
-
-After being correctly configured, Sigyn can handle attacks without human hands, most settings can be tweaked per channel.
-
-Default values in config.py must be modified to fits your needs.
-
-## Configuration ##
-
-You should take a look at tips here :
-
-https://github.com/ncoevoet/ChanTracker#other-tips
-
-### General ###
-
-First measure:
-
-    defaultcapability remove protected
-
-User with #channel,protected capability are ignored, so you must remove from all users this capability which is given by default.
-
-You should tell to bot to logs his actions in a channel:
-    
-    config supybot.plugins.Sigyn.logChannel #network-secret-channel
-
-You could tell it to use notice on that channel:
-
-    config supybot.plugins.Sigyn.useNotice True
-    
-In order to resolve hosts, python-dnspython is used, you can change the max duration of a resolve here:
-
-    config supybot.plugins.Sigyn.resolverTimeout 3
-    
-You must set operatorNick and operatorPassword, bot will try to oper if both filled.
-    
-    config supybot.plugins.Sigyn.operatorNick
-    config supybot.plugins.Sigyn.operatorPassword
-    
-On some detections bot will never take actions but will alert in logChannel, you can define the interval between two alert for the same problem:
-
-    config supybot.plugins.Sigyn.alertPeriod 900
-    
-Lags and netsplits could have lot of impact on some protections ( flood, low flood detections ) due to burst of messages received at same time.
-This is why the bot do a remote server request at regular interval to check the quality of the network.
-If lags is too high, some protections are disabled ( note for your need you will probably need to change few bits on plugin.py ( do017, do015 ))
-
-    config help supybot.plugins.Sigyn.lagInterval 
-    config help supybot.plugins.Sigyn.lagPermit
-    config help supybot.plugins.Sigyn.netsplitDuration
-
-You should also change supybot.plugins.Sigyn.lagInterval to some minutes at least as it's also used for internal state cleanup.
-
-As bot is opered, it can look at server's notices.
-
-So it can alert in logChannel when some kline affects more than x users ( with some limitations due to server's notices & cloaks )
-
-    config help supybot.plugins.sigyn.alertOnWideKline
-
-To enable kline and kill on abuse, you must enable it and set a klineDuration > 0, before doing that, you should test and tweaks detection settings :
-
-    config supybot.plugins.Sigyn.enable True --> otherwise Sigyn will only announce them in logChannel
-    config supybot.plugins.Sigyn.klineDuration --> in minutes
-
-### Detections ###
-
-All those settings can be either global or customized per channel :
-
-    config something
-    config channel #mychannel something
-
-#### Protections ####
-
-To prevent Sigyn to monitor a particular channel:
-
-    config channel #mychannel supybot.plugins.Sigyn.ignoreChannel True
-    
-To prevent Sigyn to monitor a particular user in a channel:
-
-    register useraccount password
-    admin capability add useraccount #mychannel,protected
-    hostmask add useraccount *!*@something
-    
-You can also exempt an user for some protections :
-
-    register useraccount password
-    admin capability add useraccount #mychannel,-flood
-    admin capability add useraccount #mychannel,-ctcp
-    admin capability add useraccount #mychannel,-lowFlood
-    hostmask add useraccount *!*@something
-
-List of anti-capabilities you can use: flood, lowFlood, broken, ctcp, repeat, lowRepeat, massRepeat, lowMassRepeat, nick, hilight, cycle
-
-You can tell Sigyn to be more laxist against someone who is in the channel long time enough:
-
-    config supybot.plugins.Sigyn.ignoreDuration
-    config channel #mychannel supybot.plugins.Sigyn.ignoreDuration
-
-But as everything can happen ... 
-
-    config help supybot.plugins.Sigyn.bypassIgnorePermit
-    config help supybot.plugins.Sigyn.bypassIgnoreLife
-
-Few are detailed here, take a look at config.py for the full list.
-
-#### Flood ####
-
-For most detections you have to deal with 2 or 3 values at least, let's see with flood detection.
-
-    config supybot.plugins.Sigyn.floodPermit <max number of message allowed>
-    config supybot.plugins.Sigyn.floodLife <during x seconds>
-    config help supybot.plugins.Sigyn.floodMinimum ( empty messages and digit messages bypass the minimun )
-    
-    config channel #mychannel supybot.plugins.Sigyn.floodPermit
-    config channel #mychannel supybot.plugins.Sigyn.floodLife
-    
-Because some irc clients throttles messages, there is another set of flood detection you could use:
-
-    config supybot.plugins.Sigyn.lowFloodPermit <max number of message allowed>
-    config supybot.plugins.Sigyn.lowFloodLife <during x seconds>
-
-#### Repeat ####
-
-Sigyn can create temporary lethal pattern, there is two way to create pattern, one from a single message where pattern are repeated and the other from multiples messages from various client.
-
-For minimum computed pattern length is defined here :
-
-    config supybot.plugins.Sigyn.computedPattern
-    
-Those patterns will stay active during (in seconds) :
-
-    config supybot.plugins.Sigyn.computedPatternLife
-
-Note : each time a pattern is triggered it remains active for 'computedPatternLife' seconds again
-
-##### Single user repeat #####
-
-Let's see the easy case, someone alone repeat same message over and over.
-
-    config supybot.plugins.Sigyn.repeatPermit
-    config supybot.plugins.Sigyn.repeatLife
-    config supybot.plugins.Sigyn.repeatPercent ( 1.00 will never work, because similarity must be > at repeatPercent )
-
-If the user raise 2/3 of the limit, bot will try to compute pattern, with this pattern creation settings.
-    
-    config supybot.plugins.Sigyn.repeatCount <number of occurences of the pattern in a message>
-    config supybot.plugins.Sigyn.repeatPattern <minimal length of the pattern, if it occurs more than repeatCount but it is still smaller than computedPattern>
-
-##### Repeat from various users #####
-
-    config supybot.plugins.Sigyn.massRepeatPermit
-    config supybot.plugins.Sigyn.massRepeatLife
-    config supybot.plugins.Sigyn.massRepeatPercent 
-    config help supybot.plugins.Sigyn.massRepeatMinimum  (1.00 will never work, because similarity must be > at massRepeatPercent )
-
-The main difference between both : single repeat detection could create small pattern ( so dangerous for legit users ) while massRepeat try to make the largest possible pattern. 
+[![#freenode-sigyn](https://kiwiirc.com/buttons/chat.freenode.net/freenode-sigyn.png)]
+(https://kiwiirc.com/client/chat.freenode.net/#freenode-sigyn) is where all the
+support and development happens.