Hubble's static exporter writes every POLICY_DENIED drop event to the
cilium-agent stdout, which Alloy already ships to Loki (1 year
retention). That makes denied traffic reviewable after the fact instead
of only for the minutes the Hubble ring buffer holds.
Filter and field mask were checked against the running 1.20.4 agent
with hubble observe --allowlist / --field-mask. The cilium-config change
rolls the agents one at a time via the reloader annotation.
Refs S28-30
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
CoreDNS had no policy, so kube-dns-lb answered any source. The new CNP
allows the whole cluster on every port and the internal client networks
on 53/UDP+TCP. Selecting the pods makes them default-deny for ingress.
Refs S28-19
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ftp-scanner and syncthing-sync accepted any world source.
- ftp-scanner: IoT and Privat. Over the last 7 days the vsftpd log shows
uploads from the BR5C scanner via fd02:30:: and the Brother via
10.2.50.170.
- syncthing-sync: Privat and VPN. Over the last 7 days peers connected
from 10.2.50.0/24 and fd02:50::/64.
host and remote-node stay allowed. Both LBs are ETP=Local.
Refs S28-19
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
home-assistant-bgp (:8123) accepted any world source. Allowed now:
Privat, VPN, IoT and Server, per the approved source matrix. Browser and
app access from outside goes through Traefik and is unaffected. The LB is
ETP=Local, so the client address reaches the pod.
Refs S28-19
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
shelly-manager-firmware (:8082, /fw/ only) accepted any world source.
Shelly devices live on IoT; the LB is ETP=Local, so the client address
reaches the pod.
Refs S28-19
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
mosquitto-iot accepted MQTT from any world source. Over the last 7 days
the mosquitto log shows client connections from 10.2.30.0/24 only. The
LB is ETP=Local, so the client address reaches the pod.
Refs S28-19
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-07 11:16:07 +01:00
5 changed files with 110 additions and 14 deletions
# Allow FTP access (from scanners on the LAN) to the ftp-scanner pod.
# FTP from the scanners (IoT and Privat) to the ftp-scanner pod.
apiVersion:cilium.io/v2
kind:CiliumNetworkPolicy
metadata:
@@ -123,8 +123,24 @@ spec:
matchLabels:
app.kubernetes.io/name:ftp-scanner
ingress:
- fromCIDRSet:
- cidrGroupRef:net-iot
- cidrGroupRef:net-privat
toPorts:
- ports:
- port:"21"
protocol:TCP
- port:"21100"
protocol:TCP
- port:"21101"
protocol:TCP
- port:"21102"
protocol:TCP
- port:"21103"
protocol:TCP
- port:"21104"
protocol:TCP
- fromEntities:
- world
- host
- remote-node
toPorts:
@@ -142,7 +158,7 @@ spec:
- port:"21104"
protocol:TCP
---
# Allow Syncthing peer-to-peer sync from the LAN/world.
# Allow Syncthing peer-to-peer sync from Privat and VPN.
# - 22000 TCP+QUIC: actual sync traffic between peers.
# - 21027 UDP: local-discovery broadcast packets from peers on the LAN.
# UI (8384) is intentionally NOT listed — authentik-gate-sync generates the
@@ -157,8 +173,18 @@ spec:
matchLabels:
app.kubernetes.io/name:syncthing
ingress:
- fromCIDRSet:
- cidrGroupRef:net-privat
- cidrGroupRef:net-vpn
toPorts:
- ports:
- port:"22000"
protocol:TCP
- port:"22000"
protocol:UDP
- port:"21027"
protocol:UDP
- fromEntities:
- world
- host
- remote-node
toPorts:
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.