目 录
目 录 1
一、实验目的和要求 2
二、实验原理 3
三、实验环境和采用的工具 4
四、系统设计 4
五、系统详细设计 4
六、系统测试 1
七、心得体会 3
一、实验目的和要求
(1)实验目的
通过本课程设计要使学生达到以下目标:
1.结合理论课程学习,深入理解计算机网络安全的基本原理与协议,巩固计算机网络安全基本理论知识;
2.熟练掌握计算机网络编程方法,拓展学生的应用能力;
3.加强对网络协议栈的理解;
4.提高分析、设计软件系统以及编写文档的能力;
5.培养团队合作能力。
(2)实验内容
1.通过学习和了解Linux Netfilter架构和原理,了解Linux的网络协议栈的处理过程;
2.利用Linux Netfilter架构,编写一个具有状态检测的linux防火墙,能对收发的报文进行状态分析和过滤;
3.实验验证阶段需要综合运用网络组网技术、网络协议分析技术;
4.通过Linux下的开发过程提升学生的内核编程能力和分析问题、解决问题的能力;
5.撰写课程设计报告;
6.实验结果展示。
(3)具体要求
课程设计的防火墙系统包括内核模块和应用程序两个部分。
内核模块植入hook截获报文,通过防火墙的规则过滤,根据规则可否通行;若放行,则NAT判断是否有相应表项,若无则直接转发,有则地址转换以后转发;此外,还要维护一个连接状态表,记录已经连接的hash,若在其中有表项,则直接Accept。
规则由应用程序通过跟内核重写的ioctl函数接口写入,这里也需要自己重写; 应用程序用来设置规则,并调用编译好的新ioctl写入内核;查看日志;查看连接等操作,需要跟内核模块之间通过一定的接口来进行数据交换。
1.系统运行:插入模块,防火墙以内核模块方式运行;应用程序向内核写入规则;
2.界面:采用图形或者命令行方式进行规则配置,界面友好;
3.功能要求:能对TCP、UDP、ICMP协议的报文进行状态分析和过滤;每一条过滤规则至少包含:报文的源IP(带掩码的网络地址)、目的IP(带掩码的网络地址)、源端口、目的端口、协议、动作(禁止/允许),是否记录日志;过滤规则可以进行添加、删除、保存,配置的规则能立即生效;过滤日志可以查看;具有NAT功能,转换地址分按接口地址转换和指定地址转换(能实现源或者目的地址转换的任一种即可);能查看所有连接状态信息;
4.测试:测试系统是否符合设计要求、系统运行稳定、性能分析。