No description
  • C 88.9%
  • C++ 5.7%
  • M4 2.9%
  • Makefile 1.1%
  • Yacc 0.9%
  • Other 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Klaus Wissmann 033d569771
Some checks are pending
Codacy Security Scan / Codacy Security Scan (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
Added pause and resume commands to ladc
2021-07-17 11:18:29 +02:00
.github/workflows Create codacy-analysis.yml 2020-10-03 17:55:09 +02:00
conf Introduced quick_shutdown option 2020-07-06 17:51:55 +02:00
contrib Added -r flag 2019-10-07 23:36:40 +02:00
libconfig Small configure performance improvements 2019-09-23 10:31:43 +02:00
src Added pause and resume commands to ladc 2021-07-17 11:18:29 +02:00
tests Bug fix for problems introduced with the last commit 2021-04-05 20:14:24 +02:00
.gitignore show hostnames for loglines involving remote logationd peers 2021-02-20 21:30:28 +01:00
acinclude.m4 Added ax_pthread_m4 as acinclude.m4. 2019-07-19 21:00:40 +02:00
AUTHORS Stuff... 2019-02-07 19:20:10 +01:00
bootstrap Made bootstrap verbose 2019-06-15 22:55:29 +02:00
ChangeLog Stuff... 2019-02-07 19:20:10 +01:00
configure.ac Now pthread_barrier support should work in all environments 2021-05-15 16:05:45 +02:00
COPYING Updating text files to be Automake compliant 2019-01-19 18:27:02 +01:00
INSTALL Adding files 2019-01-18 18:13:55 +01:00
Makefile.am Added test suite 2020-11-28 12:07:54 +01:00
NEWS Adding more files 2019-01-19 16:18:20 +01:00
NOTES Adding more files 2019-01-19 16:18:20 +01:00
README Updating text files to be Automake compliant 2019-01-19 18:27:02 +01:00
README.md Added test suite 2020-11-28 12:07:54 +01:00
THANKS Stuff... 2019-02-07 19:20:10 +01:00
TODO Updated TODO 2021-04-17 18:39:15 +02:00

logactiond

Logactiond can trigger actions based on logfile contents. It's basically a very lightweight alternative to fail2ban (written in C instead of Python) which can handle heavy load without using significant resources itself.

At the moment in only supports observing logfiles via inotify and a polling backend. Goal is to support additional methods (systemd etc.) and platofrms (kqueue) as well. Right now, the code should be considered alpha quality code and I don't suggest that you use it on production system. logactiond itself can't do too much harm but as it very likely will run iptables and the like, there's definitely potential for stuff to go wrong.

Installing / Getting started

A simple ./configure; make; make install should do. For more elaborate instructions, see the standard GNU INSTALL file.

logactiond will require libsystemd to make use of systemd, libsodium (https://doc.libsodium.org) to encrypt its communication. Optionally the tests will require the check package (https://libcheck.github.io/check/)

Initial Configuration

logactiond is looking for it's configuration by default in "$(syconfdir)/logationd/logactiond.cfg". The default installation will create an example config file plus additional files subdirectories "actions.d", "rules.d" and "sources.d" which will be included by the main configuration file. But ultimately the configuration file setup will be up to you.

As of now, there's no extended documentation of the configuration file syntax. but the provided default configuration file should give a good indication of all available options.

Developing

To get get started, do the usual:

git clone https://github.com/claude42/logactiond
cd logationd
./bootstrap

You'll need the standard GNU build system. If you plan to rebuild libconfig's .l or .y files, you'll need flex and bison as well.

logactiond uses libconfig (https://hyperrealm.com/libconfig/libconfig.html) to parse the config file. It's included in the libconfig sub directory and will be linked statically in case you system doesn't have libconfig installed.

Contributing

If you'd like to contribute, please fork the repository and use a feature branch. Pull requests are warmly welcome.

There's quite a bit that's still missing. Among others and in no particular order:

  • man pages or other form of documentation
  • rules and actions - currently there's only a minimal example set

Features

TODO

Licensing

The code in this project is licensed under the GNU GENERAL PUBLIC LICENSE Version 3.

logactiond uses code taken from libconfig which is has been originally licensed under the GNU Lesser General Public License Version 2.1.