文章分类 | 推荐文章 | 最新文章 | 热点文章 | 最新软件 | 精品软件 | 下载排行 | 推荐下载 | 免费看大片 | WPS | 杀毒软件
清风网络
首 页 软件下载 网络学院 数码学院
QQ 电脑入门 游戏 操作系统 图形处理 办公软件 媒体动画 精文荟萃 工具软件 网络编程 程序开发 网络技术 认证考试 网站建设 文章专栏
当前位置:清风网络学院操作系统 LinuxHacking the Linux Kernel Network Stack(译本)
精品推荐
特别推荐
·高效使用Linux的七个好习惯
·为何Linux比Windows更安全?
·Linux和Unix最常用的网络命令
·Linux系统下安全防护十大招数
·Linux各种服务器的架设
·Linux操作系统下用单网卡捆绑双IP
·恢复被误删除的Linux文件
·在Linux服务器上做备份和恢复
·Linux中网络参数的意义及其应用
·linux知识大全
·解析Linux服务器远程控制技术
·新手关于Linux系统的一些错误认识
·Linux系统至少有五大点比Vista更好
·Linux攻略 关于Apache安装、配置、优化
·详细讲解Linux操作系统的进程管理的功能
·解决Linux和Windows双系统的引导问题
·新手学堂:Linux操作系统安全性能检查笔记
·600个优秀网站
·提高Linux操作系统网速的方法
·Linux系统下挂载硬盘光驱和U盘的方法
热点TOP10
·网络组建大全(包括企业网、校园网、网吧和基础知识)
·Linux常用命令详解
·Linux各种服务器的架设
·linux知识大全
·Linux文件和目录访问权限设置
·LINUX 常见问题1000个详细解答
·Linux学习手册
·Red Hat Linux 安装BroadCom网卡驱动
·如何查看Linux下系统占用的资源(top、free、uptime)
·用.iso文件从硬盘安装redhat linux 7.3
·为Canon PIXMA iP1000喷墨打印机安装驱动程序
·RedHat linux 8.0下内核编译步骤和说明
·Linux系统下挂载硬盘光驱和U盘的方法
·RedHat Linux 9升级内核
·Slax本土化:移动硬盘上的Linux中文套件
·详细讲解Linux操作系统的进程管理的功能
·linux下通过脚本实现自动重启程序
·在Linux服务器上做备份和恢复
·Linux Apache Web 服务器终极教程
·正宗888葫芦 博彩游戏

Hacking the Linux Kernel Network Stack(译本)

日期:2007年4月8日 作者: 查看:[大字体 中字体 小字体]



深入Linux内核网络堆栈

作者:bioforge alkerr@yifan.net 原名: <> 翻译,修改: duanjigang 翻译参考:raodan (raod_at_30san.com) 2003-08-22

第一章 简介

本文将描述如何利用Linux网络堆栈的窍门(不一定都是漏洞)来达到一些目的,或者是恶意的,或者是出于其它意图的。文中会就后门通讯对Netfilter钩子进行讨论,并在本地机器上实现将这个传输从基于Libpcap的嗅探器(sniffer)中隐藏。 Netfilter是2.4内核的一个子系统。Netfilter可以通过在内核的网络代码中使用各种钩子来实现数据包过滤,网络地址转换(NAT)和连接跟踪等网络欺骗。这些钩子被放置在内核代码段,或者静态编译进内核,或者作为一个可动态加载/卸载的可卸载模块,然后就可以注册称之为网络事件的函数(比如数据包的接收)。

1.1 本文论述的内容

本文将讲述内核模块的编写者如何利用Netfilter的钩子来达到任何目的,以及怎样将网络传输从一个Libpcap的应用中隐藏掉。尽管Linux2.4支持对IPV4,IPV6以及DECnet的钩子,本文只提及IPV4的钩子。但是,对IPV4的大多数应用内容同样也可以应用于其他协议。出于教学目的,我们在附录A给出了一个可以工作的内核模块,实现基本的数据包过滤功能。针对本文中所列技术的所有开发和试验都在Intel机子上的Linux2.4.5系统上进行过。对Netfilte 钩子行为的测试使用的是回环设备(Loopback device),以太网设备和一个点对点接口的调制解调器。对Netfilter进行完全理解是我撰写本文的另一个初衷。我不能保证这篇文章所附的代码100%的没有差错,但是所列举的所有代码我都事先测试过了。我已经饱尝了内核错误带来的磨砺,而你却不必再经受这些。同样,我不会为按照这篇文档所说的任何东西进行的作所所为带来的损失而负责。阅读本篇文章的读者最好熟悉C程序设计语言,并且对内核可卸载模块有一定的经验。如果我在文中犯了任何错误的话,请告知我。我对于你们的建议和针对此文的改进或者其它的Netfilter应用会倾心接受。

1.2 本文不会涉及到的方面

