Linux安全网关接口SGI的设计与实现

合集下载

计算机常用术语

计算机常用术语

计算机常用术语服务器c2c: card-to-card interleaving,卡到卡交错存取cc-numa(cache-coherent non uniform memory access,连贯缓冲非统一内存寻址)chrp(common hardware reference platform,共用硬件平台,ibm为powerpc制定的标准,可以兼容mac os, windows nt, solaris, os/2, linux和aix等多种操作系统)emp: emergency management port,紧急事件管理端口icmb: inter-chassis management bus, 内部管理总线mpp(massive parallel processing,巨量平行处理架构)mux: data path multiplexor,多重路径数据访问通信cti:computer telephone integration,计算机电话综合技术dbs: direct broadcast satellite,直接卫星广播dwdm: dense wavelength division multiplex,波长密集型复用技术mmds: multichannel multipoint distribution service,多波段多点分发服务pcm: pulse code modulation,脉冲编码调制pstn(public switched telephone network,公用交换式电话网)tapi: telephony application programming interface,电话应用程序接口tsapi: telephony services application programming interface,电话服务应用程序接口wdm: wavelength division multiplex,波分多路复用游戏act(action,动作类游戏)arpg(action role play games,动作角色扮演游戏)avg(adventure genre,冒险类游戏)dan(dance,跳舞类游戏,包括跳舞机、吉它机、打鼓机等)dc(dreamcast,世嘉64位游戏机)etc(etc,其它类游戏,包括模拟飞行)ffj: force feedback joystick(力量反匮式操纵杆)fpp(first person game,第一人称游戏)ftg(fighting game,格斗类游戏)gb(game boy,任天堂4位手提游戏机)gbc(game boy color,任天堂手提16色游戏机)gg(game gear,世嘉彩色手提游戏机)fc(famicom,任天堂8位游戏机)fps(frames per second,帧/秒)fr(frames rate,游戏运行帧数)mac(macintosh,苹果电脑)n64(nintendo 64,任天堂64位游戏机)sfc(super famicom,超级任天堂16位游戏机)slg(simulation game,模拟类游戏)spg(sports games,运动类游戏)srpg(strategies role play games,战略角色扮演游戏)stg(shoot game,射击类游戏)ss(sega saturn,世嘉土星32位游戏机)pc(personal computer,个人计算机)ps(play station,索尼32位游戏机)ps(pocket station,索尼手提游戏机)rac(race,赛车类游戏)rts(real time strategies,实时战略)rpg(role play games,角色扮演游戏)tab(table chess,桌棋类游戏)网络adsl: asymmetric digital subscriber line,不对称数字订阅线路ah: authentication header,鉴定文件头amr(audio/modem riser,音效/数据主机板附加直立插卡)arp(address resolution protocol,地址解析协议)atm(asynchronous transfer mode,异步传输模式)bod(bandwidth on demand,弹性带宽运用)cbr(committed burst rate,约定突发速率)ccirn: coordinating committee for intercontinental research networking,洲际研究网络协调委员会ccm(call control manager,拨号控制管理)cdsl: consumer digital subscriber line(消费者数字订阅线路)cgi(common gateway interface,通用网关接口)ciea: commercial internet exchange association,商业因特网交易协会cir(committed infomation rate,约定信息速率)cts(clear to send,清除发送)dbs-pc: direct broadcast satellite pc(人造卫星直接广播式pc)dce: data circuit terminal equipment,数据通信设备des: data encryption standard,数据加密标准dmt: discrete multi - tone,不连续多基频模式dns(domain name system,域名系统)docsis(data over cable service interface specifications,线缆服务接口数据规格)dte: data terminal equipment,数据终端设备ebr(excess burst rate,超额突发速率)esp: encapsulating security payload,压缩安全有效载荷fdm: frequency division multi,频率分离flow-control流控制fricc: federal research internet coordinating committee,联邦调查因特网协调委员会ftp(file transfer protocol,文件传输协议)ghost:(general hardware oriented system transfer,全面硬件导向系统转移)hdsl: high bit rate dsl,高比特率数字订阅线路http(hypertext transfer protocol,超文本传输协议)icmp(internet control message protocol,因特网信息控制协议)ietf(internet engineering task framework,因特网工程任务组)ike: internet key exchange,因特网密钥交换协议imap4: internet message access protocol version 4,第四版因特网信息存取协议internet(因特网)ip(internet protocol,网际协议)isdn(integrated service digital network,综合服务数字网络)isoc: internet society,因特网协会isp(internet service provider,因特网服务提供商)lan(local area network,局域网)ldap: lightweight directory access protocol,轻权目录访问协议lom(lan-on-montherboard)iab: internet activities board,因特网工作委员会ietf: internet engineering task force,因特网工程作业推动l2tp(layer 2 tunneling protocol,二级通道协议)lmds: local multipoint distributed system,局域多点分布式系统mime: multipurpose internet mail extension,多用途因特网邮件扩展协议mnp: microcom networking protocalmodem(modulator demodulator,调制解调器)nat(network address translation,网络地址转换)nc(network computer,网络计算机)nds: novell directory service,novell目录服务nntp: network news transfer protocol,网络新闻传输协议msn: microsoft network,微软网络ofdm(orthogonal frequency division multiplexing,直角频率部分多路复用)p3p(privacy preference project,个人私隐安全平台)pds: public directory support,公众目录支持pgp: pretty good privacy,优良保密协议pics: platform for internet content selection,因特网内容选择平台pof: polymer optical fiber,聚合体光纤pop3: post office protocol version 3,第三版电子邮局协议pptp: point to point tunneling protocol,点对点通道协议radsl: rate adaptive dsl,速率自适应数字订阅线路rarp(reverse address resolution protocol,反向地址解析协议)rdf: resource deXion framework,资源描述框架rsa(rivest shamir adlemen,一种因特网加密和认证体系)rts(request to send,需求发送)sis: switched internetworking services(交换式网络互联服务)s/mime: secure mime,安全多用途因特网邮件扩展协议snmp(simple network management protocol,简单网络管理协议)smtp(simple mail transfer protocol,简单邮件传输协议)skip: simple key exchange internet protocol,因特网简单密钥交换协议sua(single user account,单用户帐号)tcp(transmission control protocol,传输控制协议)uart(universal asynchronous receiver/transmitter,通用异步接收/发送装置)udp(user datagram protocol,用户数据报协议)uls: user location service,用户定位服务vod: video on demand,视频点播vpn: virtual private network, 虚拟局域网www(world wide web,万维网,是因特网的一部分)编程api(application programming interfaces,应用程序接口)ascii(american standard code for information interchange,美国国家标准信息交换代码) atl: activex template library(activex模板库)basic:beginner's all-purpose symbolic instruction code(初学者通用指令代码)com: component object model(组件对象模式)dna: distributed internet application(分布式因特网应用程序)mfc: microsoft foundation classes(微软基础类库)sdk(software development kit,软件开发工具包)windowsce(consumer electronics,消费电子)dcom: distributing component object model,构造物体模块dhcp: dynamic host configuration protocol,动态主机分配协议dmf: distribution media formatgdi(graphics device interface,图形设备接口)gui(graphics user interface,图形用户界面)gpf(general protect fault,一般保护性错误)hta: hypertext application,超文本应用程序inf file(information file,信息文件)ini file(initialization file,初始化文件)ndis: network driver interface specification,网络驱动程序接口规范nt(new technology,新技术)qos: quality of service,服务质量rrvp: resource reservation protocol(资源保留协议)rtos(real time operating systems,实时操作系统)sbfs: simple boot flag specification,简单引导标记规范vefat: virtual file allocation table(虚拟文件分配表)(vxd,virtual device drivers,虚拟设备驱动程序)wdm(windows driver model,视窗驱动程序模块)winsock: windows socket,视窗套接口whql: windows hardware quality labs,windows硬件质量实验室whs: windows Xing host,视窗脚本程序zam: zero administration for windows,零管理视窗系统加密ecc: elliptic curve crypto(椭圆曲线加密)set: secure electronic transaction(安全电子交易)语言css: cascading style sheets,层叠格式表dcd: X content deXion for xml: xml文件内容描述dtd: X type definition,文件类型定义html(hypertext markup language,超文本标记语言)jvm: X virtual machine, X虚拟机oji: open X vm interface,开放X虚拟机接口sgml: standard generalized markup language,标准通用标记语言smil: synchronous multimedia integrate language(同步多媒体集成语言) vrml:virtual reality makeup language,虚拟现实结构化语言vxml(voice extensible markup language,语音扩展标记语言)xml: extensible markup language(可扩展标记语言)xsl: extensible style sheet language(可扩展设计语言)计算机公司ali: acer lab(宏棋实验室)asf: applied science fictionamd: advanced micro device(超微半导体)ami: american megatrends incorporatedear(extreme audio reality)hp: hewlett-packard,美国惠普公司ibm: international business machine,国际商业机器idg(international data group,国际数据集团)ims: international meta systemmle:microsoft learning and entertainment,微软教学与娱乐公司ms(microsoft,微软)nai: network associates incorporation,前身为mcafee。

