Commit Graph

1819 Commits

Author SHA1 Message Date
Alexey 1029703c2c WEB
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
Co-Authored-By: John Preston <17900494+john-preston@users.noreply.github.com>
2026-08-23 03:12:53 +03:00
Alexey 8dbd24b11b Merge pull request #897 from telemt/bump
Bump -> 3.5.0
3.5.0
2026-08-22 16:39:13 +03:00
Alexey 0b1cba1042 Bump -> 3.5.0 2026-08-22 16:38:41 +03:00
Alexey ca3063005c Merge pull request #896 from telemt/flow/3.5.0
Flow/3.5.0
2026-08-22 16:36:48 +03:00
Alexey fb47ad149c Rustfmt 2026-08-22 16:31:49 +03:00
Alexey bb0d3ba927 Manifest Revision + Listener Reload Semantics + MSS/SYN-limit Safety 2026-08-22 16:20:55 +03:00
Alexey 7f4b87bea4 Redesign runtime w/ include-aware config + Module Split + Listener Lifecycle + Atomic Reload 2026-08-22 16:13:25 +03:00
Alexey f9910fb29e Manifest Revision + Include Ownership + Atomic Reload Reservation in Docs 2026-08-22 13:50:34 +03:00
Alexey 189e10800a Hardened listener reload + config persistence + SYN Limit startup safety 2026-08-22 13:45:57 +03:00
Alexey 96d467a400 Merge pull request #895 from telemt/flow-api-patch-server-listeners
Allow PATCH/GET of server.listeners via config API
2026-08-22 10:10:34 +03:00
Alexey 32ff9e16c1 Merge pull request #878 from l0nelynx/feat/config-api-server-listeners
feat(api): allow GET/PATCH of server.listeners via config API
2026-08-22 10:09:17 +03:00
Alexey 5e70455ca2 Merge pull request #891 from telemt/flow-synlimit-mss-24
Raised synlimit_burst -> 24 by default
2026-08-12 21:27:11 +03:00
Alexey c488970569 Merge pull request #877 from anton-vinogradov/fix/synlimit-default-burst
fix(synlimit): raise default synlimit_burst from 1 to 24
2026-08-12 21:26:16 +03:00
Alexey 08127f318d Merge pull request #890 from telemt/flow-pf
BSD PF-backend for Synlimit
2026-08-12 21:25:13 +03:00
Alexey 25e76a3afb Merge pull request #884 from vgrebenschikov/feature/synlimit-pf-support
Add PF synlimit backend
2026-08-12 21:17:40 +03:00
Alexey 3668190100 Merge pull request #889 from telemt/flow-bulk-mss
Fragmentation only for first TLS-F
2026-08-12 21:05:42 +03:00
Alexey 064cd0da61 Merge branch 'flow/3.5.0' into flow-bulk-mss 2026-08-12 21:05:14 +03:00
Alexey 7289621458 Update listeners.rs 2026-08-12 21:03:51 +03:00
Dmitry 723da8c34c Merge remote-tracking branch 'upstream/main' into feat/config-api-server-listeners 2026-07-20 11:57:05 +00:00
Vladimir Grebenshchikov e2eec67a33 Add PF synlimit backend
Implement synlimit = "pf" for PF-based firewalls using per-listener source tracking rules in a Telemt-owned anchor.

PF evaluates max-src-conn-rate through source tracking when creating
tates for completed TCP connections. Telemt installs a rate-limited pass
rule followed by a reject fallback rule in the listener anchor:

  - under-limit new connections create PF state and pass;
  - over-limit new connections fall through to block return-rst;
  - access resumes automatically when the source rate drops below the configured window.

