Commit Graph

98 Commits

Author SHA1 Message Date
Domingo Dirutigliano
896eb2dfb4
backup managment fixes 2026-10-01 12:32:12 +02:00
Domingo Dirutigliano
61e50b72b6
minor nftable and quic managment improves 2026-10-01 10:05:17 +02:00
Domingo Dirutigliano
8ce9b21400
general fixes and old/new connection resilience for proxy filters 2026-09-26 09:52:20 +02:00
Domingo Dirutigliano
70373eb4f6
minor adjustments 2026-09-24 09:19:00 +02:00
Domingo Dirutigliano
0c52014606
minor changes and bug fixes 2026-09-23 11:21:51 +02:00
Domingo Dirutigliano
d94c08293a
added additional tests 2026-09-19 02:17:51 +02:00
Domingo Dirutigliano
440b7c91ec
docs and code minor fixing 2026-09-18 23:01:11 +02:00
Domingo Dirutigliano
4476da02bd
QUIC support and bug fixes 2026-09-18 09:34:44 +02:00
Domingo Dirutigliano
e491a14899
improved addr/int selection UI + change llhttp managment 2026-09-13 15:54:56 +02:00
Domingo Dirutigliano
9d2a4dc4bf
additional improves on UDP 2026-09-11 18:53:41 +02:00
Domingo Dirutigliano
9832e449c6
Initial commit for future 5.0.0 version: new UI, proxies and managment 2026-09-10 08:51:08 +02:00
Domingo Dirutigliano
cb270b45ef
Fix the ALLOWED_IPS allow-case check for containerised runs
IPFilterMiddleware matches the raw TCP peer address, which is 127.0.0.1 only
when firegex shares the host's network namespace. Behind a published docker
port the peer is the bridge gateway instead, so the scenario allowing
127.0.0.1/32,::1/128 got a 403 and the suite failed everywhere except
standalone mode.

Allow loopback plus the private ranges a docker bridge can occupy. The check
keeps its meaning: the deny scenario uses 203.0.113.0/24 (TEST-NET-3), which no
real peer can fall into, so the allow/deny pair still exercises the middleware.
2026-09-03 01:24:48 +02:00
Domingo Dirutigliano
2c3316b036
Harden the no-auth reverse-proxy mode
Rename the flag to --unsafe-disable-auth so the risk is visible at the call
site, and close the ways the mode could outlive itself:

- Keep an explicit -P/--startup-psw instead of dropping it. Without a password
  in the database, --no-unsafe-disable-auth brought firegex up in its
  initial-setup state, where anyone able to reach it could choose the password.
- Refuse /api/login, /api/set-password and /api/change-password while
  authentication is disabled: an anonymous caller could otherwise plant a
  credential that kept working once authentication was turned back on.
  run.py config --password still works, writing to the database from the host.
- Print a banner on every start/restart with authentication disabled. The flag
  is persisted in the config file, so a later bare `run.py start` inherits it.
- Report the change in `run.py config --unsafe-disable-auth`, which claimed
  "No configuration changes specified" while persisting it, and stop that
  command from nulling the stored port and host on the way.
- Expose the state as auth_disabled in /api/status and hide the logout button
  and the change-password entry, which were silent no-ops in this mode.

Tests cover both directions of the toggle, the socket.io handler, the password
endpoints and the -P handling.
2026-09-03 01:07:51 +02:00
Savva Serebriakov
6fb08f41f6 CUT-22: add reverse-proxy support to firegex 2026-09-02 19:08:51 +03:00
Domingo Dirutigliano
bd55a7bc9c
integrated and refactore docs + minor changes 2026-07-23 16:53:09 +02:00
Domingo Dirutigliano
be7f46424a
Merge branch 'main' into feat/tls-support 2026-07-23 13:40:19 +02:00
Domingo Dirutigliano
c37d2b31e8
graphics and TLS feature total refactoring 2026-07-23 13:39:01 +02:00
Domingo Dirutigliano
53656d531c
minor fixes and integrated test 2026-07-22 15:10:31 +02:00
Sogoss
c71ad7c199 fix(nfproxy): export HttpHistory in nfproxy and ensure list immutability in getters 2026-07-20 16:14:07 +02:00
Sogoss
dbc8b176b1 fix(nfproxy): fix HttpHistory parameter ordering and state immutability
- Fix parameter order sensitivity in HttpHistory._fetch_packet when history is first argument

- Delegate total_size and should_upgrade to _message instead of live _parser

