Fix critical bug: Add missing is_ip_blocked function

CRITICAL BUG FIX: Auto-blocking and Quick Actions were not working

Problem:
- Code called is_ip_blocked() function that didn't exist
- Function failures caused silent errors (2>/dev/null)
- Result: IPs with score 100 were NOT auto-blocked
- Result: Quick Actions never showed any IPs to block
- Auto-mitigation engine was completely broken

Solution:
- Added is_ip_blocked() function with dual checking:
  1. CSF deny list check (csf -g)
  2. iptables direct check (iptables -L)
- Returns 0 (blocked) or 1 (not blocked)

Impact:
- Auto-blocking now works at score >= 80
- Quick Actions now shows IPs with score >= 60
- Users can see and manually block medium threats
- Auto-mitigation engine now functional

This was preventing ALL blocking functionality from working
This commit is contained in:
cschantz
2025-11-14 16:53:43 -05:00
parent 44c3e9370c
commit b153e9dc1a
+21
View File
@@ -690,6 +690,27 @@ calculate_context_bonus() {
echo "${bonus}|${reasons}" echo "${bonus}|${reasons}"
} }
# Check if IP is currently blocked in CSF/iptables
is_ip_blocked() {
local ip="$1"
# Check CSF deny list
if command -v csf &>/dev/null; then
if csf -g "$ip" 2>/dev/null | grep -q "DENY"; then
return 0
fi
fi
# Check iptables directly
if command -v iptables &>/dev/null; then
if iptables -L -n 2>/dev/null | grep -q "$ip"; then
return 0
fi
fi
return 1
}
# Get threat level from score # Get threat level from score
get_threat_level() { get_threat_level() {
local score="$1" local score="$1"