Skip to content
This repository was archived by the owner on Mar 17, 2025. It is now read-only.

Program design

Jeremy Falling edited this page May 16, 2014 · 13 revisions

Autoban.pl This is just the parent. It will manage running the plugins according to the config (autoban.cfg) and handle most things relating to the global aspects of the program.

Input plugins These gather data from some source (ie elasticsearch) that will then be used by a filter for analysis.

Filter plugins Filter plugins take data gathered by inputs and determine if something (ip address, user agent, etc) should have some action applied against it (blocking, allowing, etc)

Output plugins Output plugins preform actions, such as generating ban configs for nginx or adding firewall rules

Data structure There should be a general structure of how data is stored. As of now it is: $data = {plugin} => {ipData} => [info about the ip] {pluginData} => (varies by plugin)

This way any plugin can get data about any ip

Clone this wiki locally