- Sanitize FGEX_MAX_HISTORY_SIZE with max(0, int(val)) and dynamically sync deque maxlen
2026-07-20 16:03:43 +02:00
Sogoss
a94854d00e feat(nfproxy): add HttpHistory support for pyfilters in HTTP requests 2026-07-20 15:31:56 +02:00
Sogoss
75c54f0155 Add transparent TLS proxying and certificate management for NFProxy and NFRegex
- Add Nginx stream proxy module for transparent TLS termination in NFProxy and NFRegex
- Add backend routes and SQLite schema for certificate management (upload, view, delete)
- Implement DNAT nftables redirection rules for deterministic TLS ports
- Add frontend React components (TLSConfigModal, TLSServiceFields) for certificate configuration
- Update Dockerfile and docker-entrypoint.sh to support Nginx stream module and sysctl forwarding
2026-07-20 12:25:30 +02:00
Domingo Dirutigliano
16f96aa6f6
using brotli 1.2 from pypi, fixed tests to py 3.14, removed from experimental pyproxy 2025-11-11 23:30:48 +01:00
Domingo Dirutigliano
49c6c14fe5
upgrade to py3.14 and fedora 43 2025-10-13 15:38:38 +02:00
Domingo Dirutigliano
6853960b6d
feature: HttpFullRequest and HttpFullResponse implementation 2025-06-22 17:42:21 +02:00
Domingo Dirutigliano
53546062d1
added Throughput 2025-06-16 22:50:57 +02:00
Domingo Dirutigliano
d019e504fd
png to svg 2025-06-16 22:44:23 +02:00
Domingo Dirutigliano
129a262704
RST docs + connection error on test 2025-04-12 20:34:45 +02:00
Domingo Dirutigliano
d0b2c67554
Revert "using also bridge table on network hooking"
This reverts commit 33b22a174c.
2025-04-12 20:32:52 +02:00
Domingo Dirutigliano
33b22a174c
using also bridge table on network hooking 2025-04-12 16:51:42 +02:00
Domingo Dirutigliano
0ad49e8f8f
chart background to white 2025-03-27 13:08:08 +01:00
Domingo Dirutigliano
f4c4c60c4d
auto-generated charts 2025-03-27 11:29:23 +01:00
Domingo Dirutigliano
d4b2b6c72d
niceness on firegex process 2025-03-26 22:25:09 +01:00
Domingo Dirutigliano
d832c3cd98
new benchmark graph 2025-03-24 19:34:17 +01:00
Domingo Dirutigliano
25db6519b6
benchmark improve 2025-03-24 19:26:01 +01:00
Domingo Dirutigliano
8ddd8b44f2
pyhton and c related fixes on empty filters and mangling 2025-03-24 11:55:51 +01:00
Domingo Dirutigliano
b654967247
added new benchmarks 2025-03-23 16:58:55 +01:00
Domingo Dirutigliano
51eb889910
typo websocket test 2025-03-17 12:47:41 +01:00
Domingo Dirutigliano
da9ab0176c
fixed websocket test 2025-03-17 12:12:45 +01:00
Domingo Dirutigliano
35c46a223e
fixes to encodings, implemeneted ws frame parsing with decompression support 2025-03-16 13:37:37 +01:00
Domingo Dirutigliano
73c40d2f5d
data handler improves, written test for nfproxy, new option on parsing fail 2025-03-09 22:14:34 +01:00
Domingo Dirutigliano
deb2c97e05
wait server on tests 2025-03-07 23:39:18 +01:00
Domingo Dirutigliano
4fa530a6bd
minor fixes and added docs 2025-03-07 23:13:36 +01:00
Domingo Dirutigliano
eda44f12ff
Merge pull request #19 from Pwnzer0tt1/tmp-meta-branch
Taken edits from main removing edits of regexfilter.cpp
2025-03-05 10:06:23 +01:00
Minei3oat
c979ad21ea Add tests for metrics endpoint 2025-03-05 08:51:55 +01:00
Domingo Dirutigliano
8ae533e8f7
push: code changes x2 2025-02-28 21:14:09 +01:00
Domingo Dirutigliano
e5973947e6
test on settings API added + improves on nfproxy code including fail-open 2025-02-18 23:49:53 +01:00
Domingo Dirutigliano
16f6b6a8fb
last changes and fix + new benchmarks 2025-02-18 23:03:46 +01:00
Domingo Dirutigliano
5ef38df66a
regex checked by hyperscan directly with error messages 2025-02-18 21:20:19 +01:00
Domingo Dirutigliano
7f7e3353ec
User-Space thread balancing + refactoring 2025-02-16 16:33:34 +01:00