Commit Graph

100 Commits

Author SHA1 Message Date
Domingo Dirutigliano
79a2e1aacb
Run the test suite from its own venv
As root on Ubuntu, pip into the system Python cannot replace apt's
typing_extensions, so pytest was never installed and the 5.0.0
release gate failed. run_tests.sh now installs into tests/.venv and
stops on a failed install.
2026-10-16 18:17:18 +02:00
Domingo Dirutigliano
21e3027f0b
Minor fixes for release 2026-10-16 18:06:50 +02:00
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