Use isto se
Choose and run the BlackShield enforcement appliance that matches your control gap: edge firewall, microsegmentation, host runtime protection, WAF, SQL firewall, or identity-aware proxy.
Choose and run the BlackShield enforcement appliance that matches your control gap: edge firewall, microsegmentation, host runtime protection, WAF, SQL firewall, or identity-aware proxy. Público: Founders, platform engineers, and security engineers who need clear deployment choices and working appliance examples. Tempo típico de configuração: 10-20 minutes.
Choose and run the BlackShield enforcement appliance that matches your control gap: edge firewall, microsegmentation, host runtime protection, WAF, SQL firewall, or identity-aware proxy.
Use these views to match an appliance to a real traffic path before you put it in line.
Place only the appliance that matches the boundary you actually control; each appliance polls BlackShield and reports findings independently.
flowchart LR Internet["Internet and external clients"] Edge["Edge Firewall / TCP Reverse Proxy"] Internal["Internal network segments"] Hosts["Linux hosts"] App["Application and API tier"] Data["Data and SQL-like access path"] Admin["Admin and identity-sensitive paths"] Control["BlackShield control plane"] Internet --> Edge Edge --> App Internal --> App Internal --> Hosts App --> Data Admin --> App Edge -. "threat intel sync and findings" .-> Control Internal -. "segmentation policy and findings" .-> Control Hosts -. "runtime indicators and findings" .-> Control App -. "WAF signatures and findings" .-> Control Data -. "data policy and findings" .-> Control Admin -. "identity policy and findings" .-> Control
The perimeter appliance is a TCP edge proxy, while the application appliance is the HTTP/WAF control.
Use inline appliances where traffic already has a listener, proxy, or query path that can be routed through the container.
flowchart TB Client["Client"] TcpProxy["Edge firewall / TCP reverse proxy"] TcpService["Public TCP service"] Browser["Browser or API client"] Waf["Web Application Firewall reverse proxy"] Api["HTTP app or API"] Worker["Service issuing query"] SqlProxy["SQL firewall / database activity proxy"] Database["Database-facing service"] Operator["Admin user or service"] IamGate["Identity-aware proxy / admin access gateway"] AdminApi["Admin API"] Client --> TcpProxy --> TcpService Browser --> Waf --> Api Worker --> SqlProxy --> Database Operator --> IamGate --> AdminApi
Endpoint runtime monitoring is host-local rather than an inline traffic proxy; run it only where host process visibility is allowed.
The container starts with a common BlackShield connection, then specific env vars determine which enforcement behavior is active. UPSTREAM_ADDR enables TCP forwarding, UPSTREAM_URL enables WAF proxying, and METRICS_ADDR enables local Prometheus metrics.
flowchart LR Base["BLACKSHIELD_API_URL and BLACKSHIELD_API_KEY"] Metrics["METRICS_ADDR"] Listen["LISTEN_ADDR"] Tcp["UPSTREAM_ADDR"] Http["UPSTREAM_URL"] FailClosed["FAIL_CLOSED=true"] Endpoint["ENFORCEMENT_MODE=enforce"] Body["MAX_BODY_BYTES"] Base --> Sync["Sync policy or threat intelligence"] Base --> Findings["Report findings and health"] Metrics --> Prometheus["Expose local Prometheus metrics"] Listen --> Listener["Open appliance listener"] Tcp --> TcpForward["Enable perimeter TCP forwarding"] Http --> ReverseProxy["Enable application WAF reverse proxy"] FailClosed --> Blocking["Block when sync health is unavailable"] Endpoint --> ActiveResponse["Enable endpoint active response"] Body --> BodyLimit["Enforce request body inspection limit"]
Leave fail-closed and endpoint enforcement in audit-friendly settings until sync health and telemetry are proven.
Passo 1
Start with the boundary where a missing active control would hurt first. The edge firewall protects TCP entry points; the WAF handles HTTP inspection.
Como é o sucesso
The customer knows which single appliance to try first and understands that perimeter is not the WAF.
Passo 2
All appliances use the same API origin and API key pattern, then sync threat intelligence or policy before reporting blocked activity as findings.
Como é o sucesso
Every generated example uses only runtime settings supported by the matching Go entrypoint.
Passo 3
Treat the first deployment as a proof point: confirm the appliance starts, exposes metrics, syncs successfully, and creates useful BlackShield findings before widening the blast radius.
Como é o sucesso
Appliance events appear in BlackShield alongside scanner, network sensor, and security-agent evidence.
Apenas para demonstração
Esta configuração foi concebida para facilitar a utilização. Para implementar clientes de scanner em escala, planeie a sua arquitetura de implementação adequadamente ou contacte-nos para obter as melhores práticas empresariais.
Descarrega os ficheiros exatos usados neste guia ou executa o instalador de um só comando para os escrever localmente antes do deploy.
Creates `deploy/blackshield-perimeter/` by default. Pass `network`, `endpoint`, `application`, `data`, or `security` as the first argument to generate a different appliance runtime.
BLACKSHIELD_API_URL=https://api.blackshield.chaplau.com \
bash <(curl -fsSL https://blackshield.chaplau.com/source-bundles/appliance-docker.sh) perimeter
cd deploy/blackshield-perimeterservices:
perimeter-appliance:
image: public.ecr.aws/blackshield-security/perimeter-appliance:1.0.8
restart: unless-stopped
ports:
- "8081:8081"
- "9090:9090"
environment:
- BLACKSHIELD_API_URL=https://api.blackshield.chaplau.com
- BLACKSHIELD_API_KEY=sp_xxxx
- LISTEN_ADDR=0.0.0.0:8081
- UPSTREAM_ADDR=10.0.1.15:80
- POLL_INTERVAL=30s
- METRICS_ADDR=0.0.0.0:9090
- FAIL_CLOSED=falseservices:
network-appliance:
image: public.ecr.aws/blackshield-security/network-appliance:1.0.8
restart: unless-stopped
ports:
- "8082:8082"
- "9090:9090"
environment:
- BLACKSHIELD_API_URL=https://api.blackshield.chaplau.com
- BLACKSHIELD_API_KEY=sp_xxxx
- LISTEN_ADDR=0.0.0.0:8082
- POLL_INTERVAL=30s
- METRICS_ADDR=0.0.0.0:9090services:
endpoint-appliance:
image: public.ecr.aws/blackshield-security/endpoint-appliance:1.0.8
restart: unless-stopped
pid: "host"
ports:
- "9090:9090"
environment:
- BLACKSHIELD_API_URL=https://api.blackshield.chaplau.com
- BLACKSHIELD_API_KEY=sp_xxxx
- POLL_INTERVAL=30s
- METRICS_ADDR=0.0.0.0:9090
- SCAN_INTERVAL=5s
- ENFORCEMENT_MODE=auditservices:
application-appliance:
image: public.ecr.aws/blackshield-security/application-appliance:1.0.8
restart: unless-stopped
ports:
- "8083:8083"
- "9090:9090"
environment:
- BLACKSHIELD_API_URL=https://api.blackshield.chaplau.com
- BLACKSHIELD_API_KEY=sp_xxxx
- LISTEN_ADDR=0.0.0.0:8083
- UPSTREAM_URL=http://10.0.2.22:8080
- POLL_INTERVAL=30s
- METRICS_ADDR=0.0.0.0:9090
- MAX_BODY_BYTES=1048576
- FAIL_CLOSED=falseservices:
data-appliance:
image: public.ecr.aws/blackshield-security/data-appliance:1.0.8
restart: unless-stopped
ports:
- "8084:8084"
- "9090:9090"
environment:
- BLACKSHIELD_API_URL=https://api.blackshield.chaplau.com
- BLACKSHIELD_API_KEY=sp_xxxx
- LISTEN_ADDR=0.0.0.0:8084
- POLL_INTERVAL=30s
- METRICS_ADDR=0.0.0.0:9090services:
security-appliance:
image: public.ecr.aws/blackshield-security/security-appliance:1.0.8
restart: unless-stopped
ports:
- "8085:8085"
- "9090:9090"
environment:
- BLACKSHIELD_API_URL=https://api.blackshield.chaplau.com
- BLACKSHIELD_API_KEY=sp_xxxx
- LISTEN_ADDR=0.0.0.0:8085
- POLL_INTERVAL=30s
- METRICS_ADDR=0.0.0.0:9090