温馨提示×

如何开启debian iptables日志

小樊
45
2026-10-10 14:27:18
栏目: 智能运维

在 Debian 上开启 iptables 日志,通常有两种常见做法:

  1. 使用 iptables 的 LOG 目标(推荐、简单)
  2. 结合 nflog + ulogd(更专业,适合大量日志)

下面先讲最常用的 iptables LOG 方式。


一、使用 iptables LOG 目标(最常用)

1. 添加 LOG 规则

例如记录所有被 DROP 的包:

iptables -A INPUT -j LOG --log-prefix "IPTABLES-DROP: " --log-level 4
iptables -A INPUT -j DROP

或者只记录某端口(如 22):

iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "SSH-LOG: "

参数说明:

  • --log-prefix:日志前缀,方便过滤
  • --log-level 4:warning 级别(0–7)

2. 查看 iptables 日志

Debian 默认使用 rsyslog,iptables 日志会进入:

/var/log/kern.log
/var/log/syslog

查看示例:

tail -f /var/log/kern.log

或:

dmesg | grep IPTABLES

3. 单独存放 iptables 日志(推荐)

(1)修改 rsyslog 配置

编辑:

/etc/rsyslog.conf

或新建:

/etc/rsyslog.d/iptables.conf

添加:

:msg, contains, "IPTABLES-DROP" /var/log/iptables.log
& stop

(2)重启 rsyslog

systemctl restart rsyslog

(3)测试

tail -f /var/log/iptables.log

二、使用 nflog + ulogd(高级)

适合:

  • 高并发
  • 需要结构化日志
  • 不想污染内核日志

1. 安装 ulogd

apt install ulogd2

2. iptables 使用 NFLOG

iptables -A INPUT -j NFLOG --nflog-group 1

3. ulogd 配置

编辑:

/etc/ulogd.conf

启用 NFLOG 输入和日志输出。


三、注意事项(很重要)

  1. LOG 规则不能终止流量

    -j LOG
    -j DROP   # 必须再写一条
    
  2. 日志量可能很大

    • 建议只记录关键规则
    • 或加限速:
      iptables -A INPUT -m limit --limit 5/min -j LOG
      
  3. iptables 与 nftables

    • Debian 10+ 默认可能是 nftables
    • 若用 nftables,命令不同(可另行说明)

四、快速示例(可直接用)

iptables -N LOGGING
iptables -A INPUT -j LOGGING
iptables -A LOGGING -m limit --limit 10/min -j LOG --log-prefix "IPT-IN: "
iptables -A LOGGING -j RETURN

如果你告诉我:

  • Debian 版本
  • 是否使用 nftables
  • 想记录“哪些流量”

我可以给你更精确的配置。

0 踩