NetFilter
文章平均质量分 69
tycoon1988
这个作者很懒,什么都没留下…
展开
-
Netfilter NF_HOOK执行流程分析 内核kprobe机制中的Jprobe机制 drop_watch hook_inspector
原理是通过内核kprobe机制中的Jprobe机制,hook内核的kfree_skb函数,再进入kfree_skb之前,查看skb的目的地址是否是我们需要,需要就打印出前三栈帧。内核释放skb有kfree_skb和consume_skb, 根据内核本身设计, kfree_skb属于异常丢包,consume_skb属于正常丢包,所以这里只Hook了kfree_skb原创 2014-11-14 10:13:25 · 1644 阅读 · 0 评论 -
struct rtable
在试验环境中,网络设备接口mylo的IP地址是127.10.0.1,它在内核中的表示是struct net_device myloopback_dev,测试程序往IP地址127.10.0.1发送DUMMY协议的数据报,协议栈为其生成的路由目的入口如下: the dst_entry: the dev name: mylo the error: 0 th原创 2015-05-16 11:45:57 · 2229 阅读 · 0 评论 -
ip_route_out route ip_rcv_finis
IP层路由适配(IP route) 路由表以及规则组成的系统,可以完成路由的管理以及查找的工作,但是为了使得IP层的路由工作更加的高效,linux的路由体系里,route.c里完成大多数IP层与RPDB的适配工作,以及路由缓冲(route cache)的功能。 调用接口 IP层的路由接口分为发送路由接口以及接收路由接口: 发送路由接口 IP层在发送原创 2015-05-16 12:18:22 · 799 阅读 · 0 评论 -
skb_dst_set - struct dst_entry dst 路由子系统使用。
现在有一个需求,使用netfilter框架,在NF_IP_FORWARD点做钩子。把钩到的包从指定的物理接口发出去,这个怎么实现?哪个大侠能举个例子,谢谢1、偿试修改skb_buff->dev,死机2、偿试修改skb_buff->mac_header,死机在NF_IP_FORWARD点,已经决定了路由,也就说决定了从哪个物理网口出了。要想实现从指定的物理接口出来,需要重原创 2015-05-04 22:18:41 · 3132 阅读 · 1 评论 -
如何扩展Linux的ip_conntrack multi zone conntrack机制
inux中有一个基于Netfilter的连接跟踪机制,即ip_conntrack,每一个conntrack表示的就是一个流,该流里面保存了大量的信息字段,这些字段本地有效,指导着数据包的转发策略,但是我觉得这些字段信息还不够详细,试想,一个nfmark字段好像就可以做到一切了,但是我如果想为一个数据流绑定一个字符串怎么办呢?也许你会说使用iptables+ipset+nfmark可以完成一切,这也原创 2015-05-04 22:10:56 · 640 阅读 · 0 评论 -
NF_HOOK
一、 IP报文的接收到hook函数的调用 1.1 ip_input.c ip_rcv()函数以接收到的报文为例,类似的还有ip_forward(ip_forward.c)和ip_output(ip_output.c)int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type原创 2014-11-05 20:36:56 · 3674 阅读 · 1 评论 -
nf_register_hooks NF_HOOK
如果我们想加入自己的代码,便要用nf_register_hook函数,其函数原型为:int nf_register_hook(struct nf_hook_ops *reg)struct nf_hook_ops://结构struct nf_hook_ops{struct list_head list;/* User fills in from here down. */原创 2014-11-05 19:49:57 · 3264 阅读 · 0 评论 -
NF_IP_LOCAL_IN NF_IP_LOCAL_OUT
下面主要是通过上面接收的hook注册函数,实现向内核中相应的hook点注册hook回调函数,结合icmp数据包的格式,实现对icmp数据包的处理。 icmp_reply_filter.c主要是数据接收方向的NF_IP_LOCAL_IN点注册回调函数,该回调函数对接收到的icmp reply报文,将序列号是9的倍数的reply报文丢弃掉#include #in原创 2014-11-05 20:12:32 · 1571 阅读 · 0 评论 -
conntrack链接 tcp
一、连接跟踪的预备知识连接跟踪的概念及作用,这里都不做介绍了。下面先说一下连接跟踪在Netfilter中起效的hook点以及对应的hook函数。原创 2014-11-06 11:13:19 · 730 阅读 · 0 评论 -
net.bridge.bridge-nf-call-iptables=1
http://blog.csdn.net/quqi99/article/details/7447233原创 2014-11-05 16:54:21 · 34066 阅读 · 1 评论 -
ebtables实例
这个实例主要是结合ebtables和TC来实现对用户进行流量控制。原创 2014-11-05 16:23:24 · 979 阅读 · 0 评论 -
用户空间与内核空间数据交换的方式(7)------sysctl
sysctl是一种用户应用来设置和获得运行时内核的配置参数的一种有效方式,通过这种方式,用户应用可以在内核运行的任何时刻来改变内核的配置参数,也可以在任何时候获得内核的配置参数,通常,内核的这些配置参数也出现在proc文件系统的/proc/sys目录下,用户应用可以直接通过这个目录下的文件来实现内核配置的读写操作,例如,用户可以通过cat /proc/sys/net/ipv4/ip_for原创 2014-11-05 11:30:17 · 1114 阅读 · 0 评论 -
bridge-nf-call-iptables
static int __init br_init(void){.../* 网桥HOOK点注册 */err = br_netfilter_init();if (err) goto err_out1;.../* 网桥处理接口 */br_handle_frame_hook = br_handle_frame;... }int __in原创 2014-11-05 11:17:48 · 6109 阅读 · 0 评论 -
linux 内核网络钩子类型
内核收到包后(netif_receive_skb),||—— 检测嗅探器,把包的副本给每个嗅探器|判断该包是否属于网桥-->handle_bridge --> br_handle_frame 钩子: netfilet_bridge.h 中定义/* Bridge Hooks *//* After promisc drops,原创 2014-11-05 11:03:41 · 1526 阅读 · 0 评论 -
bridge来说明下hooks参数
http://blog.csdn.net/qy532846454/article/details/6605592原创 2014-11-05 10:59:36 · 695 阅读 · 0 评论 -
Linux策略路由**************8
在linux内核版本2.2的时候,加入了一项很令人兴奋的功能,那就是Advanced Routing,使linux的路由机制超过了很多商用路由器。在使用高级路由功能前,我们先了解一下普通的路由功能。以192.168.72.72(双网卡)这台机器为例,linux下普通的路由表可以通过route -n查看 路由表的作用是指导主机如何向外发送数据包,如上图所示,如果我们从原创 2014-11-14 10:51:44 · 657 阅读 · 0 评论 -
如何在Linux下大量屏蔽恶意IP地址(ipset)
转自:http://www.kuqin.com/shuoit/20150225/344886.html很多情况下,你可能需要在Linux下屏蔽IP地址。比如,作为一个终端用户,你可能想要免受间谍软件或者IP追踪的困扰。或者当你在运行P2P软 件时。你可能想要过滤反P2P活动的网络链接。如果你是一名系统管理员,你可能想要禁止垃圾IP地址访问你们的公司邮件服务器。或者你因一些原因想要禁止 某些原创 2015-06-16 10:57:49 · 4943 阅读 · 0 评论