1、第 I 页 共 页Linux 内核 TCPIP 安全性研究摘要:随着当今 Linux 系统的日益流行,用户面不断扩大,以及人们在日常生活中对网络的依赖性越来越强, Linux 下的网络安全也越来越为人们所关注,以便使我们享受到更方便安全的网络生活。本论文针对 Linux 下的网络安全进行了研究。本文首先介绍了网络安全的基础知识及 TCP/IP 协议的相关问题,分析了TCP/IP 的工作原理,进而说明出现漏洞的原因,由于 TCP/IP 协议漏洞众多,不能一一提出解决方案,故分析各漏洞产生的原因后针对最有威胁最难防御的DDoS 提出了解决措施。然后,深入研究了 Linux2.6 内核,分析了 ne
2、tfilter 和iptables 的工作原理。研究了利用 TCP/IP 漏洞的最有威胁的 SYN flood 攻击原理,分析当前的防护拒绝服务攻击算法不足之处,在此基础上,设计并实现了一种基于 Linux 主动防御拒绝服务系统。该系统在系统底层通过转向代理握手的方式实现中继防火墙代理服务程序的功能,并且通过流量检测机制启动转向代理握手模块,如果发现数据帧数目异常马上转到防御模块进行处理。一方面因为转向代理握手工作在操作系统的网络入口处,减少了系统消耗,提高了工作效率,提高了受到拒绝服务攻击时为正常用户提供服务的能力;另一方面,在没有受到攻击时,不必启动转向代理模块,从而避免了正常网络情况下代
3、理服务程序引起的 TCP 连接的延迟。最后在实际情况下对主动防御模块进行了测试,证明了主动防御模块确实可以在尽可能少的占用系统资源的情况下有效地防御 SYN Flood 的攻击,并且没有影响正常的通信活动。关键词:网络安全,Linux 网络安全,TCP/IP,拒绝服务第 II 页 共 页Research of TCP/IP security on Linux kernelAbstract:As Linux get popular day by day,the users of it become more and more,and our daily life become more and
4、more rely on network,network has become part of our daily life.People pay close attention to the security of network in Linux.How can we enjoy our net life safely,get rid of illegal attack.So in this thesis, we do something to make our OS more safely.At first,we introduces essential knowledge about
5、network security and problems about TCP/IP,becaues of there are too much loopholes in TCP/IP,so I just analyzes the loopholes,then give a way to settle the DDoS attack which is the most popular and diffcult to defense,afterthat analyzes Linux 2.6 kernel ,discuss the reasons why loopholes come out, i
6、ntroduces implement functions of Linux kernel.We study the technique of SYN flood attacks,and analyze the drawbacks of algorithms at present,introduce the principle of netfilter and iptables. Based on these,we design and implement a bottom system for initiatively protecting from Denial of Service at
7、tacks based on Linux.In the system we implement the proxy handshake function of agent service program in relay firewall through a handshake diversion module,which starts up along with the flow detecting function.On one hand the handshake diversion module work at the network entry part in operation s
8、ystem so that it reduces the consumption of system resources and increase work efficiency;on the other hand,it does not start up the handshake diversion module without attacks,as a result it avoid the time delay arose by agent service program.KEY WORDS:Linux;Network Security ;TCP/IP ;Denial of Servi
9、ce目 录1.绪论.11.1 问题的提出.1第 III 页 共 页1.2 研究背景.11.3 研究工作.21.4 论文结构.22.网络安全与 TCP/IP .32.1 网络安全.32.1.1 网络安全的定义.32.1.2 网络安全特征.42.1.3 网络安全的威胁.42.2 TCP/IP 协议及协议安全性 .52.2.1 TCP/IP 基本原理 .52.2.2 TCP 的连接的建立 .72.2.3 TCP/IP 协议的安全缺陷 .82.2.4 对 TCP/IP 协议的攻击 .92.3 小结.103.Linux 内核防火墙分析 .113.1 防火墙综述.113.1.1 防火墙的概念.113.1.
10、2 防火墙的功能.113.1.3 防火墙体系结构.123.1.4 防火墙主要技术.133.2 netfilter 简介 .143.2.1 netfilter 的总体结构 .143.2.2 netfilter 原理分析 .153.2.3 netfilter 防火墙流程结构 .173.3 iptables 简介 .183.3.1 iptables 与 netfilter 的关系 .183.3.2 iptables 关键数据结构 .193.3.3 iptables 命令 .213.4 小结.22第 IV 页 共 页4. 主动防御拒绝服务系统的设计.234.1 基于 Linux 2.6 内核的透明防火
11、墙 .234.1.1 透明防火墙.234.1.2 选择 Linux2.6 内核的原因 .234.1.3 桥模式的建立.244.2 防御 SYN 洪水攻击模块设计思想 .254.2.1 SYN 洪水攻击原理 .254.2.2 SYN 洪水攻击解决方案 .264.3 代理握手算法的设计思想.274.3.1 转向代理握手算法描述.274.3.2 算法流程图:.294.3.3 算法实现伪代码.294.4 防御 SYN 洪水攻击模块的实际实现 .304.4.1 内核模块设计方法.304.4.2 内核模块实现方法.354.5 小结.355. 系统性能测试.365.1 测试用例说明.365.1.1 测试目标
12、.365.2 测试过程.365.2.1 系统抵御能力测试.365.2.2 系统性能测试.375.3 测试结果.38第 6 章 结论.40参考文献.41致谢.43第 1 页 共 43 页1.绪论1.1 问题的提出随着人类社会生活对 Internet 需求的日益增长,网络安全逐渐成为 Internet 及各项网络服务和应用进一步发展的关键问题,特别是 1993 年以后 Internet 开始商用化,通过网络进行的各种电子政务、商务业务日益增多,加之 Internet/Intranet 技术日趋成熟,很多政府组织和企业都建立了自己的内部网络并将之与 Internet 连接。上述电子政务应用和企业网络
13、中的商业秘密均成为攻击者的目标。据统计,目前网络攻击手段有数千种之多,使网络安全问题变得极其严峻,据美国商业杂志信息周刊公布的一项调查报告称,黑客攻击和病毒等安全问题在 2000 年造成了上万亿美元的经济损失,在全球范围内每数秒钟就发生一起网络攻击事件。因此网络的安全在现代的生活中显得至关重要。1.2 研究背景2000 年网络上发生了大量的 DDoS(Distributed Denial of Service)攻击事件,比如:2000 年 2 月份、yahoo , eBay 等大型网站遭到 DDoS 攻击,Yahoo 这样仅次于 AOL 的第二大搜索引擎站点,注册用户 1 亿个,平均日浏览页次
14、 4.65 亿,月访问量 4200 万次的大网站,在 DDoS 入侵面前瘫痪三个多个小时 1。DDoS 的攻击策略侧重于通过很多“傀儡主机”(被攻击者入侵过或可间接利用的主机)向受害主机发送大量看似合法的网络包,从而造成网络阻塞或服务器资源耗尽而导致拒绝服务,分布式拒绝服务攻击一旦被实施,攻击网络包就会犹如洪水般涌向受害主机,从而把合法用户的网络包淹没,导致合法用户无法正常访问服务器的网络资源,因此,分布式拒绝服务攻击又被称之为“洪水式攻击” 。常见的 DDoS 攻击手段 2有 SYN Flood、ACK Flood、UDP Flood、ICMP Flood、TCPFlood、Connecti
15、ons Flood、Script Flood、Proxy Flood 等,其中最典型也是最难防御的分布式拒绝服务攻击是 SYN Flood 攻击,而其它几种攻击,攻击原理简单,容易被防范,基本被解决,本文所提的 DDoS 攻击指的就是 SYN Flood 攻击。高速广泛连接的网络给大家带来了方便,也为 DDoS 攻击创造了极为有利的条件。在低速网络时代时,黑客占领攻击用的傀儡机时,总是会优先考虑离目标网络距离近的机器,因为经过路由器的跳数越少,效果越好。而现在电信骨干节点之间的连接都是以 G 为级别的,大城市之间更可以达第 2 页 共 43 页到 2.5G 的连接,这使得攻击可以从更远的地方或
16、者其他城市发起,攻击者的傀儡机位置可以分布在更大的范围,选择起来更灵活了。1.3 研究工作本文提出的主动防御系统基于 DDoS 攻击检测与防护作为一种积极主动的安全防护技术,提供了对子网内部、外部和误操作产生的 DDoS 的实时防护,在网络及系统的正常服务受到危害之前拦截和防护。结合了基于主机和基于网络的入侵检测技术,可以主动实时地检测非法使用、误用、恶意攻击,并且对子网内部和外部的攻击均能及时反应。1.4 论文结构第一章为绪论,主要介绍选题背景及意义,论文的主要结构和内容安排。第二章对网络安全与 TCP/IP 数据传输协议作了简单的介绍。第三章对防火墙技术给予阐述,介绍防火墙背景知识;然后深
17、入研究 Linux 内核防火墙,研究其实现机制。第四章利用防火墙技术和模块技术添加了一个安全模块,并针对 SYN Flood 的采取了主动防御,实现了增强系统安全的作用。第五章为对所设计模块的实测情况,在真实的攻击下检测防火墙的实用效果,分析主动防御模块的可行性。第六章为总结第 3 页 共 43 页2.网络安全与 TCP/IP网络的快速发展使得信息交流的速度和方式发生了巨大的变化,人们通过网络可以享受到便捷服务和快乐。但是,目前的网络存在着很多不安因素。比如,黑客入侵、信息泄漏等,但同时也带来了许多负面的影响,我们在尽情享受互联网所带来的便利的同时,必须要清醒地认识到,网络存在着许多漏洞,网络
18、安全存在着许多威胁。计算机网络面临的各种威胁和攻击很多,所以需要我们认真研究和分析问题,掌握网络安全技术,从而找出解决问题的方法,从而保护网络安全。2.1 网络安全2.1.1 网络安全的定义网络安全 3从其基本性质上讲,就是网络上的信息安全。广义上说,凡是涉及到网络上信息的保密性、完整性、可用性、真实性和可控制性的相关技术和理论,都是网络安全所要研究的领域。我们可以把网络安全通用定义为:网络安全是指网络系统的硬件、软件以及其系统中的数据受到保护,不受偶然的或者恶意的原因而遭到破坏、更改或者泄漏,系统持续可靠正常地运行,网络的服务不中断。它的具体含义则会随着“ 角度 ”的变化而变化。从用户(个人
19、、企业等)的角度来说,他们希望涉及个人隐私或商业利益的信息在网络上传输时受到机密性、完整性和真实性的保护,避免其他人或对手利用窃听、冒充、篡改、抵赖等手段侵犯用户的利益和隐私,同时也避免其它用户的非授权访问和破坏。从网络运行和管理者的角度说,他们希望对本地网络信息的访问、读写等操作受到保护和控制,避免出现“陷阱” 4、病毒、非法存取、拒绝服务和网络资源非法占用和非法控制等威胁,制止和防御网络黑客的攻击。对安全保密部门来说,他们希望对非法的、有害的或涉及国家机密的信息进行过滤和防堵,避免其通过网络泄露,避免由于这类信息的泄密对社会产生危害,对国家造成巨大的经济损失。从社会教育和意识形态角度来讲,
20、网络上不健康的内容,会对社会的稳定和人类第 4 页 共 43 页的发展造成阻碍,必须对其进行控制。2.1.2 网络安全特征网络安全应具备以下四方面的特征:保密性:信息不泄漏给非授权用户、实体或过程,或供其利用的特性。完整性:数据未经授权不能进行改变的特性。即信息在存储或传输过程又保持不被修改,不被破坏和丢失的特性。可用性:可被授权实体访问并按需求使用的特性。即当需要时能否存取所需的信息。例如网络环境下拒绝服务、破坏网络和有关系统的正常运行等都属于对可用性的攻击。可控性:对信息的传播及内容具有控制能力。2.1.3 网络安全的威胁网络安全的威胁 5可能来自许多方面,如认为的恶意攻击、网络的安全缺陷
21、,软件的漏洞和网络系统结构的隐患等等。一旦网络上传输的信息遭到窃听,截取,篡改或毁坏,将给个人、企业甚至国家带来不可估量的损失。在 RFC1244 中,指出了与网络的连通性相关的三种不同类型的威胁:非授权访问(unauthorized access)非授权的人通过冒充合法用户或者利用黑客技术侵入主机系统。信息泄漏(disclosure of information)造成将由价值和高度机密的信息泄漏给无权访问该信息的人的所有问题。拒绝服务(denial of service)使得系统难以或不可能继续执行任务,无法为合法用户进行服务的所有问题。评估这些威胁将涉及到受到影响的用户数量和可能被泄漏的信
22、息机密性。例如,对信息泄漏威胁的评估取决于可能泄密的信息类型。具有严格分类的信息系统不应该直连 Inetrnet,而其他一些如私人信息,政府文件,公司计划或信用记录等具有一定程度机密性的信息,则不足以禁止系统连接网路,在大多数情况下,可以利用操作系统自身的文件安全管理机制给他们提供适当的保护。虽然拒绝服务攻击本身不会引起信息泄漏,但一方面,它会使系统长时间无法正常工作和服务,导致网络阻塞和信息严重滞后;另一方面,许多其他类型的攻击常常使用拒绝服务为一部分攻击手段,特别是那些大型攻击,总是以拒绝服务攻击为先驱,第 5 页 共 43 页然后再进一步窃取资料,破坏系统,造成严重的后果。因此是否能正确
23、评估一个系统可能受到的网络威胁,并及早地制定防范计划,采取合理的方面策略,是保证一个系统及信息安全性的关键。2.2 TCP/IP 协议及协议安全性TCP/IP 是 Internet 的基础,Internet 的安全性和 TCP/IP 的安全 性 4是分不开的,讨论网络安全问题,必须讨论 TCP/IP 的安全问题。本小节主要讨论与本课题相关的TCP/IP 协议内容,以及 TCP/IP 协议的安全问题和几种常见的网络攻击手段。2.2.1 TCP/IP 基本原理1网络是分层的,每一层分别负责不同的通信功能。TCP/IP 通常被认为是一个四层协议族 6,TCP/IP 协议族是一组不同的协议组合在一起构
24、成的协议族。尽管通常称该协议族为 TCP/IP,但 TCP 和 IP 只是其中的两种协议而已,如表 2-1 所示。每一层负责不同的功能。表 2-1 TCP/IP 四层模型TCP/IP 层描述 主要协议 主要功能应用层 Http,Telnet,Ftp,Smtp 等负责把数据传输到传输层或接受从传输层返回的数据传输层 Tcp,Udp 主要为两台主机上的应用程序提供端到端的通信。他所做的工作包括把应用程序交给他的数据分成合适的小块交给下面的网络层,确认接收到的分组,设置发送最后确认分组的超时时钟等,Udp 则为应用层提供一种非常简单的服务。他只是把称作数据包的分组从一台主机发送到另一台主机,但并不保
25、证该数据报能到达另一端。网络层 ICMP,IP,IGMP有时也称作互联网层,主要为数据包选择路由,其中 IP 是 TCP/IP 协议族中最为核心的协议,所有的 TCP,UDP,ICMP 及 IGMP 数据都以 IP 数据报格式传输链路层 ARP,RARP 发送时将 IP 包作为帧发送,接收时把接收到第 6 页 共 43 页和设备驱动程序及接口卡的位组装成帧,提供链路管理,错误检测等分层的概念说起来非常简单,但在实际的应用中非常的重要,在进行网络设置和排除故障时对网络层次理解得很透,将对工作有很大的帮助。例如:设置路由是网络层 IP 协议的事,要查找 MAC 地址是链路层 ARP 的事,常用的
26、Ping 命令由 ICMP 协议来做的。图 2-2 显示了各层协议的关系。用户进程用户进程用户进程用户进程T C P U D PI C M P I G M PI PA R P硬件接口R A R P图 2-2 各层协议关系2数据发送时自上而下,层层加码;数据接收时自下而上,层层解码 7。当应用程序用 TCP 传送数据时,数据被送入协议栈中,然后逐个通过每一层直到被当作一串比特流送入网络。其中每一层对收到的数据都要增加一些首部信息(有时还要增加尾部信息) ,该过程如图 2-4 所示。TCP 传给 IP 的数据单元称作 TCP 报文段或简称为 TCP 段。IP 传给网络接口层的数据单元称作 IP 数据报。通过以太网传输的比特流称作帧(Frame) 。数据发送时是按照图 2-3 自上而下,层层加码;数据接收时是自下而上,层层解码。