Keep Linux iptables/nftables behavior unchanged.
PF maps synlimit_hitcount / synlimit_seconds to max-src-conn-rate and intentionally has
no direct equivalent for Linux-only burst/hashlimit knobs.
2026-07-20 09:43:46 +02:00
Alexey d851200e47 Merge pull request #883 from telemt/flow/3.4.25
Flow/3.4.25
3.4.25
2026-07-20 10:36:20 +03:00
Alexey a5216d77fb Rustfmt 2026-07-19 18:41:23 +03:00
Alexey 5b5cd952c8 Bump -> 3.4.25 2026-07-19 18:36:04 +03:00
Alexey a40578b278 Merge pull request #882 from telemt/flow-runtime-reload
In-Runtime Reload
2026-07-19 17:26:43 +03:00
Alexey bd99493622 Merge pull request #881 from astronaut808/feature/handshake-stage-accounting
add handshake failure stage accounting
2026-07-19 17:20:28 +03:00
Alexey d862deebb2 Fix handshake stage attribution and bound counters
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-07-19 17:20:18 +03:00
Alexey 0d869d716c Merge branch 'flow-runtime-reload' into feature/handshake-stage-accounting 2026-07-19 17:18:18 +03:00
Alexey 1e85b91ad3 LCOV artifact for pull request + manual start
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-07-19 16:11:31 +03:00
Alexey 4679bdcfd5 Atomic Maestro Sessions + Shutdown gate
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-07-19 16:10:42 +03:00
astronaut808 7291c3192c docs handshake failure stage diagnostics 2026-07-18 21:25:40 +05:00
astronaut808 4a5dc0b21b add handshake failure stage accounting 2026-07-18 20:46:00 +05:00
Alexey fabd98ce89 Cfg Test for handle_bad_client 2026-07-18 14:31:43 +03:00
Alexey 7df3dab5e8 Update API.md
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-07-18 14:30:03 +03:00
Alexey c6f40e3717 Harden Maestro reload lifecycle and readiness barriers
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-07-18 14:27:24 +03:00
Alexey 61ec46c2db Merge pull request #871 from xaer981/fix/client-mss-bulk
fix(server): client_mss_bulk — fragment only ServerHello, keep bulk MSS from start
2026-07-18 14:02:03 +03:00
Alexey 91e05265be Docs for API In-Proccess Reload
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-07-17 23:56:42 +03:00
Alexey 991d5b2c38 Maestro: add in-process runtime generation reload
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-07-17 23:56:00 +03:00
l0nelynx 9248076572 style: rustfmt config_edit test helper chain 2026-07-17 22:49:18 +03:00
l0nelynx 60c0242238 ci: trigger fork workflows 2026-07-17 22:39:38 +03:00
l0nelynx f1d08c4ae6 feat(api): allow PATCH/GET of server.listeners via config API
Add a nested field-level allowlist under [server] so listeners can be managed remotely without exposing server.api auth_header or other bind-identity fields.
2026-07-16 22:44:42 +03:00
Anton Vinogradov f770756cba fix(synlimit): raise default synlimit_burst from 1 to 24
The generic-path SYN limiter default of burst=1 admits only one new
connection per source IP, then refills at 48/minute (0.8/s). Telegram
clients open several connections at once on startup/reconnect, so the
extra SYNs are rejected with TCP RST until a token accrues — clients
intermittently fail to connect until the app is restarted.

The iOS fast-path (meta length 64) does not match real-world traffic
behind carrier NAT/NAT64 (SYNs arrive as 60 bytes), so the generic path
governs all clients, iPhone included. Raise its default burst to 24 —
the value already used by the iOS path — so a legitimate startup fan-out
passes. Steady-state rate (48/minute) is unchanged, preserving the
anti-TSPU posture.

Updates the default constant, the default-assertion test, and the EN/RU/DE
CONFIG_PARAMS docs.
2026-07-16 13:04:23 +03:00
Alexey 1f9c82c924 Merge pull request #875 from telemt/flow-aescr
Bound ME writer queues by resident payload bytes + Enable expanded AES key schedule zeroization
3.4.24
2026-07-14 22:31:27 +03:00
Alexey 73afeccae1 Rustfmt 2026-07-13 12:20:24 +03:00
Yaroslav Petrovskikh cd38e8ca80 chore: fix rustfmt import order 2026-07-13 11:27:24 +03:00
Yaroslav Petrovskikh 5e9d99bb4d fix(server): fragment only the initial FakeTLS response 2026-07-13 11:26:48 +03:00
Alexey feb51cbf57 Fix RustCrypto zeroize feature wiring 2026-07-12 09:27:15 +03:00
Alexey 8c65cd868c Enable expanded AES key schedule zeroization
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-07-11 21:43:01 +03:00
Alexey ea296bbdc8 Replace per-session pool trimming with pressure hysteresis
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-07-11 21:36:01 +03:00
Alexey fb042f826e Optimize crypto and Fake-TLS buffer residency
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-07-11 21:22:17 +03:00
Alexey 96425f15c8 Bound Direct relay buffers with an adaptive global memory envelope
Co-Authored-By: brekotis <93345790+brekotis@users.noreply.github.com>
2026-07-11 20:56:54 +03:00