Skip to content

Configuration

Configuration

Customize HookProbe to match your deployment requirements.

Configuration Files

FilePurpose
/etc/hookprobe/network-config.shNetwork and XDP settings
/etc/hookprobe/config.yamlAdvanced configuration
/etc/hookprobe/dnsxai.yamlDNS protection settings
/etc/hookprobe/dsm.yamlMesh configuration

Network Configuration

Primary Settings

/etc/hookprobe/network-config.sh
# Primary network interface (auto-detected)
PRIMARY_NIC="eth0"
# XDP/eBPF DDoS mitigation
XDP_ENABLED=false
XDP_MODE="auto" # auto, drv, skb
# Deployment role
DEPLOYMENT_ROLE="server" # server, endpoint
# QSecBit thresholds
QSECBIT_AMBER_THRESHOLD=0.45
QSECBIT_RED_THRESHOLD=0.70
# Privacy settings
ANONYMIZE_IP_ADDRESSES=true
ANONYMIZE_MAC_ADDRESSES=true
COLLECT_FULL_PAYLOAD=false

Apply Changes

Terminal window
sudo systemctl restart hookprobe-provision.service
sudo systemctl restart hookprobe-agent.service

XDP Configuration

Enable XDP

Terminal window
XDP_ENABLED=true

XDP Mode

ModeDescription
autoSelect best available
drvNative driver mode (fastest)
skbGeneric mode (all NICs)

Rate Limits

Terminal window
# DDoS mitigation settings
XDP_RATE_LIMIT_PPS=10000
XDP_SYN_RATE_LIMIT=1000
XDP_UDP_RATE_LIMIT=5000

Verify XDP

Terminal window
ip link show | grep xdp
hookprobe-ctl metrics | grep xdp

QSecBit Tuning

Thresholds

Terminal window
# Conservative (more alerts)
QSECBIT_AMBER_THRESHOLD=0.30
QSECBIT_RED_THRESHOLD=0.50
# Default
QSECBIT_AMBER_THRESHOLD=0.45
QSECBIT_RED_THRESHOLD=0.70
# Relaxed (fewer alerts)
QSECBIT_AMBER_THRESHOLD=0.60
QSECBIT_RED_THRESHOLD=0.85

Component Weights

Edit /etc/hookprobe/config.yaml:

qsecbit:
weights:
threats: 0.30
mobile: 0.20
ids: 0.25
xdp: 0.15
network: 0.02
dnsxai: 0.08

dnsXai Configuration

Blocklists

/etc/hookprobe/dnsxai.yaml
dnsxai:
blocklists:
- "https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts"
- "https://blocklistproject.github.io/Lists/tracking.txt"
- "https://blocklistproject.github.io/Lists/malware.txt"
# Custom blocklist (local)
custom_blocklist: "/etc/hookprobe/blocked-domains.txt"

Whitelist

dnsxai:
whitelist:
- "example.com"
- "*.mycompany.com"

ML Settings

dnsxai:
model: "hookprobe-dns-classifier-v3"
confidence_threshold: 0.85
entropy_threshold: 4.0
enable_cname_uncloaking: true

Mesh Configuration

DSM Settings

/etc/hookprobe/dsm.yaml
dsm:
node:
id: "${HOOKPROBE_NODE_ID}"
role: "edge"
gossip:
port: 7946
bootstrap_nodes:
- "validator1.hookprobe.mesh:7946"
- "validator2.hookprobe.mesh:7946"
consensus:
epoch_duration: 300
quorum_threshold: 0.67

HTP Settings

htp:
port: 8144
heartbeat_interval: 30
session_timeout: 300

VLAN Configuration (Fortress)

VLAN Definitions

/etc/hookprobe/vlans.yaml
vlans:
- id: 10
name: "iot"
policy: "internet_only"
subnet: "192.168.10.0/24"
- id: 20
name: "cameras"
policy: "nvr_only"
subnet: "192.168.20.0/24"
- id: 30
name: "guest"
policy: "isolated"
subnet: "192.168.30.0/24"
- id: 40
name: "trusted"
policy: "full_access"
subnet: "192.168.40.0/24"
- id: 99
name: "quarantine"
policy: "blocked"
subnet: "192.168.99.0/24"

OpenFlow Rules

openflow:
rules:
- priority: 100
match: "ct_state=+est"
action: "normal"
- priority: 50
match: "dl_vlan=10,nw_dst=192.168.40.0/24"
action: "drop"
- priority: 50
match: "dl_vlan=40"
action: "normal"

Logging

Log Levels

logging:
level: "INFO" # DEBUG, INFO, WARNING, ERROR
format: "json"
max_size_mb: 100
max_files: 10
compress: true

Log Destinations

logging:
destinations:
- type: "file"
path: "/var/log/hookprobe/agent.log"
- type: "syslog"
address: "localhost:514"
- type: "victoria_logs"
url: "http://localhost:9428"

Systemd Environment

Override Service Config

Terminal window
sudo systemctl edit hookprobe-agent.service

Example Overrides

[Service]
Environment="XDP_ENABLED=true"
Environment="LOG_LEVEL=DEBUG"
Environment="DEPLOYMENT_ROLE=endpoint"

Apply Overrides

Terminal window
sudo systemctl daemon-reload
sudo systemctl restart hookprobe-agent.service

Environment Variables

VariableDefaultDescription
PRIMARY_NICautoNetwork interface
XDP_ENABLEDfalseEnable XDP
DEPLOYMENT_ROLEserverserver or endpoint
LOG_LEVELINFOLog verbosity
QSECBIT_AMBER0.45Amber threshold
QSECBIT_RED0.70Red threshold

Validation

Check Configuration

Terminal window
hookprobe-ctl config validate

View Active Config

Terminal window
hookprobe-ctl config show

Test Changes

Terminal window
# Dry run
hookprobe-ctl config test --file /etc/hookprobe/config.yaml

Next Steps