轻量级Linux防火墙研究与设计(扫描和反扫描、攻击代码卜毕业设计论文
本科毕业设计题 目:轻量级
Linux防火墙研究与设计
——扫描和反扫描、攻击代码
I
轻量级Linux 防火墙研究与设计
---扫描和反扫描、攻击代码
摘 要:21 世纪是一个信息时代,网络时代。计算机网络技术的日渐 成
熟,在日常生活屮的确带给了我们不少的便利,同时,计算机病毒、网 络
攻击、垃圾邮件、系统漏洞、网络窃密、虚假有害信息和网络违法犯罪 等
计算机网络安全问题也日益泛滥
[l]o 本轻量级Linux 防火墙软件建立在linux 环境下的C++编程实现。 主
要分为用户交互程序、后台进程、服务器进程、内核模块和测试命令。 本
文实现了扫描模块和交互程序中的显示防火墙的状态、网络接口和、安 全
咨询以及服务器进程与攻击代码。
关键词:C++ Linux 防火墙网络安全
II
The lightweight Linux firewall research and design
------firewall display,server,other
Abstract: The twenty-first Century is an era of information, the network
era.Computer n etwork tech no logy is becoming more and more mature, It
viruses,network attacks, spam, loopholes in the system, network theft, falseand harmful information and network illegal crime and computernetwork security issues are also in creasi ngly ram pa nt.Thelightweight Linux firewall software based on the Linux environmentC++ programming. it divided into user interface program, backgroundprocess, server process, kernel module and test comma nd.
Thispaper impleme nts the display firewall, n etwork in terface ,security con sultati on, the server process zattack code sea nning module and in teractive applications.
Keywords: C++ linux firewall network security
III 目 录 | |
一系统分析..........................1 (一)可行性分
析...................................................1
1技术可行性分
析................................................1
2操作可行性分
析................................................1
3经济可行性分
析................................................1
(二)系统处理流
(三)系统数据流
程......................................
二需求分析.........................
(一)系统需求规
定......................................
1 对功能的规
定.................................................6 2 对性能的规
定.................................................9
(二)系统运行环境规
定............................................10
1 硬件及英他设
备...............................................10
2 支持软
件....................................................10
3 语言版
本....................................................10
4 接
..............................................................................................................11三概要设计 11
(一)数据的逻辑描
1 静态数
据.....................................................11 2 动态输入数
据.................................................14 3 动态输出数
据.................................................14 4 内部生成数
据.................................................14 5数据约
定.....................................................15 四详细设计.........................16
1系统模块层次结
构............................................16 (二)程序模块设计说
明............................................18
1显示防火墙状
态...............................................18
2安全咨询模
块.................................................21
3服务器端模
块.................................................23
4结束进程子模
块..............................................24
5操作,设置模块..............................................
26
5扫描代码模
块................................................27
5攻击代码模
块................................................29
五系统测试.........................31
(-)测试计划................................................
32 32 IV |
|
总结...........................41参考文献..................
错误!未定义书签。致谢.....................错误!未定义书签。
V
一系统分析
(一)可行性分析
1 技术可行性分析
本防火墙⑴软件采用fedora系统+QT Creator+eclipse+gcc编译器进行开发,QTCreator[3]是一个linux下非常优秀具有可视化界面设计UI的O+开发工具。对于开发用户界面提供了很大的方便。而在内核模块编写上,eclopse 的类提示功能也提供了不少便捷,最后用GCC编译后,把自行编 写
可执行的钩子文件Z间挂载到linux下,直接打开qt开发的防火墙用户界面进行操作,最后可以顺利完成防火墙的过滤功能。综上所述,本软件在技术方面是可行的。
2操作可行性分析
本软件的使用对象是普通计算机用户。用户可根据自身需要或者默认设置对防火墙进行配置,最终达到满足用户需要的网络安全设置。并且为了让用户方便操作,在界面设计时做了很多人性化的提示设计;同时做到界面美观简单,颜色线条搭配自然,提高软件的友好度。
3经济可行性分析
成本角度:软件开发仅仅使用计算机一台,采用虚拟机与宿主机交叉交互开发,通过学校校园网提供的网络条件,使我们开发小组三人直接在宿舍就能实现开发与测试工作。软件开发成本低。
效益角度:由于本防火墙软件的开发目的是免费软件,效益主要源于
软件中有连接服务器并显示服务器页面的设计,可以考虑在此功能上投放广告页面,增加广告收入。
(二)系统处理流程
本软件系统主要可分为三大模块:内核交互模块,用户交互UI模块,服务器模块。
内核交互模块:主耍是在网络层实现,通过在网络层对IP包的捕捉,分析,判断该IP包是否符合防火墙所配置的条件,如果符合,则接受。如果不符合,则抛弄。实现原理是通过调用内核的所提供的接口。
用户交互UI模块:主要提供其他工具,操作,设置,系统信息,安全
状态1
帮助,工作状态,安全咨询等七小模块。分别用友好的界面提供给用户使用本防火墙软件。让用户直接在界面操作便可以实现防火墙的配置并及时查看相关信息。
服务器模块:主要提供用户升级软件等数据交互功能。
下图是防火墙的系统流程图:
图1.1轻量级Linux防火墙的系统流程图
Fig.1.1Figure of light linux firewall
由于Linux操作系统的账户权限非常严格,该防火墙软件必须运行在根
权限(超级用户)下。否则,有部分功能会被系统屏蔽。这也是Linux本身的安全体系
2
结构上做得比较严格的部分。
(三)系统数据流程
顶层数据流图主要描述了外部数据包与内部数据包的接收与发送必须通过防火墙检测,如图1.2所示。
图1.2轻量级linux防火墙的顶层DFD图
Fig.1.2figure of firewall top layer DFD
第二层数据流图展示出了防火墙软件三大模块的交互信息,如下图所
示:
图1.3轻量级linux防火墙第二层DFD图
Fig.1.3figure of Second layer DFD
Linux防火墙主要与用戸交互的模块就是UI子模块。该模块提供了大量
易懂的操作信息,包括系统信息工作状态,系统信息,安全状态,安全咨
询,其他工具,流量监控,操作、设置、帮助信息等等。如图1.4所示:
图1.4第三层DFD图一轻量级linux防火墙用户交互子模块
Fig.1.4figure of third layer DFD- user communicate block
显示防火墙状态是从用户交互模块中总结出来的概括模块。主要把所有
从内核读取的状态信息显示在界面设计上。其主要包括基本信息,安全状态
信息。 4 | |
图1.5第三层DFD图二防火墙状态信息
Fig.1.5figure of third layer DFD・firewallstate info
服务器端及防火墙客户端连接服务器功能,主要利用到socket编程实
现进程之间通信。如图1.6所示:
图1.6第三层DFD图三C/S实现
Fig.1.6figure of third layer DFD- C/S
5
二需求分析
(-)系统需求规定
1对功能的规定
通过对市面上的相关防火墙软件的调研和分析,木防火墙软件主要实现
的功能有:动态显示本机状态信息,即时连接/断开网络功能,服务器端
功能,日志文件,查看并操作相关正在上网进程功能,设置数据包过滤
规则量等等
(1)动态显示本机状态信息:
当防火墙软件开启的时候,可以通过读取linux系统上的相关文件,动
态获収本机状态信息并且显示在界面相应地方。
(2)即时连接/断开网络功能:
能够直接通过防火墙软件上的此功能按钮进行对个人计算机网络的连接
与断开设置,保护用户选择使用网络的决定权;
(3)服务器端功能: 防火墙软件连接服务器端获取最新的安全咨询,广告页面等;
(4)日志文件:
每当接收到外部攻击或者在用户定义的上网规则以外的操作,防火墙软
件就会记录在日志文件里,用户也可以通过软件中日志文件的按钮查看己经
保存起来的信息;
(5)查看并操作相关正在上网进程功能:
防火墙软件在系统信息的页面能够显示出木机正在连接网络的进程,使
用户知道自身哪些程序正在上网,同时也可以对上网进程执行结朿进程操
作;
(6)设置数据包过滤规则量
用户可以根据自身需要设置网络规则,体现个人防火墙的个性化特点;同时也可以使用默认安全配置;
本软件的最顶层的矩形框代表防火墙软件的主面板(主控模块),调用下层模块去完成全部功能;第二层的每个模块分别完成软件系统的各自主要功能,如此层层向下逐一完善,软件的H图如图2.1所示
■
■
图2.1轻量级Linux防火墙软件H图
Fig.2.1figure of light Linux firewall software
H 图说明了软件的模块组成及其层次结构,使用IPO表来说明模块间的信息传递及模块内部的处理。
表2.1工作状态的IPO 表
Tab 2.1 IPO of work state
系统名称:轻量级linux防火墙模块名:工作状态模块编号:2.1日期:2013-05-1
7
上层调用模块:用户交互模块下层被调用的模块:无
输入数据:无输出数据:内核工作状态信息处理:动态获得部分进程的工作状态信息显示在用户界面的相应位置。
表2.2安全状态的IP0表
Tab 2.2 IPO of safe state |
|
系统名称:轻量级linux防火墙模块名:安全状态日期:2012-05-1
模块编号:2.2上层调用模块:用户交互模块下层被调用的模块:无
输入数据:无输出数据:防火墙的安全等级状态信息处理:动态获得防
火墙的安全状态信息并显示在用户界面的相应位置
表2.3安全咨询的IPO表
Tab2.3 IPO of safe asking
系统名称:轻量级linux防火墙模块名:安全咨询日期:2013-05-1
模块编号:2.7
上层调用模块:用户交互模块,服务器模块下层被调用的模块:无
输入数据:服务器端信息输出数据:从服务器端获取得到的信息处理:
把服务器端获取得到的信息显示在用户界面上。
表2.4服务器端的IP0 表
Tab2.4 IPO of server
系统名称:轻量级linux防火墙模块名:服务器端模块日期:2013・05J
模块编号:4.1
上层调用模块:linux防火墙下层被调用的模块:无
输入数据:无输出数据:服务器端页面信息处理:向用户交互界面下的
安全咨询发送服务器端的页面信息。
表2.5扫描模块的IP0表
Tab2.5 IPO of scan model
系统名称:扫描程序模块名:扫描模块
模块编号:测试模块1
上层调用模块:无输入数据:无 处理:扫描目标机所开启的端口。
8日期:2013-05-1下层被调用的模块:无输出数据:扫描冃标机 开启的端口
表2.6攻击代码的IPO表
Tab2.6 IPO of attrack code
系统名称:socket仿攻击代码模块名:攻击代码日期:2013-05-1模块编号:测试模块
上层调用模块:无下层被调用的模块:无
输入数据:客户端输入输出数据:服务器端接收
处理:用socket连接模仿攻击代码,客户端模仿肉鸡,服务器端模仿黑客。
2对性能的规定
轻量级Hnux防火墙软件的具体性能目标如下:
(D灵活性
A,本防火墙属于免安装类型软件,直接在linux终端以根权限打开便能立即运行起来。
B,不需要过多繁琐设置,软件运行起来马上进入保护状态,软件自带的默认设置能够减免用户的设置压力并且保护作用显著。
C,用户能够根据自身的浏览,安全需要,对防火墙等级进行自由灵活的设置。
(2)权限严格
在linux操作系统下的权限有非常严格标准,防火墙软件必须执行在超级用户权限⑶下才能实现断网,及对内核发送命令等操作。
(3)多线程并发
防火墙主界面是一条主进程,期间有一些后台模块功能线程并发进行,让防火墙能够同时执行部分功能的操作,提高软件的效率及功能。
(4)防火墙软件的可靠性和安全性
a.在计算机网络中,计算机通过物理层及链路层接受到网上的IP包, 防火墙软件在有部分与linux系统的内核交互是建立在网络层上,我们把一
些丢包规则设定在网络层中,如果发现在规则以外的数据包一概采取丢弃不
用策略,这样大大增加了安全性和可靠性。
b.软件工作在超级用户权限Z下,可以执行一切在linux±的操作,从而使软件工作起来更加稳定,更加可靠。
c・防火墙软件如果发生错误导致崩溃,就好像普通软件崩溃一样,只要重新启动即可,不会使操作系统也随之崩溃。
9
(5)防火墙软件的适应性
系统应该兼容linux2.6以上版本的操作平台,如fordera及ubuntu等知名linux操作系统。
(6)防御性
能够抵御日常的端口扫描⑷,利用socket通信⑷的木马程序以及ICMP
攻击⑷。
(7)防火墙软件可升级性
我们防火墙软件的本来采取的就是增量模型及快速原型法的开发方法,为了软件日后的发展,我们会针对用户提出意见,逐步完善软件,修复BUG,增加更多的功能。
(8)友好的人性化界面
在LinuxQT creator下开发出來的界面具有简洁大方,让人舒服的可视
化界面
(二)系统运行环境规定
1 硬件及其他设备
本软件是一款个人防火墙软件,硬件要求以现今广大用户所使用的个人
计算机为标准。
配置耍求:
(1)1.8GHz以上单/双核CPU,1GMB以上物理内存,40GBSATA接
口硬盘;
(2)集成双千兆以太网卡。
(3)操作系统:内核版本2.6以上的linux操作系统
2支持软件
操作系统:内核版本2.6以上的linux 操作系统
开发语言:C/C++
测试软件:各种能够联通网络的软件便可,如google浏览器开发工具:QXcreator eclipse Gcc编译器
Linux文件系统:ext
3语言版本
简体中文版
104接口
本防火墙软件用到接口包括:
1.proc文件系统。在proc文件系统下面包含一些TCP及UDP数据包
接口
文件,相关的系统状态信息文件。根据这些接口能够读取获得当地计
算机的一些状态信息并作以显示。
2.QTsocket接口。服务器端与客户机端进程之间的通信就是依靠socket
借口实现的。
三概要设计
(一)数据的逻辑描述
本防火墙软件忧郁数据量不会很大没有涉及到数据库的操作,但是却
用上了
大量的静态属性数据,链表及proc文件作为数据载体。1 静态数据重
要的静态变量:
表3.1静态变量
Table3.1 Figure of static data
重要的结构体⑸:11
表3.2结构体
Table3.2 Figure of struct
表3.3函数
Table3.3 Figure of function
QT界面下的所写的类文件:表3.4类Table3.4 Figure of class
13
2 动态输入数据
表3.5 输入数据 Table 3.5Figure of input date
3 动态输出数据
表3.6 输岀数据 Table 3.6Figure of output date
4 内部生成数据
表3.7 内部生成数据 Table3.7 Figure of private date
14
5数据约定
表3.8输入数据
Table3.8 Figure of date permision 15
四详细设计
根据前面系统需求的分析,将软防火墙件划分成3大模块,包括内核交互模块,用户交互模块UI,服务器模块。这里主要写到本人完成的子模块:用户交互模块UI中的显示防火墙的状态、网络接口和、安全咨询以及服务器进程,扫描代码以及攻击代码。
1妻子的xing要求不能得到满足,影响夫妻感情造成家庭不和睦2爱爱中立刻she精,精子不能很好的进入女性体内,导致不育
3心情苦闷、情绪压抑,丧失生活激情,产生心里疾病
4早*泄容易导致精神恐惧焦虑,从而发生阳*痿等勃起功能障碍直至性机能衰竭。
咨询加老zhong 医的V: msdf003 (-)程序系统的结构
1 系统模块层次结构
愿您早日康复!
本系统每个模块名称及其程序层次结构如表4.1 所示,对于特别简单 的程序模块,在此从略,仅给出较为复杂的程序层次结构。
表4.1 程序层次结构表
Tab 4.1 table of process hierarchy structure
(2)显示防火墙状态16
图 4.1 状态显示结构图 Fig.4.1 state display Structure
(2)网络接口模块
图 4.2 网络接 口模块结构图 Fig.4.2 network interface Structure (3)扫描功能
图4.3 扫描原理图
17
Fig.4.3 sean theory
(4)模拟攻击代码
图4.4攻击原理
Fig.4.4attrack theory
(二)程序模块设计说明
以下主要包括的子模块显示防火墙状态,安全咨询,服务器模块,结束进程子模块,操作、设置模块以及扫描代码,攻击代码。
1显示防火墙状态
(1)模块描述
在防火墙软件的用户交互界面上动态显示出计算机屮内核的系统状态信息以及本防火墙软件的执行信息。
(2)模块功能
图4.3状态显示模块IPO 图
Fig.4.3IPO of state display module
18
图4.4状态信息详细图
Fig.4.4figure of state's detail infomation
(3)模块输入项
无
(4)模块输出项
把系统状态信息,防火墙状态信息显示到用户界面相应位置。
(5)模块流程逻辑
19
图4.5系统信息显75流程图
Fig.4.5Flow chart of system information display
图4.6状态信息显示流程图
Fig.4.6Flow chart of state information display
20
(6)模块接口
表4.2 模块接口
Tab4.2 table of Module interface
所用到的文件:/etc/issue
/proc/sys/kernel/ostypesetting.config
2安全咨询模块(1)模块描述
安全咨询页面显示。(2)模块功能
图4.9安全咨询IP0图Fig.4.9IPO of safe information asking
(3)模块输入项
表4.3程序输入项
Tab4.3 table of Module inpute
21
(4)模块输出项
把服务器端显示在界面上。
(5)模块流程
图4.10安全咨询模块流程图
Fig.4.10Flow chart of safe information asking module (
6)模块接口
表4.4模块接口
Tab 4.4 table of Module interface 22
3服务器端模块
(1)模块描述
负责建立服务器端程序,接收防火墙软件客户端请求,发送数据到客
户端。
(2)模块功能
图4.11服务器端模块IPO图
Fig.4.11IPO of server module
(3)模块输入项
表4.4程序输入项
Tab4.4 table of Module inpute
(4)模块输岀项
东莞理工学院超链接字符串。
(5)模块流程逻辑:
23
图4.11服务器端模块流程图Fig.4.11flow chart of server module
4结朿进程子模块
(1)模块描述
24
结束进程了模块是由系统显示模块中把正在进行互联网连接的应用
程序列出来后,根据进程PID号把该进程结束的子功能模块。
(2)模块功能
图4.13结束进程子模块IPO图
Fig.4.13IPO of kill process sub module
(3)模块流程逻辑:
图4.14结束进程子模块流程图
Fig.4.14float of article upload module
(4)模块接口
表4.5模块接口
Tab 4.5 table of
Module in terface
25
所用到的命令函数Kill();
5操作,设置模块
(1)模块描述
用户可以按照个人上网习惯,选择对防火墙相关配置的设置。本模块
用作显示选项及其功能,记录用户选择设置,发送给内核模块。 (2)模块功能
处理
图4.16操作,设置模块IPO图
Fig.4.16IPO of operation setting module
(3)模块流程逻辑
图4.17操作,设置模块模块流程图Fig.4.17flow chart of operation
settingmodule
(4)模块接口
表4.6模块接口
Tab4.6 table of Module interface
5扫描代码模块
(1)模块描述
27
利用端口扫描技术,对目标机(IP识别)打开的端口号扫描并显示出
来。(2)模块功能 处理 | |
图4.17扫描代码模块IPO图Fig.4.17IPO of scan code module
(3)模块输入项
表4.7程序输入项
Tab4.7 table of Module inpute
(4)模块输出项
把0^65534号打开的端口输岀。(5)模块流程逻辑
28
图4.18扫描程序流程图
Fig.4.18 flow chart of sean code
反扫描功能已在ICMP内核过滤中实现。具体参考同组成员刘晓润的
报告。5攻击代码模块
(1)模块描述
本模块模仿灰鸽子等木马程序的工作原理,黑客软件通过让受感染用户连接到自己的服务器上,然后获得感染机的相关信息甚至控制。
(2)模块功能
29
3)模块流程逻辑处理图4.19攻击代码IPO图Fig.4.19IPO of attrack code
30
(
图4.20操作,设置模块模块流程图Fig.4.20 flow chart of operation setting module
五系统测试
软件测试是针对开发需求文档对需求提出的功能测试,对质量或可接受性做岀判断,以及发现问题。我们进行测试,是因为知道我们很容易犯错误,特别是在软件领域和软件控制的系统中[6]。
系统测试是软件测试里面专门对功能的一种测试。我们通过对功能逐步测试,了解软件对需求计划的实现程度,找出软件中的bug进行排错修复,逐一完善软件。
31
(-)测试计划
表5.1测试计划Tab5.1 table of
TestPlan
(二)测试结果及发现
(1)显示防火墙状态测试
32
图5.1显示防火墙状态测试结果
Fig.5.1display Test Result
33
图5.2 显示防火墙状态测试结果
Fig.5.2display Test Result
图5.3显示防火墙状态测试结果
Fig.5.3display Test Result
(2)安全咨询模块测试34
图5.4安全咨询模块测试结果Fig.5.4safe asking model Test Result 图
5.5安全咨询模块测试结果Fig.5.5Safe asking model Test Result
35
(3)服务器端模块测试
图5.6服务器端模块测试测试结果
Fig.5.6Server Test Result
36
图5.7服务器端模块测试测试结果
Fig.5.7Server Test Result
(4)结束进程模块测试
图5.8结束进程模块测试结果Fig.5.8
killprocess model Test Result
37
图5.9结束进程模块测试结果Fig.5.9
kill process model Test Result
图 5.10 结束进程模块测试结果Fig.5.10 kill process model Test Result
(5)设置模块测试
38
图5.11设置模块测试测试结果Fig.5.11setting model Test Result
图5.12设置模块测试测试结果Fig.5.12setting model Test Result
(6)操作模块测试
39
图5.13操作模块测试结果Fig.5.13operationmodel Test Result
(7)扫描模块测试
图5.13操作模块测试结果Fig.5.13operation model Test Result
40
总结
结论:
本轻量级linux防火墙软件能基本实现需求分析时候的功能。包括:用
户交互的界面设计,系统信息与状态信息的显示,内核交互,设置过滤规
则,连接服务器功能,获取服务器内容以及一些细节模块的功能。
体会:
(1)刚开始接触防火墙这个课题的时候,我是感到相当的陌生。包
fedroa操作系统,QTcreator开发环境,linux内核都是相当的
不熟悉。我通过自身的学习跟与同学的交流中探索,然后把功能逐一
完成。自学过程是一个非常培养能力的过程。
(2)对于QT里面的信号槽机制,能够把2个不相关的类通过这个
机制实
行通信起来。而且不破坏类结构。这是一个很好的机制。
(3)对linux系统理解更加深刻了,linux操作系统是一个把所有操
作都
看作是对文件的操作,非常方便。
不足:
扫描与攻击的代码比较原始;本防火墙软件只是初步实现了一些防火
墙的基础功能,而且部分功能实现得比较简单,不够谨慎。还可以增设更
多优秀的功能,完善我们的软件。