BLA
BLA (Blind LLM Agents) is the open-source Blue Defense MCP and CLI built to protect software artifacts against automated AI reverse-engineering workflows.
翻譯準備中
nftables-based egress firewalling for podman containers with domain-based allowlists
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Default-deny egress firewall for rootless Podman containers.
terok-shield enforces default-deny outbound network filtering on
Podman containers using nftables. Containers can only reach
explicitly allowed destinations — everything else is rejected with
an ICMP error and a per-packet audit entry.檢視完整 README ↗Default-deny egress firewall for rootless Podman containers.
terok-shield enforces default-deny outbound network filtering on Podman containers using nftables. Containers can only reach explicitly allowed destinations — everything else is rejected with an ICMP error and a per-packet audit entry.
terok-shield is the firewall layer of the terok ecosystem. The hardened-Podman runtime (terok-sandbox) installs the OCI hooks at setup time; the operator-in-the-loop verdict service (terok-clearance) mutates the live ruleset on Allow / Deny decisions. The shield itself is independent of all of these — it works on any rootless Podman container, with or without the rest of terok.
--nftset auto-populates allow sets on every DNS resolution,
handling IP rotation at runtime; degrades to resolution at launch
when dnsmasq lacks nftset support or is unavailable, and says sonft binary) — tested on Fedora 43,
Debian 12 and 13, and Ubuntu 24.04, also works on other modern
Linux distrosdnsmasq (recommended) for dynamic DNS-based egress control;
dig (dnsutils / bind-utils) as fallbackpip install terok-shield
terok-shield ships with several bundled profiles (see Allowlist Profiles):
| Profile | Domains |
|---|---|
base | DNS roots, NTP, OCSP, OS package repos |
dev-standard | GitHub, Docker Hub, PyPI, npm, crates.io, Go |
dev-python | Conda, Read the Docs, Python docs |
dev-node | Yarn, jsDelivr, unpkg |
nvidia-hpc | CUDA, NGC, NVIDIA drivers |
No profile applies unless you name one. To add a custom allowlist,
create a .txt file in ~/.config/terok/shield/profiles with one
+-prefixed (allow) or --prefixed (deny) entry per line — a domain,
an IP or CIDR, optionally :port — or +localhost:PORT to reach a
service on the host's own loopback (as host.containers.internal:PORT
inside the container):
e.g. ~/.config/terok/shield/profiles/my-project.txt
+api.example.com
+cdn.example.com
+203.0.113.10
+localhost:9931
terok-shield setup
terok-shield run my-container --profiles dev-standard -- alpine:latest sh
Setup installs global OCI hooks; run resolves DNS and launches the container
with a default-deny firewall — only destinations in the
dev-standard profile are reachable. To use custom profiles:
terok-shield run my-container --profiles dev-standard,my-project -- alpine:latest sh
To see — or apply by hand — the ruleset those profiles produce, without setup, podman or any state:
terok-shield preview --profiles dev-standard,my-project > rules.nft
terok-shield allow my-container example.com
# Allowed example.com -> <resolved-ip> for my-container
terok-shield deny my-container example.com # revoke later
Apache-2.0 — see LICENSES/Apache-2.0.txt.