Skip to main content

simple tool to download and update the JabberSpam blacklist list.

Project description

bl-imp - the JabberSpam bl(acklist) imp(orter)

precursor

Please be warned that at this point the JabberSpam blacklist is the only list that will be used. It is planed to open up the tool to also import other lists in the future.

install

The tool can be installed easily via that Python package Index (pip). After that the local wrapper /usr/bin/bl-imp can be called to use the module.

pip install bl-imp

bl-imp usage

usage: bl-imp [-h] [-o OUTFILE] [-dr]

optional arguments:
  -h, --help            show this help message and exit
  -o OUTFILE, --outfile OUTFILE
                        set path to output file
  -dr, --dry-run        perform a dry run

without any arguments

Running bl-imp without any arguments, cause the tool to update the local cache and etag file. After that the tool will exit with the exit code 2 followed by the help message to stderr.

no outfile assigned

dry run

Running bl-imp with -dr or --dry-run as argument will cause the tool to only output the aggregated yaml file to stdout. Except the local etag and cache file no file is written to disk.

$ /usr/bin/bl-imp --dry-run
outfile selected: None
acl:
  spamblacklist:
    server:
      - "a-server.tld"
      - "b-server.tld"

--outfile /path/out.yml

Adding the outfile argument while omitting the dry run argument runs the tools silently while doing its thing.

ejabberd configuration

To fully utilize the tool some configuration changes are required. Firstly it is necessary that bl-imp is the only one editing the defined yml file, because any local change not present in the remote list will be overwritten automatically. Furthermore it is necessary for the file to be separate from the "main" ejabberd configuration e.g ejabberd.yml. Lastly to protect the integrity of your config files the allow_only argument restricts the external file to only allow for acl rules.

ejabberd acl config

## acl
include_config_file:
  "/etc/ejabberd/blacklist.yml":   # ⟵ the path is completely user configurable
    allow_only:                    # ⟵ the allow_only section is optional but recommended
      - acl

## access rules
access_rules:
  s2s_access:
    - deny: spamblacklist
    - allow

automation

The tool is meant to be used in an automatic fashion. It is build to operate silently without any user interaction.

For example the script could be run every day at 00:01 to automatically add/ remove affected servers from the local blacklist and reload the configuration if the first task finished successfully.

# jabber blacklist update

# the outfile here is configured with the shortflag -o instead of the long form
1 0 * * * /usr/bin/bl-imp -o  /etc/ejabberd/config/blacklist.yml && /usr/bin/ejabberdctl reload_config

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bl-imp-0.1.1-1.tar.gz (17.2 kB view details)

Uploaded Source

Built Distribution

bl_imp-0.1.1-1-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file bl-imp-0.1.1-1.tar.gz.

File metadata

  • Download URL: bl-imp-0.1.1-1.tar.gz
  • Upload date:
  • Size: 17.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for bl-imp-0.1.1-1.tar.gz
Algorithm Hash digest
SHA256 2f13250cab1e1617895c47602c382d6b7e2208122c302c7c723246bf5ba6152f
MD5 832295dd36f3739a398b3f24e794e568
BLAKE2b-256 6023bc21bc98be9c698042a59e76bc33f43ef8ea14af46f26fccbfcdd3cc6491

See more details on using hashes here.

File details

Details for the file bl_imp-0.1.1-1-py3-none-any.whl.

File metadata

  • Download URL: bl_imp-0.1.1-1-py3-none-any.whl
  • Upload date:
  • Size: 18.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.61.2 CPython/3.9.6

File hashes

Hashes for bl_imp-0.1.1-1-py3-none-any.whl
Algorithm Hash digest
SHA256 92b779c55506b3b83999c1fc08c0e0d92918652409693f60fe473aceddd35b60
MD5 68056c78b6f4c42d11152ed3cca293f7
BLAKE2b-256 58254859dccb679ee9a0a6a1eb38a0a8244a9c8baed2169d63cb2ddf5f5ff287

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page