LTE核心网

LTE核心网

S-GW S-GW位于用户面,一次只有一个S-GW为UE服务。 1-会话管理,SGW能对承载建立、修改、释放,能存储EPS上下文。 2-路由选择和数据转发,在EUTRAN内切换时,在路径转换后,向源eNodeB 发送一个或多个“结束标记”完成eNodeB的重排序功能。 在不同接入网切换时,通过SGW和SGSN间的S4接口,实现2G/3G系统和 PGW间实现业务路由。 在E-UTRAN空闲模式下,SGW能缓存下行数据并出发网络测服务请求流程。 3-Qos控制,SGW支持EPS承载主要Qos参数。在上行链路中,SGW能基于QCI 进行数据包传送级别标记(设置DSCP) 4-计费,SGW支持用户和QCI分类的运营商间的计费。 P-GW
漫游架构
LTE 网络架构-非漫游架构
UTRAN
S12
SGSN
S3 GERAN MME S6a
S4
HSS PCRF
S1-MME
S11
Sx Serving S5 gateway PDN SGi gateway
Rx Open’s IP servings(IMS、 PSS)
UE LTE-Uu
E-UTRAN
S6a接口消息 HSS和MME之间的接口,类似于MAP的消息功能。 鉴权消息,鉴权响应里包含EPS(RAND,XRES,AUTN和KASME) 位置更新消息,消息里包含签约信息
HSS发起清除MME中的用户记录
HSS发起的插入用户签约数据 HSS发起删除MME中保存的所有或者部分用户数据 Purge UE Request MME 通知HSS删除去附着用户的签约数据和MM上下文。 Notify Request 当用户状态变化、终端改变或者用户当前APN的PDN GW信 息改变时,MME向HSS发送此消息。 HSS设备重启,向MME发送此消息。

