使用iptables -j LOG 记录关键网络信息
Posted by backup@lfo.cc; tagged with none
-j LOG 是非终止性动作。
iptables的 -j LOG 动作是一个非终止性动作,在记录日志之后依然会匹配下一条规则,不会对现有规则造成影响。
-j LOG 的选项
| 选项 | 说明 |
|---|---|
--log-prefix "字符串 " | 日志前缀(必须以空格结尾),用于区分不同规则的日志,例如 --log-prefix "INPUT DROP: " |
--log-level 级别 | 指定日志级别(0-7,数值越小级别越高),常用级别:0(emerg)、1(alert)、2(crit)、3(err)、4(warning)、5(notice)、6(info)、7(debug)默认通常为 6(info) |
--log-ip-options | 记录 IP 头部的选项信息(如源路由、时间戳等) |
--log-tcp-options | 记录 TCP 头部的选项信息(如 MSS、窗口大小、SYN/ACK 标志等) |
--log-uid | 记录产生数据包的用户 ID(仅对 OUTPUT 链有效,因为输入包通常来自外部,无本地 UID) |
--log-mark | 记录数据包的标记(mark)值(用于连接跟踪或 QoS 标记的场景) |
--log-macdecode | 解析并记录 MAC 地址相关信息(如以太网类型) |
--log-length 长度 | 限制日志中包含的数据包载荷长度(默认记录前 64 字节) |
常用例子
1.记录所有SSH访问记录
记录详细的SSH访问被DROP的日志
iptables -A INPUT -p tcp --dport 22 -j LOG \
--log-prefix "SSH DROPPED: " \
--log-level 6 \
--log-tcp-options \
--log-ip-options