secubox-openwrt/package/secubox/luci-app-secubox-netifyd/root/usr/sbin/secubox-netifyd-configure
CyberMind-FR 9ce67f2da5 fix: Use correct UCI section types in SecuBox settings view (v0.6.0-r12)
- 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>
2026-01-07 12:18:18 +01:00

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 "================================"