毕业设计-iptables图形管理工具的设计与实现—论文内容摘要:

ables 添加、删除、替换和插入规则,并可以实现基于状态检测防火墙的规则。 系统设计模式 本系统采用 B/S 开发模式,即浏览器 /服务器模式。 这种模式可以节约客户端资源,客户端在不用安装任何软件的 条件下即可使用该系统。 该系统由以下四大部分组成: Iptables 配置主页, Iptabels 各功能界面,客户端表单验证,Iptabels 相关文件及操作。 第 5 页 共 22 页 图 1 系统业务流程图 4 开发环境及工具 开发环境 表 1 开发环境表 类型 软件 版本 OS Linux Red Hat WebServer JDK Tomcat 浏览器 Inter Explorer 以上 JDK JDK 是 Java 开发工具包( Java Development Kit)的缩写。 它是一种用于构建在 Java 平台上发布的应用程序, Applet 和组件的开发环境和运行环境。 JDK是一切 Java 应用程序的基础,所有的 Java 应用程序是构建在这个之上的。 它包括一组 API 和 JRE( Java 虚拟机),这些 API 也可以说是一些 Java Class,是构建 Java 应用程序的基础,而 Java 虚拟机是运行这些程序的基础。 JSP JSP技术为创建显示动态生成内容的 Web页面提供了一个简捷快速的方法。 JS Iptables 主页 判断用户输入数据是否合法 iptables 相关配置文件 用户数据执行结果 非法数据 合法数据 第 6 页 共 22 页 P技术设计的目的是使得构造基于 Web的 应用程序更加容易和快捷,而这些应用程序能够与各种 Web服务器、应用服务器、浏览器和开发工具共同工作。 JSP页面由Web服务器中的 JSP引擎执行 , JSP引擎接受客户端对 JSP页面的请求 ,并且生成 JSP页面给客户端的响应。 JSP引擎实际上是把 JSP标 签、 JSP页中的 Java代码连同静态 HTML内容都转换为 Java代码 ,这些代码块被 JSP引擎组织到 Java Servlet中 ,然后 Servlet自动把它们编译成 Java字节码 , 这些字节码由 Java虚拟机 (JVM)解释执行。 Tomcat Tomcat 是一个免费的开源 的 Serlvet 容器,它是 Apache 基金会的 Jakarta项目中的一个核心项目,由 Apache, Sun 和其它一些公司及个人共同开发而成。 由于有了 Sun 的参与和支持,最新的 Servlet 和 Jsp 规范总能在 Tomcat 中得到体现。 Tomcat 不仅仅是一个 Servlet 容器,它也具有传统的 Web 服务器的功能:处理 Html 页面。 但是与 Apache 相比,它的处理静态 Html 的能力就不如 Apache。 我们可以将 Tomcat 和 Apache 集成到一块,让 Apache 处理静态 Html,而 Tomcat处理 Jsp 和 Servlet。 这种集成只需要修改一下 Apache 和 Tomcat 的配置文件即可。 开发工具 Eclipse 是一个非常优秀的集成开发环境 ,它旨在简化用于多操作系统软件工具的开发过程 ,可以用于管理多种开发任务 ,其中包括测试、性能调整以及程序调试等 ,而且还可以集成来自多个供应商的第三方应用程序开发工具。 通过集成大量的插件 ,Eclipse 的功能可以不断扩展 ,以支持各种不同的应用。 Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。 就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。 幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具( Java Development Tools, JDT)。 5 系统 构成 本系统主要由系统 JSP前台页面, Java Bean, Java源代码, Linux下 Iptables防火墙配置文件组成。 JSP 前台做用户交互及数据传递操作; Java Bean 可以提高代码的利用率,它封装了一些本系统重复使用的 Java 源代码,如:读文件操作; Java源代码是嵌入到 JSP程序中的,它实现一些基本的简单的功能; Iptabels配置文件 ,是用户在修改防火墙设置时,用于被 Java 程序修改的。 第 7 页 共 22 页 添加规则功能模块 本功能模块主要是为添加 Iptables 防火墙规则所用,根据用户输入的源 /目的 IP,源 /目的端口号,协议类型,链名等,修改 Iptables 的配置文件,将用户添加的规则放到 Iptables 配置文件中相应规则链的第一个。 用户在完成添加后,重启防火墙,所添加的规则即可生效。 删除规则功能模块 本功能模块是为用户删除 Iptables 防火墙相应规则设计的。 用户需要在前台 JSP 页面中,输入欲删除的 Iptables 防火墙规则编号及规则链名,即可完成删除规则的操作。 用户在完成删除后,重启防火墙后规则生效。 插入规则功能模块 本功能模块是为用户插入 Iptables 防火墙相应规则设计的。 用户可以利用此功能模块,向 Iptables 防火墙插入新的规则,新的规则在用户指定插入位置之前。 用户完成操作后,重启防火墙,新规则生效。 替换规则功能模块 本功能模块是为用户替换 Iptables 防火墙中已存在的规则设计的。 用户在前面页面中输入欲替换的规则编号及替换后的规则,就可以替换 Iptables 中的相应规则。 用户 完成操作后,重启防火墙后,规则生效。 状态机制功能模块 本功能模块可以把 Iptables 配置成基于状态检测的防火墙。 用户可以根据JSP 前台提供的选项完成相关配置工作,相关配置会自动写入 Iptables 配置文件中。 配置这种状态型防火墙可以提高 Iptabels 的工作效率。 同样,用户完成配置后,重启防火墙后,规则生效。 防火墙关闭 /启动功能模块 本功能模块完成 Iptables 防火墙的关闭 /启动操作。 用户只需在前台点击相应按钮,就可实现防火墙的关闭 /重启操作。 防火墙重启模块 本功 能模块完成防火墙的重启功能。 当用户配置完防火墙后,可以通过此模块功能重新启动防火墙,实现加载新规则功能。 第 8 页 共 22 页 读取防火墙配置文件 /规则链模块 本功能完成在前台读取防火墙配置文件 /规则链的功能。 方便用户随时查看防火墙的工作状态及确定配置规则是否生效。 6 系统设计 图 2 系统主页 前台主页是配置防火墙的主要页面。 前台主页包括:基本设置,高级和Iptables 的连接。 基本设置中有添加、删除、替换和插入规则功能;高级中有状态机制,通过状态机制的相关选项可以把防火墙配置成有状态机制的防 火墙;Iptables 操作栏中有关闭、启动、重启和删除所有规则的选项,每个选项完成相关操作;页面最上面有配置文件, Iptables 规则链和帮助的连接,通过这些连接,用户可以轻松查看防火墙的相关状态。 第 9 页 共 22 页 图 3 基本功能页面 基本设置中包括:插入、替换、删除、添加功能。 四个功能的基本输入基本相同 用户输入如下: 表 2 基本功能输入数据表 类 别 合 法 值 初始值 链 名 INPUT/OUTPUT INPUT 规 则 ID 大于 1 的整数 空 协议类型 Linux 规定的协议编号 /协议名 空 IP 地 址 合法 IP 地址,点分十进制表示 空 端 口 号 整数表示,系统所有端口 空 动 作 ACCEPT/DROP ACCEPT 基本设置中的相关功能是通过 Java 程序,修改 Iptabels 配置文件,完成上述功能。 第 10 页 共 22 页 图 4 状态功能页面 状态机制可以通过相关选项把 Iptables 防火墙配置成基于状态检测型防火墙。 状态机制页面选项如下: 表 3 状态机制输入数据表 类 别 合 法 值 初 始 值 链 名 INPUT/OUTPUT INPUT 规 则 ID 大于 1 的整数 空 协议类型 Linux 规定的协议编号 /协议名 空 IP 地 址 合法 IP 地址 /网络号,点分十进制表示 空 端 口 号 整数表示,系统所有端口 空 状 态 NEW/ESTABLISHED/RELATED/INVALID NEW 动 作 ACCEPT/DROP ACCEPT Iptables 操作功能设计 Iptables 操作功能包括:防火墙的关闭 /启动 /重启 /清空规则链功能。 每个功能有一个连接,(如主页图所示),点击连接后即可完成相关操作。 上述功能是通过 Java 调用 Linux 系统相关命令完成的。 第 11 页 共 22 页 Iptables 配置文件 /规则链读取功能设计 Iptables 配置文件 /规则链读取是通过主页页面上的相关连接完成的。 在系统后台读取通过 Java Bean 和调用 Linux 系统相关命令完成此项功能。 7 系统实现 基本设置及高级功能实现方法主要是通过对 Iptables 配置文件的修改完成相关操作。 修改 Iptables 配置文件是通过 Java 程序实现的。 Java 程序调用 Java IO 包,先完成 Iptabels 配置文件的备份操作,然后删除 Iptables 配置文件,再将备份文件读入程序中进行相应修改,修改完成后在原 Iptables 配置文件所在路径下创建新的 Iptables 配置文件并将修改后的数据写入其中,最后删除备份文件。 (完成添加规则功能)中 Java 程序片段 String s2=new String ( )。 File f=new File(/etc/sysconfig/Iptables)。 //iptabels 源文件 File f1=new File(/root/Iptables)。 //Iptables 备份文件 RandomAccessFile input=new RandomAccessFile(f,rw)。 RandomAccessFile output=new RandomAccessFile(f1,rw)。 input. seek(0)。 while((())!=null) { LineNum++。 } c=LineNum2。 //计算要写入规则的位置 //设置规则中需要用到的参数 lable[0]=s。 lable[1]=d。 lable[2]=p。 lable[3]=sport。 lable[4]=dport。 table=(chain_name)。 array[0]=(scrip)。 array[1]=(detip)。 array[2]=(protocol)。 array[3]=(scrport)。 第 12 页 共 22 页 array[4]=(detport)。 action=(action)。 Boolean ary2=array[2].equals(),ary3=array[3].equals()。 ary4=array[4].equals()。 %//判断协议、源 /目的端口是否为空 %if(ary2 amp。 amp。 (!ary3)){%//协议、源端口不能同时为空 jsp:forward page=// %} else if (ary2amp。 amp。 (!ary4)){% //协议、目的端口不能同时为空 jsp:forward page=// % } else if(!ary3 || !ary4) //源 /目的端口不同时为空的情况 { array[2]=array[2]+ m tcp。 for(int i=0。 i5。 i++) { if(array[i].equals()) { continue。 } else { array[i]=lable[i]+array[i]+。 s2=s2+array[i]。 } } }。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。