patch for PluginMeta() wrapper required in last pluginconf.gui.window() | ||
---|---|---|
mario authored 403 days ago last checkin 4f8b060ed ⎘ | ||
π data | Add data/ dir, and common_false_positives.log (for CRS 2.2 however, nβΉβΊ | 1477 days ago |
π install | Add basic plugin_load(), generilize `add_menu()` into `init()`βΉβΊ | 1437 days ago |
π scripts | Add basic plugin_load(), generilize `add_menu()` into `init()`βΉβΊ | 1437 days ago |
π __init__.py | comment fixesβΉβΊ | 773 days ago |
π __main__.py | Initial prototype (conf parser, log reader, mainwindow somewhat functβΉβΊ | 1481 days ago |
π advise.py | hacky support for [menu]β[event] markupβΉβΊ | 1461 days ago |
π crsoptions.py | patch for PluginMeta() wrapper required in last pluginconf.gui.windowβΉβΊ | 403 days ago |
π editor.py | Use SPDX id in license:βΉβΊ | 1464 days ago |
π icons.py | Use crs icon.βΉβΊ | 1475 days ago |
π logs.py | change print() to log()βΉβΊ | 1441 days ago |
π mainwindow.py | accessible MenuInstance for newer PSG, migrate to pluginconf.bind intβΉβΊ | 762 days ago |
π modify.py | Remove remaining emoji Unicode occurences (info, modify, vhosts)βΉβΊ | 1377 days ago |
π msc_pyrewrite.py | Performance fix for pyrewrite in range() check.βΉβΊ | 1344 days ago |
π recipe.py | Add $msg placeholder for recipesβΉβΊ | 1369 days ago |
π ruleinfo.py | Remove remaining emoji Unicode occurences (info, modify, vhosts)βΉβΊ | 1377 days ago |
π secoptions.py | patch for PluginMeta() wrapper required in last pluginconf.gui.windowβΉβΊ | 403 days ago |
π utils.py | accessible MenuInstance for newer PSG, migrate to pluginconf.bind intβΉβΊ | 762 days ago |
π vhosts.py | comment fixesβΉβΊ | 773 days ago |
π writer.py | comment fixesβΉβΊ | 773 days ago |
modseccfg
mod_security config GUI
- GUI to define SecRuleRemoveById settings on a vhost-basis
- Tries to suggest false positives from error and audit logs
- And configure mod_security and CoreRuleSet variables.
- Runs locally, via
ssh -X
forwarding, or permodseccfg ssh:/
remoting.
WARNING: THIS IS ALPHA STAGE QUALITY AND WILL MOST CERTAINLY DELETE YOUR APACHE CONFIGURATION - It doesn't, but: no warranty and such. - Also, hasn't many features yet.
Installation
You can install this package locally or on a server:
pip3 install -U modseccfg
And your distro must provide a full Python installaton and mod_security:
sudo apt install python3-tk ttf-unifont libapache2-mod-security2
Start options
To run the GUI locally / on test setups:
modseccfg
Or to connect to a remote server:
modseccfg root@vps5:/
Takes a bit longer on startup, but is heaps better than X11 forwarding.
Usage
You obviously should have Apache + mod_security + CRS set up and running already (in DetectionOnly mode initially), to allow for log inspection and adapting rules.
- Start modseccfg (
python3 -m modseccfg
) - Select a configuration/vhost file to inspect + work on.
- Pick the according error.log
- Inspect the rules with a high error count.
- [Disable] offending rules
- Don't just go by the error count however!
- Make sure you don't disable essential or heuristic rules.
- Compare error with access log details.
- Else craft an exception rule ([Modify] or βRecipes).
- Thenceforth restart Apache (after testing changes:
apache2ctl -t
).
See also:
- usage
- remoting
- preconf setup and recipes
- log scripts/
- or the "FAQ"
Notes
- Preferrably do not edit default
/etc/apache*
files - Work on separated
/srv/web/conf.d/*
configuration, if available - And keep vhost settings in e.g.
vhost.*.dir
files, rather than multiple<VirtualHost>
in one*.conf
(else only the first section will be augmented). - Use the editor (F4) to verify more complex settings.
Missing features
- Rule [modify] is still unimplemented.
- Recipes are not worth using yet.
- No sudo usage.
Attachments:
- overview.gif [download] added by mario on 2020-12-09 22:39:53. [details]