温馨提示×

怎样调试debian防火墙日志

小樊
40
2026-09-29 11:35:43
栏目: 智能运维

在 Debian 里,“防火墙”通常指 iptables / nftables(以及前端如 ufw)。调试防火墙日志,关键有三点:确认日志是否开启 → 找到日志位置 → 分析日志内容。下面按常见场景说明。


一、先确认你用的是哪种防火墙

# 查看是否使用 ufw
sudo ufw status

# 查看 nftables
sudo nft list ruleset

# 查看 iptables
sudo iptables -L -n -v

常见组合:

  • ufw(简单前端,底层是 iptables/nft)
  • iptables(传统)
  • nftables(新推荐)

二、开启防火墙日志(关键)

1️⃣ 使用 ufw(最简单)

# 允许记录被拒绝的连接
sudo ufw logging on

# 更详细
sudo ufw logging medium
# 或
sudo ufw logging high

日志位置:

/var/log/ufw.log
/var/log/syslog

2️⃣ 使用 iptables 手动加日志规则

sudo iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "IPTABLES-DROP: "
sudo iptables -A INPUT -j DROP

说明:

  • --log-prefix:方便 grep
  • 日志会进 内核日志

3️⃣ 使用 nftables(Debian 10+ 推荐)

sudo nft add table inet filter
sudo nft add chain inet filter input '{ type filter hook input priority 0; }'
sudo nft add rule inet filter input tcp dport 22 log prefix "NFT-DROP: " drop

三、日志在哪里看?

1️⃣ 查看防火墙日志

# ufw
sudo tail -f /var/log/ufw.log

# 通用
sudo tail -f /var/log/syslog
sudo journalctl -f

2️⃣ 使用 journalctl(systemd)

sudo journalctl -k | grep IPTABLES
sudo journalctl -k | grep NFT

四、如何“调试”而不是只是看日志

✅ 临时放行 + 观察

sudo ufw allow 22

✅ 只记录不丢弃(先观察)

sudo iptables -A INPUT -p tcp --dport 3306 -j LOG
# 不要马上 DROP

✅ 统计规则命中

sudo iptables -L -v -n
sudo nft list ruleset

五、常见问题排查清单

现象 可能原因
看不到日志 没加 LOG 规则
有日志但连不上 DROP/REJECT 太早
日志太多 日志级别太高
SSH 被锁 没允许 22

六、推荐调试流程(实战)

  1. 开日志
  2. 复现问题
  3. 看日志(源 IP、端口、协议)
  4. 调整规则
  5. 稳定后关掉多余日志

如果你愿意,可以告诉我:

  • Debian 版本
  • 用的是 ufw / iptables / nftables
  • 想调试什么(端口不通?被拦?)

我可以直接给你可复制的命令。

0 踩