Protecting Your Mastodon Instance with rapidblock

Haters will be haters

By Stephen Schwetz

The RapidBlock Project is a grassroots initiative to make Fediverse domain blocking more effective through collective action.

Moderation on the Fediverse is unevenly distributed. Some instance admins devotedly follow the #FediBlock hashtag, blocking abusive servers within hours of their first appearance on the network. Others wait until their own users file a report. Still others do nothing at all.

Installation

Installation with an debian based Linux distribution is as easy as running

class="highlight">
1
curl -s https://apt.rapidblock.org/install.sh | sudo bash

This will run through installing the apt repository, pulling the required packages, and installing them.

Configuration

Configuration for the toolset is fairly simple and is done through a text file located at /etc/default/rapidblock by default the file looks like the below:

class="highlight">
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# vim:set ft=sh:
#
# This file contains the configuration settings for the RapidBlock cron script.
#
# In source control, this file lives at:
#   https://github.com/rapidblock-org/rapidblock/blob/main/dist/cron.default
#
# When installed via a package manager, this file lives at:
#   /etc/default/rapidblock
#
# The crontab file lives at:
#   /etc/cron.d/rapidblock
#
# The script itself lives at:
#   /opt/rapidblock/scripts/cron.sh

ENABLED=0
SLEEP_MIN=0
SLEEP_MAX=3600
BLOCKLIST_URL="https://rapidblock.org/blocklist.json"
SIGNATURE_URL="https://rapidblock.org/blocklist.json.sig"
PUBLIC_KEY_FILE="/opt/rapidblock/share/rapidblock-dot-org.pub"
INSTANCES=( \
  "mastodon-4.x|postgresql:///mastodon?host=/run/postgresql&port=5433" \
)

In this format, the toolset is disabled and needs configuration you need to set the following ENABLED=1 set instance type and use either mastodon-3.x or mastodon-4.x matching the version of Mastodon you are using.

For a local database:

class="highlight">
1
2
3
INSTANCES=( \
  "mastodon-4.x|postgresql:///mastodon_database_name?host=/run/postgresql&port=5433" \
)

For a remote database:

class="highlight">
1
2
3
INSTANCES=( \
  "mastodon-4.x|postgresql:///mastodon_database_name?host=db.host.name&port=5432&user=username&password=secret" \
)

Once these have been set the script will be called via a cronjob every hour where it will sleep a random amount of time from 0 to 3600 seconds and will then download the update and install it.

Related Posts

Share: Facebook LinkedIn