Extension:CrowdSec

From Linux Web Expert

MediaWiki extensions manual
CrowdSec
Release status: experimental
Implementation Page action
Description Bouncer Integration with CrowdSec for anti-spam.
Author(s) MPThLeetalk
MediaWiki 1.35+
License GNU General Public License 2.0 or later
Download
Quarterly downloads Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin').
Public wikis using Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin').

This extension adds anti-spam integration with CrowdSec. As it's working as bouncer, It's mandatory to setup CrowdSec Agent too.

Installation

  • <translate> <tvar name=1>Download on GitHub</tvar> and place the file(s) in a directory called <tvar name=name>CrowdSec</tvar> in your <tvar name=ext>extensions/</tvar> folder.</translate>
  • <translate> Add the following code at the bottom of your <tvar name=1>LocalSettings.php </tvar> file:</translate>
    wfLoadExtension( 'CrowdSec' );
    
  • Configure as required.
  • File:OOjs UI icon check-constructive.svg <translate> Done</translate> – <translate> Navigate to <tvar name=special>Special:Version</tvar> on your wiki to verify that the extension is successfully installed.</translate>

Configuration

Step 1: Setup CrowdSec Agent

Follow this documentation from CrowdSec. You may need to setup the collections, logs and more too.

Then, you need to get a bouncer api token.

sudo cscli bouncers add mediawiki-bouncer

Remember the token key. It need to put on extension configuration.

It's highly recommended to register Central API for pull blocklist from remote.

sudo cscli capi register

Step 2: Setup Extension

wfLoadExtension( 'CrowdSec' );
$wgCrowdSecAPIKey = ""; // put lapi key here.

This is basic configuration. More configuration is documented on README

AbuseFilter Integration

There's AbuseFilter integration. The variable crowdsec_blocked is representing...

  • false: LAPI Request was failed. or failed to get user ip.
  • 'ok': This user is ok to process.
  • 'ban': This user is reported for "ban" from LAPI.
  • ... and various (custom) types via CrowdSec. including 'captcha'

User rights

  • crowdsec-bypass - allows users to bypass crowdsec check.

See also