Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / Linux网络截包不完全整理

继上一篇VLAN学习笔记大致理清Linux内核的网络收发架构后,我们可以发现,在网络收发的路径上,基本上每一个连接点都可以做网络截包,如果说L1驱动截包和L3netfilter截包是在必经之路上设伏的话,那L2虚拟设备,L3自定义协议等,就是在大路旁开出一条小路来劫道了。网络截包是一项很有意思的课题,可以有数据过滤,防火墙,流量控制,报文篡改等诸多应用,按照内核分层架构将一些截包方法不完全整理如下,欢迎补充。1、 L1层驱动截包法在驱动中下手应该可以说是最贴近底层的,网卡驱动中总有rx接收和xmit发送函数,参数总是sk_buffer,在这里修改很黄很暴力,而且几乎不需要什么linux内核的知识。xmit函数调用时的参数sk_buffer已经是一个发育健全的成熟体,因此在这里做过滤那真是得心应手美呆了,当然修改的时候还是要下一番功夫,而rx的时候则相反,可怜的sk_buffer在这时候只发育了链路层(L2)头部,一旦涉及到较为复杂的过滤,则需要做一些模拟协议栈的分析,如需要获取udp端口,就要从sk_buffer中先取出L3 IP层的长度,对sk_buffer->data作相应位移。2、 L2层虚拟设备截包法与具体网卡设备无关,通过register_netdevice注册一个net_device结构,在驱动层上虚拟一个设备节点(ethx.y),来实现截包,通过设置路由,让需要拦截的报文通过该设备节点发出,从而实现过滤。正是因为需要结合路由来使用,该方法显得特别优雅,对目的IP的过滤甚至在路由设置中就已经完成,避免其他无关报文不必要的拦截判断。虚拟设备拦截到的sk_buffer也已经基本成熟了,可以方便的过滤。可惜佛说,优点即缺点,正是因为需要结合路由使用,该法对接收报文的过滤和修改无能为力(如果理解有误欢迎指正)。
  • 1
  • 2
  • 3
  • 4
  • 下一页
FreeBSD execl()函数本地权限提升漏洞Linux Kernel HFS子系统栈溢出漏洞相关资讯      Linux安全 
  • 发现针对 Linux 服务器和代码库的  (11/08/2015 09:11:50)
  • Linux安全与优化  (12/05/2014 17:04:31)
  • 加强 Linux 桌面安全  (08/15/2014 11:36:10)
  • 牢记这七点 让你的Linux服务器变得  (08/12/2015 15:39:07)
  • 树大招风,Linux的安全威胁正在不  (08/24/2014 21:44:47)
  • GNU/Linux安全基线与加固  (07/22/2014 13:51:21)
本文评论 查看全部评论 (0)
表情: 姓名: 字数


评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款