- Changed form sections from type 'secubox' to match actual UCI config - General/Dashboard/Module/Notification sections now use type 'core' - Alert Thresholds section now uses type 'diagnostics' - Security Settings section now uses type 'security' - Advanced Settings section uses type 'core' - Fixes "This section contains no values yet" errors 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
134 lines
4.5 KiB
Bash
134 lines
4.5 KiB
Bash
#!/bin/sh
|
|
# SecuBox Netifyd Configuration Helper
|
|
# Helps configure netifyd for local flow data export
|
|
|
|
NETIFYD_STATUS="/var/run/netifyd/status.json"
|
|
FLOW_EXPORT="/tmp/netifyd-flows.json"
|
|
|
|
echo "================================"
|
|
echo "SecuBox Netifyd Configuration"
|
|
echo "================================"
|
|
echo ""
|
|
|
|
# Check if netifyd is installed
|
|
if ! command -v netifyd >/dev/null 2>&1; then
|
|
echo "❌ ERROR: netifyd is not installed"
|
|
echo " Install it with: opkg install netifyd"
|
|
exit 1
|
|
fi
|
|
|
|
echo "✅ Netifyd is installed"
|
|
|
|
# Check netifyd version and features
|
|
echo ""
|
|
echo "Netifyd Version:"
|
|
netifyd -V | head -1
|
|
|
|
# Check if running
|
|
echo ""
|
|
if pidof netifyd >/dev/null 2>&1; then
|
|
echo "✅ Netifyd is running"
|
|
|
|
# Show current stats
|
|
echo ""
|
|
echo "Current Statistics:"
|
|
if [ -f "$NETIFYD_STATUS" ] && command -v jq >/dev/null 2>&1; then
|
|
echo " - Flow Count: $(jq -r '.flow_count // 0' "$NETIFYD_STATUS")"
|
|
echo " - Devices: $(jq -r '.devices | length // 0' "$NETIFYD_STATUS")"
|
|
echo " - DNS Cache: $(jq -r '.dhc_size // 0' "$NETIFYD_STATUS")"
|
|
fi
|
|
else
|
|
echo "❌ Netifyd is not running"
|
|
echo " Start it with: /etc/init.d/netifyd start"
|
|
fi
|
|
|
|
# Check for plugins
|
|
echo ""
|
|
echo "Checking for netifyd plugins..."
|
|
if [ -d "/usr/lib/netifyd" ]; then
|
|
PLUGIN_COUNT=$(ls /usr/lib/netifyd/*.so 2>/dev/null | wc -l)
|
|
if [ "$PLUGIN_COUNT" -gt 0 ]; then
|
|
echo "✅ Found $PLUGIN_COUNT plugin(s):"
|
|
ls -1 /usr/lib/netifyd/*.so 2>/dev/null | while read -r plugin; do
|
|
echo " - $(basename "$plugin")"
|
|
done
|
|
else
|
|
echo "⚠️ No plugins found in /usr/lib/netifyd/"
|
|
fi
|
|
else
|
|
echo "⚠️ Plugin directory not found"
|
|
fi
|
|
|
|
# Check netifyd capabilities
|
|
echo ""
|
|
echo "Available netifyd command options:"
|
|
netifyd --help 2>&1 | grep -E "^\s*-" | head -10
|
|
echo " ... (run 'netifyd --help' for full list)"
|
|
|
|
# Check current configuration
|
|
echo ""
|
|
echo "Current Configuration:"
|
|
echo " - Config file: /etc/config/netifyd"
|
|
if [ -f "/etc/config/netifyd" ]; then
|
|
echo " - Enabled: $(uci -q get netifyd.@netifyd[0].enabled || echo 'unknown')"
|
|
echo " - Autoconfig: $(uci -q get netifyd.@netifyd[0].autoconfig || echo 'unknown')"
|
|
else
|
|
echo " ⚠️ Config file not found"
|
|
fi
|
|
|
|
# Recommendations
|
|
echo ""
|
|
echo "================================"
|
|
echo "Configuration Recommendations"
|
|
echo "================================"
|
|
echo ""
|
|
|
|
if [ ! -f "$FLOW_EXPORT" ]; then
|
|
echo "📝 Flow export file not found at: $FLOW_EXPORT"
|
|
echo ""
|
|
echo "To enable local flow export, try one of these methods:"
|
|
echo ""
|
|
echo "Method 1: Check if netifyd supports -j option"
|
|
echo " netifyd --help | grep '\-j'"
|
|
echo " # If supported, add to config:"
|
|
echo " uci add_list netifyd.@netifyd[0].options='-j /tmp/netifyd-flows.json'"
|
|
echo " uci commit netifyd"
|
|
echo " /etc/init.d/netifyd restart"
|
|
echo ""
|
|
echo "Method 2: Use netifyd collector script"
|
|
echo " # Enable cron job:"
|
|
echo " echo '* * * * * /usr/bin/netifyd-collector' >> /etc/crontabs/root"
|
|
echo " /etc/init.d/cron restart"
|
|
echo ""
|
|
echo "Method 3: Use Netify.ai Cloud Dashboard"
|
|
echo " # Your agent UUID: $(jq -r '.agent_uuid // "not-set"' "$NETIFYD_STATUS" 2>/dev/null)"
|
|
echo " # Dashboard: https://dashboard.netify.ai"
|
|
echo ""
|
|
echo "Method 4: Sync Flow Plugins (BitTorrent IP set / nftables block)"
|
|
echo " # Enable the Flow Plugins section in LuCI, then run:"
|
|
echo " ubus call luci.secubox-netifyd apply_plugin_configuration '{}'"
|
|
echo " # Plugin configs live under /etc/netifyd/plugins.d/secubox-*.conf"
|
|
echo " # See:"
|
|
echo " # - https://www.netify.ai/documentation/netify-plugins/v5/examples/mark-bittorrent-with-ip-sets"
|
|
echo " # - https://www.netify.ai/documentation/netify-plugins/v5/examples/block-traffic-with-nftables"
|
|
echo ""
|
|
fi
|
|
|
|
# Check if sink is enabled
|
|
if [ -f "$NETIFYD_STATUS" ] && command -v jq >/dev/null 2>&1; then
|
|
SINK_STATUS=$(jq -r '.sink_status // false' "$NETIFYD_STATUS" 2>/dev/null)
|
|
if [ "$SINK_STATUS" = "true" ]; then
|
|
echo "✅ Cloud sink is enabled and working"
|
|
echo " You can access detailed flow data at: https://dashboard.netify.ai"
|
|
else
|
|
echo "⚠️ Cloud sink is not enabled"
|
|
echo " To enable: netifyd --enable-sink"
|
|
fi
|
|
fi
|
|
|
|
echo ""
|
|
echo "================================"
|
|
echo "For more information, see:"
|
|
echo " /usr/share/doc/luci-app-secubox-netifyd/README-FLOW-DATA.md"
|
|
echo "================================"
|