Extension:CrowdSec

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
Parameters

  • $wgCrowdSecEnable
  • $wgCrowdSecAPIUrl
  • $wgCrowdSecAPIKey
  • $wgCrowdSecCache
  • $wgCrowdSecCacheTTL
  • $wgCrowdSecFallbackBan
  • $wgCrowdSecRestrictRead
  • $wgCrowdSecTreatTypesAsBan
  • $wgCrowdSecReportOnly
Added rights

  • crowdsec-bypass
Hooks used
  • AbuseFilter-computeVariable
  • AbuseFilter-generateUserVars
  • AbuseFilter-builder
  • getUserPermissionsErrorsExpensive
  • OtherBlockLogLink

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

Installation

  • Download on GitHub and place the file(s) in a directory called CrowdSec in your extensions/ folder.
  • Add the following code at the bottom of your LocalSettings.php file:
    wfLoadExtension( 'CrowdSec' );
    
  • Configure as required.
  • Yes Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

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