网络监听系统的设计与实现

网络监听系统的设计与实现

网络监听系统的设计与实现简介:随着计算机网络技术的迅速发展,网络的安全问题也显得越发重要。

网络监听技术是系统安全领域内一个非常敏感的话题,也是一项重要的技术,具有很强的现实应用背景。

网络监听是网络监测、负载分析等管理活动常用的方法,同时也是黑客非法窃取信息的手段。

网络监听工具通过网络传输介质的共享特性实现抓包,获得当前网络的使用状况,为网络管理员对网络中的信息进行实时的监测、分析提供一个合适的工具;同时也让黑客截获本网段的一些敏感信息,威胁网络安全。

目录论文总页数:30页1引言 (1)1.1课题背景 (1)1.2研究现状 (2)2网络监听技术综述 (3)2.1网络监听概念 (3)2.2以太网监听的原理 (3)2.3WinPcap的原理 (4)2.4综述 (7)3相关网络协议的分析 (7)3.1网络的原理体系结构 (7)3.2网络协议的分析与实现 (8)3.2.1链路层 (8)3.2.2网络层 (9)3.2.3传输层 (12)3.3小结 (16)4局域网监听系统的设计及实现 (16)4.1局域网监听系统的设计 (17)4.1.1功能设计 (17)4.1.2模块设计 (17)4.2局域网监听系统程序的实现 (19)4.2.1数据包的捕获 (19)4.2.2数据包的分析 (21)4.2.3数据流量的统计 (23)4.2.4实现过程中的难点和解决 (24)4.3系统程序运行 (25)结论 (27)参考文献 (27)致谢 (29)声明 (30)1引言随着Internet的迅猛发展和信息社会的到来,网络已经影响到社会的政治、经济、文化、军事和社会生活的各个方面。

