GUI editor to tame mod_security rules

⌈⌋ branch:  modseccfg


Timeline

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

131 check-ins using file g.py version 049777c80b

2020-12-09
10:20
SecHttpBlKey setup shortcut check-in: 28bb6df19c user: mario tags: trunk
09:36
Unload install/*.py module afterwards, prepare for *.log.fmt scheme check-in: 52a4bbec89 user: mario tags: trunk
09:35
Simplify LogFormat handling and recognize GlobalLog directive. check-in: 8a4f815951 user: mario tags: trunk
2020-12-08
07:03
merge recipe funcs and window event handler into show() class, enable recursive template lookups (don't exist yet) check-in: a23c07eed9 user: mario tags: trunk
2020-12-07
22:10
Hide pysimplegui prints, add mainwindow self-reference (not actually used) check-in: 3e249d23b7 user: mario tags: trunk
22:09
Update ./ in wrapper scripts/, omit non-_*.py from */* plugin scanning check-in: 1a3bf55fce user: mario tags: trunk
22:07
Enable fn_preconf() usage only in recipe and crsoptions for now (shouldn't come up for other writer calls anyway) check-in: 90de09b9b2 user: mario tags: trunk
22:06
Add support for import/include scripts in install/ check-in: 13ba5d6761 user: mario tags: trunk
07:36
Get rid of warning box. check-in: cb0f8cc687 user: mario tags: trunk
07:36
remove glob() check-in: b7d219f1ad user: mario tags: trunk
07:36
Use dictobj for recipes now, to allow for nested menus. Change detection for preconf directives (macros). check-in: 66863120b4 user: mario tags: trunk
07:34
Restore arbigraph to original, add iso8601 fix, accesslog sample check-in: f471e86abc user: mario tags: trunk
2020-12-06
21:43
Update tmp.decl_preconf if recipe snippet was written check-in: bd4298b07c user: mario tags: trunk
21:38
Minor text fixes check-in: eed981c6ab user: mario tags: trunk
21:37
Allow @inject decorator over a list of modules/classes check-in: e1df8b2248 user: mario tags: trunk
21:36
Prepare conf.preconf and writer support (rx_end and fn mapping/stub creation) check-in: ffc59c9a1e user: mario tags: trunk
2020-12-05
17:14
Simple substitution as {accfn} and {errfn} from {logfn}, set watch cursor for "terminal" popup window as well. Fix vhost.logformat([…]) call. Safeguard mainwindow.log() against empty listbox events. check-in: 538e062b91 user: mario tags: trunk
17:11
Swap end of regex for `(\S*):` sans space check-in: d207aa3776 user: mario tags: trunk
08:08
.rstrip() for output text lines check-in: 16755fb1b3 user: mario tags: trunk
08:07
record log formats check-in: 731155d137 user: mario tags: trunk
08:07
introduce log.*() wrapper check-in: ee6584abea user: mario tags: trunk
08:07
Fix parameters for rulereport (old&new) check-in: 449e0ec390 user: mario tags: trunk
08:06
sample moved to dev/ check-in: 5051ce2d8d user: mario tags: trunk
2020-12-04
21:46
Sample for logfmt (make variations of apache logs parseable) check-in: 9126968c7d user: mario tags: trunk
21:45
Add some tools from Apache Labor / netnea.com check-in: afa9ff5a4f user: mario tags: trunk
21:44
skip rx.interesting when force=True check-in: 1e3290240c user: mario tags: trunk
21:43
Also scan */__init__.py files as plugins check-in: b9f1bd8537 user: mario tags: trunk
21:42
disable regex warnings check-in: f8af2677f9 user: mario tags: trunk
21:42
Add type:image support. Config option for separate menu entries. check-in: 30e51dc3f7 user: mario tags: trunk
2020-12-03
23:19
Add scripts/ module (for Log→Preprocess/Report menus), basic text output window imnplementation and handing pipe over scan_log(). Add force_local= param to srvroot.popen(). check-in: 1f653bce75 user: mario tags: trunk
23:17
Add package_data={} to include *.log *.deb and scripts/* alongside modules check-in: 73b2ccf5f1 user: mario tags: trunk
23:16
Read *.local.sh scripts, to preview commands as is check-in: 5bf0e34165 user: mario tags: trunk
2020-12-02
22:33
hacky support for [menu]→[event] markup check-in: 92bac1ad8c user: mario tags: trunk
22:32
Remove stale infos, add project meta block check-in: 0fcb10b69d user: mario tags: trunk
06:33
Add File→Install menu for *.deb packages or scripts. check-in: de9d870142 user: mario tags: trunk
06:32
Introduce module/plugin lookup for .add_menu()/.has()/.show() and raw_event in mainwindow handler (for literal menu string lookups). check-in: 92ff15a9ff user: mario tags: trunk
2020-12-01
20:52
Build task for modsec-flameeyes.deb check-in: b362727f15 user: mario tags: trunk
20:49
publish data test (mostly vhost/secrule extraction) check-in: cb3a619fe0 user: mario tags: trunk
20:46
Release as 0.5.0 check-in: 6a7949da87 user: mario tags: trunk, 0.5.0
16:16
Add "extended" LogFormat from Apache-Labor check-in: f18bace7b0 user: mario tags: trunk
16:16
Detect libinjection message check-in: e51cb45f39 user: mario tags: trunk
2020-11-30
06:37
Use SPDX id in license: check-in: 0e3331e93e user: mario tags: trunk
06:37
Fix writer.append() parameters in recipe. check-in: 4e836e93aa user: mario tags: trunk
06:36
Introduce logview_colorize. More conf. defaults in utils. Split out menu declaration for mainwindow layout. check-in: 2613ff6434 user: mario tags: trunk
2020-11-29
16:59
Add global flag vhosts.tmp.decl_preconf to detect if a matching IncludeOptional directive was found. check-in: 7a36d9779d user: mario tags: trunk
16:58
Use xdg-open for both http:// and file:// links check-in: e8bd6e80af user: mario tags: trunk
16:57
Fix misssing underscore for ._update_rules() call. Introduce basic filter_log implementation, old values kept in logs.state.prev[] check-in: 038709f5b3 user: mario tags: trunk
2020-11-28
21:10
Prepare for preconf files, and CRS-EXCLUSION being handled as special case. Some mod_sec3 preparatitions. check-in: faa5c98a46 user: mario tags: trunk
21:09
Prepare snippets for vhost *.preconf files. check-in: ff5f4279d7 user: mario tags: trunk
21:08
Introduce Log→Advise list for common errors. check-in: d953db226f user: mario tags: trunk
2020-11-27
18:44
Make recipe window concurrent (main.win_register() event loop) check-in: 1e8ba392e7 user: mario tags: trunk
16:35
Better not trip over our own macros (id:%{ENV:NEWID}) check-in: 8796fe3b95 user: mario tags: trunk
16:22
Avoid matching IfModule as wrapper check-in: eac43655df user: mario tags: trunk
16:21
Add TX.IS_CLOUDFLARE and TX.IS_CDN rules for Cloudflare IP mapping recipe check-in: 8f51a0f380 user: mario tags: trunk
16:21
Restructure menu (Log, Help) check-in: 4f4981b760 user: mario tags: trunk
16:20
Switch from conf["option"] to conf.attribute syntax check-in: d81e063bde user: mario tags: trunk
2020-11-26
15:31
Pass self.vh to ruleinfo.show() check-in: fc957eeec2 user: mario tags: trunk
15:30
Rework styles dict. Add rule state= next to headline. check-in: a03f45c95b user: mario tags: trunk
15:29
document difference between .rulestate (t=vhost) and .ruledecl (t=rules) check-in: e8c8167fcd user: mario tags: trunk
15:29
Turn conf in DictObj() check-in: 87673cca9b user: mario tags: trunk
00:27
Fix is_glob taking precedence over not writable() in log reader, more details for subprocess.run() tasks (instead of os.system() now) check-in: 21714627ef user: mario tags: trunk
00:26
Release as 0.4.0 check-in: 393a1fb162 user: mario tags: trunk, 0.4.0
2020-11-25
18:45
Build data bag() from log line. Complete some comments for recipies, and fix Macro usage with NEWID generator. New recipes for Cloudflare and Log formats (incomplete). check-in: 7c310d47ec user: mario tags: trunk
18:43
Introduce vhost.warn message (for writeability or multiple vhost warnings in mainwindow.status bar) check-in: 2ff5b44713 user: mario tags: trunk
18:42
Prepare [Modify] dropdown, and just move statusbar into rules tab. check-in: 92588de5f5 user: mario tags: trunk
18:41
Look for Apache-Error: in audit logs, and extract request_uri from request_line in json blobs. check-in: 6791abbcad user: mario tags: trunk
18:41
Pointless featuritis: add "r/o" for editor statusbar, adapt flag on "Save To" change. check-in: 6e3eb7031f user: mario tags: trunk
2020-11-24
18:27
Change vhost.ruledecl to use ➗, ❌, , ✅ right away (simplifies ui.rules() TreeData aggregator) check-in: 133d53dd81 user: mario tags: trunk
18:25
Working audit.log extraction for JSON and Native formats; both condense entries into [attr "value"] lines. check-in: f8b270f8b0 user: mario tags: trunk
18:24
"Save To" option to update self.fn check-in: 29354e22ba user: mario tags: trunk
18:24
Change `fn` to select with existing vhost/conf files check-in: 2660ee756b user: mario tags: trunk
2020-11-23
18:56
add WrapDirective detection, and SecRuleUpdate* collection check-in: fbaa7c8587 user: mario tags: trunk
18:54
Prepare audit/*/*/*/* path collection (find+cat per ssh-pipe) and snippet extraction. check-in: ba60b0748a user: mario tags: trunk
18:53
Add option for (fictional) plugin meta atop *.conf file check-in: e758ca5288 user: mario tags: trunk
2020-11-22
21:57
Prepare audit.log lookup check-in: f8820fd1ee user: mario tags: trunk
21:57
Failed attempt to make tabs/listbox/logview-pane resize with window (never gonna work reliably) check-in: c7e426331b user: mario tags: trunk
21:55
find_crs_version() for CRS options dialog check-in: 6d99d21646 user: mario tags: trunk
2020-11-21
22:03
Prepare `logview` element in pane below listbox (still minimized) check-in: 75b6c49958 user: mario tags: trunk
22:02
Fix missing lookahead for rx.end (closing VHost section got stripped after all) check-in: efee51370c user: mario tags: trunk
2020-11-20
14:28
Type and description changes in crsoptions. Release as 0.3.0 check-in: 8e624a20d3 user: mario tags: trunk, 0.3.0
2020-11-19
15:49
Prepare rules_in_between() lookup function. check-in: a1b61ab41b user: mario tags: trunk
15:49
Extend update_or_add() with prepared regex as pairs{} key. check-in: b50ed5ee2e user: mario tags: trunk
15:48
Use crs icon. check-in: 76769278eb user: mario tags: trunk
15:47
Add CRS options dialog (derived from SecOptions), but with slightly different behaviour. Using crs-setup.conf as source for options and help. check-in: 303a58a5e4 user: mario tags: trunk
15:44
Reshuffle directive categories, add 0640 in place of "octal_mode" check-in: 01df5b822a user: mario tags: trunk
2020-11-18
21:38
Wrap .msg text check-in: 3438ff4aed user: mario tags: trunk
21:37
Introduce decorators for main window (reduce common if id/vh/confn checks) check-in: 119712007a user: mario tags: trunk
21:36
Add current SecOptions dialog (still needs more grouping, some directives missing). Add writer support. And vhost() parameter cfg_only= check-in: 8ddff119cb user: mario tags: trunk
21:35
Use manual as SecOptions source (incomplete, but yields more details) check-in: e9e02ee8f4 user: mario tags: trunk
2020-11-17
17:18
Preliminary SecOptions dialog (doesn't save yet, needs pluginconf patch) check-in: 63b4b8c3d3 user: mario tags: trunk
14:36
Release 0.2.0 check-in: da1d932852 user: mario tags: trunk, 0.2.0
13:42
Make search case-insensitive check-in: 49d88ab78c user: mario tags: trunk
13:37
TypeError: _update_rulestate() takes 2 positional arguments but 3 were given (self was missing) check-in: 0015eea3dd user: mario tags: trunk
11:54
update docs/deps check-in: 1235161aa4 user: mario tags: trunk
11:53
Make editor window compatible to central window event-polling. check-in: 1d435ed9c5 user: mario tags: trunk
10:11
Event loop across multiple windows now. check-in: b434140502 user: mario tags: trunk
10:11
+ conf: "add_stub_logs": 1, # data/common_false_*.log check-in: 6db99daa75 user: mario tags: trunk
10:10
Add data/ dir, and common_false_positives.log (for CRS 2.2 however, not useful for current setups) check-in: f6df973c7e user: mario tags: trunk
2020-11-16
14:33
Stub recipes, icon in editor check-in: c4431d8500 user: mario tags: trunk
14:32
Add rule [info] dialog. check-in: e553a55671 user: mario tags: trunk
07:20
section on VirtualHost sections check-in: ba9eb8aa1a user: mario tags: trunk
07:04
add FAQ link check-in: e84efb5b6f user: mario tags: trunk
07:04
New optuon for keyboard_binds check-in: 9cf90eaa7e user: mario tags: trunk
06:30
Implement remove_remove() to strip SecRuleRemoveById/Tag (both literal, and in-list mentions of an id - which modseccfg doesn't actually write itself) check-in: 54bf1ea8be user: mario tags: trunk
06:29
Migrate to appdirs instead of using static ~./config check-in: 4a9df24fa7 user: mario tags: trunk
06:28
Add icon, keyboard shortcuts (F4=editor), rule Enable hook, and hourglass mouse cursor whilst updating logs check-in: a179e4ea50 user: mario tags: trunk
06:27
Remove panes, make font setting consistent, add Copy func check-in: 2a0dab16d0 user: mario tags: trunk
06:27
Expand depends: check-in: 132e479640 user: mario tags: trunk
2020-11-15
14:30
Merged `conf` from .appsettings (removed) into .utils check-in: b27c590571 user: mario tags: trunk
12:22
add logo/images check-in: 8b628223a7 user: mario tags: trunk
12:21
Create changelog for previous commits check-in: 741ad26ac9 user: mario tags: trunk
12:20
Release as 0.1.0 check-in: 36b80f06bd user: mario tags: trunk, 0.1.0
11:07
+appdirs,frosch check-in: 53ae49b27a user: mario tags: trunk
11:07
Add another rule warning, disable a print() check-in: d00fc40417 user: mario tags: trunk
11:06
Editor: automatic highlighting split from search iterator. check-in: be8c0ad867 user: mario tags: trunk
09:24
`switch_auto` option to update log file when selecting vhost conf. check-in: 6c8f0efcce user: mario tags: trunk
09:23
Add basic editor window. check-in: 221b25663e user: mario tags: trunk
09:23
Use f-strings in place of .format() check-in: 2647d92b4f user: mario tags: trunk
09:22
Add docstring for vhost and secrule parameters check-in: 17c5f8b022 user: mario tags: trunk
09:22
Add sshfs_o option check-in: f4e2a5d1e9 user: mario tags: trunk
09:21
Add FAQ and license check-in: 221b729752 user: mario tags: trunk
2020-11-14
15:13
Introduce `sshfs_mount` option. Add .srvname without any suffixes (for new popen wrapper). The srvroot.writable() check doesn't work for ssh filesys. check-in: e3517ca559 user: mario tags: trunk
15:11
Fix insertion regex, add comment support, and use [x] backup_files option. check-in: 5071024216 user: mario tags: trunk
15:10
Move .msg fallback and .hidden flag from ui_data.rules() to vhosts.secrule(). And use real directive name SecRuleRemoveById now. check-in: 7686f897cd user: mario tags: trunk
15:08
directive is called SecRule*REMOVE*ById, not "Disable" check-in: 86e03e62cb user: mario tags: trunk
15:06
Merge pluginstates into conf{}. Change to `.config/modseccfg/` directory and separete filename `settings.json`. Prefix cfg_ for read/write (- prepare merge with utils). pluginconf now uses __package__ and __name__ instead of fixed name. check-in: 6a85e380a3 user: mario tags: trunk
10:16
Document new startup mode. check-in: f45b932122 user: mario tags: trunk
10:16
Use new `srvroot` read/write wrapper for conf/log files, and apache2ctl scan. check-in: fde57c5ca0 user: mario tags: trunk
10:15
Introduce remote() `srvroot` file I/O wrapper, to fusemount ssh:/ root to work on. Mode can be activated with cmdline param: `modseccfg srv5:` check-in: 0b3b4b79d9 user: mario tags: trunk
2020-11-13
15:20
Update README with GIF, use .rst for pkg README. check-in: fd5f570868 user: mario tags: trunk
14:50
Initial prototype (conf parser, log reader, mainwindow somewhat functional) check-in: 5f35cb034d user: mario tags: trunk, 0.0.9