基于S3C2440 处理器的嵌入式IPv6 防火墙设计

2018-02-14 22:06:12编辑:什么鱼 关键字:S3C2440  IPv6  防火墙

1 引言


在众多的网络安全设施中,防火墙是行之有效的重要网络安全设备,通过对网络通信进行筛选屏蔽以防未经授权的访问进出计算机网络。防火墙是位于可信网络和不可信网络之间的一道安全屏障,其最核心的任务就是管理和控制进出网络的通信量,它可以截获中途传输的数据包并进行处理,然后与事先定义好的安全策略规则相比较,并最终决定转发或丢弃该数据包。传统的防火墙通常位于一段网络的边界,它可以很好的过滤外界用户对内部网络的访问,但对内部网络的攻击却无能为力。针对此问题近年来关于新型防火墙的研究有很多,如分布式防火墙系统,嵌入式防火墙系统等。这些系统的目的是将防火墙的边界延伸,使其能够遍布网络的每一个终端设备,构建全方位的安全防护网络。


现有防火墙系统大多是针对于IPv4开发的,由于IPv4地址空间不足,且安全性较差,现有网络升级到IPv6是大势所趋。IPv6 作为下一代网络的基础以其海量的地址空间和较强的安全特性得到广泛的认可,因此研究支持IPv6协议的防火墙是很有必要的。


以Intel Xscale IXP425 为核心处理器设计的嵌入式IPv6 防火墙,较好的实现了对网络中的数据包进行动态过滤。但其成本较高,且IXP425 强劲的网络处理性能在网络终端的应用中无法得以完全发挥。


基于U盘的嵌入式防火墙使用方便,设计新颖,但其需要依附于x86 电脑硬件平台,且U盘的可靠性较差,不适于长期使用。


通用ARM 处理器有较高的性价比和较多的软件支持,已广泛应用于生产生活的各个领域。本文通过对IPv6协议、IPv6安全机制和防火墙技术等方面的分析和研究,结合现有防火墙的特点,设计并实现了一个基于S3C2440 的嵌入式IPv6 防火墙系统。下面从硬件设计、软件设计和核心模块设计几个方面介绍该基于S3C2440的嵌入式IPv6防火墙。


2 嵌入式IPv6防火墙的硬件设计


嵌入式IPv6防火墙的硬件设计如图1所示,其主控芯片采用三星公司的32 位嵌入式处理器S3C2440.该处理器以ARM920T RISC 为核心,标准工作频率为400MHz(最高工作频率:533MHZ),运算能力为450MIPS,有强劲的处理能力。

图1 嵌入式IPv6防火墙硬件框图


S3C2440处理器内部结构复杂,功能强大,片上集成了很多硬件资源。如:外部存储控制器,USB 接口,UART接口,内部定时器,130 个通用I/O接口,24 通道外部中断源等。如此丰富的接口资源,可以很方便实现硬件电路的扩展。此外S3C2440 支持ARM920T 强大的指令集系统,具有独立的内存管理单元(MMU),支持NAND Flash启动引导,可以方便的实现Bootloader和嵌入式操作系统的移植。


系统的存储单元主要包括SDRAM 存储器和Flash存储器。SDRAM为系统程序的运行提供内存空间,本系统采用两片HY57V561620FTP-H(32M)并联,容量可达64MB.Flash用来存储程序,Flash分为NOR型和NAND型2种。NOR型Flash工艺复杂,成本较高,其优点是片内可执行应用程序,多用于存储系统的Bootloader 引导程序。NAND 型Flash 具有极高的存储密度和较快的写入和擦除速度且成本较低,适用于存储大容量数据和文件。考虑到S3C2440支持NAND Flash 启动引导,故本系统选用K9F1208U0M-YCB0(64MB)的NAND型Flash作为系统的Flash存储器。


系统的以太网接口单元采用2 颗10M/100M 自适应以太网控制器DM9000A.DM9000A 芯片是DEVICOM 公司研发的一款低功耗,高度集成,成本较低的单芯片快速以太网芯片,在嵌入式领域中使用非常广泛。它集成了物理层接口(PHY)、以太网媒体介质访问控制器(MAC)和外部处理器总线接口等。3.3V的工作电压,降低了系统的功耗。DM9000A 的高度集成简化了系统以太网电路的硬件设计,特别适合作为嵌入式IPv6防火墙的网络接口。

3 嵌入式IPv6防火墙的软件设计


嵌入式IPv6 防火墙系统的软件编写采用了模块化程序设计的方法。模块化编程有利于程序设计任务的划分,使程序易于编写和调试,便于检验和维护。


本系统将启动代码(Bootloader),Linux 操作系统(网卡驱动、协议栈),防火墙模块(智能包过滤,状态跟踪等)和WEB管理模块(Boa服务器)都编写成独立模块。


系统软件层次结构如图2所示。

图2 嵌入式IPv6防火墙软件层次结构图。


第一层:启动代码(Bootloader)。它是芯片复位后进入操作系统之前执行的一段代码,主要是为操作系统的启动提供基本的运行环境,如初始化CPU、初始化存储器系统等。本系统选用U-Boot 作为系统的Bootloader.


第二层:Linux 操作系统,屏蔽了对底层硬件的具体操作,为上层应用提供了丰富的支持,包括底层设备驱动,网卡驱动和网络协议栈等。在Linux操作系统下,开发者只需关注于应用软件编程,大大节省了系统的开发时间。


第三层:防火墙模块(智能包过滤,状态跟踪等),该模块是嵌入式防火墙系统的核心,其包括动态NAT 模块:负责对进出防火墙的数据包进行地址翻译;状态跟踪模块:维护网络的会话连接信息,协助智能包过滤模块进行连接状态的跟踪,是实现状态检测包过滤(动态包过滤)的关键模块;智能包过滤模块:根据访问控制表(ACL)对进出网络的数据包进行过滤,并对过滤规则进行统计,记忆和决策,动态优化过滤规则优先级列表,实现高速高效的包过滤处理功能。


第四层:WEB管理模块,以CGI语言为基础,构建Boa服务器平台。通过该模块用户可以方便地查看防火墙日志,添加或修改过滤规则,调整过滤规则的优先级,监控防火墙网络状态等。


4 防火墙核心模块设计


一个防火墙能否起到较好的过滤效果关键在于防火墙的核心过滤模块设计。本防火墙的核心过滤模块整体工作流程如图3所示。

  图3 嵌入式IPv6防火墙工作流程图。

  嵌入式IPv6防火墙的工作流程:

  (1) 当IPv6 数据包通过网络接口进入防火墙之后,首先将经过动态NAT模块进行网络地址翻译,其目的是将外部公网IP与内部私网IP相互映射。

  (2) 在完成动态NAT 之后,防火墙会遍历连接状态跟踪信息表判断该数据包是否属于一个已经存在连接。此连接状态跟踪信息表记录着已存在连接的源IP 地址、目的IP 地址、传输层的源端口号、目的端口和TCP 序列号等,通过这些信息防火墙可以高效快速的识别出该数据包是否属于一个已经存在的连接。

  (3) 如果该数据包不属于一个已经存在的连接,系统会调用智能数据包过滤规则集,并逐条遍历整个规则集。与此同时防火墙会动态地建立并更新过滤规则匹配信息表,根据该信息表,系统采用统计、记忆、概率和决策的智能方法对数据进行识别,动态地优化过滤规则优先级。智能的数据识别方法,消除了匹配检查所需要的海量计算,高效发现网络行为的特征值,直接进行访问控制,由于这些方法多是人工智能学科采用的方法,因此又称为智能访问控制技术。

  (4) 如果该数据包通过了过滤规则集的审查,或者该数据包属于一个已经存在的连接,防火墙会对数据包是否含有特定内容进行检测,此时防火墙仅仅对数据包的关键信息进行检测,因此大大加快了检测的效率和速度。

  (5) 如果该数据包未能通过状态跟踪安全策略,或者未能通过智能包过滤规则集,防火墙会拒绝或者丢弃该数据包,并进行日志记录。

  (6) 在数据包通过了上述的过滤和审查后,防火墙就会将该数据包转发到最终的目的地址,并且防火墙会在其连接状态跟踪信息表中为此次会话创建或者更新一个连接信息。防火墙将会使用这个连接项对返回的数据包进行过滤。

  5 结束语

  本文对防火墙技术做了深入研究,设计了基于S3C2440 处理器的嵌入式IPv6 防火墙。该防火墙实现了支持IPv6 协议的状态跟踪与智能包过滤相结合的动态包过滤。并成功搭建了远程WEB 管理平台,方便地管理过滤规则、防火墙日志和网络状态等。随着IPv6 网络的逐渐推广,包括防火墙在内的网络设备对IPv6网络的支持将成为必然趋势。因此基于ARM的嵌入式IPv6防火墙的应用前景也会越来越广阔。


关键字:S3C2440  IPv6  防火墙

来源: eefocus 引用地址:http://www.eeworld.com.cn/mcu/article_2018021437796.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:Keil MDK3.20 在ULINK下调试stm32方法
下一篇:μCOS-II 中USB 主机系统的设计

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

C51、STM32和S3C2440中断体系的比较

/* 名称:C51、STM32和S3C2440中断体系的比较 说明:对于这三个芯片的中断体系来说,就我目前了解的, 我说:差不多。这里说的差不多,是中断的本质上差不多,都是首先中断源提出申请(比如触发了外部中断,定时器中断等),然后经过中断源屏蔽寄存器,再然后中断优先级的比较,最后CPU相应中断。(我去,这好像又回到了计算机组成原理啊)。不同的是细节,C51作为低级一点的芯片,其中断少,中断能达到的功能也少,相对来说较为简单些(无论是设计还是具体使用)。而STM32和S3C2440来说,其提供的功能较多,设计起来和使用起来要复杂的多(使用的时候得配置好多好多寄存器)。目前总结的,差不多就是这些吧。*/
发表于 2018-07-21 14:40:54

S3C2440学习之GPIO按键控制LED灯

/* 名称:S3C2440学习之GPIO按键控制LED灯 说明:这是实验2440GPIO的输入功能。基本的流程和51单片机开发的差不多。都是对GPIO端口寄存器的控制不同的是,51单片机可以直接对进行位控制,而2440中GPIO只能对32位的寄存器进行写入或者读出。这样的话,对于有些逻辑操作要稍微复杂点。还有个不同的是,无论是STM32还是51在进行IO按键输入的时候,都需要进行按键消抖,在这里却没又体现出来按键消抖,这是为什么呢?据我了解是这样,在进行51和STM32实验的时候,按键控制的是数码管(数字增加,降低),所以按键的机械抖动会给数码管数字的变化带来显著的影响。在这里是按键控制led灯的亮和灭
发表于 2018-07-21 11:58:46

S3C2440 Linux下的I2C驱动以及I2C体系下对EEPROM进行读写操作

的I2C驱动子系统,相对硬件来说肯定必须得先有驱动。有了驱动从设备才能有效工作,才能软性的帮助适配器操控从设备工作。所以对于S3C2440开发板我们要知道: (1)2440中的I2C控制器(i2c-s3c2410)有一个驱动(s3c2440中的I2C适配器驱动基于platform实现)。这个用来操作控制器来产生特定的I2C的时序信号,来发送数据和接收数据。也就是让适配器工作。(2)挂接在I2C总线上的从设备AT24C02(e2prom)为例,它也有一个驱动,这个用来操作读写我们的芯片,读取和存放具体获得的数据。在Linux系统中,上述的两个驱动,第一个属于I2C总线驱动,第二个属于I2C
发表于 2018-07-15 22:30:09

STC12C5A60S2单片机的内置EEPROM的使用

EEPROM可以用来存储一些需要在掉电以后不丢失的数据,STC12C5A60S2单片机内部有1k byte的EEPROM,2个扇区,在编程的时候注意,对于一个扇区的数据都要一起写进去,即使不改也要重新写。测试的代码:#include <STC12C5A.H>#include"intrins.h"#include<stdio.h>   #define uchar unsigned char#define uint unsigned int#define ADC_POWER  0x80#define ADC_FLAG  
发表于 2018-06-20 22:30:54

STC 12C5A60S2串口2通信主要代码示例

用过stc12C5A60S2单片机的朋友都知道,该单片机有两个串口可用,看到官网的程序注释的也是比较多,所以自己写了个串口2使用的程序,由于代码相对简单,所以这里只罗列出了串口2的的初始化、发送和接收函数供大家参考。程序包含了STC12C5A60S2.H的头文件,这个网上都有,大家懂的。这个是初始化的函数,可以添加到程序中调用就可以了。这里是用了独立波特率发生器产生4800的波特率,晶振是24M,这个是用STC波特率计算机生成后添加了后面红字部分,大家如果用其他晶振或者波特率可以下个重新生成然后修改即可。void uart_2_Init(void)//4800bps@24MHz{AUXR &= 0xf7;  
发表于 2018-06-20 22:26:19

S3C2440内存控制详解

ROM datawidth是16位,当[1:0]=10时,booting ROM datawidth是32位,当OM[1:0]=00时,从NAND FLASH启动。在友善之臂S3C2440开发板上,OM1引脚直接接地。       依据这张表,可以查找到SDRAM的BANK选择引脚连接方式,比如,我们使用的SDRAM是2片HYNIX的HY57V561620(L)T,它的规格是4*4M*16bit(使用两片是为了配置成32位的总线宽度),BANK大小是4M*16=64MB,总线宽度是32位,器件大小是4*BANK大小=256Mb,寄存器配置就是(4M*16*4B
发表于 2018-06-05 20:53:25

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2018 EEWORLD.com.cn, Inc. All rights reserved