iptables监控reset的连接信息
需求
如果连接被reset需要记录下reset包是哪边放出来的,并记录reset连接的四元组信息
iptables规则
|
|
将如上配置保存在 drds_filter.conf中,设置开机启动:
|
|
单独记录到日志文件中
默认情况下 iptables 日志记录在 dmesg中不方便查询,可以修改rsyslog.d规则将日志存到单独的文件中:
|
|
将 [drds] 开头的日志存到对应的文件
将如上配置放到: /etc/rsyslog.d/ 目录下, 重启 rsyslog 就生效了
|
|
防止日志打满磁盘
配置 logrotate, 保留最近30天的
|
|
logrotate操作的日志需要权限正常,并且上级目录权限也要对,解决方案参考:https://chasemp.github.io/2013/07/24/su-directive-logrotate/ 报错信息:
|
|
最终效果
|
|
NetFilter Hooks
下面几个 hook 是内核协议栈中已经定义好的:
NF_IP_PRE_ROUTING
: 接收到的包进入协议栈后立即触发此 hook,在进行任何路由判断 (将包发往哪里)之前NF_IP_LOCAL_IN
: 接收到的包经过路由判断,如果目的是本机,将触发此 hookNF_IP_FORWARD
: 接收到的包经过路由判断,如果目的是其他机器,将触发此 hookNF_IP_LOCAL_OUT
: 本机产生的准备发送的包,在进入协议栈后立即触发此 hookNF_IP_POST_ROUTING
: 本机产生的准备发送的包或者转发的包,在经过路由判断之后, 将触发此 hook
IPTables 表和链(Tables and Chains)
下面可以看出,内置的 chain 名字和 netfilter hook 名字是一一对应的:
PREROUTING
: 由NF_IP_PRE_ROUTING
hook 触发INPUT
: 由NF_IP_LOCAL_IN
hook 触发FORWARD
: 由NF_IP_FORWARD
hook 触发OUTPUT
: 由NF_IP_LOCAL_OUT
hook 触发POSTROUTING
: 由NF_IP_POST_ROUTING
hook 触发
tracing_point 监控
对于 4.19内核的kernel,可以通过tracing point来监控重传以及reset包
|
|
iptables 打通网络
|
|