这里说的虽然是硬件防火墙,但几乎所有的工作都是软件工作。硬件防火墙的核心是软件。
在开发前,首先要清楚知道自已要需要的是什么类型的防火墙。同为硬件防火墙,大致可以分为高端以千兆为代表的主火墙,中端的百兆企业防火墙,以及低端家庭-小办公室的防火墙(SOHU-SMB)。这三个级别的防火墙的开发方式有很大的不同。高端千兆防火墙的代表产品包括Netscreen的 5000系列防火墙,以及Nodia-CheckPoint的IP720以上的产品,这级防火墙能够适应千兆要求的作业,吞吐量至少在600M以上。作为国内生产商目前要推出真正的千兆防火墙是很困难的,详情请参考:为什么实现千兆防火墙很困难
而作为低端家庭-小办公室产品的防火墙,主要受的是硬件成本的压力。这一级产品包括如Netscreen的50/25/5X系列, Fortigate的FG200和FG300,以及一些市场上的拨号器、宽带路由器都可以归属这档防火墙。工作特点多是单进单出,主要用在小局域网进出互联网的控制。考虑到一般公司出入互联网的通道充其量也就几兆,即使是LAN用户或CABLE MODEM,公共出口也仍是几兆。因此,自适应十兆/百兆的单进出小防火墙基本上可以满足要求。事实上有些几百人的公司使用win98+sysgate拨号,也是自我感觉良好,可见这一档次的上网防火墙性能要求并不高;价格也是维持在两万元以下。但对于使用X86架构的防火墙来说,要求再低硬件也是有几千元的;连上软件成本,这两万元简直无法维持。因此,这一级防火墙的主要开发方式,是选择合适的嵌入式系统,通常是Linux,连硬件和软件整套买进来,自已添加其中的防火墙应用程序。这种防火墙主要的系统开发工作由各嵌入系统的供应商完成,而系统功能也弱,留给生产商的软件施展空间也不大,所以更象是一项硬件采购项目。连同最低采购限额(一般是一千)和软件开发,大致在一百万左右就可以拿下一个产品。这种防火墙,虽然也是“硬件防火墙”,但不是我们本文的重点。
本文介绍的,是中档的企业级百兆防火墙的开发的主要步骤。这一级防火墙,是目前企业采购的主要对象,也是最需要的产品类型。国产防火墙,基本上集中在这个区间,操作系统一般选用开源的Linux或者BSD;相比之下,BSD的应用程序升级速度不算快,所以大部分防火墙选用的是Linux。
要决定开发一个百兆的防火墙,需要选定一款合适的服务器主板,或者工控机,另外就是要选定一个好的网卡,通常是服务器专用网卡。虽然象Linux 这样的操作系统可以自动适应不同的主板,(只要它符合象PC2000这样的标准),Linux的最新内核也总能支持较新的主板的性能,(如PIII的超线程);但每个主板和CPU之间还是有少许不同的;作为一个防火墙,除非对极端性能要求不是太严格,否则,需要针对主板和CPU的一些特性,如寄存器, SMP,超线程等等对内核进行针对性的修改和优化,否则,默认的内核就只能使用这些主板/CPU最基本的部分。举个例子说,防火墙有一个重要的性能指标叫最大会话数速率,或称每秒最大生成会话数,如果使用普适形的内核用到P3CPU上,能够达到的最大数值大致也就只有几千;但经过对针对主板设计(这种说明可以从主板和CPU厂商获取)进行优化,可以把性能提高到3-5万左右。同样,单纯升级主板和CPU不见得能提高性能,象把防火墙从P3升级到P4,如果没有支持P4的特殊性能,如超线程,最大会话能力就仍与P3没有区别,不如不升值,还可以减点成本。而专门的优化,则可以把性能达到50万,这也是这类防火墙的使用Intel架构主板目前所能达到的极限。针对选定硬件的优化工作尽管独立于防火墙开发的主体软件工作,一般情况下也不会显出它的必要性,但当防火墙进行极端的使用环境或评测环境时,显出的差距就非常大。针对网卡的开发驱动程序除了优化性能外,另一个目的就是要把防火墙与网关绑定在一起,以免被盗版。这个驱动程序与定造的防火墙内核一起,就令盗版显得困难得多了。
防火墙软件的开发工作主体就是防火墙管理软件的开发。对此,架构师要明白自已到底要开发那一种防火墙,防火墙的管理思路是什么。在几年前这种开发显得简单,就是用一些web调用的程序,(另一种办法是用dephi写windows程序,通过特定端口服务控制防火墙,调用预设程序,原理也是一样的),直接调用Linux的防火墙管理工具如ipchains;其余的工作主要就是预先编好若干类的默认配置(相当于template)。因此开发难度不算大,十来个人一年半载总能完成;大批国产防火墙就是这样开发出来的。这种防火墙,对于熟悉Linux防火墙的高手来说是不必要的,自已用 Ipchains就可以达到同样的目的。因此,今天这种防火墙已经摆不上台面了。今天的防火墙主要是从便于管理着手,着眼于管理员可以较易对大量、复杂、多半的政策进行维护,这就需要开发“面向对象管理的防火墙”。这样一来,使用把 ipchains/iptables单纯用PHP或delphi图形化是不足够的,事实上,这时侯单纯使用如iptables已经很难满足要求,开发者常常必须开发自已的象iptables那样的防火墙管理工具。这部分的工作非常庞大。
作为防火墙的载体的操作系统和防火墙的内核也是一个工作重点。防火墙作为网络的第一道防线,不可以使用默认设置的操作系统,除了最必要的服务以外,所有东西都必须删除。因此,企业级防火墙基本上是使用的是嵌入式操作系统的开发方式,通通常是形成一个在内存中运行的安全操作系统,如同一个无盘的工作站。防火墙必须长时间无故障工作,还要应付可能有的突然断电等现象,所以,一般情况下禁止连接系统硬盘,以免造成断电损坏。防火墙的固存一般都不大, 16M到32M就绰绰有余了。有些防火墙厂商没有能力做到这一步,就使用大容易的FLASH作为系统盘,其实是非常危险的。原因在于flash的写性能差,可写次数只在千次数量级,而Unix类的文件系统读与频繁,因此极易造成flash上数据的丢失;而且一旦发生断电关机,如果仍然有系统盘安装在目录上,很可能造成文件系统的损坏,最终结果,即使最后可以抢救过来,也会给用户防火墙质量不过关的印象。
防火墙的内核也是一项不可少的工作内容。目前一般的防火墙都是使用netfilter作为防火墙的内核,而且都要求添加一定数量的防攻击性能。参考netfilter的深入应用举例。但有些防火墙产品把这项工作扩大化,希望由内核完成如IDS、防病毒的工作,尽管可以办到,但对防火墙的基本性能会造成严重的损害。
企业级的防火墙需要有多种远程管理工具,方法一般有三种,ssl+http,远程的secure shell,或者使用专用客户端工具。无论是那一种,都是基于同样的在防火墙预定的用户管理程序工作,这些管理程序被调用后,就与防火墙的接口管理程序(象iptables,或自编写的接口程序,象图腾ObjectMgr)互动,完成防火墙的管理工作。这部分的工作也是比较大的。象防火墙可以允许用户用 ssh登录,但却不可能允许直接返回root shell(太危险了),于是就必须开发一个安全的shell作为第一重接口,这样,开发者就相当于自已开发了一个BASH一类的解释程序了。对远程访问的安全控制是防火墙的一处重点,常常要结合管理机限制,IP/MAC限制,密码、证书认证等多重安全手段。否则,否许所有人都试图登录防火墙,防火墙本身就很危险,根本谈不上网络的安全性。
完成以上的工作后,再完成最先谈到的web-ssl管理界面,或者是delphi(或C++)的客户端管理工具。防火墙就基本上成形了,区别只在于用户是不是觉得你的管理工具好用不好用而已。(许多程序员认为防火墙工程不大,其实是他们的脑海中以为防火墙的研发只有这个图形管理界面一项而已)。但即使这样,作为防火墙的研发工程还远远没有完成。开发者常常还必须向防火墙添加VPN(这也是一个巨大的工程),代理服务器(如是要加,就要写多种协议的代理服务器),如PPPOE拨号,是否还要加会话认证;以及HA和负载平衡,以及支持透明模式接入;是否支持外部帐号管理,等等。
前文这些工作终于都完成了,大概可以松一口气交功课了吧?的确是这样,假如您不介意你的防火墙有BUG的话!否则,这个工程顶多只完成了一半。下面的工作就是编写测试实例进行测试。硬件防火墙由于对软件硬化处理,而且长时间无间断运行,因此,对软件的质量要求非常高。测试者至少要编写以下三种测试实例进行测试:1)程序中是否有内存对象没有清除;程序中残留有对没有clear是经常的事,象windows的程序就有这个毛病,所以windows 开了一段时间后就要重启以便空出内存;在防火墙中这个要求严格得多,一个半个的对象残留对普通的软件项目没什么大不了的,但对于防火墙是致命的;防火墙的系统资源会在很短的时间内就完全被这个BUG吃光。2)使用防火墙的管理工具生成每指定的政策实例时,是否做到该放行的包放行,不该放行的包不放行;3)防火墙的极限工作条件;也不是如最大会话这样的测试,这些需要专门的测试工具如smartbit;高性能的防火墙还需要外包测试,因为设备太贵。如果防火墙集成了如VPN,IDS,防病毒等功能,还必须进一步编写测试实例,测试在启动这些功能时防火墙的其他性能的下降情况。
防火墙软件系统的测试是一项最耗时最耗力的工作,占了整个开发成本至少一半以上,任何一个测试通不过,都要重新debug,重新测试,直到测试完全通过为止。如果一个模块测试返工三次就通过,那个程序员一定是很优秀的;如果通过六七次,实在很正常;就算十次才通过,也不算是丢脸的。在这种反反复复的工作中,开发者就会发现,象前文说的那样把程序分成几个独立的层面分别开发,分别测试,文档完整,具有无可比拟的优势。否则,这样的开发工程那怕一千人做,做一百年都做不完。
只有完成测试工作,防火墙就算过关了。整个工程100人如果能够在一年里做完,就要谢天谢地了。开发一个企业级防火墙需要上千万人民币,各位朋友现在是不是理解一点了?同样,在几年前几个人做个管理界面调用ipchains,当然也是一个防火墙,的确也不是弄虚作假。只不过,在于各个厂商的选择而已。
(http://www.fanqiang.com)
原文链接:http://www.daifusecure.com/articles/FWhowto.php
相关推荐
防火墙开发源代码
该文件为一个防火墙开发的源代码文件,大家可以拿去分析一下
Linux内核防火墙设计与开发——报告版
本次实验主要是针对于防火墙过滤功能的设计,通过在5个检查点NF_INET_PRE_ROUTING、NF_INET_LOCAL_IN、NF_INET_FORWARD、NF_INET_LOCAL_OUT、NF_INET_POST_ROUTING中hook自定义的对数据包的检查函数,即可实现对数据包的检查过滤。注:由于使用的是wsl2子系统的linux,主机pingLinux时,主机的数据包会经过一个网关发送给Linux,Linux的回应数据包也是发送到网关处,故主机的数据包的源地址会被修改为相应的网关地址。
Unity游戏开发:从零开始适配Nintendo Switch的完整指南
本文详细介绍了如何使用Unity进行Nintendo Switch游戏开发的完整流程,包括开发环境搭建、Unity工程适配、手柄与硬件特性开发、存储与性能优化等关键步骤。特别强调了Switch SDK的配置、输入系统改造和内存优化技巧,帮助开发者高效完成跨平台适配。
华为防火墙项目
华为防火墙练习项目
如何在项目中集成bpmn-process-designer
文章目录一、bpmn-process-designer是什么?二、使用步骤1.将下面地址的代码下载到本地2.替换dependencies和devDependencies3.拷贝package目录4.在main.js引入代码5.拷贝src5.拷贝App.vue代码注意事项 一、bpmn-process-designer是什么? bpmn-process-designer是一个基于 bpmn.js,Vue 2.x 和 ElementUI 开发的流程设计器(前端部分),支持监听器,扩展属性,表单等配置,可自由扩展
AI驱动的研发流程:定义高度专业和系统化的规划基准
在人工智能(AI)浪潮席卷全球的今天,软件研发的范式正经历着一场深刻而迅速的变革。AI技术的渗透,从最初的辅助工具角色,正逐步演变为驱动整个研发流程的核心引擎。传统的研发流程和项目管理方法论,在面对AI带来的高效率、高智能以及高复杂性挑战时,显得力不从心。企业对快速交付高质量软件产品、有效控制风险、并保证全流程可追溯性的需求日益迫切。
windows网络防火墙开发二三事
<br />网络防火墙开发二三事<br />- haoxg - <br /><br />花了近一个月的时间研究 Windows 平台下的网络防火墙相关技术,并实现了一个简单的防火墙。<br />在独自摸索的过程中,由于以往的开发经历从未涉及此领域,所以碰到了不少困难,也走了些弯路。<br />现此项目暂告一段,遂将相关心得整理成文。文章以归纳总结为主,没有创新性技术,高手免看。 <br /><br />◎ 防火墙的数据包拦截方式小结 <br /><br />网络防火墙都是基于数据包的拦截技术之上的。在 Wi
UE 顶点动画工具 (VAT)
导入模型需要勾选全精度UV。
开发硬件防火墙的主要步骤[zz]
这里说的虽然是硬件防火墙,但几乎所有的工作都是软件工作。硬件防火墙的核心是软件。 在开发前,首先要清楚知道自已要需要的是什么类型的防火墙。同为硬件防火墙,大致可以分为高端以千兆为代表的主火墙,中端的百兆企业防火墙,以及低端家庭-小办公室的防火墙(SOHU-SMB)。这三个级别的防火墙的开发方式有很大的不同。高端千兆防火墙的代表产品包括Netscreen的 5000系列防火墙,以及Nodia-
[DDR5] 模式寄存器 Mode Register MRR/MRW
模式寄存器用于定义各种操作模式。在初始化过程中,可以通过重新执行MRS命令来更改模式寄存器的内容。
海上通信技术发展与研究综述
通过对海浪模型、节点运动特性、天线辐射特性等进行特征深度学习,考虑改变有效链路的持续时间、业务类型和容量的区别,以及卫星和节点的仰角等,改变通信策略,设计动态波束成形算法,优化折中浮标天线增益和波束宽度,适应海上环境,尤其是海浪运动时变的特性。目前的海上通信系统,同时包括海上无线通信系统、卫星通信系统、岸基通信系统、船载基站通信系统、空中基站通信系统等不同方法组成的通信系统来满足不同的需求,如海上无线通信系统通信成本低廉、卫星通信系统具有广域的覆盖范围、岸基通信网络可以实现数据高速传输。
硬件防火墙和软件防火墙的区别有哪些?
硬件防火墙和软件防火墙的区别有哪些?
第15章 AI 产品原型设计 —— 让 AI 成为你的产品经理
理解产品需求- 将模糊的想法转化为具体的原型方案生成高质量原型- 输出符合设计规范的 HTML 原型提供设计建议- 基于 UX 最佳实践给出优化建议维护原型文档- 自动更新原型说明和变更记录。
防火墙硬件还是软件_防火墙是硬件还是软件设备_零开始网络安全技巧
防火墙既是硬件设备,也是软件设备,它是由软件和硬件设备组合而成的。防火墙是通过有机结合各类用于安全管理与筛选的软件和硬件设备
PCB板Gerber文件的理解和制作
Gerber文件是PCB生产的关键文件,主要包括:1)走线层(GTL/GBL);2)阻焊层(GTS/GBS);3)丝印层(GTO/GBO);4)板框层(GMx/GKO);5)钢网层(Gtp/GBp);6)钻孔文件(NCdrillFiles)。其中1-10项和15项钻孔文件必须提供,建议包含11-14项辅助钻孔层。Gerber文件不含过孔属性,需提前在AD中设置过孔盖油。导出步骤包括:导出非机械层、机械层和钻孔层,新版AD可通过"文件->制造输出->GerberFiles"操作
LinePhone3.2.7(android端最新版本) sip客户端
SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/
硬件防火墙的开发过程
硬件防火墙的开发过程 (2007-12-28 10:55:51) 转载▼ 标签: 杂谈 分类: 安全文档 这里说的虽然是硬件防火墙,但几乎所有的工作都是软件工作。 硬件防火墙的核心是软件。 在开发前,首先要清楚知道自已要需要的是什么类型的防火墙。同为硬件防火墙,大致可以分为 高端以千兆为代表的主火墙, 中端的百兆
蓝牙模块HM-10手册
蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。
防火墙硬件还是软件/硬件防火墙介绍_零开始白帽子自学路线
硬件防火墙是保障内部网络安全的一道重要屏障。它的安全和稳定,直接关系到整个内部网络的安全,下面由学习啦小编给你做出详细的硬件防火墙介绍!希望对你有帮助!欢迎回访!
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
linux防火墙_硬件防火墙和软件防火墙的区别有哪些?
什么是防火墙? 防火墙,指由软件和硬件设备组合而成、在内部网和外部网之间、局域网与外网之间的保护屏障。就像架起了一面墙,它能使网络之间建立起一个安全网关,从而保护内部网免受非法用户的侵入。熟悉互联网的朋友一定对防火墙不陌生,不管是电脑自带的防火墙还是,还是一般的软件防火墙,或者硬件防火墙,多多少少都有些了解。在这个时代,计算机病毒已是常态,如何阻止外部黑客访问你的系统和敏感数据?最简单...
硬件防火墙 与软件防火墙
硬件防火墙是通过硬件和软件的组合来达到隔离内外部网络的目的;软件防火墙是通过纯软件的的方式实现隔离内外部网络的目的。 硬件防火墙的抗攻击能力比软件的高很多,首先因为是通过硬件实现的功能,所以效率就高,其次因为它本身就是专门为了防火墙这一个任务设计的,内核针对性很强。内置操作系统也跟软件防火墙的不一样。不像软件防火墙那样,哪怕你用到的只是防火墙,它依然还得装入很 多不相干的模块;再说操作系统不是
国产硬件防火墙横向对比
防火墙从形式上可分为软件防火墙和硬件防火墙。此次,我们主要介绍硬件防火墙。防火墙一般是通过网线连接于外部网络接口与内部服务器或企业网络之间的设备。它又分为普通硬件级别防火墙和“芯片”级硬件防火墙两种。所谓“芯片”级硬件防火墙,是指在专门设计的硬件平台,其搭建的软件也是专门开发的,并非流行的操作系统,因此可以达到较好的安全性能保障。目前,在这一层面我们主要介绍国内四...
高防服务器的机房硬件防火墙类型和主要功能
高防服务器对DDoS攻击流量进行拦截主要是依靠硬件防火墙完成的,可以说防火墙的质量对高防服务器的防御功能有很大的影响,因而无论是国内的机房还是国外的机房,对硬件防火墙的选择都非常重视,由于国内很多防火墙发展非常迅速,很多国内的防火墙不但在国内机房中广泛使用,而且在国外的机房中也非常常见,下面我们就介绍一下几款国内高防服务器常用的防火墙。 1、金盾抗DDOS防火墙 金盾抗DDOS防火墙是一款针对ISP接入商、IDC服务商开发的专业性比较强的专业防火墙。测试的效果表明,目前的防御算法对所有已知的拒绝服务攻击是免
开发硬件防火墙的构想
这里说的虽然是硬件防火墙,但几乎所有的工作都是软件工作。硬件防火墙的核心是软件。在开发前,首先要清楚知道自已要需要的是什么类型的防火墙。同为硬件防火墙,大致可以分为高端以千兆为代表的主火墙,中端的百兆企业防火墙,以及低端家庭-小办公室的防火墙(SOHU-SMB)。这三个级别的防火墙的开发方式有很大的不同。高端千兆防火墙的代表产品包括Netscreen的 5000系列防火墙,以及Nodia-
waf防火墙/防火墙是硬件设备吗-手把手教网络安全详细教程
国产厂商硬件防火墙对比解析综述防火墙从形式上可分为软件防火墙和硬件防火墙。此次,我们主要介绍硬件防火墙。防火墙一般是通过网线连接于外部网络接口与内部服务器或企业网络之间的设备。
解决方案-防火墙硬件平台有哪些种类-零基础信息安全知识点
硬件防火墙,是通过硬件和软件的组合来达到隔离内外部网络的目的;而软件防火墙,是通过纯软件的的方式,实现隔离内外部网络的目的。
1003



被折叠的 条评论
为什么被折叠?



