debian防火墙怎么监控
小樊
41
2025-12-23 00:55:43
Debian 防火墙监控实操指南
一、先确认正在使用的防火墙
- 查看常见防火墙服务状态:
sudo systemctl is-active ufw
sudo systemctl is-active firewalld
sudo systemctl is-active nftables
sudo systemctl is-active iptables
- 快速探测工具与规则集:
sudo ufw --version
sudo nft list ruleset
sudo iptables -L -n -v
- 若不确定,可列出相关包:
dpkg -l | grep -E ‘ufw|firewalld|nftables|iptables’
说明:Debian 常见为 UFW 或直接用 iptables/nftables;firewalld 并非默认。
二、实时监控防火墙规则与流量
-
UFW
- 状态与规则:sudo ufw status verbose;按编号管理:sudo ufw status numbered
- 实时日志:sudo tail -f /var/log/ufw.log(如未生成,可用 sudo tail -f /var/log/syslog | grep ufw)
- 调整日志级别:sudo ufw logging medium(级别:off/low/medium/high/full)
-
iptables
- 查看规则与计数器:sudo iptables -L -n -v(关注 pkts/bytes 的增长)
- 按链查看:sudo iptables -L INPUT -n -v;OUTPUT/FORWARD 同理
- 实时写日志(示例:记录访问 80/tcp):
sudo iptables -I INPUT -p tcp --dport 80 -j LOG --log-prefix "HTTP_IN: " --log-level 4
实时查看:sudo tail -f /var/log/kern.log | grep HTTP_IN
- 保存/恢复(持久化):
sudo iptables-save > /etc/iptables/rules.v4
sudo iptables-restore < /etc/iptables/rules.v4
-
nftables
- 查看规则集:sudo nft list ruleset
- 实时监控事件:sudo nft monitor(适合观察规则匹配与动态变更)
三、连接与会话监控
- 查看连接跟踪表(谁在连、什么状态):
sudo conntrack -L
按协议过滤:sudo conntrack -L -p tcp
- 辅助工具(与防火墙配合定位“被放行/被拒绝”的实际流量):
sudo ss -tulpen(查看监听端口与进程)
sudo iftop -i eth0(按连接实时带宽)
sudo nload(接口实时速率)
sudo vnstat -i eth0(按日/月统计历史流量)
四、日志集中、告警与自动化
- 将防火墙日志统一到 rsyslog 并集中存储/转发:
- 编辑 /etc/rsyslog.conf 或 /etc/rsyslog.d/50-default.conf,添加:
. @remote_syslog_server_ip:514
- 重启:sudo systemctl restart rsyslog
- UFW 日志与 Syslog 集成(便于按“ufw”关键字归档与告警):
- 确保 /etc/default/ufw 中:LOG_TARGET=syslog
- 在 rsyslog 配置中分离 ufw 日志:
:msg, contains, “ufw” /var/log/ufw.log
& stop
- 重启 rsyslog:sudo systemctl restart rsyslog
- 简单告警与自动封禁示例(基于日志触发):
- 检测频繁触发的来源 IP 并自动封禁(示例思路,需按实际日志格式微调):
#!/usr/bin/env bash
LOG=“/var/log/ufw.log”
BLACKLIST=“/etc/ufw/blocked_ips.list”
IP=$(grep “UFW BLOCK” “$LOG” | tail -n 100 | awk ‘{print $8}’ | sort | uniq -c | sort -nr | head -n1 | awk ‘{print $2}’)
if [ -n “$IP” ] && ! grep -q “^$IP$” “$BLACKLIST”; then
echo “$IP” | sudo tee -a “$BLACKLIST”
sudo ufw insert 1 deny from “$IP” to any
echo “Blocked IP: $IP”
fi
- 加入定时任务:*/5 * * * * /path/to/script.sh
- 入侵迹象检测与联动:
- 记录异常 SYN 洪泛(限速避免日志风暴):
sudo iptables -A INPUT -p tcp --syn -m limit --limit 1/min -j LOG --log-prefix "SYN_FLOOD: "
- 结合 Fail2Ban 自动封禁暴力破解来源(与 UFW/iptables 联动)。