企业内网模拟靶场搭建1_前期调研
企业内网模拟靶场搭建1_前期调研
本文旨在对企业内网搭建的模块进行划分,并给出完整的规划情况和调研所得的技术栈,汇报共7轮,于16周内完成。
一、云环境搭建任务需求
1. 云环境搭建
云环境的目的是进行:企业网的网络架构设计
网络层次:搭建包括 OS 层、虚拟化层、容器层、应用服务层等多层次的云网络环境
结合虚拟化软件,搭建模拟路由器 交换机 防火墙 安全网关 / IoT 接入设备等基础性网络环境
2. 攻击&防御体系
网络系统防御 :
- 设计基于网络设备(路由器、交换机)、安全防护设备(防火墙、堡垒主机)、网络边缘接入设备(网关、VPN网关)的攻击和渗透工具集,开展攻击测试
- 面向网络系统的攻击,设计基于网络嗅探、网络拦截、网络检测功能的网络系统防御检测体系
应用设备防御:
- 设计应用系统全系列攻击工具集,开展攻击测试
- 设计应用系统全方位 检测防御分析工具集,针对攻击开展检测分析
云环境的攻击&防御:
- 构建各个层面的漏洞发现、攻击工具集,多层次穿透技术
- 构建全层次的攻击检测、防御集合,用于响应和发现攻击行为
总言之,体系化的攻击技术体系:整体框架设计、工具集构建、攻击技术研发、攻击渗透验证
体系化的防御技术体系:整体框架设计、工具集构建、安全防御技术研发、安全防御验证
3.新型技术
新型渗透技术:3
- 体系化的漏洞挖掘工具集构建(开源项目收集 … …)
- 安全防护场景的探测(在 VPN 、 WAF 、 FW 、 HTTPS 场景下,探测网络中的公开和非公开服务、拓扑 …)
- 绕过 WAF 、 IPS 的攻击(绕过规则检测、设备脆弱性利用)
- 自动化攻击渗透(扫描 攻击路径选择 漏洞攻击的组合 …)
- 高隐蔽性回传技术(动态域名、动态路径、匿名网络)(注:此处回传指的是,当攻击者入侵系统获取资料后,将敏感资料回传至公网,或自己的主机上的动作)
- 网络基础设施设备的远程攻击和控制(路由器、防火墙、 IoT设备、智能终端 的攻击和控制)
防御技术体系:2
- 抗绕过 ips 、 waf 规则恶意流量的智能检测技术(对编码、压缩、混淆、加密攻击流量的检测)
- C&C Command and Control Server )检测 /APT 远控、扩散和回传的检测 SSH/SSL/TSL/ICMP/UDP/SOCKS/Proxy
- 主机深度智能检测技术(深度脱壳检测、抗沙箱反分析、内存解密反 混淆)
- 未知新型攻击流量的 AI 智能检测技术
- 对网络基础设施设备的未知新型远程攻击控制技术的智能检测
二、网络拓扑搭建
注:本部分参考51CTO博主: 听雪落的光阴 相关博客。
在学校提供的平台上搭建模拟企业架构存在的问题是:
- 性能较差,卡顿影响操作
- 储存节点会随机刷新,无法可控的储存信息,环境有可能被清空
- 依赖于学校网络中心,随时崩溃
在个人主机上可以通过路由器、hub等工具组成子网,并完成实验,但是专业昂搭建企业架构存在的问题是:
- 依赖于个人主机,每次组装时间较长
- 个人主机大多为Windows系统,不容易完成实验需要
- 使用桥接(bridge)的虚拟机难以与宿主机分割,搭建复杂拓扑存在难点。
综上,经过调研后,我们最终将目光锁定在openstack技术上,下文中将继续记录尝试使用Openstack搭建平台的过程:
1. Openstack调研
关于Openstack:
- OpenStack起源于云计算技术;
- OpenStack是一个云操作系统;
- OpenStack控制三大资源:计算、网络、存储(池);
- OpenStack采取身份认证机制给予用户权限和资源;
- OpenStack提供web端的可视化界面方便管理员控制;
OpenStack就是一个控制计算、网络和存储资源的分布式云操作系统。
Openstack整体架构
如图,官方给出的架构将OPENSTACK体系分为多个层次,其中的每一个单词对应一个组件,其中被加粗的组件可以被视为核心的组件,未加粗的则是并非核心,按照个人需要安装的组件。
核心组件功能表格:
组件 | 项目 | 项目说明 |
---|---|---|
Compute(计算服务) | Nova | 实施服务和关联的库,以提供对可计算资源(包括裸机,虚拟机和容器)的大规模可扩展的按需自助服务访问 |
Identity Service(认证服务) | Keystone | 提供API客户端身份验证,服务发现和分布式多租户授权 |
Image Service(镜像服务) | Glance | 发现,注册和检索虚拟机映像。Glance具有一个RESTful API,该API允许查询VM映像元数据以及检索实际映像。通过Glance提供的VM映像可以存储在从简单文件系统到对象存储系统(例如OpenStack Swift项目)的各种位置。 |
Networking(网络服务) | Neutron | SDN网络项目,在虚拟计算环境中交付网络即服务 |
Dashboard(仪表板) | Horizon | 为OpenStack服务提供基于Web的用户界面 |
Block Storage(块存储) | Cinder | 虚拟化了块存储设备的管理,并为最终用户提供了自助服务API,以请求和使用这些资源,而无需了解其存储实际部署在何处或在哪种类型的设备上。 |
Object Storage(对象存储) | Swift | 高度可用的,分布式的,最终一致的对象存储。组织可以使用Swift来高效、安全和廉价地存储大量数据。 |
Telemetry(计量服务) | Ceilometer | 有效收集,规范化和转换OpenStack服务产生的数据 |
Orchestration(编排服务) | Heat | 基于文本文件形式的模板,为云应用程序协调基础结构资源,可以将其视为代码 |
Database Service(数据库服务) | Trove | 一个数据库即服务供应关系和非关系数据库引擎 |
Data Processing(数据处理) | Sahara | 为用户提供一种简单的方法来在OpenStack上预配数据处理框架(例如Hadoop,Spark和Storm) |
Openstack环境搭建
可以自上文看出,Openstack本身只提供最基础的服务和命令行,要正常的使用Openstack一定要安装配置对应的组件,同时在配置之前,需要对网络、时间、安装源、数据库等进行手动安装,这样的工作量是及其庞大的。
要规避安装所带来的痛苦,有一些工具可供我们使用:
- DevStack
- PackStack
- TripleO
- Juju
在配置过程中,存在大量系统版本报错问题,如:
1 | Error: Package: libselinux-ruby-2.5-12.el7.x86_64 (local) Requires: libselinux-ruby-2.4.el7.x86_64 |
如上类似的版本问题,均可以通过手动下载对应版本,在对应安装包目录下使用:
1 | yum downgrade libselinux-ruby-2.4.el7.x86_64.rpm |
解决。
在按照上述教程配置环境后,可以访问web界面如下:
2.StarVCenter调研和使用
StarVCenter比较情况
StarVCenter和OpenStack都是开源的云计算平台,它们的主要区别在于:
- 体系结构:StarVCenter是一个基于VMware vSphere的云管理平台,它使用vSphere API来管理虚拟化基础设施。而OpenStack则是一个基于多个开源组件的云管理平台,包括Nova(虚拟机管理)、Neutron(网络管理)、Cinder(存储管理)等等。
- 支持的虚拟化技术:StarVCenter仅支持VMware的虚拟化技术,而OpenStack支持多种虚拟化技术,包括KVM、Xen、Hyper-V等等。
- 社区规模和生态系统:OpenStack是由多家公司和组织共同开发和维护的项目,拥有一个庞大的社区和生态系统。而StarVCenter是由VMware单独开发和维护的,其社区和生态系统相对较小。
- 功能和灵活性:OpenStack具有更高的灵活性和可扩展性,可以根据用户的需要进行自定义配置和扩展。而StarVCenter的功能相对较为简单,主要是针对VMware虚拟化环境的管理和监控。
总之,StarVCenter更适合那些已经使用VMware虚拟化技术的企业,而OpenStack则适用于需要更高灵活性和可扩展性的企业。
注:上述文字通过ChatGPT生成,但是经过实验基本正确。
StarVCenter使用体验
StarVCenter的安装相对来说简单得多,开发者将StarVCenter使用.iso镜像封装,直接添加镜像,就能得到配置完毕的环境:
在环境配置完毕后,我们对其功能进行了调研和学习:
添加计算节点:
初始化网络配置:
添加云路由:
添加虚拟机模板:
添加测试虚拟机:
完成了初步对于StarVCenter的学习使用工作后,我们发现该软件存在一定的问题。
StarVCenter的不足之处
starVCenter网上社区较小,通过微信开创社区不太方便:
StarVCenter更注重starVCenter集群在企业架构中的位置,而不是注重云环境的拓扑情况,如下图,为starVCenter在官方文档中给出的部署结构图,可以看出,官方对该软件的定位也是提供云服务的企业内部计算集群:
如下图所示,StarVCenter给出的全局仿真视图仅仅体现了储存、计算、管理网络的拓扑,但是未反应云服务拓扑因此和我们所做的事情并不对应。
因此,总体来说StarVCenter在部署难易、易用性等方面都远远超越了Openstack,但由于其功能和社区所限,我们决定放弃这一方案。
3.对于Openstack学习与探索
使用Openstack搭建企业靶场的可行性分析
可以看到,知网上给出了一些关于使用Openstack搭建靶场的文献。
使用Openstack未解决的问题
网络架构配置问题
由于openstack需要连接控制节点和多个计算节点,以分担控制节点资源不够的情况,他们就需要多台主机进行相连,由于openstack需要在Linux平台上部署,故只能使用虚拟机进行平台的部署,然而虚拟机之间的相连就成了问题之一;虚拟机之间相连,首先需要虚拟机内部能够访问外部网络,另一方面需要外部网络能访问到部署在虚拟机上的服务。要完成前者非常容易,而完成后者,则依赖一定的技术,原因如下:大多数的情况下,openstack软件的步数都依赖于固定的IP地址,因此使用仅主机和nat模式两张网卡进行虚拟机的配置,要让部署了openstack软件的虚拟机上的服务,能够被公共网络访问,最直接的想法就是将虚拟机桥接到网络中,该方法中,我们遇到的难题就是Openstack复杂的网络配置,Openstack本身会利用用户配置时所提供的Ip添加网桥,进行服务的搭建,导致网络变得更加复杂。另一个直接的思路就是使用端口转发技术,转发Openstack向外提供的web服务,以达成服务的外部访问:
端口转发:
调研过程中,我们考虑了两种端口转发的方式,
使用python程序进行转发
1 | from twisted.internet import reactor, protocol |
使用虚拟机自带配置进行转发:
然而,经过试验后,这两类方式都无法完成向内访问的流量转发到虚拟机的目的,经过抓包分析:
服务存在跨域访问的情况,因此,最终还是需要使用桥接技术。
Openstack使用方式学习
逐步学习Openstack软件的使用,如下为指定项目添加角色用户
三、常见企业网络架构
1.小型企业网络
小型企业的网络架构中,把各个部门划分为独立的vlan并设置一个单独的子网网段,接入层网络使用2层交换机,汇聚及核心层网络使用园区级3层交换机,在各个子网间进行数据转发,最后通过防火墙连接到互联网;这样做的目的是使各个部门网络访问相对独立,便于各个部门设置专属的网络访问需求;各功能模块相对独立,从逻辑层来看清晰明了,方便后期运维及故障排查。
设备:FW(防火墙)-交换机-PC服务器-办公PC-AP(无线网设备)-AC(无线接入AP控制器)-无线设备
路由器和交换机的区别
- 交换机工作于 TCP/IP 协议的数据链路层(2层),路由器工作于网络层(3层)。
- 交换机的每一个端口对应一个mac地址;路由器接入了几个网络,就有几个IP地址,负责连接不同网络(一般为内-外网);
- 有些路由器提供了防火墙的服务,交换机不能提供该功能。路由器仅仅转发特定地址的数据包,不传送不支持路由协议的数据包传送和未知目标网络数据包的传送,从而可以防止广播风暴。
无线和有线传输的区别
- 物理层协议:有线网络通常使用的是以太网协议(Ethernet Protocol),而无线网络则使用的是Wi-Fi协议(Wireless Fidelity Protocol),这两种协议在物理层上的传输方式不同。
- 链路层协议:有线网络使用的是MAC地址(Media Access Control Address)来标识设备的身份,而无线网络则使用的是MAC地址和SSID(Service Set Identifier)来标识设备的身份。
- 网络层协议:有线网络和无线网络使用的网络层协议是一致的,都使用的是IP协议(Internet Protocol)来实现数据包的传输。
总而言之,在网络层以下存在区别,而网络层以上不存在,即AP就是无线交换机。
网络架构设计
2.最常见三层架构网络(大型企业网络架构)
物理网络拓扑:采用简单的三层架构,接入-汇聚-核心;
核心层
核心层是企业网络的中心,连接着汇聚层和其他远程网段,承担着高速数据传输的任务。在核心层中通常采用高速交换机、路由器等设备,保证网络传输速度和可靠性。通常三个以上部门规模的园区网建议规划核心层。针对无线网络,核心层包括WAC,WAC通过CAPWAP(Control and Provisioning of Wireless Access Points,无线接入点控制协议)协议对AP进行管理。
汇聚层
汇聚层是接入层与园区核心层之间的网络分界线,主要用于转发用户间的“横向”流量,同时转发到核心层的“纵向”流量。在汇聚层中,通常采用交换机、路由器等设备,以支持不同子网之间的通信。汇聚层还负责实现网络的隔离和分割,以保证网络安全性和管理性。
接入层
接入层为用户提供各种接入方式,是终端接入网络的第一层。接入层通常由接入交换机组成,接入层交换机在网络中数量众多,安装位置分散,通常是简单的二层交换机。如果终端层存在无线终端设备,接入层需要无线接入点AP设备,AP设备通过接入交换机接入网络。
这是三个基础层,是为其他层服务的,下面介绍其他层,同时引入一个新架构:
https://download.huawei.com/mdl/image/download?uuid=5bf3e4ab28534271b560267395f8ef4a
终端层
终端层是指接入园区网络的各种终端设备,例如电脑、打印机、IP话机、手机、摄像头等。
核心区
叫法有所不同,指一般存放着企业最重要的数据、文档等资产。例如,域控、核心生产服务器等,安全设置也最为严格。根据业务的不同,相关服务器可能存放于不同的网段中。核心区按照系统可分为业务系统、运维监控系统、安全系统等,按照网段可分为业务网段、运维监控网段、安全管理网段等。
数据中心区
数据中心区是管理业务服务器(例如文件服务器、邮件服务器等)的区域,为企业内部和外部用户提供业务服务。
网络管理区
网络管理区是管理网络服务器(例如网管系统、认证服务器等)的区域。网管系统通过网管协议与和网络设备交互,能够提供配置、管理和运维功能,主流的网管协议有:SNMP(Simple Network Management Protocol,简单网络管理协议)和Netconf(Network Configuration Protocol ,网络配置协议)。认证服务器可提供网络准入的认证、授权和计费功能,主流的认证协议有:RADIUS(Remote Authentication Dial In User Service,用户远端拨号接入服务)和TACACS(Terminal Access Controller Access-Control System,终端访问控制器访问控制系统)。
DMZ区
**DMZ(Demilitarized Zone)**非军事化区,也就是隔离区,DMZ区是一个对外服务区,在DMZ区域中存放着一些公共服务器,比如对外的服务器、对外的邮箱等等。用户要从外网访问到的服务,理论上都可以放到DMZ区,这个区对外提供业务,安全性有严格限制。上层可能有WAF、IPS等。
出口区
园区出口是园区内部网络到外部网络的边界,内部用户通过园区出口区接入到外部网络,外部网络的用户通过园区出口区接入到内部网络。园区出口区一般需要部署出口路由器和防火墙。路由器解决内外网互通的问题,防火墙提供边界安全防护能力。
在最一般的架构中,出口区就是一个路由器,当然下面可以接一个fw,再接一个IPS。
设备汇总:路由器-FW-IPS-WAF-交换机(多层交换机)-AP-AC-应用服务器-认证服务器-办公主机-无线设备
访问限制
当规划一个拥有DMZ的网络时候,我们可以明确各个网络之间的访问关系,可以确定以下六条访问控制策略。
- 内网可以访问外网
内网的用户显然需要自由地访问外网。在这一策略中,出口路由器需要进行源地址NAT转换。
- 内网可以访问DMZ
此策略是为了方便内网用户使用和管理DMZ中的服务器。
- 外网不能访问内网
很显然,内网中存放的是公司内部数据,这些数据不允许外网的用户进行访问。
- 外网可以访问DMZ
DMZ中的服务器本身就是要给外界提供服务的,所以外网必须可以访问DMZ。同时,外网访问DMZ需要由出口路由器完成对外地址到服务器实际地址的转换。
- DMZ访问内网有限制
很明显,如果违背此策略,则当入侵者攻陷DMZ时,就可以进一步进攻到内网的重要数据。
- DMZ不能访问外网
此条策略也有例外,比如DMZ中放置邮件服务器时,就需要访问外网。
3.各类设备的调研与实现
安全(网络)设备
路由器
可通过Vyos等开源路由器实现方案实现。
FW
总述:调研获知,有这么几款防火墙软件适配度较高。(考虑:防火墙如思科等商用级别的不适合课程设置,所以我们主要搜集比较经典的或者是高水平课设防火墙项目)
https://github.com/1397981186/firewall 这个项目没有后续开发,而且功能仅限于审计而没有响应。
GitHub - dekuan/VwFirewall: 微盾®VirtualWall®防火墙整套源代码 据github介绍此款防火墙虽然源码公开,但是长时间未维护,并且只能够运行在win2000上。
Smoothwall (文档全英文,中国区域几乎没有使用,触发问题难以找到解决方案)
Suricata
相较于传统的防火墙软件Snort,这一款Suricata支持多线程,理论上有更加良好的检测性能。所以最后我们选择了这个。
IPS
Suricata集成了防火墙和IPS的功能,所以这部分采用上一部分的Suricata工具,同时略过此部分。
WAF
Centos7+ModSecurity
1.CentOS和ModSecurity
CentOS简介
CentOS是一个企业级的Linux操作系统,它是Red Hat Enterprise Linux(RHEL)的一个免费版本,因此也被称为“Community Enterprise Operating System”。CentOS具有高可靠性、稳定性和安全性,因此非常适合用于Web应用程序的服务器环境。
ModSecurity简介
ModSecurity是一个开源的Web应用程序防火墙,可以在Apache、Nginx、IIS等Web服务器上使用。ModSecurity功能介绍
SQL Injection (SQLi):阻止SQL注入 Cross Site Scripting (XSS):阻止跨站脚本攻击 Local File Inclusion (LFI):阻止利用本地文件包含漏洞进行攻击 Remote File Inclusione(RFI):阻止利用远程文件包含漏洞进行攻击 Remote Code Execution (RCE):阻止利用远程命令执行漏洞进行攻击 PHP Code Injectiod:阻止PHP代码注入 HTTP Protocol Violations:阻止违反HTTP协议的恶意访问 HTTPoxy:阻止利用远程代理感染漏洞进行攻击 Sshllshock:阻止利用Shellshock漏洞进行攻击 Session Fixation:阻止利用Session会话ID不变的漏洞进行攻击 Scanner Detection:阻止黑客扫描网站 Metadata/Error Leakages:阻止源代码/错误信息泄露 Project Honey Pot Blacklist:蜜罐项目黑名单 GeoIP Country Blocking:根据判断IP地址归属地来进行IP阻断
2.ModSecurity 部署模式
架设方案:
一般来说,为了实现更高的安全性,将WAF部署在Web服务器的上层服务器上会更好。这种方法的优点包括:
- 安全性更高:将WAF部署在Web服务器的上层服务器上,可以提供更好的隔离和安全性,因为WAF将运行在专门的服务器上,可以更好地管理和控制安全策略,减少攻击者对Web服务器的直接攻击。
- 可伸缩性更好:将WAF部署在Web服务器的上层服务器上,可以更容易地进行水平扩展,以应对不断增长的流量和攻击。
- 管理更方便:将WAF部署在Web服务器的上层服务器上,可以更方便地管理WAF的配置和日志,以及与其他安全工具进行集成,提高管理效率和安全性。
- 性能更好:虽然将WAF部署在Web服务器的上层服务器上可能会增加一些性能开销,但是现代的WAF设备和软件通常都具有优化性能的功能,可以提供与将WAF部署在Web服务器上相当的性能。
ModSecurity 支持两种部署模式:嵌入模式和反向代理模式。这两种模式各有利弊,选用哪种模式取决于你的架构环境:
嵌入模式(Embedded)
因为 ModSecurity 是 Apache 的一个模块,你可以把它加载到任何兼容的 Apache 版本中。2.0.x 和 2.2.x 系列的 Apache 版本都是兼容的。对于那些架构已经确定好或者已经在使用中的情况来说,使用嵌入模式来部署 ModSecurity 是一个很好的选项。嵌入模式不但不会引入新的故障点(Points of Failure),而且也可以随着底层 Web 基础设施的伸缩而无缝伸缩。嵌入模式部署的最主要挑战是,ModSecurity 和 Web 服务器共享计算资源。
反向代理模式(Reverse Proxy)
反向代理其实是 HTTP 路由器,它被设计成部署在 Web 服务器和其客户端之间。当你安装了一台专用的 Apache 反向代理并且增加了 ModSecurity 模块,那么你就得到了一台网络 Web 应用防火墙–你可以用其来保护同网络的任何数量的 Web 服务器。很多安全实践者倾向于使用独立的安全控制层,这样一来你可以把它和被保护对象完全隔离开来。就性能来说,独立部署的 ModSecurity 有专属的计算资源,那么这意味着你可以做更多的事情(例如,配置更加复杂的规则)。这种部署模式最大的缺陷是,你引入了新的故障点。而解决这个新的故障点的方法是,使用两台或者更多台反向代理服务器的集群来提供高可用(High-Availability,HA)的架构设置。
在Web服务器和客户端之间安装反向代理服务器,可以提高Web应用程序的安全性和性能。当安装了Apache反向代理服务器后,其工作原理如下:
- 客户端向反向代理服务器发起请求:客户端通过HTTP协议向反向代理服务器发起请求。反向代理服务器通常会监听80端口或443端口,用于接收客户端请求。
- 反向代理服务器代理请求:反向代理服务器收到客户端请求后,会根据请求的URL和其他信息,将请求转发给后端的Web服务器。在这个过程中,客户端并不知道请求实际上被转发给了哪个Web服务器。
- 后端Web服务器响应请求:后端Web服务器收到请求后,根据请求的内容进行处理,并且返回响应结果。这个响应结果可以是动态生成的HTML页面、静态的文件或者其他资源。
- 反向代理服务器返回响应:反向代理服务器收到后端Web服务器返回的响应后,会将响应内容返回给客户端。在这个过程中,反向代理服务器可以根据需要对响应内容进行缓存、压缩、加密等处理,以提高Web应用程序的性能和安全性。
服务设备(应用)
应用服务器(DMZ区)
1.Web服务器:Ubuntu18.04 + Apache + Flask
web服务器需访问内网(数据管理区)中的数据库服务器以获得数据。
2.DNS服务器:Centos7 + bind 搭建内网服务器
https://www.cnblogs.com/lcxhk/p/14118674.html
https://doc.52zoe.com/docs/maple-linux/maple-linux-1ci1kqbv08g61
企业的DNS服务器对外提供服务主要是为了支持企业的对外网络访问,例如企业的网站、邮件服务器等需要通过域名进行访问。企业可以将其域名解析服务委托给第三方DNS解析服务商,但这样会涉及到一些安全和隐私问题。
企业自己搭建的DNS服务器一般会配置为递归查询的方式。
更新DNS服务器的域名表,自动同步,即DNS服务器可以从其他DNS服务器自动获取域名解析信息,并及时更新自己的域名表。自动同步的方式一般使用DNS协议中的区域传输(AXFR)或增量传输(IXFR)功能实现.
3.邮件服务器:Ubuntu18.04 + Postfix
关于Postfix
Postfix是一个顶尖的SMTP服务器,也被称为MTA。Postfix负责从其他SMTP服务器接收邮件,将MUA递交的邮件传递给收件人。MUA(mail user agent)就是我们平常使用的Thunderbird,Foxmail,Outlook等邮箱客户端。Postfix程序采用模块化的设计,每一个模块都尽可能以最低的权限运行。这种设计非常有助于安全。Postfix与Unix的结合度非常高。一台Linux服务器的Postfix可以负责多个域名的邮件发送和接收。这篇文章只介绍单个域名的发送和接收。 https://blog.51cto.com/u_15127557/4065429
数据库服务器
Ubuntu18.04 + Mysql + 远程访问
https://github.com/Qingquan-Li/blog/issues/151
在数据库服务器中,配置远程访问以供web服务器接入;此外需通过防火墙限制流量,仅允许来自web服务器的流量通过,或建立VPN(偏麻烦)。
认证服务器(域控等)
Windows办公环境下,域控的角色常常使用Active Directory完成,Windows Server的局限性使得Windows域中只能添加Windows系统主机,而不能添加Linux系统主机。Samba可以通过Samba 4实现Active Directory域控制器的功能。
https://github.com/samba-team/samba
安卓模拟器
Ubuntu18.04+Genymotion
一般来说,Linux系统上也可以使用安卓模拟器来模拟安卓设备。安卓模拟器软件通常是跨平台的,可以在多种操作系统上运行,包括Linux系统。以下是几种在Linux系统上常用的安卓模拟器:
- Android Studio自带的模拟器:Android Studio是一种主要用于开发安卓应用程序的开发工具,它自带了一个安卓模拟器,可以在Linux系统上运行安卓应用程序。安装和配置过程相对较为复杂,需要一定的开发经验。
- Genymotion:Genymotion是一种功能强大的第三方安卓模拟器,提供了高度仿真的安卓环境,可以支持多种安卓版本和设备类型,并且支持多种PC平台,包括Linux系统。Genymotion的界面友好,易于使用。
- Anbox:Anbox是一种基于Linux容器技术的安卓模拟器,可以在Linux系统上运行安卓应用程序。与其他安卓模拟器不同的是,Anbox是通过在Linux内核上创建安卓容器来实现安卓应用的运行,因此可以实现更高的性能和更好的集成度。
Genymotion是一种基于VirtualBox虚拟化技术的第三方安卓模拟器,可以在多种操作系统上运行,包括Linux系统。具体来说,Genymotion支持以下几种Linux发行版:
- Ubuntu 18.04、20.04
https://blog.csdn.net/m0_53533553/article/details/127968374
二层设备
交换机(核心+汇聚层)
总述,我们暂时决定采用虚拟化的交换机。下面是几款主流的交换机虚拟方案。
https://github.com/faucetsdn/ryu
Ryu:Ryu是一个用Python编写的SDN控制器平台,它提供了许多SDN应用程序和网络服务的API,同时也可以作为虚拟交换机使用。Ryu的虚拟交换机模块实现了OpenFlow协议,并且可以与其他SDN控制器配合使用。
然而Ryu是一个SDN控制器的软件包,它不是一个虚拟交换机,因此不能用于直接模拟核心虚拟机和汇聚层虚拟机。然而,可以使用Ryu控制器来控制OpenFlow交换机,这些交换机可以作为虚拟交换机在虚拟化环境中使用,从而实现对核心虚拟机和汇聚层虚拟机的控制。同时,Ryu控制器也支持多种网络拓扑结构和应用场景。
https://github.com/openvswitch/ovs
Open vSwitch是什么?
Open vSwitch(OVS)是一个开源的虚拟交换机,可用于在物理和虚拟服务器之间创建虚拟网络。它支持多种数据面处理程序,包括Linux内核、DPDK和Netmap等,同时也支持多种控制器协议,如OpenFlow和OVSDB等。OVS能够同时支持核心交换机和汇聚层交换机的模拟吗?
云环境平台涉及到两种交换机:核心交换机和汇聚层交换机,而Open vSwitch可以同时模拟核心虚拟机和汇聚层虚拟机。
Open vSwitch是一个虚拟交换机,可以在虚拟化环境中使用,支持多种虚拟化平台和技术,如KVM、Xen、VMware、Hyper-V等。Open vSwitch提供了许多高级特性,如多层交换、负载均衡、流量限制、VLAN、QoS等。这些特性使得Open vSwitch可以满足数据中心网络中各种不同的需求,包括核心虚拟机和汇聚层虚拟机。
AP&AC(无线访问接入点&接入控制器)
AP设备:
总述:AP设备也能够虚拟化,所以我们寻找了一些虚拟化方案。常用的虚拟化方案有下面的这些。
DD-WRT是一个基于Linux的开源无线路由器固件,它可以用于将路由器设备转换为软AP。DD-WRT支持多种路由器设备和Wi-Fi芯片组,具有强大的路由和网络功能。
- 因为常用的
https://github.com/openwrt/openwrt
- OpenWrt:OpenWrt是一个开源的嵌入式Linux发行版,它可以用于将支持OpenWrt的路由器设备转换为软AP。OpenWrt支持多种硬件平台和Wi-Fi芯片组,具有强大的路由和网络功能。可以利用虚拟机模拟AP设备的实现(vmware模拟AP设备教程:https://www.jb51.net/article/241586.htm)
注意,上面两种软件的都较为主流,主要区别是:OpenWrt注重自由、可定制性强,DD-Wrt注重易用性和稳定性,且支持更多的硬件设备。
私有云和公有云的安全主要靠网络边界的防护,如fw、waf等
4.云服务相关调研
云服务概念解释
云计算&云服务
云计算是一种技术,他搭建了一个平台,帮助中小型企业解决了在部署应用时昂贵的硬件设备成本。在这一平台上,可以提供存储、计算等不同的服务,这些服务就是云服务。“云计算实现的服务”。
云服务结构示意
硬件、软件、网络等计算机资源,在云计算技术的技术架构中,得到整合,然后在其管理调度下,形成一个计算机资源共享池,即“云”。它可以对外提供服务,从而形成一个云计算平台,简称云平台。云平台有存储、计算、处理和共享这4种功能。其中,在云平台上进行存储,即为“云存储”。用户可以通过互联网,接入云平台,以按需、易拓展的方式获取所需服务,这就是“云服务”。
公有云、私有云、社区云、混合云
云计算的部署模式有以下4种,分别是:1、私有云;2、社区云;3、公共云;4、混合云。这是根据云计算服务的消费者来源划分的。私有云是为某个特定用户/机构建立的,公有云是为大众建的,社区云是介于公有、私有之间的一个形式,混合云是公有云、私有云、社区云几种的任意混合。
云网络接入架构
企业客户业务场景多种多样,包括线下 IDC,分布各地的办公室,门店,在家办公人员等。所有这些环境都需要一致的体验接入到企业内网的工作环境。
什么是云架构? 云架构是指构建云所需的所有组件和功能如何连接起来,以便交付供应用运行的在线平台。云被视为平台即服务(Pass),因为云提供商为用户提供了平台以及底层IT基础架构。 与传统的服务器相比,云平台可以将物理资源虚拟化为虚拟机资源池,灵活调用软硬件资源,实现对用户的按需访问。而且在运行过程中根据用户并发量的不同,实时迁移虚拟机资源,一方面保证提供高质量的服务,另一方面最小化资源成本,提高CPU,内存等利用率
云应用网络拓扑:
VPC:专有网络VPC (Virtual Private Cloud)是基于阿里云构建的一个隔离的网络环境,专有网络之间逻辑上彻底隔离。托管在VPC内的是我们在私有云上的服务资源,如云主机、负载均衡、云数据库等。
专有网络是您专有的云上私有网络。您可以完全掌控自己的专有网络,例如选择IP地址范围、配置路由表和网关等,您可以在自己定义的专有网络中使用阿里云资源,如云服务器ECS(Elastic Compute Service)、云数据库RDS(Relational Database Service)和负载均衡SLB等。
VPN:VPN的英文全称是“Virtual Private Network”,翻译过来就是“虚拟专用网络”。在公用网络上建立专用网络,进行加密通讯。在交换机,防火墙设备或Windows等软件里也都支持VPN功能,一句话,VPN的核心就是在利用公共网络建立虚拟私有网。
简而言之,VPN创建了一条通向内网的通道,用户通过访问VPN服务器来访问内网服务,即用户对内网服务是不可见的,内网服务对用户是可见的,VPN服务器代替用户访问内网网站。
跨地网络互通云企业网方案
四、访问控制技术
传统企业网络的大内网中,有极大一部分的威胁都来自于黑客入侵内网某一台主机后,横向移动导致的进一步攻击,为了有效地快速对入侵事件进行响应,阻止横向移动,可通过构建内网的防御体系:
1.ACL(访问控制列表)
- 访问控制列表ACL(Access Control List)是由一条或多条规则组成的集合。所谓规则,是指描述报文匹配条件的判断语句,这些条件可以是报文的源地址、目的地址、端口号等。
- ACL本质上是一种报文过滤器,规则是过滤器的滤芯。设备基于这些规则进行报文匹配,可以过滤出特定的报文,并根据应用ACL的业务模块的处理策略来允许或阻止该报文通过。
- ACL的缺点:难以优化理解,大型ACL的冗余、不一致
实现方案:一般路由器都能够进行ACL配置。
2.SDP(软件定义边界)
软件定义边界”( Software Defined Perimeter,SDP),也称为Dark Cloud,是由国际云安全联盟CSA于2013年提出的基于零信任(Zero Trust)理念的新一代网络安全技术架构。SDP借鉴了虚拟化技术和其他软件定义的体系结构的概念,旨在进一步实现网络安全现代化。
SDP主张网络隐身、零信任、最小授权,所有应用程序都将被隐藏,外部方和攻击者都看不到它,只有在对每个端点请求进行身份验证和授权之后才授予访问权限。使用SDP的公司实质上是在其服务器和其他基础架构上披上了隐形的外衣,没有人可以从外面看到,只有授权用户可以访问基础结构。
SDP开源实现方案:https://github.com/WaverleyLabs
3.SDN(软件定义网络)
在传统的网络中,网络设备通常具有复杂的配置和管理,因此难以快速应对网络安全威胁。另外,传统网络中的数据包传输是基于物理设备的,攻击者可以通过攻击这些物理设备来获取更多的访问权限,并进行横向移动攻击。
而SDN采用了软件定义的方式管理网络,可以通过中央控制器对整个网络进行实时管理和控制,从而提高了网络的可视化和可管理性。此外,SDN中的网络流量可以通过流量分类和隔离技术进行管理,可以对网络流量进行更加精细的控制和监控,从而有效防止横向移动攻击。
- OpenDaylight:OpenDaylight是一个开源的SDN控制器,可以用于构建和管理SDN网络。它提供了各种插件和API,可以方便地管理和控制SDN网络中的设备和流量。
- Floodlight:Floodlight是一个基于OpenFlow协议的开源SDN控制器,支持各种类型的SDN网络拓扑结构和流量管理。它提供了一系列的API和插件,可用于构建和管理SDN网络。
- ONOS:ONOS是一个开源的SDN控制器,支持各种类型的SDN网络拓扑结构和协议。它提供了一系列的API和插件,可用于构建和管理SDN网络。
- Ryu:Ryu是一个轻量级的SDN控制器,可以用于构建和管理SDN网络。它支持OpenFlow协议和其他SDN协议,提供了一系列的API和插件,可用于管理SDN网络中的流量和设备。
SDN:https://pluribusnetworks.com/blog/what-is-network-segmentation/