免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4619 | 回复: 8
打印 上一主题 下一主题

关于netfilter的LOG调用路径 [复制链接]

论坛徽章:
0
跳转到指定楼层
[收藏(0)] [报告]
发表于 2011-07-15 16:13 |只看该作者 |正序浏览
10可用积分
我现在要调查一个问题,想知道用户层执行什么操作/编写什么程序
可以调用nf_log_bind_pf()函数。

我查阅了Godbach (哥德巴赫)的【Linux内核IP Queue机制的分析】系列文章,没有找到我要的答案。
谢谢。。

调用流程:
nfnetlink_rcv
|------netlink_rcv_skb
   |------nfnetlink_rcv_msg
      |------ nfnl_callback->call(nfulnl_recv_config)
         |------nf_log_bind_pf(command=NFULNL_CFG_CMD_PF_BIND)


初始化函数:
nfnetlink_log_init
|-----nfnetlink_subsys_register

论坛徽章:
0
8 [报告]
发表于 2011-07-22 09:16 |只看该作者
本帖最后由 bekars 于 2011-07-22 09:23 编辑
nfnetlink_rcv 算是接口吗?
asweisun_shan 发表于 2011-07-19 16:44



nfnl = netlink_kernel_create(&init_net, NETLINK_NETFILTER, NFNLGRP_MAX,
                                     nfnetlink_rcv, NULL, THIS_MODULE);

中注册了nfnetlink_rcv为接收函数

你自己写一个netlink的应用层实现,可以用libnfnetlink库,然后跟踪nfnetlink_rcv的调用应该可以

论坛徽章:
0
7 [报告]
发表于 2011-07-19 16:44 |只看该作者
nfnetlink_rcv 算是接口吗?

没有看nf_log_bind_pf函数做什么用的

说个方法:
在内核代码里搜索调用nf_log_bind_pf的函数,用cscope ...
bekars 发表于 2011-07-19 11:59

论坛徽章:
0
6 [报告]
发表于 2011-07-19 11:59 |只看该作者
没有看nf_log_bind_pf函数做什么用的

说个方法:
在内核代码里搜索调用nf_log_bind_pf的函数,用cscope可以做到,然后往上找到系统调用接口就知道怎么调用的了。

论坛徽章:
0
5 [报告]
发表于 2011-07-19 10:56 |只看该作者
只加载模块,不会调用到nf_log_bind_pf函数。

回复 5# Godbach

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
4 [报告]
发表于 2011-07-15 22:36 |只看该作者
本帖最后由 Godbach 于 2011-07-15 22:38 编辑

可以直接用 modprobe 加载
[root@Kernel-Test netfilter]# modprobe nfnetlink_log

下面是系统日志
Jul 15 22:34:40 Kernel-Test kernel: Netfilter messages via NETLINK v0.30.


加载后的模块信息
[root@Kernel-Test netfilter]# lsmod
Module                  Size  Used by
nfnetlink_log          14308  0
nfnetlink               8728  1 nfnetlink_log

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
3 [报告]
发表于 2011-07-15 22:34 |只看该作者
回复 3# asweisun_shan
嗯,看了一下代码及说明
   1 /*
   2  * This is a module which is used for logging packets to userspace via
   3  * nfetlink.
   4  *
   5  * (C) 2005 by Harald Welte <laforge@netfilter.org>
   6  *
   7  * Based on the old ipv4-only ipt_ULOG.c:
   8  * (C) 2000-2004 by Harald Welte <laforge@netfilter.org>


应该就是一个通用的 记录通过 nfnetlink 发送数据包到用户空间的模块

论坛徽章:
0
2 [报告]
发表于 2011-07-15 16:40 |只看该作者
CONFIG_NETFILTER_NETLINK_LOG
RHEL5, RHEL6, 最新内核都有这个功能。

回复 2# Godbach

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
1 [报告]
发表于 2011-07-15 16:25 |只看该作者
回复 1# asweisun_shan
你说的不是 iptables 的 LOG 模块吧
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP