- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
基于嵌入式系统的网络硬件防火墙的实现
箭头表示函数的调用关系,该协议栈是一个较完整的TCP/IP协议栈,它提供标准的SOCKET API函数,非常方便用户来实现INTERNET通信。并集成了简单的路由协议,可以跨越网关收发数据。TCP/TP协议栈的实现都是通过调用图2框图来实现的。
3.1.3 各协议层下网络封包过滤的实现
实现了TCP/IP协议,在该基础上实现网络封包的过滤只是个原理的实现问题。在实现网络封包过滤时,一般不会直接在协议里面进行数据包的过滤,而是在TCP/IP协议栈的各个层次下嵌入用户过滤层,从而实现对改层数据包的过滤。比如要将PING程序的回显屏蔽掉,只要在传输层之上嵌入用户过滤层,该用户层作用是,当传输层向用户层提交接收到的以太网数据时,该用户层必须对所有的IP数据包进行检查。若检查到某个IP数据包含有PING请求时,该用户层就会将该数据包屏蔽掉,即它不会将该数据包提交到网络层的。若IP数据包正常时,它就会将数据包直接提交到网络层。这样,添加了该层协议之后,就可以对传输层的协议包进行过滤。同样的道理,可以在各个协议层下添加用户过滤层来实现各种协议数据包的过滤。具体的实现过程见图4:
3.1.4 USB2.0接口模块的实现
该模块采用CY7C68013,该芯片本身提供高速FIFO通道来实现通信数据到USB协议的转换,只要在程序初始化时,将该芯片置成SLAVE FIFO模式,那该芯片就会扮演一个协议转换器的角色。它的工作原理见图4。
由上图可以看出,LPC2210只要周期的查询标志位,来判断FIFO是满还是空,如果接收FIFO有数据就立刻将数据读进来进行处理;若发送FIFO满,这时就不能将数据发送到FIFO中。CY7C68013的初始化程序片段如下:
IFCONFIG = 0xCB; //设置68013工作在SLAVE FIFO模式
PINFLAGSAB = 0x98; //将FLAGA,FLAGB分别设置成FIFO满和空标志
FIFORESET = 0x02; //复位各个FIFO缓冲
FIFORESET = 0x04;
FIFORESET = 0x06;
FIFORESET = 0x08;
EP2FIFOCFG = 0x00;
//将FIFO设置成自动输出,并是传输数据宽度为16位
只要在CY7C68013中添加以上初始化程序,就可以将该芯片变成一个USB协议转换器,其传输速率可达10Mbyte/S。
3.2 PC机人机界面的实现
该部分软件可以称为上位机软件,主要是在WINDOWS环境下实现的用户界面。该用户界面一共分为四个部分:封包监视、日志查询、控管规则以及系统设置。这四个部分都是通过USB2.0接口与硬件防火墙进行通信,用户通过它们就可以很方便的实现对具体网络封包的过滤,对日志进行查询以及对网络控管规则的设置。
封包的监视:该模块就是指硬件防火墙根据用户设置的控制规则对网络封包进行过滤,当有网络封包被拦截之后,硬件防火墙会通过USB接口模块将拦截信息传给该模块。该模块接收到拦截信息后,就会在PC机上以一定的形式显示出来。
日志管理:该模块是用来设置查询条件并显示查询结果。该模块是非常实用的,用户可以从某个日志文件中查找符合条件的记录并显示,这极大的方便了用户对网络封包数据的分析。
控管规则:该模块是人机界面的最重要部分,它用来设置和显示应用程序以及网络数据的控管规则,这个模块需要提供对控管规则进行增加、修改和删除的功能按钮。比如,用户希望对某个IP地址或者IP范围进行屏蔽,就可以通过添加控制规则来实现该目的。
系统设置:该模块其实是一个辅助模块,由它来设置系统的配置参数。这些参数分为公共设置和报警设置,其中公共设置包括日志设置,是否自动启动以及是否显示欢迎界面。报警设置包括拦截时是否用声音报警和是否闪烁图标报警等。
4 结语
我们设计的针对个人PC用户的硬件防火墙,具有成本低,性能优越的优点,它可以极大的节约系统资源,为个人用户提供高效可靠的网络环境。随着网络的普及,个人网络硬件防火墙将会有很大的发展空间,它的出现将极大的保障用户的对网络访问的安全。
本文作者的创新点:用硬件实现软件防火墙的功能,更好的保障了工业现场用户对网络访问的安全。
本课题得到 江苏省十五"农业攻关项目"(BE2001380)经费资助.
参考文献:
[1] 谢希仁译。 TCP/IP协议族。北京:清华大学出版社,2001
[2] Jean J.Labrosse. MicroC/OS-II The Real-Time Kernel 。 北京:北京航空航天大学,2002
[3] Realt ek。RTL8019AS Realtek Full-Duplex Ethernet Controller with Plug and Play Function 。
Data Sheet。2001
[4] Philips。LPC2210 Users Manual 。Data Sheet 。2004
[5]Cypress。EZ-USB FX2 Technical Reference。Data Sheet 。2001
[6] 刘姝. 张新有. 李成忠。 基于linux的internet防火墙的设计实现。微计算机信息 2001年9期
来源:微计算机信息