Commit graph

14731 commits

Author SHA1 Message Date
Matteo Biscosi
454a054a0b Added logout page 2026-10-22 17:42:03 +02:00
Matteo Biscosi
3294c0390e Added Connection: close option to http requests sent via lua. Also fixed incorrect path and date-time not respecting RFC 2026-10-22 17:09:03 +02:00
GabrieleDeri
9677d67eb7
Added traffic model tables def (#11114)
* Added traffic model tables def

* Update dist
2026-10-22 17:02:49 +02:00
Matteo Biscosi
3dd8b3efff Updated license page 2026-10-22 16:52:02 +02:00
GabrieleDeri
ab445aab93
table.insert to ptr ref improvement, sites doc update (#11113)
* table.insert to ptr ref improvement

* Updated sites doc
2026-10-22 16:47:05 +02:00
Matteo Biscosi
7798a478ae Fixes attempt to index a nil value
Some checks are pending
Build / build (push) Waiting to run
CIFuzz / Fuzzing (undefined) (push) Waiting to run
CIFuzz / Fuzzing (address) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
CodeQL / Analyze-1 (push) Waiting to run
2026-10-22 16:20:54 +02:00
Matteo Biscosi
a7e8b05680 Optimized js/css file caching 2026-10-22 15:05:31 +02:00
Matteo Biscosi
d13303a7ab Optimized modules loading on various pages 2026-10-22 13:04:15 +02:00
Matteo Biscosi
05e823e6e0 Added compiled i18n luac 2026-10-22 12:30:23 +02:00
Matteo Biscosi
365e74137b Optimized modules loading 2026-10-22 12:20:16 +02:00
manuelceroni
8907b8bfb7 Fixed global search light colors on dark theme page load (#11110) 2026-10-22 11:12:49 +02:00
Matteo Biscosi
a4840d52d5 Optimized modules loading 2026-10-22 10:56:59 +02:00
Matteo Biscosi
e21a0b52cf Moved to attic no more used REST API 2026-10-22 10:44:48 +02:00
GabrieleDeri
b21ea8a372
Alert and flow query optimizations post SQL query (#11109)
Some checks are pending
Build / build (push) Waiting to run
CIFuzz / Fuzzing (address) (push) Waiting to run
CIFuzz / Fuzzing (undefined) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
CodeQL / Analyze-1 (push) Waiting to run
2026-10-21 21:14:50 +02:00
Matteo Biscosi
0a1a59c02a Fixes missing import 2026-10-21 18:59:53 +02:00
Matteo Biscosi
b79544276a Optimized data.lua REST API 2026-10-21 18:55:36 +02:00
GabrieleDeri
8c236e969b
Added utm source to ntop links (#11108) 2026-10-21 17:23:50 +02:00
Manuel Ceroni
c554a3dd7c
Implemented site:traffic ts (#11100) (#11101)
Some checks are pending
Build / build (push) Waiting to run
CIFuzz / Fuzzing (address) (push) Waiting to run
CIFuzz / Fuzzing (undefined) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
CodeQL / Analyze-1 (push) Waiting to run
2026-10-21 14:59:34 +02:00
Matteo Biscosi
01bc48c74d Optimized and fixed top talkers not correctly calculated 2026-10-21 13:12:13 +02:00
Matteo Biscosi
a9b97da05a Optimized lua sorting functions 2026-10-21 13:12:13 +02:00
manuelceroni
fabf987ff3 Added doc for the exporter interfaces bandwidth usage (#11086) 2026-10-21 10:36:08 +02:00
manuelceroni
75f4a126ff Added per-application link usage ts for exporter interfaces (#11086) 2026-10-21 10:04:23 +02:00
Alfredo Cardigliano
28cc7262c1 Move url_encode (fix #11096)
Some checks are pending
Build / build (push) Waiting to run
CIFuzz / Fuzzing (address) (push) Waiting to run
CIFuzz / Fuzzing (undefined) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
CodeQL / Analyze-1 (push) Waiting to run
2026-10-20 18:38:27 +02:00
GabrieleDeri
7730284121
Fixed MCP ping method output (#11104) 2026-10-20 09:40:58 +02:00
Ivan Nardi
4e2a5af7e4
Tags: add the Operating System of the host as built-in tags (#11102)
A host whose Operating System is known is now tagged with it, with one
of five new built-in tags: Windows, macOS/iOS/iPadOS, Android, Linux and
FreeBSD (tags 31 to 27). As the other tags they are shown as badges, can
be used as filters and, on the assets, can have a TTL.

Unlike the other tags, a host (and its asset) has at most one of them:
when a different OS is detected the new tag replaces the previous one.
With a TTL, the tag is removed from the asset when the OS is not
observed again in time; the OS reported for the asset is not changed.

The assets already in the inventory are tagged, at the first start, with
the OS they are stored with.

Implementation:
* The tag is not stored in the host: it is computed from its OS, as the
  tags of the services are, so there is one at most and it always
  matches the OS the host reports. It is not transferred to the flows.
* When the OS of a host is set or changes, the new tag is reported to
  the asset as refreshed and the previous one as removed; when the same
  OS is observed again the tag is refreshed, for the TTL.
* What refreshes the tag: TCP fingerprint / nDPI hint (once per TCP
  flow), OS hint from nProbe, HTTP User-Agent (when it tells the OS the
  host has; when it tells another one it is ignored, as before), network
  discovery. DHCP sets the OS.
* The asset side (one OS tag per asset, "replaced" as reason of the
  removal, tagging of the existing assets) is in the pro repository:
  without it an OS change is logged as a tag removed by the user.

View interfaces behave the same.

User documentation (tags page) and developer documentation updated.
2026-10-20 08:52:34 +02:00
Alfredo Cardigliano
b7bc1949a0 Show 1h in the traffic ts for the light view, same interval as single interfaces
Some checks are pending
Build / build (push) Waiting to run
CIFuzz / Fuzzing (address) (push) Waiting to run
CIFuzz / Fuzzing (undefined) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
CodeQL / Analyze-1 (push) Waiting to run
2026-10-19 16:53:32 +02:00
Alfredo Cardigliano
ec243983e6 nmap is not installed by default as recommended and can be removed 2026-10-19 12:24:18 +02:00
Alfredo Cardigliano
9290af2cfc Rework toast check 2026-10-19 10:46:33 +02:00
manuelceroni
21de8e934f Fixed boolean filters in historical flows 2026-10-16 11:03:14 +02:00
manuelceroni
22ef35828b Improved the display of "Since Startup'" on the AS stats page (#11093) 2026-10-16 10:05:27 +02:00
manuelceroni
bdb05b1ce9 Changed asset details icon in host details page 2026-10-15 12:40:02 +02:00
manuelceroni
8e084bef41 Added link to navigate from Host to its Asset 2026-10-15 12:27:50 +02:00
manuelceroni
565981064e Fixed tag name regex 2026-10-14 11:49:10 +02:00
manuelceroni
c3f7b9ef38 Added search preferences panel to the global search 2026-10-14 11:04:53 +02:00
Matteo Biscosi
5a28b1bfa8 Changed from uuid to source_id when saving nprobe timeseries 2026-10-14 10:42:50 +02:00
alex199908
e9e56b7a12
i18n(zh-TW): translate new locale strings on dev (#11088) 2026-10-14 09:00:06 +02:00
manuelceroni
703d675bac Added assets lookup and search scope preferences to the global search
Some checks are pending
Build / build (push) Waiting to run
CIFuzz / Fuzzing (address) (push) Waiting to run
CIFuzz / Fuzzing (undefined) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
CodeQL / Analyze-1 (push) Waiting to run
2026-10-13 12:25:46 +02:00
Matteo Biscosi
d1545ef50e Removed RDP server and added Windows Domain Controller 2026-10-13 11:32:27 +02:00
Matteo Biscosi
80be9c345f Fixes infinite loop when loading exporters map 2026-10-13 11:32:27 +02:00
manuelceroni
d52ffb439c Added Set TTL button to the Tags page 2026-10-13 11:06:06 +02:00
Matteo Biscosi
23c21a671f Fixes timeseries created with wrong step in case of ZMQ interfaces 2026-10-12 17:07:06 +02:00
Ivan Nardi
839f135f8a
Asset tags: add TTL/expiration (host side, tag configuration, doc) (#11077)
Some checks are pending
Build / build (push) Waiting to run
CIFuzz / Fuzzing (address) (push) Waiting to run
CIFuzz / Fuzzing (undefined) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
CodeQL / Analyze-1 (push) Waiting to run
Each tag can now have a TTL, in days: a tag is removed from an asset when
nothing has confirmed it for longer than its TTL. With a TTL of 0 (the
default) the tag never expires, as before.

Example: a host answering DNS queries gets the "DNS Server" tag; with a
TTL of 30 days the tag is removed from the asset when no DNS traffic has
been seen for 30 days. A tag is refreshed every time it is observed
(service seen again, Non-PQC flow, application/flow risk bound to the
tag) or assigned by hand. Tags coming from the configured server lists
(DNS, NTP, DHCP...) never expire for the listed addresses. The TTL applies
to all the 64 tags. Deleting a user-defined tag removes it from the
assets.

The expiration of the tags requires Enterprise L (or above): without it
the tags of an asset are the tags of its host, as before.

Implementation overview (ntopng and pro repositories):
- The asset owns its tags: for each tag it holds, an asset stores when
  the tag was set, when it was last refreshed and where it comes from
  (observed in the traffic, set by hand, configuration).
- A host no longer tells what its tags are, but what happened to them
  since its last asset dump.
- LocalHost has three more bitmaps: tags observed (refreshed), tags set
  by hand (assigned), tags unset by hand (removed). A tag or a service
  is recorded as refreshed every time it is observed, also when the host
  already has it.
- A host with pending refreshes of tags with a TTL is dumped to the
  assets (i.e. written to the Redis queue) every
  CONST_ASSETS_TAGS_REFRESH_INTERVAL (6 hours) even when nothing else
  changes. New tags are dumped "immediately" (as before). When no tag
  has a TTL there are no extra dumps.
- [Pro part] The existing 1-minute Lua callback drains the queue and
  writes to the DB (SQLite or ClickHouse), applying the changes to the
  tags of the stored asset.
- [Pro part] The same callback, every 6 hours, checks the DB for expired
  tags and updates the assets. A tag expires when it has not been
  refreshed for longer than its TTL plus 6 hours (the time a host can
  take to tell about a refresh). The tags a host has because of the
  configured server lists are skipped.
- [Pro part] A user-defined tag removed from an asset, because expired
  or deleted, is removed from the host too.
- [Pro part] View interfaces: the tags of the viewed flows are refreshed
  on the hosts of the view at every pass of the flows walker.
- Without Enterprise L the host dumps only its current tags, that are
  copied to the asset as before, and nothing expires.
- Test mode (Redis key ntopng.prefs.tags_ttl_test_mode, read at
  startup): TTL in minutes and one-minute intervals.

See doc/developers/README.asset_tags_ttl.md for the design, the test
mode, what has been verified and the known limitations.

User documentation (Tags page): new "Asset Tag Expiration (TTL)" section,
the UnsafeMail example extended with a TTL of 7 days, SSH and RDP servers
that can be set by the Network Configuration, new screenshot of the tag
edit dialog.
2026-10-11 20:41:23 +02:00
Matteo Biscosi
5606ef12d3 Added probe timeseries for cpu and memory usage (#11073) 2026-10-09 16:38:15 +02:00
Manuel Ceroni
a66e1b9d07
Fixed missing http_lint validators for historical flow filters (#11076)
Some checks are pending
Build / build (push) Waiting to run
CIFuzz / Fuzzing (address) (push) Waiting to run
CIFuzz / Fuzzing (undefined) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
CodeQL / Analyze-1 (push) Waiting to run
2026-10-09 12:38:51 +02:00
Matteo Biscosi
41205f2eae Added option to hide total from timeseries 2026-10-09 11:14:19 +02:00
Matteo Biscosi
864a945ff1 Added system memory used and fixes system cpu load timeseries (#11072 #11071) 2026-10-09 10:47:25 +02:00
Manuel Ceroni
5e5012b86e
Set tag TTL to Enterprise L and added the TTL column on the tags page (#11074) 2026-10-09 10:02:11 +02:00
alex199908
0022645a39
i18n: add Traditional Chinese (Taiwan) localization (#11060) 2026-10-09 09:30:43 +02:00
Luca Deri
f8b89ab2a7 OS update
Some checks are pending
Build / build (push) Waiting to run
CIFuzz / Fuzzing (address) (push) Waiting to run
CIFuzz / Fuzzing (undefined) (push) Waiting to run
CodeQL / Analyze (push) Waiting to run
CodeQL / Analyze-1 (push) Waiting to run
2026-10-08 23:08:07 +02:00
Alfredo Cardigliano
523fd4cf59 Add missing service to tag mapping 2026-10-08 17:24:55 +02:00