阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

iptables防火墙如何记录日志

58次阅读
没有评论

共计 2072 个字符,预计需要花费 6 分钟才能阅读完成。

导读 当你的 iptables 规则无法正常工作时,可能希望记录 iptables 的数据包以进行故障排除。本文介绍了如何使用 iptables 的日志记录模块。
例如:记录所有 ssh 服务的登录的日志

首先,我们需要了解如何将所有的 iptables 的 INPUT 链数据包记录到 /var/log/messages 中。如果你已经有一些 iptables 规则了,那么将记录日志的规则放在这些规则的顶部,如果放在规则的后面,将不会记录日志。

iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m limit --limit 4/min -j LOG --log-prefix "Iptables-SSH-IN:" --log-level 4
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j ACCEPT
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -P INPUT DROP

iptables 防火墙如何记录日志
在上面的示例中,它执行以下操作:

  • 第一条规则记录所有访问目的端口为 22 的,将记录日志,限制日志每分钟 4 条,日志前缀为“Iptables-SSH-IN:”,日志记录级别为 Warning。
  • 第二条规则允许所有源地址的新连接访问目的端口 22。
  • 第三条规则允许所有已建立的连接访问本机。
  • 设置 INPUT 链的默认规则为 DROP。

上面第一条规则解释:

  • -m limit:使用 limit 模块。使用此选项,可以使用 –limit 选项限制访问速率。
  • –limit 4/min:这表示记录的最大平均访问速率。在此示例中,对于类似的数据包,它将日志记录限制为每分钟 4 个。还可以设置为 2 /second, 2/minute, 2/hour, 2/day。
  • -j LOG:这表示此数据包的目标是 LOG。即写入日志文件。
  • –log-prefix “Iptables-SSH-IN:”可以指定任何日志前缀,这些前缀将写入到 /var/log/messages 日志文件中。
  • –log-level 4 这是标准的系统日志级别。4 是警告(warning)。可以使用 0 到 7 之间的数字。0 是 emerg,1 是 alert,2 是 crit,3 是 err,4 是 warning,5 是 notice,6 是 info,7 是 debug。
修改 iptables 日志存放位置

默认情况下,iptables 将使用 /var/log/messages 记录所有消息。如果要将其更改为自己的定制日志文件,将下面命令添加到 /etc/rsyslog.conf 中。前提需要安装 rsyslog 服务:

# 安装 rsyslog 服务
[root@localhost ~]# yum -y install rsyslog
# 设置开机启动、并立即启动
[root@localhost ~]# systemctl enable rsyslog --now
# 编辑 /etc/rsyslog.conf 文件,添加下面内容到文件底部
[root@localhost ~]# vim /etc/rsyslog.conf 
kern.warning /var/log/iptables.log

iptables 防火墙如何记录日志
查看刚才设置的日志文件:

[root@localhost ~]# ll -h /var/log/iptables.log 
-rw-------. 1 root root 2.0K Feb  9 10:46 /var/log/iptables.log
[root@localhost ~]# tail -f /var/log/iptables.log

iptables 防火墙如何记录日志

如何读取 IPTables 日志?
[root@localhost ~]# cat /var/log/iptables.log 

Feb  9 10:46:20 localhost kernel: Iptables-SSH-IN: IN=ens160 OUT= MAC=00:0c:29:ae:7d:09:00:50:56:c0:00:08:08:00 SRC=192.168.43.1 DST=192.168.43.137 LEN=52 TOS=0x00 PREC=0x00 TTL=128 ID=49928 DF PROTO=TCP SPT=16512 DPT=22 WINDOW=64240 RES=0x00 SYN URGP=0
  • Iptables-SSH-IN: 通过指定 –log-prefix 选项,这是我们在日志记录中使用的前缀
  • IN=ens160 OUT=: 这表示从该接口传入数据包。对于传出数据包将为空。
  • IN= OUT=: 这表示从该接口传出数据包。对于传入的数据包将为空。
  • MAC=: 00:0c:29:ae:7d:09 小时目标 MAC 地址,:00:50:56:c0:00:08 为源 MAC 地址,08:00 为上层协议代码,表示 IP 协议。
  • SRC=: 源 IP 地址
  • DST=: 目的 IP 地址
  • LEN=: 数据包的长度
  • PROTO=: 使用什么类型协议
  • SPT=: 源端口
  • DPT=: 目标端口
总结

当你的 iptables 规则无法正常工作时,可能希望记录 iptables 的数据包以进行故障排除。本文介绍了如何使用 iptables 的日志记录模块。

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计2072字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中