如何通过Iptables Log模块详尽记录并审计非法连接尝试过程?
- 内容介绍
- 相关推荐
本文共计869个文字,预计阅读时间需要4分钟。
要使iptables的LOG模块正确记录非法连接尝试,关键不在于记录所有,而是要精确定位异常行为。确保日志不被遗漏、丢弃,并能快速检索。核心在于规则顺序、参数组合和日志后端协同。
一、LOG 规则必须放在 DROP/REJECT 之前
LOG 是非终止动作,它只写日志,不阻断包;而 DROP/REJECT 是终止动作,执行后包即消失,后续规则不再匹配。如果 LOG 写在 DROP 后面,永远不会触发。
- ❌ 错误写法(LOG 失效):
iptables -A INPUT -p tcp --dport 22 -j DROPiptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "SSH-BLOCKED: " - ✅ 正确写法(先记再拦):
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -j LOG \--log-prefix "SSH-SCAN: " --log-tcp-options --log-ip-optionsiptables -I INPUT -p tcp --dport 22 -m state --state NEW -j DROP
二、只记录真正可疑的连接,避免日志爆炸
盲目记录所有 NEW 连接会迅速填满磁盘。应聚焦高风险行为:非常用端口访问、扫描特征包、高频失败连接等。
本文共计869个文字,预计阅读时间需要4分钟。
要使iptables的LOG模块正确记录非法连接尝试,关键不在于记录所有,而是要精确定位异常行为。确保日志不被遗漏、丢弃,并能快速检索。核心在于规则顺序、参数组合和日志后端协同。
一、LOG 规则必须放在 DROP/REJECT 之前
LOG 是非终止动作,它只写日志,不阻断包;而 DROP/REJECT 是终止动作,执行后包即消失,后续规则不再匹配。如果 LOG 写在 DROP 后面,永远不会触发。
- ❌ 错误写法(LOG 失效):
iptables -A INPUT -p tcp --dport 22 -j DROPiptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "SSH-BLOCKED: " - ✅ 正确写法(先记再拦):
iptables -I INPUT -p tcp --dport 22 -m state --state NEW -j LOG \--log-prefix "SSH-SCAN: " --log-tcp-options --log-ip-optionsiptables -I INPUT -p tcp --dport 22 -m state --state NEW -j DROP
二、只记录真正可疑的连接,避免日志爆炸
盲目记录所有 NEW 连接会迅速填满磁盘。应聚焦高风险行为:非常用端口访问、扫描特征包、高频失败连接等。

