基于Linux系统实现透明网桥式安全接入点

2022-09-12

伴随着网络技术的飞速发展, 网络接入点的安全性日益成为一个受人关注的问题。本文针对这一领域, 探讨如何在实现隐蔽式透明网桥的桥接功能的同时, 又能够保证在该主机系统上实施一定的安全策略, 对经过该点的数据链路层的以太帧和网络层的数据包进行双重的安全过滤, 从而构成一个外部黑客无法发现的、透明网桥式的、具有防火墙功能的安全接入点 (AP, Access Point) , 在有效隐蔽该节点的同时, 还能够保证全网的安全性。

1 基于Linux系统构建透明网桥式接入点

传统意义上的网桥, 主要是指工作在数据链路层次的、用于在异构MAC帧 (Media Access Control, 媒体访问控制帧) 协议环境中互联两个或多个网段的设备。除了两端口或多端口桥接异构网段的功能之外, 还能起到过滤广播信息、帧的转发、避免循环回路、学习网络拓扑的功能。而透明网桥则是根据其收到的数据帧的源地址信息, 自动学习之并添加为CAM表 (content addressable memory, 内容可寻址存储器) 中的表项。这些表项建立了源地址与分组经由的网络地址之间的联系。因而透明式网桥能够自动获悉网络环境的拓扑结构。

由于网桥接口本身无需分配IP地址, 因此无论对内对外都具有隐蔽性, 很多常见的入侵攻击及拒绝服务攻击都不会对它产生威胁。因此, 构建透明网桥式的接入点, 具有隐蔽性好、对网络拓扑的适应性强、并且支持异构帧协议环境的诸多优点。

基于上述分析, 笔者所在的课题组决定以开源L i n u x为平台, 首先构建一个具有隐蔽性的、透明桥式接入点系统, 并在此基础上, 进一步利用内核的b r i d g enetfilter机制, 将该Linux桥式接入点打造为一个具有自定义安全过滤机制的防火墙系统, 为进一步实现具有自主知识产权的各种接入点软硬件安全产品奠定基础。

以默认支持网桥工作方式的L i n u x内核2.6.X版本为例, 构建透明网桥使用系统默认包含的bridge-utils用户空间配置工具包中的命令b r c t l。常用的操作有:创建网桥设备, 将网卡设备添加到网桥中, 从网桥中删除网卡, 删除网桥设备。具体的命令及过程不再赘述。注意:各种发行版或老版本内核需要通过执行make menuconfig或make xconfig重编译内核, 进入Networking options选项并选中Network packet filtering以支持bridge-netfilter;选中802.1d Ethernet Bridging以支持该Linux主机作为网桥服务器, 并选中802.1d Ethernet Bridging下以ebt开头的各项, 只有选中上述和网桥模式相关的选项之后重编译内核才行[1]。

2 混合利用ebtables/IPtables实现接入点的安全策略

2.1 IPtables的包过滤机制分析

在上节的基础之上, 如果能够在用户空间引入二层 (数据链路层) 或三层的安全过滤处理机制, 也即让该接入点同时成为一个流量出入的检查点, 通过在该点实施一定的用户自定义的安全策略, 使其兼具一个防火墙系统的功能, 则可在使接入点对外隐蔽的同时, 对过往的流量实施安全性控制, 从而达到构建一个安全接入点的目的。

IPtables是Linux内核版本2.4.X之后提供的支持包过滤、NAT (Network Address Translation, 网络地址转换) 、包处理等功能的Netfilter在用户空间的工具。目前在Linux中常用IPtables来构建一个工作基础[5]。在三层的包过滤防火墙。IPtables对数据包的过滤处理流程如图1所示[2]。

2.2 ebtables的帧过滤机制分析

Linux在内核版本2.6.10之后默认包含了一个ebtables开源项目, 用以支持在网桥中增加帧过滤机制, 从而可在二层引入防火墙的功能。其原理与IPtables类似, 区别仅在于前者主要是操作数据链路层的帧, 而后者则是第三层的数据包。e b t a b l e s对数据帧的处理过程如图2所示[3]。