本文并不是Netfilter的完全贯穿(或者进进出出的讲解)。也不是iptables命令的介绍。如果你想更好的学习iptables的命令,可以去咨询man手册。让我们从介绍Nerfilter的使用开始吧……….

第二章 各种NetFilter 钩子及其用法

2.1 Linux内核对数据包的处理

我将尽最大努力去分析内核处理数据包的详细内幕,然而对于事件触发处理以及之后的Netfilter 钩子不做介绍。原因很简单,因为Harald Welte 关于这个已经写了一篇再好不过的文章<>,如果你想获取更多关于Linux对数据包的相关处理知识的话,我强烈建议你也阅读一下这篇文章。目前,就认为数据包只是经过了Linux内核的网络堆栈,它穿过几层钩子,在经过这些钩子时,数据包被解析,保留或者丢弃。这就是所谓的Netfilter 钩子。

2.2 Ipv4中的Netfilter钩子

Netfilter为IPV4定义了5个钩子。可以在 linux/netfilter-ipv4.h里面找到这些符号的定义,表2.1列出了这些钩子。

表 2.1. ipv4中定义的钩子

CODE:[Copy to clipboard]钩子名称 调用时机 NF_IP_PRE_ROUTING 完整性校验之后,路由决策之前 NF_IP_LOCAL_IN 目的地为本机,路由决策之后 NF_IP_FORWARD 数据包要到达另外一个接口去 NF_IP_LOCAL_OUT 本地进程的数据,发送出去的过程中 NF_IP_POST_ROUTING 向外流出的数据上线之前 NF_IP_PRE_ROUTING 钩子称为是数据包接收后第一个调用的钩子程序,这个钩子在我们后面提到的模块当中将会被用到。其他的钩子也很重要,但是目前我们只集中探讨NF_IP_PRE_ROUTING这个钩子。不管钩子函数对数据包做了哪些处理,它都必须返回表2.2中的一个预定义好的Netfilter返回码。表2.2 Netfilter 返回码

CODE:[Copy to clipboard]返回码 含义 NF_DROP 丢弃这个数据包 NF_ACCEPT 保留这个数据包 NF_STOLEN 忘掉这个数据包 NF_QUEUE 让这个数据包在用户空间排队 NF_REPEAT 再次调用这个钩子函数 NF_DROP 表示要丢弃这个数据包,并且为这个数据包申请的所有资源都要得到释放。NF_ACCEPT告诉Netfilter到目前为止,这个数据包仍然可以被接受,应该将它移到网络堆栈的下一层。NF_STOLEN是非常有趣的一个返回码,它告诉Netfilter让其忘掉这个数据包。也就是说钩子函数会在这里对这个数据包进行完全的处理,而Netfilter就应该放弃任何对它的处理了。然而这并不意味着为该数据包申请的所有资源都要释放掉。这个数据包和它各自的sk_buff结构体依然有效,只是钩子函数从Netfilter夺取了对这个数据包的掌控权。不幸的是,我对于NF_QUEUE这个返回码的真实作用还不是很清楚,所在目前不对它进行讨论。最后一个返回值NF_REPEAT请求Netfilter再次调用这个钩子函数,很明显,你应该慎重的应用这个返回值,以免程序陷入死循环。


[1] [2] [3] [4] [5] [6] [7] [8] 下一页 




上一篇:EasyLXR 0.1发布下载

下一篇:IPTABLES的----这个实验怎么做?

Hacking the Linux Kernel Network Stack(译本) 相关文章:
·DENX U-Boot及Linux使用手册
·Linux常用命令详解
·Linux各种服务器的架设
·linux知识大全
·Linux文件和目录访问权限设置
·LINUX 常见问题1000个详细解答
·Linux BOOTLOADER全程详解(Arm S3C2410)
·XPCOM--LINUX下的组件开发技术
·李纳斯·托沃兹(Linus Torvalds):Linux之父
·Linux学习手册
Hacking the Linux Kernel Network Stack(译本) 相关软件:
·鸟哥的linux私房菜:基础学习篇
·红帽子Red Hat Linux 8.0(3G,5CD)
·Linux 系统命令及其使用详解(大全)
·linux操作系统视频教程
·Snappy Fax Network ServerV2.4.1.1
·楚广明24小时学通Linux RM 其他介绍
·Linux宝典
·Linux内核0.11(0.95)详细注释
·LINUX命令整理 磁盘管理
·Linux专家之路_Linux内核源代码

特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作者。文章版权归文章原始作者所有。对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转载的文章有版权问题请联系编辑人员,我们尽快予以更正。
[打印本页] [关闭窗口] 转载请注明来源:http://www.vipcn.net
| 帮助(?) | 版权声明 | 友情连接 | 关于我们 | 信息发布
Copyright 2007 www.vipcn.net All Rights Reserved. 鄂ICP备05000083号Powered by:viphot