哈尔滨工业大学 计算机科学与技术学院, 哈尔滨 150001
中图分类号: TP393.08
文献标识码: A
文章编号: 1006-7167(2017)05-0075-04
收稿日期: 2016-08-15
网络出版日期: 2017-05-20
版权声明: 2017 《实验室研究与探索》编辑部 《实验室研究与探索》编辑部 所有
基金资助:
作者简介:
作者简介:史建焘(1980-),男、黑龙江哈尔滨人、博士、工程师,主要从事计算机网络,云计算,信息安全等方面的研究。Tel.: 13009877883, 0451-86413844; E-mail:shijiantao@hit.edu.cn
展开
摘要
网络安全实验通常需要复杂的实验环境,网络攻防本身具有一定破坏性和不可逆性,为教学而在系统中设置安全漏洞会产生巨大风险,环境搭建和维护具有较高成本。因此,使用虚拟化和SDN手段搭建虚拟实验教学平台具有重要意义。基于CloudStack开源云架构和XEN虚拟化技术,以IAAS为服务模式所搭建的网络攻防虚拟实验云平台,能够解决当前网络安全实验教学环境存在的问题。通过对snort与Iptables联动搭建防护墙实验的介绍和分析,实验表明,实验云平台在提升实验教学质量,培养学生工程实践能力和工程创新能力方面已经起到了效果,云平台本身具有广阔的发展和应用前景。
关键词:
Abstract
Network security experiments often require complex experimental environment. The network attack and defense technology is destructive and irreversible. Setting network security vulnerabilities for teaching will produce huge risk. The setup and maintenance costs for experimental environment are very expensive. Therefore, it is of great significance to use virtualization and SDN technology to build the simulation platform. The virtual experiment platform of network attack and defense is constructed based on CloudStack, open source cloud architecture, and XEN virtualization technology. The platform solves the problems in the network security experiment teaching and can provide IaaS cloud services. The introduction and analysis of a specific experiment show that the cloud experiment platform can effectively improve the quality of experiment teaching and cultivate students' engineering practice ability and innovation ability. The cloud platform itself has broad prospects for development and application.
Keywords:
目前,计算机网络与信息安全专业的实验课,主要还是以传统的单机编程方式来模拟实现,致使一些需要复杂环境的实验无法开展,如大规模组网实验、网络协议开发实验、网络安全攻防实验等。由于网络攻防技术本身具有破坏性,为教学而在系统中设置网络安全漏洞会造成巨大风险,而在真实环境中进行网络攻击和病毒注入等实验还会产生不可逆的灾难性后果,因此需要借助虚拟仿真技术和手段开展该类实验。除此之外,攻防实验对实验环境的要求也具有特殊性,如网络攻防实战实验涉及网络搭建、环境配置、攻击目标定制、数据处理、防护及综合渗透测试等过程,实验环境的搭建和维护成本很高。因此,构建基于云计算技术的虚拟仿真实验平台具有重要意义[1-3],可较好地克服大规模网络环境缺乏、实验对现有网络环境的破坏、多种实验不能实施等问题。通过XEN虚拟化技术[4-5]提供底层虚拟机通过CloudStack[6-8]搭建系统架构提供基础设施即服务(简称IaaS)模式的实验教学平台。基于云平台设置Snort[10]与Iptables[11]联动构建防火墙的典型实验,根据云平台提供的环境模板构建虚拟机和网络环境,然后学生可用SSH 或远程桌面连接到虚拟机上进行相关扫描攻击,验证防火墙效果。本文介绍的云平台既满足学生进行复杂和有破坏性网络攻防实验的需求,又简化了实验环境的搭建过程,具有重要的现实意义。
(1) IaaS。云计算具有3种典型的服务模式,分别是基础设施即服务(IaaS)、软件即服务[12](SaaS)和平台即服务[13](PaaS)。其中,IaaS是其他两种服务模型的基础,通过对资源的最终抽象,为他们提供虚拟的硬件资源服务。该环境下用户可以通过服务直接请求硬件设备资源,如同直接使用裸机和外存设备一样,可以完成任何物理主机能够完成的事。IaaS的资源是公用的,使用效率会很高,因此在Iaas中需要考虑的问题就是如何使多台机器协同工作。目前市场上存在的开源云平台,如CloudStack就是用来搭建云环境并提供IaaS云服务的。
(2) CloudStack。CloudStack是一个开源的云计算项目,可用来搭建公有云和私有云,具有高效和高伸缩性优势。CloudStack由Apache基金会资助,符合Apache2.0协议,用JAVA开发,支持目前主流的虚拟化技术,包括Xen、KVM和VMvare。CloudStack可用来整合现有数据中心的大部分硬件资源,并将资源以池化的方式进行管理,包括海量的网络、存储和计算资源,并在此基础之上来搭建云平台,提供云服务。在部署上,CloudStack具有便捷的资源管理方式,对虚拟资源的管理更接近现实环境,通过从大到小的树形结构进行划分,而且对数据进行独立存储,包括主存储(Primary Storage)和辅助存储(Second Storage)两种数据存储模式。CloudStack作为一种很好的区域架构模式,在管理云平台上具有结构清晰,管理方便的优势。
(3) Xen。Xen是一个基于X86架构的开源虚拟化技术,由一个剑桥大学的研究项目逐渐发展成一个开源驱动项目,具有性能稳定、发展迅速、资源占用少的优势。Xen通过半虚拟化技术来获得高性能,其占用的计算和存储资源只占系统总资源的2%到8%,与其他虚拟化产品相比具有明显的优势,可以通过一台普通的4 GB内存、4 核CPU的主机,也可以构建20台以上的虚拟机。
网络攻防虚拟实验云平台的拓扑结构如图1所示,平台实现基于CloudStack的高级网络架构,配备有一个CloudStack管理节点并配置了MySQL数据库、XenServer群集、群集中配置有若干可扩展的计算节点;另外还有2台存储服务器节点来提供NFS存储,配置目录供二级存储和群集的主存储使用。
XenServer群集中配置了计算节点,用来产生平台所需的Xen虚拟机,平台使用Xen自身的管理机制来维护计算节点的物理可用性。主存储服务器用来保存虚拟机实例的卷,供虚拟机运行时使用,可被群集中所有节点访问,并支持存储分级功能。二级存储用来保存模板和快照等,具有一次写和多次读特点的数据,存储的数据量更大,需要配备较大存储容量的设备。全部的计算节点和存储节点仅通过内网访问,与外网完全物理隔离。平台管理服务器既是CloudStack管理节点,同时也要负责云平台的主要业务处理,因此通过双网卡接入了内部网络和外部网络。通过CloudStack管理节点,对主服务器及二级存储进行综合管理和配置使用,并为前端的业务逻辑层提供API调用接口。
网络攻防虚拟实验云平台主体位于学校内部网络,通过网络中心核心路由器连接到ISP,外部对虚拟机节点的访问需要通过管理服务器提供的端口映射机制,① 防止了外部攻击,② 保证实验平台上的攻防流量不会对外部网络造成影响。在业务层还实现了用户权限管理,将平台用户分为学生、老师和管理员等不同权限级别,各个权限级别的用户须进行认证后方可进行登录及相关操作。管理员用户仅能通过内部网络登录,用来管理平台的参数设置,维护平台及物理主机的运行;教师和学生用户可以从外部网络登录平台前端页面,正常访问攻防实验用到的虚拟机;而对于非认证用户或非正常的访问,为保证平台正常运行会进行访问者来源记录。对于虚拟机自身的安全性,平台在保证不同用户的实验环境互相隔离的同时,还采用基于沙盒的设计,保证用户数据在沙盒内运行,实验结束即自动销毁。
网络攻防虚拟实验云平台的系统架构如图2所示,包括:基础设施、后端服务和前端应用。
平台系统最下层的基础设施由一组高性能服务器基于Xen虚拟化技术构建,管理员可以通过XenCenter工具,来管理和配置集群节点的物理设备和网络连接。并且可以检测所有虚拟机的运行状态。
云虚拟实验平台的其它服务基于CloudStack提供的基础架构和API进行二次开发实现,具体功能模块包括:虚拟机管理模块、账户管理模块、存储模块和网络管理模块。虚拟机管理模块作为云服务的核心,负责虚拟机整个生存周期的管理,包括生成、运行、迁移和销毁。模块可以根据当前CPU、内存、带宽等因素进行综合评定,选择合适的宿主机分配虚拟机实例,避免物理节点的负载不均衡,保证了平台的服务质量。系统账户的管理由账户管理模块负责,通过权限设置和访问控制策略,控制不同用户对虚拟机资源、网络资源和存储资源的访问,保证了平台的安全性。存储模块采用基于两级存储模式分别管理虚拟机实例所需的静态主机模板和运行时所需的镜像文件,这种层次性的存储能够更好的维护存储资源,确保平台运行效率。网络管理模块采用Cloudstack的高级网络模式,基于虚拟VLAN技术构建实验网络环境,使得虚拟机物理隔离。每个用户创建的实验环境可能包含多个虚拟机节点,会被分配一个统一的VLAN ID,构成了该用户的私有虚拟网络。为了给私有网络提供远程访问等公有网络服务,为每个虚拟网络配置了基于系统虚拟机的虚拟路由器,作为不同网络间的公共接口,提供了包括NAT、源NAT、DHCP、DNS、数据转发和防火墙等功能。
CloudStack平台本身为外部调用和二次开发提供了API调用,可以实现对云数据库和服务功能的访问、对虚拟机资源和存储资源的操作等等。在系统后端,云平台通过实现一个守护进程,调用CloudStack的API接口,为前端业务逻辑模块提供服务。
实验平台通过图3所示的前端页面功能提供服务。
与传统的实验室相比,云平台对几乎所有系统资源进行了虚拟化,包括操作系统、网络资源等。可以对实验内容、实验环境以及网络拓扑进行定制,并且提供了对复杂攻防实验的支持。界面分别提供了教学实验入口和攻防演练入口,配置虚拟实验环境所需的模板包括主机模板,环境模板,实验模板和课程模板。
主机模板包括不同的操作系统版本和实验所需的基础软件,并针对攻防演练的需求定制了多种系统和软件漏洞。模板可以由管理员通过配置的虚拟机实例的镜像制作,也可通过外部导入。环境模板根据实验要求设定主机数量和主机模板类型,并定制静态或动态登录密码,配置网络环境。实验模板中设置了实验指导书和需要的环境模板,实验指导书包括实验准备、实验步骤、实验预期结果等。课程模板根据实际课程教学需要,定制课程所需实验,选择实验模板,设定实验学时,制定考核标准等。
实验平台分别提供了应用平台和管理平台,应用平台主要为教师用户和学生用户提供实验规划、实验部署、实验操作和实验考核的入口,支持课程管理、实验管理、个人账号管理、远程管理、远程终端连接和定制实验的功能。管理平台主要是为了方便管理员维护基本的平台环境和平台资源,包括用户管理、模板管理、虚拟机快照管理、实验环境和系统管理等功能。
实验的具体流程。管理员分配教师和学生账号,并为不同账号设置访问权限;教师用户用自己的账号登录系统后,可对自己的课程进行设置,选择课程所需的实验项目,上传实验指导书和实验报告模板,配置主机模板和环境模板,选择选课学生;实验开始前点击构建实验环境按键,系统会根据目前选课人数创建相应的虚拟实验环境。学生登录后,根据对应的实验项目获得环境中所有可见虚拟机的IP/端口、登录密码(静态或动态),通过Telnet、SSH或者远程桌面的方式进入自己的实验环境。
实验过程中,教师可以随时查看学生的实验情况,进行实验指导。平台的实验过程具有可视化优点。实验数据也可多次回放,实验环境可以随时恢复。通过这样统一集中管理方式,所有实验资源能够集中恢复和一键销毁。对于一些不可逆的攻防实验,学生也可在实验过程中重置实验环境,反复体验某些实验步骤。实验平台由于具有高度的扩展性,因此能够支持复杂的大规模网络实验,保证多层次学生的实验需求。
现以“信息安全概论”课中一个具体实验为例,实验是通过Snort与防火墙进行联动来构建一个轻量级的入侵检测系统。其中,Snort入侵检测系统,可将网络上的恶意行为和恶意代码制成规则库,与实际数据源进行匹配,从而判断入侵行为。但Snort只能发现入侵,并不能阻断攻击,而Iptables规则是常用的阻断网络数据包的方式,因此本实验通过Snort与Iptables的联动,综合二者优点,互补对方的缺点,达到检测攻击并切断攻击的目的。实验利用一个简单的脚本实时读取告警日志,根据记录的IP和端口,创建对应的Iptables规则,加入远程或对应主机的防火墙规则中。
在传统环境中由于大量用户同时进行扫描等攻击行为,会造成局域网的流量阻塞,影响网络正常使用。因此,本实验选择在虚拟实验云平台下进行,实验的环境模板配置如图4所示。
实验环境有3台虚拟机构成,其中snort-host主机只可在环境内部登录,不提供远程登录接口。另2台主机可通过远程桌面连接,host主机为实验操作机,用来远程登录、安装和配置snort主机,test主机则用来远程探测。通过实验平台可以按实验人数,载入对应数量的实验环境,由于采用了CloudStack的高级网络模式,不同实验环境的主机之间被物理隔离,实验结果不受外界影响。环境搭建成功,学生登录后看到的实验平台的界面。
(1) 通过host主机登录snort-host,安装并配置snort环境,包括snort依赖包、Snort规则库、DAQ 、libdnet、guardian等。Guardian是一个开源的perl程序。通过读取和分析Snort日志,自动执行自己的shell脚本来配置Iptables下的规则,将恶意IP地址加入Filter表中的INPUT链下,并将其数据包丢弃。
对Snort的配置文件snort.conf修改如下:
#实验环境配置的子网段
ipvar HOME_NET 10.1.1.0/24
ipvar EXTERNAL_NET any
#配置snort规则
varRULE_PATH /etc/snort1/rules
varSO_RULE_PATH /etc/snort1/so_rules
varPREPROC_RULE_PATH /etc/snort1/preproc_rules
varWHITE_LIST_PATH /etc/snort1/rules
varBLACK_LIST_PATH /etc/snort1/rules
#检测端口扫描,不去注释也可以,去掉注释用nmap扫描即可看到扫描日志
preprocessor sfportscan: proto { all } memcap { 10000000 }sense_level { low }include PREPROC_RULE_PATH/preprocessor.rules
include PREPROC_RULE_PATH/decoder.rules
include PREPROC_RULE_PATH/sensitive-data.rules
对guardian的配置文件guardian.conf进行如下修改:
Interface eth0
LogFile /var/log/snort/guardian.log
AlertFile /var/log/snort/alert //alert文件的位置
IgnoreFile /etc/snort/guardian.ignore //白名单
targetFile /etc/snort/guardian.target //黑名单
TimeLimit 120 //阻断时间,以秒为单位
用如下命令启动guardian:
/usr/bin/perl /usr/local/bin/guardian.pl -c /etc/snort/guardian.conf
(2) 联动测试。登录host主机,打开x-scan扫描软件,将扫描参数中指定IP搜索范围设置成snort主机的IP地址:10.1.1.12。全局设置选项卡中的扫描模块选则“全选”,插件设置选项卡下的所有设置均全部选中。
点击开始按钮,开始扫描;登陆snort-host观察日志文件/var/log/snort,发现产生多条类似如下形式的告警日志,表示检测到外界扫描。
12/25-13:12:11.724778 [**] [122:1:1] (portscan) TCP Portscan [**] [Classification: Attempted Information Leak][Priority:2]{PROTO:255} 192.168.101.103 -> 192.168.101.100
在snort主机上启动guardian,并与iptables联动,之后在日志文件中,可以发现block脚本已经被执行。
Running ‘/usr/local/bin/guardian_block.sh 192.168.101.107 eth0’
执行iptables-L,观察是否有新规则被插入,如果有则证明实验验证成功。插入的Iptables规则格式如下:
Target port opt source destination
DROP all --192.168.101.103 anywhere
至此,单台防火墙联动已成功实现,有效验证了通过虚拟仿真云实验平台进行网络攻防实验的可行性。
针对当前网络安全实验教学环境的问题,介绍了基于CloudStack架构的网络攻防虚拟实验云平台,平台既可满足日常实验教学的需要,也为网络安全技术爱好者提供了攻防演练的场所。平台具有的现实意义:① 大大节省了实验设备空间;② 能够快速搭建复杂网络,支持具有破坏性和不可逆性的网络攻防实验;③ 可以同时构建大量相同实验环境,实验环境物理隔离;④ 有利于实验内容的开放和共享;⑤ 大大减少了实验教师和管理者的劳动强度。目前,实验平台的XenServer集群包括8台双路4核、128 GB内存的高性能服务器,可以同时建立300台以上的虚拟机。已经通过平台成功的开展了信息安全基础、信息内容安全等信息安全专业本科实验教学,取得了较好效果。今后可通过扩展底层的服务器,提升系统承载能力,将平台向外推广,让其具有更广阔的前景。
The authors have declared that no competing interests exist.
[1] |
软件定义网络(SDN)研究进展 [J].DOI:10.13328/j.cnki.jos.004701 URL [本文引用: 1] 摘要
网络抽象促使软件定义网络(software-defined networking,简称SDN)的产生.SDN将数据平面与控制平面解耦合,简化了网络管理.首先从SDN诞生发展的背景入手,梳理了SDN的体系结构,包括数据层、控制层和应用层,并按照SDN的层次结构深入阐述其关键技术,特别分析了一致性、可用性和容错性等特性.然后,论述了SDN在不同应用场景下的最新研究成果.最后,展望未来研究工作.
|
[2] |
一种支持细粒度并行的SDN虚拟化编程框架 [J].DOI:10.3969/j.issn.1673-8098.2014.04.001 URL 摘要
软件定义网络(software defined network,简称SDN)通过集中式的控制器提高了网络的可编程性,成为近年来网络领域非常热门的话题.以Openflow网络为代表的软件定义网络将逻辑控制与数据转发相隔离,为网络虚拟化技术提供了良好的平台.集中式的抽象与控制使得SDN虚拟化框架的处理效率成为主要瓶颈.现有的SDN虚拟化框架由于缺乏对细粒度并行的支持,为编程人员充分利用多核/众核资源、控制更大规模的网络带来了极大的挑战.为了提高SDN虚拟化框架的处理效率,提出一种新的SDN虚拟化编程框架,通过新颖的API和运行时,在框架内部支持细粒度的并行处理.该框架通过对网络中流和网络资源进行抽象,使开发人员可以直接通过划分流空间来定义不同的虚拟网络,利用无锁的编程方式对共享的网络资源和流进行操作.实验结果表明,该框架在逻辑控制的执行效率方面具有良好的可扩展性,可以创建出更大规模的虚拟网络,并对其进行更为复杂的控制.
|
[3] |
基于GNS3和VMware的虚拟网络集成 [J]. |
[4] |
|
[5] |
基于XEN云平台的网络安全实验教学 [J].DOI:10.3969/j.issn.1006-7167.2013.07.017 URL [本文引用: 1] 摘要
网络安全实验课程中要求学生进行一些比较复杂的实验,实验环境的搭建往往涉及到多台主机,并且这些主机需要按照实验规范组成一个特定的拓扑结构.对于学生而言,在构建实验环境时会受到个人设备硬件条件的限制,为了满足多人同时进行网络安全实验的需求,我们设计并实现了一种基于XEN开源软件的网络安全实验云平台,向学生提供虚拟网络实验环境.本文着重介绍了基于XEN的实验云平台的体系架构,分析了如何在云平台上快速构建复杂的虚拟网络,以进行网络安全实验教学.最后,我们通过一个防火墙实验的实例来说明该云平台的使用和有效性.通过在学生中进行教学实践表明,基于XEN的网络安全实验云平台大大简化了实验环境的构建,减少了实验硬件投资,可以很好地容纳多人同时进行实验.
|
[6] |
基于CloudStack的私有云平台的构建与实现 [J].DOI:10.3969/j.issn.1674-649X.2014.02.017 URL [本文引用: 1] 摘要
为解决企业数据中心不断扩张,资源利用率降低的问题,在研究虚拟化技术的基础上构建基于ColudStack的企业私有平台.私有云将计算、存储、网络等资源虚拟化后,提高了数据中心资源利用率,节约了用电成本.
|
[7] |
基于CloudStack云管理平台的关键技术研究与应用 [D].
|
[8] |
基于CloudStack云平台的研究与自动系统的实现 [D]. |
[9] |
IaaS环境下改进能源效率和网络性能的虚拟机放置方法 [J].DOI:10.3969/j.issn.1000-436x.2014.01.009 URL 摘要
现在的虚拟机放置研究大多集中在物理服务器能源能耗或网络设备能耗的优化,然而随着这些资源的过度聚合,有可能会带来应用性能的下降。提出了一种虚拟机放置方案,主要有2个目的:最小化激活物理机和网络设备的个数来减少数据中心能源消耗;最小化最大链路利用率来改善网络性能。此方案在优化网络性能的同时,减少物理服务器和网络设备的能耗,使得能源效率与网络性能达到平衡。设计了一种新的二阶段启发式算法来求解,首先,利用基于最小割的层次聚类算法与最佳适应算法相结合来优化能源效率,然后,利用局部搜索算法再次优化虚拟机位置来最小化最大链路利用率。仿真实验结果表明,所提方案取得了良好的效果。
|
[10] |
|
[11] |
Linux iptables Pocket Reference [M]. |
[12] |
基于共享模式的SaaS多租户数据划分机制研究 [J]. |
[13] |
互联网应用PaaS平台体系结构 [J].DOI:10.3969/j.issn.1007-5321.2012.01.028 URL [本文引用: 1] 摘要
从分析工业界有影响的平台即服务( PaaS)人手,提出了面向互联网应用的PaaS平台的需求,设计了PaaS平台概念模型.基于PaaS平台概念模型提出了面向互联网应用的PaaS平台体系结构,对其中的关键技术做了详细说明.面向互联网应用的PaaS平台体系结构已经在相关项目中得以应用.
|
版权所有:《实验室研究与探索》编辑部
主管单位:中华人民共和国教育部 主办单位:上海交通大学 出版单位:上海交通大学学报编辑部 地址:上海市华山路1954号包图1516号 邮编:200030 电话:(86-21)62932952 62932875 |
/
〈 |
|
〉 |