This commit is contained in:
Luftmensch
2026-08-26 14:11:37 +07:00
commit e528419f9a
135 changed files with 413970 additions and 0 deletions
@@ -0,0 +1,79 @@
#!/bin/bash
echo "=========================================================="
echo " TEST SCRIPT: KIỂM TRA LỖI FIREWALL DEFAULT DENY "
echo "=========================================================="
echo "[1] Trạng thái của firewalld theo systemctl:"
raw_status=$(systemctl is-active firewalld 2>&1)
echo " -> Output trả về: [$raw_status]"
FIREWALLD_ACTIVE=0
if echo "$raw_status" | grep -q "^active"; then
FIREWALLD_ACTIVE=1
echo " -> Đánh giá: FIREWALLD_ACTIVE = 1 (Đã nhận diện đang chạy)"
else
echo " -> Đánh giá: FIREWALLD_ACTIVE = 0 (Không nhận diện được firewalld qua systemctl)"
fi
echo "----------------------------------------------------------"
echo "[2] Đọc các active zone từ firewall-cmd:"
active_zones=$(firewall-cmd --list-all-zones 2>/dev/null | grep "active")
if [ -z "$active_zones" ]; then
echo " -> KHÔNG TÌM THẤY BẤT KỲ ACTIVE ZONE NÀO! (Hoặc firewall-cmd bị lỗi)"
else
echo " -> Các zone đang active tìm thấy:"
echo "$active_zones" | while read -r line; do
echo " - $line"
done
fi
echo "----------------------------------------------------------"
echo "[3] Phân tích chi tiết qua awk (chế độ DEBUG):"
fw_default_deny=$(firewall-cmd --list-all-zones 2>/dev/null | awk '
BEGIN {
print " [AWK] Bắt đầu đọc output từ firewall-cmd..." > "/dev/stderr"
bad=0
}
/\(active\)/ {
in_active=1;
print " [AWK] >> Vào active zone: " $0 > "/dev/stderr"
next
}
/^[^ \t\r\n]/ && !/\(active\)/ {
if (in_active == 1) {
print " [AWK] << Thoát active zone vì gặp dòng: " $0 > "/dev/stderr"
}
in_active=0
}
in_active && /target:/ {
t = $2
gsub(/%%/, "", t)
print " [AWK] -- Bắt được target: [" t "]" > "/dev/stderr"
if (t != "DROP" && t != "REJECT") {
print " [AWK] -- [!] PHÁT HIỆN VI PHẠM: [" t "] không phải là DROP hay REJECT" > "/dev/stderr"
bad=1
} else {
print " [AWK] -- [v] ĐẠT: [" t "] hợp lệ" > "/dev/stderr"
}
}
END {
print " [AWK] Kết thúc phân tích. Giá trị biến bad = " bad > "/dev/stderr"
print (bad ? "0" : "1")
}
')
echo "----------------------------------------------------------"
echo "[4] TỔNG HỢP KẾT QUẢ:"
echo " -> Giá trị biến fw_default_deny: [$fw_default_deny]"
if [ "$FIREWALLD_ACTIVE" -eq 1 ]; then
if [ "$fw_default_deny" = "1" ]; then
echo " -> KẾT QUẢ CUỐI CÙNG: PASSED (Đạt chuẩn)"
else
echo " -> KẾT QUẢ CUỐI CÙNG: FAILED (Vi phạm)"
fi
else
echo " -> KẾT QUẢ CUỐI CÙNG: FAILED (Bị fail ngay từ bước check firewalld active)"
fi
echo "=========================================================="