{% from "partials/_macros.html" import card_header %} {% set verdict_cls = { 'malicious': 'bg-red-900/40 text-red-300 border border-red-900/60', 'suspicious': 'bg-amber-900/40 text-amber-300 border border-amber-900/60', 'unknown': 'bg-slate-700/40 text-slate-300 border border-slate-600', 'benign': 'bg-emerald-900/30 text-emerald-300 border border-emerald-900/50', } %}
{{ card_header("network flows — tcpdump aggregator") }} {% if flows %} {% for f in flows %} {% endfor %}
verdict proto destination port / service packets why
{% if f.verdict %} {{ f.verdict }}{% if f.confidence is not none %} {{ '%.0f' % (f.confidence * 100) }}% {% endif %} {% else %} {% endif %} {{ f.proto }} {{ f.dst_ip }} {{ f.dst_port }}{% if f.service %} ({{ f.service }}){% endif %} {{ f.packets }} {{ f.reasoning }}
{% else %}
no network flows yet — the tcpdump aggregator needs root (run the monitor with sudo) and a capture window to elapse.
{% endif %}