从图中可看出:原先在网络层利用IPtables实现的安全策略, 可利用ebtables在数据链路层加入的BROUTING链实现, 甚而可同时综合使用ebtables/Iptables对帧和包分别处理, 这不仅可提高处理效率, 而且更大程度上提高了安全性。Linux 2.6.10及其以后的内核版本中包含的br-nf模块支持ebtables和IPtables结合使用, 这使用户不仅可在三层用IPtables进行NAT、包过滤等操作, 而且能够同时在二层利用ebtables的帧过滤、MAC NAT、简单的IP包头过滤和ARP包头过滤[4]。

2.3 结合ebtables/IPtables实施用户自定义安全策略

通过对Linux内核代码及ebtables项目开源代码的深入理解和研究, 该综合利用ebtables/Iptables相结合的思路如下。

如图3所示: (其中斜体为IPtables链, 非斜体为ebtables链, 图4同理。)

从图中可看出:当系统对入站数据帧需做桥接处理时, 则先经ebtables的BROUTING链和PREROUTING链, 然后才经IPtables的PREROUTING链;而当系统对入站帧需做路由处理时, 则先后依次经过的e b t a b l e s/IPtables链如图4所示。

不难看出, 无论桥接还是路由, 灵活综合地利用ebtables/IPtables来设计和实施用户自定义的安全策略是可行的。通常一般是先禁止所有的转发帧或包通过, 然后再根据需要, 设置数据帧或包的过滤规则。

3 结语

针对构建一个安全的网络接入点的需要, 本文提出了一种基于L i n u x透明网桥服务器构建带有安全过滤规则的接入点主机系统解决方案, 该方案通过结合利用ebtables对于二层数据帧的处理能力和IPtables对于三层数据包的处理控制, 通过双重过滤机制构建一个具备防火墙功能的安全接入点, 使用户在该点可实施自定义的安全策略。由于透明网桥式接入点无需地址配置或做NAT, 且无IP地址, 因而具有隐蔽性, 可避免多种攻击, 并避免一般三层防火墙的NAT带给上层应用程序的局限性, 因而更具有相对的优越性。而且基于开源Linux系统, 还能为进一步实现具有自主知识产权的接入点软硬件安全产品奠定

摘要:针对网络接入点的安全性这一特定领域, 本文旨在通过混合利用ebtables和iptables的网络过滤机制, 构建一个基于Linux平台的透明网桥式的安全接入点。该接入点主机系统不仅能够作为一个透明网桥实现异构LAN之间的桥接功能, 同时还作为一个防火墙可根据用户的自定义安全策略, 实施对于数据帧和数据包的双重过滤, 因此可有效增强接入点的安全性。

关键词:网络接入点,网桥,ebtables,iptables,BROUTING

参考文献

[1] 王旭东.Linux kernel2.6配置指南[EB/OL].[2006-6-19].http://linux.stu.edu.cn/forum/archiver/tid-93.html.

[2] 杨伟, 李培峰, 朱巧明, 等.基于Linux的网桥防火墙的应用研究[J].苏州大学学报 (自然科学版) , 2006, 22 (2) :56~60.

[3] SCHUYMER Bart De.Ebtables/iptables interaction on a Linux-based bridge[EB/OL].[2003-11-9].http://ebtables.sourceforge.net/br-fw-ia/br-fw-ia.html.

[4] SCHUYMER Bart De.Ebtables Hack-ing HOWTO[EB/OL].[2003-11-11].http://ebtables.sourceforge.net/ebtables-hacking/ebtables-hacking-HOWTO.html.

[5] 毛德操, 胡希明.嵌入式系统——采用公开源代码和StrongARM/Xscale处理器[M].杭州:浙江大学出版社, 2003:389~412.

上一篇:浅析路桥施工中预应力技术的应用下一篇:信息时代下财务会计工作创新的途径