以网络方式获取信息和交流信息已成为现代信息社会的一个重要特征。

同时,随着人们对网络信息系统依赖的日益增强,网络正在逐渐改变人们的工作方式和生活方式,成为当今社会发展的一个主题。

但必须看到,紧随信息化发展而来的网络安全问题日渐凸出,如果不很好地解决这个问题,必将阻碍信息化发展的进程。

luci框架普通linux搭建简易文档 -回复

luci框架普通linux搭建简易文档 -回复

luci框架普通linux搭建简易文档-回复"luci框架普通linux搭建简易文档"luci框架是一款用于构建网络管理界面的开源框架。

它是OpenWrt 路由器操作系统的默认Web界面,可供用户通过图形化界面进行路由器的配置和管理。

在本文中,我们将详细介绍如何在Linux上搭建luci框架。

第一步:安装OpenWrt路由器操作系统要搭建luci框架,我们首先需要安装OpenWrt路由器操作系统。

您可以从OpenWrt官方网站(一旦下载完成,您需要将镜像文件刷写到路由器设备上。

具体刷写方法因设备而异,您可以查阅您的设备文档或参考OpenWrt官方网站上的详细教程。

第二步:安装必要的软件在安装luci框架之前,我们需要确保一些必要的软件已经安装在系统中。

这些软件包括:- LuCI库和应用程序- uhttpd(轻量级的HTTP服务器)在大多数Linux发行版上,您可以使用包管理器来安装这些软件。

例如,在Debian/Ubuntu上,您可以运行以下命令来安装所需软件:sudo apt-get updatesudo apt-get install luci uhttpd第三步:配置uhttpd在luci框架中,uhttpd是一个提供Web服务的轻量级HTTP服务器。

我们需要进行一些配置来启用uhttpd并与luci框架配合使用。

首先,您需要编辑uhttpd的配置文件。

在大多数Linux发行版上,uhttpd的配置文件位于`/etc/config/uhttpd`。

使用您喜欢的文本编辑器打开这个文件。

在配置文件中,您需要确保以下几个选项被正确配置:- `option listen_http '0.0.0.0:80'`:这个选项指定uhttpd监听的IP 地址和端口。

默认情况下,luci框架会监听路由器的80端口,请确保该选项正确设置。

- `option home '/www'`:这个选项指定Web服务器的根目录。

LTE网络无线侧接口

LTE网络无线侧接口

LTE⽹络⽆线侧接⼝2.3 LTE⽹络⽆线侧接⼝协议2016-4-30⼴东省电信⼯程有限公司⽹优维护分公司以上所有信息均为⼴东省电信⼯程有限公司⽹优维护分公司所有,不得外传All Rights reserved, No Spreading abroad without Permission of GDTEC 第 1页⼀、 LTE ⽹络⽆线接⼝协议概述1. LTE interfaces LTE ⽹络接⼝协议S1-MME : Reference point for the control plane protocol between E-UTRAN and MME.S1-U : Reference point between E-UTRAN and Serving GW for the per bearer user plane tunnelling and inter eNodeB path switching during handover.S3: It enables user and bearer information exchange for inter 3GPP access network mobility in idle and/or active state.S4: It provides related control and mobility support between GPRS Core and the 3GPP Anchor functionof Serving GW. In addition, if Direct Tunnel is not established, it provides the user plane tunnelling.S5: It provides user plane tunnelling and tunnel management between Serving GW and PDN GW. It is used for Serving GW relocation due to UE mobility and if the Serving GW needs to connect to a non-collocated PDN GW for the required PDN connectivity.S6a : It enables transfer of subscription and authentication data for authenticating/authorizing user access to the evolved system (AAA interface) between MME and HSS.Gx : It provides transfer of (QoS) policy and charging rules from PCRF to Policy and Charging Enforcement Function (PCEF) in the PDN GW.S8: Inter-PLMN reference point providing user and control plane between the Serving GW in the VPLMN and the PDN GW inthe HPLMN. S8 is the inter PLMN variant of S5.S9: It provides transfer of (QoS) policy and charging control information between the Home PCRF and the Visited PCRF in order to support local breakout function.S10: Reference point between MMEs for MME relocation and MME to MME information transfer.S11: Reference point between MME and Serving GW.S12: Reference point between UTRAN and Serving GW for user plane tunnelling when Direct Tunnel is established. It is based on the Iu-u/Gn-u reference point using the GTP-U protocol as defined between SGSN and UTRAN or respectively between SGSN and GGSN. Usage of S12 is an operator configuration option.S13: It enables UE identity check procedure between MME and EIR.SGi: It is the reference point between the PDN GW and the packet data network. Packet data network may be an operator external public or private packet data network or an intra operator packet data network, e.g. for provision of IMS services. This reference point corresponds to Gi for 3GPP accesses.Rx: The Rx reference point resides between the AF and the PCRF in the TS 23.203 [6].SBc: Reference point between CBC and MME for warning message delivery and control functions与UMTS系统相⽐,LTE/SAE⽹络中⽆线传输技术、空中接⼝协议和系统结构等⽅⾯都发⽣了⾰命性的变化。

bmc与linux通信的详细流程

bmc与linux通信的详细流程

bmc与linux通信的详细流程BMC(Baseboard Management Controller,基板管理控制器)与Linux之间的通信通常涉及硬件监控和管理,如温度、电压、风扇速度等。

通信的详细流程如下:初始化:在系统启动时,BMC 会进行初始化,包括配置其自身的网络接口卡(NIC)和其他硬件组件。

IPMI 协议:BMC 和Linux 之间的通信通常基于IPMI(Intelligent Platform Management Interface,智能平台管理接口)协议。

IPMI 定义了一套硬件管理和监控的标准命令。

获取配置信息:BMC 会从BIOS 或其他固件中获取配置信息,如IP 地址、子网掩码、默认网关等。

建立连接:Linux 系统上的IPMI 工具(如ipmitool 或OpenIPMI)会尝试与BMC 建立连接。

这通常通过SSH(Secure Shell)或直接TCP/IP 连接完成。

监控和查询:一旦连接建立,Linux 系统就可以查询BMC 以获取硬件状态信息,如温度、电压、风扇状态等。

这些信息通常用于系统健康监测和故障排除。

控制操作:Linux 系统还可以控制BMC,如设置风扇速度、重置系统等。

事件处理:当硬件发生异常或故障时,BMC 会生成事件消息,并通过IPMI 协议发送给Linux 系统。

Linux 系统上的IPMI 工具可以订阅这些事件,以便在事件发生时得到通知。

关闭和清理:当系统关闭时,BMC 和Linux 之间的通信会结束。

BMC 会执行必要的清理操作,如关闭风扇、断电等。

注意,这个流程可能会因不同的硬件和固件配置而有所不同。

在实际部署中,应参考具体的硬件和软件文档以获得准确的信息。

【网络】EPC网络概述

【网络】EPC网络概述

【关键字】网络一、LTE组网图二、网元介绍2.1、HSS:HSS(Home Subscriber Server)是支持用于处理调用/会话的IMS网络实体的主要用户数据库。

HSS9820从逻辑上划分为BE(Back End)和FE(Front End)两部分,实现用户数据与业务逻辑处理的分离。

•BEBE即USCDB(Unified Subscriber Center DataBase),负责存储用户数据,提供用户数据的增加、删除、更新和查询服务,为FE提供有效的数据支撑。

•FEFE负责信令接入和业务逻辑处理,从BE获得数据服务。

2.2、MME:MME(Mobility Management Entity)MME是核心网其中的一个网元,是核心网中负责处理信令的网元,MME是一个信令实体,主要负责移动性管理、装载管理、用户的鉴权认证、SGW和PGW的选择等功能;➢NAS信令解析和处理。

➢NAS信令的安全性,NAS (Non-Access Stratum)非接入层信令的加密和完整性保护。

➢与其他3GPP网络的核心网交互,进行移动性控制➢控制和执行寻呼的传递➢TA列表的管理➢维护TAI和UE位置区(LAI)的映射,UE时区的管理➢PDN网关和服务网关的选择➢切换到2G/3G时,选择SGSN➢MME改变时,选择MME➢漫游的处理➢鉴权管理➢装载管理2.3、SGW:Serving GWSGW终结和E-UTRAN的接口,主要负责用户面处理,负责数据包的路由和转发等功能,支持3GPP不同接入技术的切换,发生切换时作为用户面的锚点;对每一个与EPS相关的UE,在一个时间点上,都有一个SGW为之服务。

SGW和PGW可以在一个物理节点或不同物理节点实现。

支持UE的移动性切换用户面数据的功能, E-UTRAN空闲模式下行分组数据缓存和寻呼支持 , 分组数据路由及转发;移动性及切换支持;合法监听;计费(针对用户进行计费),类似取代原2G、3G核心网SGSN用户装载功能。

SAN和NAS的区别

SAN和NAS的区别

SAN和NAS的区别存储区域网络(SAN)和网络附加存储(NAS)是相互竞争的两种网络存储技术,实际上,它们可以很好地相辅相成,用于存取不同类型的数据。

NAS设计用来在文件这个层次上存取数据,而SAN最适合用于高容量数据块的传输。

这两种技术都能满足消除存储器到服务器的直接联系的需求,有利于更灵活的存储访问,另外,SAN和NAS都是基于开放的行业标准网络协议——用于SAN的光纤通道协议和用于NAS的TCP/IP网络协议。

SAN支持的应用软件范围宽广,其中包括提供对NAS软件的存储,而NAS一般被限制在文件层访问数据的软件。

撇开SAN和NAS的区别,它们都在今天的企业中扮演着至关重要的角色,而且提供了许多优点,这些优点是传统的服务器附加存储实现方案无法提供的。

SAN的主要特点SAN设计用来提供灵活的、高性能的和可伸缩的存储网络基础结构。

SAN提供了许多在存储装置和服务器之间的直接连接来实现这个目的。

这些存储装置包括磁盘存储系统和磁带库。

高性能的光纤通道交换机和光纤网络协议确保了设备连接的可靠和高效。

这些连接基于固有的光纤通道和SCSI(通过SCSI到光纤通道转换器和网关)。

一个或更多的光纤通道交换机在主服务器与存储设备之间提供相互连接。

主服务器与存储设备放置在被称为”SAN组织结构”的网格拓扑结构内(见下图)。

减少网络阻塞的SAN基本结构因为SAN通过最优化处理来达到在服务器和存储装置之间传输数据块的目的,所以它在很多方面的使用效果都很理想,例如:处理关键任务的数据库软件。

关键任务是指响应时间要能确定,实用性和存储的可伸缩性集中化的存储备份。

这主要要求操作性能、数据的完整性和可靠性用来确保关键的企业数据的安全。

高可用性和应用软件故障恢复环境。

这可以确保以较少的开销,使应用软件的可用性得到极大的提高。

可伸缩的虚拟存储。

它将存储与主机的联系断开,能动态地从集中存储地分配存储量。

提高了故障容错度。

可在远距离(最远达150km)的主服务器和连接设备之间提供高性能的光纤通道传输。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux安全网关接口SGI的设计与实现曲波1胡湜2(1 XX晓庄学院信息技术学院)(2航空航天大学电子信息工程学院)摘要:文章阐述了Linux安全网关接口SGI的基本结构和实现方法,以及实现SGI涉及的Linux防火墙内核接口模块、/proc文件系统内核接口等关键技术。

关键字:安全网关接口、Linux防火墙、内核接口模块、防火墙钩子函数、/proc文件系统内核接口随着计算机网络技术的不断提高,计算机网络的应用也越来越普及,对计算机网络系统的安全管理也越来越重要。

当前流行的各种操作系统都在计算机安全管理方面提供了丰富的功能。

Linux操作系统不仅在其内核中提供了丰富的防火墙功能,还以钩子函数的方式为用户提供了防火墙内核接口。

用户根据Linux防火墙内核接口规X设计内核接口模块装入内存,就可实现用户自行设计的防火墙功能或其它网络访问控制功能。

笔者利用Linux内核防火墙内核接口模块,实现了一个通用的安全网关接口(以下简称SGI)。

SGI类似一个专用的防火墙,控制流经的网络IP数据包的转发。

笔者在多个网络应用系统中利用该接口实现网络的安全访问控制,收到了很好的效果。

1.安全网关接口SGI的基本结构安全网关接口SGI的目标是实现一个通用的安全网关内核接口模块,实现对流经的IP数据包的转发控制。

实现的方法是采用Linux的防火墙内核模块接口,通过防火墙钩子函数将自己挂接在系统的IP转发控制链中。

SGI在内部维护一个Hash表,每一个表项包含一个代表着放行的IP地址。

1.1 SGI防火墙内核接口模块Linux防火墙Netfilter提供了一个抽象、通用化的框架,以IPv4为例,一共有5个防火墙钩子函数,分别为:NF_IP_PRE_ROUTING、NF_IP_LOCAL_IN、NF_IP_FORW ARD、NF_IP_POST_ROUTING和NF_IP_LOCAL_OUT。

数据报进入系统进行IP校验后,经过第一个钩子函数NF_IP_PRE_ROUTING进行处理;然后就进入路由代码,其决定该数据包需要转发还是发给本机;若该数据报是发给本机的,则该数据报经过钩子函数NF_IP_LOCAL_IN 处理后传递给上层协议;若该数据报应该被转发则被NF_IP_FORW ARD处理;经过转发的数据报经过最后一个钩子函数NF_IP_POST_ROUTING处理后,再传输到网络上。

本地产生的数据报经过钩子函数NF_IP_LOCAL_OUT 处理后,进行路由选择处理,然后经过NF_IP_POST_ROUTING处理后发送到网络上。

内核模块可以对一个或多个这样的钩子函数进行注册挂接,并且在数据报经过这些钩子函数时被调用。

SGI就是利用这种钩子函数实现内核接口模块并到防火墙内核接口钩子链上。

1.2 Hash表SGI防火墙内核接口模块的任务是确定对流经的IP数据包是否转发。

所以,SGI需要维护一个数据表,该数据表中保存着需要转发的IP地址。

每当SGI接口模块收到IP数据包后,立即在该数据表中查找该IP地址。

若找到则转发放行,找不到则丢弃该IP包。

显然,数据表的结构是决定查找速度的关键。

一方面,数据表的内容是由用户进程动态确定的,要随时变化。

另一方面,查找的速度要快,不降低系统效率。

尽管二叉检索树可以满足上述要求,但其实现代价较高,所以笔者采用Hash表方法实现。

使用Hash表结构一方面可提高在IP转发过程中的查询速度,另一方面也可简化数据结构,节约内存资源。

1.3 /proc文件系统内核接口如前所述,Hash表的内容是由用户进程动态确定的,而SGI模块属于内核层。

在Linux操作系统下,用户进程不能直接存取系统内核数据,也不能直接调用内核函数。

一般有两种方法可实现用户进程与内核进程的通信:一是使用设备文件,二是使用/proc文件系统。

对于防火墙钩子函数来说,还可以通过套接字存取内核数据。

笔者采用/proc文件系统实现用户进程与SGI接口模块的数据交换。

由于/proc文件系统的主要作用是允许内核向应用进程报告它的状态,所以没有专门向内存输入数据而设置的机制。

为能够写入/proc文件,在内核程序中要为相应的/proc文件提供专用的处理程序,即/proc文件系统内核接口。

1.4 网络管理用户进程网络管理用户进程的任务是通过SGI提供的/proc文件,向SGI内核模块设置所需转发的IP地址,包括插入、删除、查找等操作。

采用标准的文件读写操作,按照SGI规定的数据格式与SGI内核模块交换数据。

2.SGI的实现技术2.1 Linux内核模块一个Linux内核模块至少包括两个函数:一个是初始化函数init_module(),在模块被插入到内核时调用;另一个是清除函数cleanup_module(),在模块从内核移走时调用。

一般情况下,初始化函数或者在内存中注册一个处理程序,或者使用自己的代码替换一个内核函数;而清除函数的作用是清除初始化函数所作的任何事情,使内存模块可以安全地卸载。

2.2 Linux防火墙钩子函数及其注册Linux防火墙钩子函数是一个回调函数,其参数是系统内核调用用户钩子函数时由系统传进来的。

由用户设计的钩子函数根据其挂接的位置及对流经的数据报的处理,回送不同的返回值。

如果用钩子函数实现访问控制,则满足放行条件时返回NF_ACCEPT,继续正常传输数据报;否则返回NF_DROP,丢弃该数据报,不再传输。

如果用钩子函数实现数据采集,则对数据报内容转储之后,返回NF_ACCEPT,继续正常传输数据报。

防火墙钩子函数必须注册挂接后才能工作。

注册使用的函数为nf_register_hook(),所带参数为指向下列结构体的指针:struct nf_hook_ops iplimitfilter = {{NULL,NULL}, /* struct list_head list,总是初始化为 {NULL,NULL} */fwm,PF_INET,NF_IP_FORWARD,NF_IP_PRI_FILTER};其中fwm为钩子函数;PF_INET 表示钩子函数工作在IP层;NF_IP_FORWARD为钩子函数的挂接点,此例表示钩子函数在数据报转发时被调用;NF_IP_PRI_FILTER(=0)为函数优先级。

取消注册的函数为nf_unregister_hook(),在卸载内存模块之前调用,拆掉挂接的钩子函数。

2.3 SGI内核接口模块与应用程序间的通信在Linux里有一个文件系统注册的标准机制。

每个文件系统都有自己的函数来处理索引节点和文件操作,由一个特殊的结构体struct file_operations来存放指向所有函数的指针。

该结构体里包含对/proc文件的打开、关闭、读、写等函数的指针。

用create_proc_entry()函数创建新的/proc文件。

在SGI内核模块接口中使用copy_from_user和copy_to_user函数实现内核与应用进程的数据交换。

使用copy_from_user和copy_to_user的原因是由于Linux系统中的内存是分段的,所以指针不能指向内存中一个唯一的地址,只能指向内存段中唯一的地址。

系统中有一个供系统内核使用的内存段,而每一个进程还有一个单独的内存段。

进程只能存取自己的内存段。

当需要将一个内存缓冲区中的内容在当前进程向内核传递时,内核函数接收到一个指向进程内存段中内存缓冲区的指针。

此外,由SGI内核接口模块创建的/proc文件还应具备进程阻塞机制。

当用户进程请求SGI内核模块服务时,若此时内核模块正忙,则将用户进程放入睡眠状态直到内核模块空闲。

笔者采用的方法是/proc文件每次只可被一个进程写操作。

如果用户进程要求写/proc文件时该文件正在被其它用户进程写操作,SGI内核模块就调用interruptible_sleep_on函数将当前用户进程放入W aitQ队列中。

当前一用户进程对/proc文件的写操作结束后,SGI 内核模块调用wake_up唤醒等待队列中的用户进程。

2.4 SGI接口模块的编译及安装SGI接口模块是一种内核模块,不能按普通应用程序的方法进行编译。

另外在程序中大量使用了内核函数,需要使用内核函数的包含文件。

一般Linux操作系统在安装过程中会将操作系统源码安装在/usr/src/linux-XXX子目录下,其中XXX是Linux的内核版本号。

所以对防火墙模块的编译命令应如下所示:gcc -I /usr/src/linux-XXX –O2 -DMODULE -D__KERNEL__ -c sgi.c -o sgi.o其中sgi.c是SGI接口模块的C程序名。

使用系统命令insmod装入模块,用rmmod卸载模块。

3.结束语SGI注册了防火墙钩子函数,可对流经的IP数据报加以控制,决定取舍,实现多种网络控制功能。

笔者在所研制的网络计费、安全审计、远程监控等多个计算机网络应用系统中,使用本文提出的安全网关接口SGI实现网络信息流的访问控制,收到了良好的效果。

参考文献[1] Andrew S. Tanenbaum. puter Networks(Third Edition) 1996 by Prentice Hall, Inc.[2] Douglas E.er & David L.Stevens. Internetworking With TCP/IP V ol. III: Client-Server Programming andApplications(Second Edition) 1996 by Prentice Hall, Inc.DESIGN AND REALIZATION OF THE LINUX SECURITY GA TEW A Y INTERFACEQu Bo 1Hu Shi 2(1School of Information Technology, NanjingXiaozhuangCollege, Nanjing 210017) (2School of Electronics Information Engineering, BeijingUniversity of Aeronautics and Astronautics, Beijing100083)Abstract The paper describes the structure and realization of the Linux security gateway interface (SGI), and the critical techniques involved in SGI such as the kernel interface modules of the Linux firewall, and the kernel interface of the /proc file system.Key words Security gateway interface, Linux firewall, kernel interface module, firewall’s Hook functions, kernel interface of the /proc file system。

相关文档
最新文档