-
Notifications
You must be signed in to change notification settings - Fork 2
Program design
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
The autoban project © Jeremy Falling. Published under the GNU General Public License version 3