Serverless安全揭秘:架构风险与防护措施
Posted 云鼎实验室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Serverless安全揭秘:架构风险与防护措施相关的知识,希望对你有一定的参考价值。
Serverless简介
Serverless(又称为无服务器)架构是一种全新的云计算模式,它是在容器技术和当前服务模式基础之上发展起来的,它更多的是强调后端服务与函数服务相结合,使开发者无需关注后端服务具体实现,而更侧重关注自己业务逻辑代码的实现。
随着云原生技术的不断发展,应用部署模式已逐渐趋向于“业务逻辑实现与基础设施分离”的设计原则。Serverless架构完美诠释了这种新型的应用部署模式和设计原则。从云原生整体发展路线来看,Serverless模式更趋近于云原生最终的发展方向。
Serverless实现方式:BaaS和FaaS
云计算发展历程从IaaS(Infrastructure as a Service,基础设施即服务)到PaaS(Platform as a Service,平台即服务),再到SaaS(Software-as-a-Service,软件即服务),逐渐的将去服务器化的趋势表现的愈发明显,而SaaS的下一个阶段可能就是
BaaS+FaaS+Others,即Serverless。
提到Serverless,我们首先得解下什么是BaaS和FaaS。
BaaS(Backend as a Service,后端即服务)和FaaS(Functions as a Service,函数即服务)是Serverless两种主要的实现方式。BaaS可以理解为是一个整合和开放各种在应用开发中需要的服务能力的平台,它通过创建大量重复的代码功能,方便应用基于服务的快速开发和构建。FaaS是Serverless主要的实现方式,开发者通过编写一段逻辑代码来定义函数调用方式,当事件触发时函数被调用执行。
FaaS本质上是一种事件驱动并由消息触发的服务,事件类型可以是一个HTTP请求,也可以是一次用户操作,函数可以看作是完成某个功能或任务的代码片段。相比传统应用运行模式,Serverless业务代码被拆分成了函数粒度,不同函数表示不同的功能,函数之间调用关系也更加复杂。
云计算发展历程与FaaS所处的地位
Serverless应用架构
通常Serverless应用都是基于无服务器应用框架Serverless Framework构建完成的。开发者无需关心底层资源,即可快速部署完整可用的Serverless应用架构,同时Serverless平台具有资源编排、自动伸缩、事件驱动等能力,覆盖编码、调试、测试、部署等全生命周期,帮助开发者联动各类云组件资源,迅速构建完整的 Serverless 应用。
目前常见的云厂商Serverless应用服务支持各类 Web 框架快速创建、迁移上云,可以实现Express、Next.js、Python Flask、php Laravel、Koa、Egg.js、Nuxt.js等框架应用的快速部署。开发者无需进行复杂的配置,通过Web Fuction即可快速搭建各类场景下的Serverless应用,轻松实现云函数、API网关、COS、DB 等资源的创建、配置和部署。Serverless提供从初始化、编码、调试、资源配置和部署发布,到业务监控告警、实时日志、故障排查的一站式解决方案。
从架构层面来看,Serverless由BaaS和FaaS共同构成了完整的应用架构。Serverless计算平台可以帮助开发者完成构建服务运行环境,开发者无需购买服务器,云厂商负责提供并维护基础设施资源和后端服务组件。Serverless架构具有自动扩缩容的特性,当应用部署后云计算平台会为Serverless应用提供足够的资源来支持应用稳定运行。
Serverless组件架构图
无服务器云函数(Serverless Cloud Function,SCF)是一种为企业和开发者们提供的无服务器执行环境。开发者通过Web IDE或者本地IDE编写代码,然后将代码和所需依赖一起打包部署到云函数平台。开发者会在业务代码中会提前定义好函数具体调用方式,如访问数据库、对象存储、第三方服务等接口,用户通过提前定义好的请求方式去访问对应的服务,平台会根据用户请求去拉起相应的计算资源运行业务代码。
Serverless运行原理图
安全风险共担模型
由于Serverless后端基础设施和服务主要是由云厂商负责的,但是Serverless应用本身是面向企业和开发者的,Serverless应用允许开发者上传自己的代码到服务端,同时允许开发者对应用配置做修改,若开发者上传的代码中包含漏洞或应用配置错误,将导致应用面临风险,因此Serverless安全问题相对复杂。
Serverless的安全风险责任划分可以参照Serverless安全风险共担模型。对于云厂商来说,首先需要保障云基础环境安全,包括所有的底层基础设施和后端服务软件的安全性。同时云厂商也担负着Serverless平台应用整体安全防护责任,借助API网关、云防护等优势来保障Serverless应用安全。对于用户来说,需要保证上传到服务端的代码是安全的、同时确保应用策略配置安全,避免代码中存在漏洞或策略配置不当导致安全风险。所以从本质上来说,Serverless的安全性是需要云厂商和用户双方共同承担的。
Serverless安全风险共担模型
Serverless安全风险
Serverless一般的攻击流程:攻击者通过应用程序漏洞或者组件漏洞实现初始访问权限,当获取到服务器权限后,攻击者会尝试查找并窃取用户凭据或服务凭据,然后利用可用凭证进一步横向攻击其他云服务。整个攻击过程包含但不限于以下攻击方式:
腾讯安全云鼎实验室根据自身安全实践,结合国内外众多相关案例,总结出了Serverless常见风险项,用以帮助开发以及运维人员识别各类风险,从而有效的保障Serverless应用安全。主要安全风险可参照下图:
Serverless安全风险
1.应用程序漏洞
对于Serverless应用而言,SQL注入、命令注入、XSS等传统漏洞风险在Serverless应用中同样存在。若Serverless应用在实现过程中没有对外部输入进行严格校验(包括用户输入和各应用间交互)则可能导致注入风险的发生。传统应用的注入防护一般是对用户输入进行过滤和限制,但是Serverless应用内部网络相比传统网络更加复杂,事件输入可能来自任何云服务(如服务器、云存储、电子邮件、消息服务等),因此仅仅依靠编写安全的代码和依赖传统WAF防护并不能完全杜绝注入风险的发生。
示例: 文件上传处未过滤用户输入导致命令执行漏洞。由于开发者在编写代码时使用了命令拼接的方式来构造路径,但是没有对文件名进行严格过滤,导致攻击者可以控制传入的内容,导致命令执行漏洞的产生。
2.拒绝钱包攻击
DoW(Denial of Wallet,拒绝钱包攻击)是针对云平台账户的DoS方式,其目的是通过高并发来耗尽用户账户可用余额。DoW攻击与传统拒绝服务(DoS)攻击方式类似,恶意攻击者向通过构造大量并发请求来触发函数调用,由于Serverless是按照资源使用量和函数调用次数来收费的,当有大量调用产生时,服务会自动扩展,这将导致用户账户可用余额快速被消耗。DoW攻击的一个典型的场景是在用户订阅web程序上生成大量虚假用户,通过大量用户访问API端点造成大量资源消耗导致账户金额耗尽。
3.资源滥用风险
近年来,随着Severless的快速发展,各种服务滥用现象也相继出现,主要体现在云函数滥用和Serverless基础设施滥用。云函数常被恶意人员用作构建代理池、隐藏C2和构建webshell,恶意人员通过构建此类应用来达到隐藏其客户端真实IP的目的。Serverless应用也常被用于构建扫描、钓鱼等攻击平台,攻击者通过构建此类应用来实现对外部系统的扫描探测、钓鱼窃取用户数据等目的。这些滥用行为导致云基础设施资源被恶意利用和消耗,给云服务的正常使用和监测带来了极大的困扰。
示例: 使用Serverless构建扫描应用导致服务滥用。恶意攻击人员通过上传代码构建扫描应用,通过本地调用云函数资源来实现动态IP扫描的目的。
4.第三方API和组件不安全接入
由于Serverless服务一般会接入多个云服务组件,包括云API、API网关、事件触发器等。若云服务或组件在接入Serverless服务时未对组件身份或接收数据进行校验,则可能导致安全风险的发生。接入数据源的增加会导致攻击面扩大,传统应用只能从单一服务器上获取敏感数据,而Serverless应用通常会接入大量数据源,若攻击者针对各数据源进行攻击,则可能获取到大量敏感数据。
5.供应链攻击风险
近年来,供应链安全事件时有发生,一些严重的漏洞可能来自于开源库和框架,nodejs生态系统的一项统计表明通常我们部署的97%的代码来自于开源库和开源组件,所以供应链攻击对Serverless来说是一项非常重要的安全风险。
6.运行时安全风险
若攻击者已经通过某种方式获得了Serverless服务器权限后,则可能通过替换引导程序的方式攻击Serverless应用服务,从而导致Serverless应用实例被接管。如果攻击者可以修改Serverless ACL策略,则可以通过修改函数超时时间,增加服务冷启动时间,或者通过Serverless预热插件增加运行时时长等方式实现持久化控制。
7.配置不当导致权限滥用
当Serverless存在不安全的IAM配置时,将导致可执行恶意操作以及进行云平台身份越权。Serverless构建的应用程序通常包含数十或数百个函数,每个函数都有自己特定的功能和用途,这些功能被编织在一起并被编排以形成整个系统逻辑。一些函数可能会公开公共的WEB API接口,因此需要强大的身份验证方案为相关功能、事件触发提供访问控制保护。当创建IAM策略时,如果没有遵循最小权限原则,则可能导致分配给函数的IAM角色过于宽松,攻击者可能会利用函数中的漏洞横向移动到云账户中的其它资源。
8.日志和监控不足
传统的应用已经有比较成熟的日志管理和分析工具,而Serverless函数级别的日志分析工具还未被广泛采用。由于Serverless应用函数数量多、生命周期短,各函数间调用关系复杂,因此任何一个点都可能成为攻击突破口。对于云厂商来说,需要具备完备的安全防护和应用监测体系,才能更好的保障Serverless应用和服务的安全。
9.云环境网络攻击风险
攻击者可利用漏洞或错误的云平台架构配置,从公有云环境横向移动到云管理内部网络(如公有云到IDC网络);或者从公有云网络横向移动到客户构建的网络环境中,导致严重的攻击事件产生。
10.云特性攻击风险
利用云上服务的特性,也可展开更多的攻击,例如通过Serverless服务窃取到云服务凭据或角色临时访问凭据等信息后,可利用这些凭据获取对应服务的相应控制权限;又或是利用容器逃逸漏洞进行更深入攻击操作等。
11.云资源消耗攻击风险
挖矿攻击作为一种较为常见的攻击形式,其威胁在云环境中也同样存在,Serverless服务同样存在云资源消耗攻击风险,攻击者攻击Serverless服务用以进行挖矿操作,消耗客户的资源和资金,给客户造成影响。攻击者瞄准云上脆弱资产,将挖矿木马植入云资源中进行挖矿,这将导致客户资源受到较大威胁。
12.密钥存储风险
Serverless服务中同样存在密钥以及凭据的存储安全风险,攻击者可以利用漏洞,在Serverless服环境变量中获取凭证、或是在代码中查找明文编写的密钥。
13.后门持久化风险
利用Serverless服务的弹性原则,与传统攻击所部署的后门相比,攻击者可以在Serverless服务中构建更加隐蔽的后门。通过利用这些后门,可以达到持久化攻击的效果。
Serverless防护措施
我们根据大量数据和实际案例,结合Serverless各类风险总结出了Serverless风险防护措施。通过了解这些安全防护手段,可以帮助开发以及运维人员识别并消除各类风险,从而更好的保障云上资产安全。主要的安全防护措施总结如下:
Serverless安全防护
1.使用安全漏洞缓解措施
Serverless的安全性依靠用户和云厂商共同来保障,对于开发人员来说,最基础的要求开发人员编写代码时遵循安全开发原则,保证业务代码本身不存在安全漏洞;其次需要保证Serverless应用配置安全,避免因为配置不当导致不安全风险的发生。对于云厂商来说,需要保证Serverless应用与其他云服务组件的接口调用安全,对于重要的功能需要在功能模块之间放置防火墙做好隔离,当基础应用存在注入等问题时,防火墙会起到一定缓解作用。其次由于Serverless通常接入应用组件和数据较多,因此需要使用https/tls来保障数据在传输过程中的安全性,同时使用KMS(Key Management Service,密钥管理系统)来保障服务运行时的密钥使用安全,避免将密钥等敏感数据硬编码或写入环境变量中。
2.Dos攻击缓解与防护
开发者通过编写高效的Serverless函数来执行离散的目标任务,为Serverless功能执行设置适当的超时时间和磁盘使用限制,通过对API调用设置请求限制,对Serverless功能实施适当的访问控制等来缓解Dos攻击风险。同时使用不易受到ReDos等应用层Dos攻击的API、模块和库来避免Dos问题的产生。
3.Serverless滥用防护
针对Serverless滥用问题,需要从Serverless应用本身做限制,如限制某些库和方法的使用,通过有效监控和阻断来提高Serverless服务滥用的门槛,完善异常事件发现和监测机制,当发现滥用行为时及时触发告警和阻断滥用行为。
4.第三方依赖库防护
由于Serverless依赖于第三方组件和库构建应用程序和运行环境,因此第三方依赖库的安全性直接影响到Serverless应用和平台的安全。构建完善的第三方依赖库防护和监测机制对保障Serverless应用安全起到极大的意义。
5.IAM访问控制防护
在Serverless中,运行的最小单元通常为一个个函数,Serverless中最小特权原则通过事先定义一组具有访问权限的角色,并赋予函数不同的角色,从而可以实现函数层面的访问控制,避免统一的权限分配导致的各类安全风险。
6.Serverless平台防护
对于云厂商而言,要避免使用过时的函数和云资源,重复利用资源虽然有助于节约成本,但是会导致Serverless攻击面增加,因此必须定期清理服务器环境,删除未使用的角色,身份和依赖项等。其次要避免重用执行环境,对于云厂商而言,在两次调用之间保留执行环境,可以提高调用效率,但是当执行环境被保留下来时,部分敏感数据可能会被保留下来,这将导致一定的安全风险。
7.完善安全监控和日志记录
由于函数的生命周期极短,并且随着扩展部署越来越多的函数,函数调用数量不断增加,各函数功能之间存在复杂的关联性,攻击可能从任何一个点发起。因此需要建立完善监控机制,例如使用函数级别的日志分析工具来提高监控能力,及时发现攻击行为。
腾讯云Serverless应用服务目前已经具备完善的安全防护体系。以腾讯云云函数(SCF)为例,在密钥安全管理上,腾讯云使用了密钥管理系统(Key Management Service,KMS)。KMS使用经过第三方认证的硬件安全模块 HSM(Hardware Security Module)来生成和保护密钥,实现密钥全生命周期管理和保障数据安全能力。同时云函数也完善了配套的监控和告警机制,提供如调用次数、内存使用、并发使用、超时、代码错误等多维度的监控和告警能力,帮助运维人员轻松实现应用后期维护。对于基础设施、资源管理、安全管控、容灾等能力是云函数平台必备的基础能力,也是云平台的核心能力。
密钥管理系统(KMS)产品架构图
云安全攻防矩阵V3.0发布
腾讯安全云鼎实验室根据自身安全实践,结合国内外相关案例,对云上主流应用安全风险进行抽象,绘制出了云安全攻防矩阵。企业和开发者可参照该矩阵了解云服务攻击手法,帮助开发以及运维人员识别各类风险。我们的云安全攻防矩阵V3.0已经发布了,此次新增了Serverless安全矩阵模块,目前3.0版本已经涵盖云服务器、容器、cos存储桶、Serverless等主流云服务。也欢迎大家积极踊跃与我们沟通交流,一起为维护云安全贡献力量。矩阵详情可查看云鼎实验室官网:
https://cloudsec.tencent.com/home/
写在后面
Serverless作为一种新的技术和架构模式,虽然起步较晚但发展迅猛,短短几年时间已经推出多款备受开发者追捧的应用,吸引了大批开发者的关注。作为一个相对比较新鲜的事物,Serverless还有很多领域和价值值得我们去探索。随着容器技术、IoT、5G、区块链等新兴技术的发展,技术上也逐渐趋向于中心化、轻量虚拟化、细粒度计算等,而Serverless也将借势发展,相信不久的将来Serverless必将在云计算的舞台上大放异彩。
参考链接
http://www.ccopsa.cn/QiantaiZiyuanXiazaiWendang/WenjianXiazai?key=1166d80a-da24-4a59-8fdc-9d15c01ca9af
https://www.youtube.com/watch?v=ILJozDEQ-aw
https://mp.weixin.qq.com/s/kNawzZowQt8hwiE5Z8wIQQ
https://mp.weixin.qq.com/s/rbS0_42RBiFu8UFFQW4kew
https://mp.weixin.qq.com/s/dzvQQNFGBTfF7TvowaowFA
https://mp.weixin.qq.com/s/0Lq7hX2WdC96rVQgkBXunA
https://mp.weixin.qq.com/s/duF1Z0EDC3n_G378Aq_XYA
https://owasp.org/www-project-serverless-top-10/
https://github.com/neargle/my-re0-k8s-security
https://snyk.io/blog/10-serverless-security-best-practices/
https://project-awesome.org/pmuens/awesome-serverless
https://toutiao.io/posts/jx6yyi3/preview
https://github.com/puresec/sas-top-10
https://www.youtube.com/watch?v=ILJozDEQ-aw
https://www.youtube.com/watch?v=tlZ2PIXTHxc
https://mp.weixin.qq.com/s/XuAlWNhrGvRrge4JdEZ62A
https://www.sciencedirect.com/science/article/pii/S221421262100079X
https://unit42.paloaltonetworks.com/gaining-persistency-vulnerable-lambdas/
防火墙基础之中型企业网络架构安全防护
中型企业网络架构安全防护
原理概述:
防火墙介绍:
防火墙(英语:Firewall)技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术。
防火墙技术的功能主要在于及时发现并处理计算机网络运行时可能存在的安全风险、数据传输等问题,其中处理措施包括隔离与保护,同时可对计算机网络安全当中的各项操作实施记录与检测,以确保计算机网络运行的安全性,保障用户资料与信息的完整性,为用户提供更好、更安全的计算机网络使用体验。
所谓“防火墙”是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种建立在现代通信网络技术和信息安全技术基础上的应用性安全技术,隔离技术。越来越多地应用于专用网络与公用网络的互联环境之中,尤其以接入Internet网络为最甚。
防火墙主要是借助硬件和软件的作用于内部和外部网络的环境间产生一种保护的屏障,从而实现对计算机不安全网络因素的阻断。只有在防火墙同意情况下,用户才能够进入计算机内,如果不同意就会被阻挡于外,防火墙技术的警报功能十分强大,在外部的用户要进入到计算机内时,防火墙就会迅速的发出相应的警报,并提醒用户的行为,并进行自我的判断来决定是否允许外部的用户进入到内部,只要是在网络环境内的用户,这种防火墙都能够进行有效的查询,同时把查到信息朝用户进行显示,然后用户需要按照自身需要对防火墙实施相应设置,对不允许的用户行为进行阻断。通过防火墙还能够对信息数据的流量实施有效查看,并且还能够对数据信息的上传和下载速度进行掌握,便于用户对计算机使用的情况具有良好的控制判断,计算机的内部情况也可以通过这种防火墙进行查看,还具有启动与关闭程序的功能,而计算机系统的内部中具有的日志功能,其实也是防火墙对计算机的内部系统实时安全情况与每日流量情况进行的总结和整理。
防火墙是在两个网络通讯时执行的一种访问控制尺度,能最大限度阻止网络中的黑客访问你的网络。是指设置在不同网络(如可信任的企业内部网和不可信的公共网)或网络安全域之间的一系列部件的组合。它是不同网络或网络安全域之间信息的唯一出入口,能根据企业的安全政策控制(允许、拒绝、监测)出入网络的信息流,且本身具有较强的抗攻击能力。它是提供信息安全服务,实现网络和信息安全的基础设施。在逻辑上,防火墙是一个分离器,一个限制器,也是一个分析器,有效地监控了内部网和Internet之间的任何活动,保证了内部网络的安全。
防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口。而且它还能禁止特定端口的流出通信,封锁特洛伊木马。最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。
网络安全的屏障
一个防火墙(作为阻塞点、控制点)能极大地提高一个内部网络的安全性,并通过过滤不安全的服务而降低风险。由于只有经过精心选择的应用协议才能通过防火墙,所以网络环境变得更安全。如防火墙可以禁止诸如众所周知的不安全的NFS协议进出受保护网络,这样外部的攻击者就不可能利用这些脆弱的协议来攻击内部网络。防火墙同时可以保护网络免受基于路由的攻击,如IP选项中的源路由攻击和ICMP重定向中的重定向路径。防火墙应该可以拒绝所有以上类型攻击的报文并通知防火墙管理员。
强化网络安全策略
通过以防火墙为中心的安全方案配置,能将所有安全软件(如口令、加密、身份认证、审计等)配置在防火墙上。与将网络安全问题分散到各个主机上相比,防火墙的集中安全管理更经济。例如在网络访问时,一次一密口令系统和其它的身份认证系统完全可以不必分散在各个主机上,而集中在防火墙一身上。
监控审计
如果所有的访问都经过防火墙,那么,防火墙就能记录下这些访问并作出日志记录,同时也能提供网络使用情况的统计数据。当发生可疑动作时,防火墙能进行适当的报警,并提供网络是否受到监测和攻击的详细信息。另外,收集一个网络的使用和误用情况也是非常重要的。首先的理由是可以清楚防火墙是否能够抵挡攻击者的探测和攻击,并且清楚防火墙的控制是否充足。而网络使用统计对网络需求分析和威胁分析等而言也是非常重要的。
防止内部信息的外泄
通过利用防火墙对内部网络的划分,可实现内部网重点网段的隔离,从而限制了局部重点或敏感网络安全问题对全局网络造成的影响。再者,隐私是内部网络非常关心的问题,一个内部网络中不引人注意的细节可能包含了有关安全的线索而引起外部攻击者的兴趣,甚至因此而暴漏了内部网络的某些安全漏洞。使用防火墙就可以隐蔽那些透漏内部细节如Finger,DNS等服务。Finger显示了主机的所有用户的注册名、真名,最后登录时间和使用shell类型等。但是Finger显示的信息非常容易被攻击者所获悉。攻击者可以知道一个系统使用的频繁程度,这个系统是否有用户正在连线上网,这个系统是否在被攻击时引起注意等等。防火墙可以同样阻塞有关内部网络中的DNS信息,这样一台主机的域名和IP地址就不会被外界所了解。除了安全作用,防火墙还支持具有Internet服务性的企业内部网络技术体系VPN(虚拟专用网)。
日志记录与事件通知
进出网络的数据都必须经过防火墙,防火墙通过日志对其进行记录,能提供网络使用的详细统计信息。当发生可疑事件时,防火墙更能根据机制进行报警和通知,提供网络是否受到威胁的信息。
交换机介绍:
交换机端口有三种工作模式,分别是Access,Hybrid,Trunk。
Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口;
Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口;
Hybrid类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。
Hybrid端口和Trunk端口在接收数据时,处理方法是一样的,唯一不同之处在于发送数据时:Hybrid端口可以允许多个VLAN的报文发送时不打标签,而Trunk端口只允许缺省VLAN的报文发送时不打标签。
Acess端口收报文:
收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则直接丢弃(缺省)
trunk端口收报文:
收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有判断该trunk端口是否允许该 VLAN的数据进入:如果允许则报文携带原有VLAN标记进行转发,否则丢弃该报文。
hybrid端口收报文:
收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则判断该hybrid端口是否允许该VLAN的数据进入:如果可以则转发,否则丢弃。
备注:PVID为Port-base Vlan ID,也就是端口的虚拟局域网ID号,关系到端口收发数据帧时的VLAN TAG 标记。
Acess端口发报文:
将报文的VLAN信息剥离,直接发送出去
trunk端口发报文:
比较端口的PVID和将要发送报文的VLAN信息,如果两者相等则剥离VLAN信息,再发送,否则报文将携带原有的VLAN标记进行转发。
hybrid端口发报文:
判断该VLAN在本端口的属性
如果是untag则剥离VLAN信息,再发送,如果是tag则比较端口的PVID和将要发送报文的VLAN信息,如果两者相等则剥离VLAN信息,再发送,否则报文将携带原有的VLAN标记进行转发。
二层交换机和三层交换机的区别
二层交换机用于小型的局域网络。这个就不用多言了,在小型局域网中,广播包影响不大,二层交换机的快速交换功能、多个接入端口和低谦价格为小型网络用户提供了很完善的解决方案。
三层交换机的优点在于接口类型丰富,支持的三层功能强大,路由能力强大,适合用于大型的网络间的路由,它的优势在于选择最佳路由,负荷分担,链路备份及和其他网络进行路由信息的交换等等路由器所具有功能。
三层交换机的最重要的功能是加快大型局域网络内部的数据的快速转发,加入路由功能也是为这个目的服务的。如果把大型网络按照部门,地域等等因素划分成一个个小局域网,这将导致大量的网际互访,单纯的使用二层交换机不能实现网际互访;如单纯的使用路由器,由于接口数量有限和路由转发速度慢,将限制网络的速度和网络规模,采用具有路由功能的快速转发的三层交换机就成为首选。
一般来说,在内网数据流量大,要求快速转发响应的网络中,如全部由三层交换机来做这个工作,会造成三层交换机负担过重,响应速度受影响,将网间的路由交由路由器去完成,充分发挥不同设备的优点,不失为一种好的组网策略,当然,前提是客户的腰包很鼓,不然就退而求其次,让三层交换机也兼为网际互连。
三层交换机和路由器的区别
1. 主要功能不同
虽然三层交换机与路由器都具有路由功能,但我们不能因此而把它们等同起来,正如现在许多网络设备同时具备多种传统网络设备功能一样,就如现在有许多宽带路由器不仅具有路由功能,还提供了交换机端口、硬件防火墙功能,但不能把它与交换机或者防火墙等同起来一样。因为这些路由器的主要功能还是路由功能,其它功能只不过是其附加功能,其目的是使设备适用面更广、使其更加实用。这里的三层交换机也一样,它仍是交换机产品,只不过它是具备了一些基本的路由功能的交换机,它的主要功能仍是数据交换。也就是说它同时具备了数据交换和路由由发两种功能,但其主要功能还是数据交换;而路由器仅具有路由转发这一种主要功能。
2. 主要适用的环境不一样
三层交换机的路由功能通常比较简单,因为它所面对的主要是简单的局域网连接。正因如此,三层交换机的路由功能通常比较简单,路由路径远没有路由器那么复杂。它用在局域网中的主要用途还是提供快速数据交换功能,满足局域网数据交换频繁的应用特点。
而路由器则不同,它的设计初哀就是为了满足不同类型的网络连接,虽然也适用于局域网之间的连接,但它的路由功能更多的体现在不同类型网络之间的互联上,如局域网与广域网之间的连接、不同协议的网络之间的连接等,所以路由器主要是用于不同类型的网络之间。它最主要的功能就是路由转发,解决好各种复杂路由路径网络的连接就是它的最终目的,所以路由器的路由功能通常非常强大,不仅适用于同种协议的局域网间,更适用于不同协议的局域网与广域网间。它的优势在于选择最佳路由、负荷分担、链路备份及和其他网络进行路由信息的交换等等路由器所具有功能。为了与各种类型的网络连接,路由器的接口类型非常丰富,而三层交换机则一般仅同类型的局域网接口,非常简单。
3. 性能体现不一样
从技术上讲,路由器和三层交换机在数据包交换操作上存在着明显区别。路由器一般由基于微处理器的软件路由引擎执行数据包交换,而三层交换机通过硬件执行数据包交换。三层交换机在对第一个数据流进行路由后,它将会产生一个MAC地址与IP地址的映射表,当同样的数据流再次通过时,将根据此表直接从二层通过而不是再次路由,从而消除了路由器进行路由选择而造成网络的延迟,提高了数据包转发的效率。同时,三层交换机的路由查找是针对数据流的,它利用缓存技术,很容易利用ASIC技术来实现,因此,可以大大节约成本,并实现快速转发。而路由器的转发采用最长匹配的方式,实现复杂,通常使用软件来实现,转发效率较低。
正因如此,从整体性能上比较的话,三层交换机的性能要远优于路由器,非常适用于数据交换频繁的局域网中;而路由器虽然路由功能非常强大,但它的数据包转发效率远低于三层交换机,更适合于数据交换不是很频繁的不同类型网络的互联,如局域网与互联网的互联。如果把路由器,特别是高档路由器用于局域网中,则在相当大程度上是一种浪费(就其强大的路由功能而言),而且还不能很好地满足局域网通信性能需求,影响子网间的正常通信。
综上所述,三层交换机与路由器之间还是存在着非常大的本质区别的。无论从哪方面来说,在局域网中进行多子网连接,最好还选用三层交换机,特别是在不同子网数据交换频繁的环境中。一方面可以确保子网间的通信性能需求,另一方面省去了另外购买交换机的投资。当然,如果子网间的通信不是很频繁,采用路由器也无可厚非,也可达到子网安全隔离相互通信的目的。具体要根据实际需求来定。
区别:二层、路由、三层、四层
二层交换技术
二层交换技术是发展比较成熟,二层交换机属数据链路层设备,可以识别数据包中的MAC地址信息,根据MAC地址进行转发,并将这些MAC地址与对应的端口记录在自己内部的一个地址表中。具体的工作流程如下:
(1)当交换机从某个端口收到一个数据包,它先读取包头中的源MAC地址,这样它就知道源MAC地址的机器是连在哪个端口上的;
(2)再去读取包头中的目的MAC地址,并在地址表中查找相应的端口;
(3)如表中有与这目的MAC地址对应的端口,把数据包直接复制到这端口上;
(4)如表中找不到相应的端口则把数据包广播到所有端口上,当目的机器对源机器回应时,交换机又可以学习一目的MAC地址与哪个端口对应,在下次传送数据时就不再需要对所有端口进行广播了。不断的循环这个过程,对于全网的MAC地址信息都可以学习到,二层交换机就是这样建立和维护它自己的地址表。
路由技术
路由器工作在OSI模型的第三层——网络层操作,其工作模式与二层交换相似,但路由器工作在第三层,这个区别决定了路由和交换在传递包时使用不同的控制信息,实现功能的方式就不同。工作原理是在路由器的内部也有一个表,这个表所标示的是如果要去某一个地方,下一步应该向那里走,如果能从路由表中找到数据包下一步往那里走,把链路层信息加上转发出去;如果不能知道下一步走向那里,则将此包丢弃,然后返回一个信息交给源地址。
路由技术实质上来说不过两种功能:决定最优路由和转发数据包。路由表中写入各种信息,由路由算法计算出到达目的地址的最佳路径,然后由相对简单直接的转发机制发送数据包。接受数据的下一台路由器依照相同的工作方式继续转发,依次类推,直到数据包到达目的路由器。而路由表的维护,也有两种不同的方式。一种是路由信息的更新,将部分或者全部的路由信息公布出去,路由器通过互相学习路由信息,就掌握了全网的拓扑结构,这一类的路由协议称为距离矢量路由协议;另一种是路由器将自己的链路状态信息进行广播,通过互相学习掌握全网的路由信息,进而计算出最佳的转发路径,这类路由协议称为链路状态路由协议。
由于路由器需要做大量的路径计算工作,一般处理器的工作能力直接决定其性能的优劣。当然这一判断还是对中低端路由器而言,因为高端路由器往往采用分布式处理系统体系设计。
三层交换技术
使用IP的设备A------------------------三层交换机------------------------使用IP的设备B比如A要给B发送数据,已知目的IP,那么A就用子网掩码取得网络地址,判断目的IP是否与自己在同一网段。
如果在同一网段,但不知道转发数据所需的MAC地址,A就发送一个ARP请求,B返回其MAC地址,A用此MAC封装数据包并发送给交换机,交换机起用二层交换模块,查找MAC地址表,将数据包转发到相应的端口。
如果目的IP地址显示不是同一网段的,那么A要实现和B的通讯,在流缓存条目中没有对应MAC地址条目,就将第一个正常数据包发送向一个缺省网关,这个缺省网关一般在操作系统中已经设好,对应第三层路由模块,所以可见对于不是同一子网的数据,最先在MAC表中放的是缺省网关的MAC地址;然后就由三层模块接收到此数据包,查询路由表以确定到达B的路由,将构造一个新的帧头,其中以缺省网关的MAC地址为源MAC地址,以主机B的MAC地址为目的MAC地址。通过一定的识别触发机制,确立主机A与B的MAC地址及转发端口的对应关系,并记录进流缓存条目表,以后的A到B的数据,就直接交由二层交换模块完成。这就通常所说的一次路由多次转发。
二层交换机用于小型的局域网络。这个就不用多言了,在小型局域网中,广播包影响不大,二层交换机的快速交换功能、多个接入端口和低谦价格为小型网络用户提供了很完善的解决方案。
路由器的优点在于接口类型丰富,支持的三层功能强大,路由能力强大,适合用于大型的网络间的路由,它的优势在于选择最佳路由,负荷分担,链路备份及和其他网络进行路由信息的交换等等路由器所具有功能。
三层交换机的最重要的功能是加快大型局域网络内部的数据的快速转发,加入路由功能也是为这个目的服务的。如果把大型网络按照部门,地域等等因素划分成一个个小局域网,这将导致大量的网际互访,单纯的使用二层交换机不能实现网际互访;如单纯的使用路由器,由于接口数量有限和路由转发速度慢,将限制网络的速度和网络规模,采用具有路由功能的快速转发的三层交换机就成为首选。
四层交换技术
第四层交换的一个简单定义是:它是一种功能,它决定传输不仅仅依据MAC地址(第二层网桥)或源/目标IP地址(第三层路由),而且依据TCP/UDP(第四层)应用端口号。第四层交换功能就象是虚IP,指向物理服务器。它传输的业务服从的协议多种多样,有HTTP、FTP、NFS、Telnet或其他协议。这些业务在物理服务器基础上,需要复杂的载量平衡算法。在IP世界,业务类型由终端TCP或UDP端口地址来决定,在第四层交换中的应用区间则由源端和终端IP地址、TCP和UDP端口共同决定。在第四层交换中为每个供搜寻使用的服务器组设立虚IP地址(VIP),每组服务器支持某种应用。在域名服务器(DNS)中存储的每个应用服务器地址是VIP,而不是真实的服务器地址。当某用户申请应用时,一个带有目标服务器组的VIP连接请求(例如一个TCP SYN包)发给服务器交换机。服务器交换机在组中选取最好的服务器,将终端地址中的VIP用实际服务器的IP取代,并将连接请求传给服务器。这样,同一区间所有的包由服务器交换机进行映射,在用户和同一服务器间进行传输。第四层交换的原理OSI模型的第四层是传输层。传输层负责端对端通信,即在网络源和目标系统之间协调通信。在IP协议栈中这是TCP(一种传输协议)和UDP(用户数据包协议)所在的协议层。
在第四层中,TCP和UDP标题包含端口号(portnumber),它们可以唯一区分每个数据包包含哪些应用协议(例如HTTP、FTP等)。端点系统利用这种信息来区分包中的数据,尤其是端口号使一个接收端计算机系统能够确定它所收到的IP包类型,并把它交给合适的高层软件。端口号和设备IP地址的组合通常称作"插口(socket)"。1和255之间的端口号被保留,他们称为"熟知"端口,也就是说,在所有主机TCP/I P协议栈实现中,这些端口号是相同的。除了"熟知"端口外,标准UNIX服务分配在256到1024端口范围,定制的应用一般在1024以上分配端口号。分配端口号的最近清单可以在RFc1700"Assigned Numbers"上找到。TCP/UDP端口号提供的附加信息可以为网络交换机所利用,这是第4层交换的基础。
具有第四层功能的交换机能够起到与服务器相连接的"虚拟IP"(VIP)前端的作用。每台服务器和支持单一或通用应用的服务器组都配置一个VIP地址。这个VIP地址被发送出去并在域名系统上注册。在发出一个服务请求时,第四层交换机通过判定TCP开始,来识别一次会话的开始。然后它利用复杂的算法来确定处理这个请求的最佳服务器。一旦做出这种决定,交换机就将会话与一个具体的IP地址联系在一起,并用该服务器真正的IP地址来代替服务器上的VIP地址。
每台第四层交换机都保存一个与被选择的服务器相配的源IP地址以及源TCP端口相关联的连接表。然后第四层交换机向这台服务器转发连接请求。所有后续包在客户机与服务器之间重新影射和转发,直到交换机发现会话为止。在使用第四层交换的情况下,接入可以与真正的服务器连接在一起来满足用户制定的规则,诸如使每台服务器上有相等数量的接入或根据不同服务器的容量来分配传输流。
如何选择第三层交换机
目前,第三层交换机呈现出较强的增长趋势,正在局域网中取代路由器,其巨大的市场潜力正在吸引着大批国内外厂商加入角逐。可喜的是国内厂商在关键技术方面已经开发出了自已的ASIC芯片和网管软件,从而为用户在品牌的选择上提供了广阔的空间。目前,国内市场主要厂商有Cisco、3Com、安奈特、Extreme、Fountry、Avaya、Nortel、Entersys、D-Link、SVA、神州数码网络、华为、同方网络、清华比威和TCL等。面对如此丰富多彩的品牌,用户在选择时要从哪些方面入手是必须解决的问题。
对于第三层交换机的选择,由于不同用户的网络结构和应用都会有所不同,所以在选择第三层交换机的侧重点也就有所不同。但对于用户而言,一般要注意如下几方面。
1.注重满配置时的吞吐量 与任何电子产品一样,选择第三层交换机时,首先要分析各种产品的性能指标,然而面对诸如交换容量(Gbps)、背板带宽(Gbps)、处理能力(Mpps)、吞吐量(Mpps)等众多技术指标,您最好还是紧紧抓住“满配置时的吞吐量”这个指标,因为其他技术指标用户一般没有能力进行测量,惟有吞吐量是用户可以使用Smart Bits和IXIA等测试仪表直接测量和验证的指标。
2.分布式优于集中式 不同品牌的交换机所采用的交换机技术也不同,主要可分为集中式和分布式两类。传统总线式交换结构模块是集中式,现代交换矩阵模块是分布式。由于企业内联网中运行的音频、视频及数据信息量越来越大,使之对交换机处理能力的要求也越来越高,为了实现在高端口密度条件下的高速无阻塞交换,采用分布式第三层交换机是明智的选择。因为总线式交换机模块在以太网环境下,仍然避免不了冲突,而矩阵式恰恰避免了端口交换时的冲突现象。
3.关注延时与延时抖动指标 企业内联网几乎都是高速局域网,其目的之一就是为了音频和视频等大容量多媒体数据的传输,而这些大容量多媒体数据包最忌因延时较长和数据包丢失使信息传输产生抖动。有些传统集中式交换机的延时高达2ms,而某些现代分布式交换机的延时只有10ms左右,两者相差上百倍。而导致延时过高的原因通常包括阻塞设计的交换结构和过量使用缓冲等,所以,关注延时实际上需要关注产品的模块结构。
4.性能稳定 第三层交换机多用于骨干和汇聚层,如果性能不稳定,则会波及网络系统的大部分主机,甚至整个网络系统。所以,只有性能稳定的第三层交换机才是网络系统连续、可靠、安全和正常运行的保证。当然,性能稳定看似抽象,似乎需要历史检测才能有说服力。其实不然,由于设备性能实际上是通过多项基本技术指标和市场声誉来实现的。所以,您可以通过吞吐量、延迟、丢帧率、地址表深度、线端阻塞和多对一功能等多项指标以及市场应用调查来确定。
5.安全可靠 作为网络核心设备的第三层交换机,自然是黑客攻击的重要对象,这就要求必须将第三层交换机纳入网络安全防护的范围。当然,这里所说的“安全可靠”,应该包括第三层交换机的软件和硬件。所以,从“安全”上讲,配备支持性能优良、没有安全漏洞防火墙功能的第三层交换机是非常必要的。从“可靠”上看,因客观上任何产品都不能保证其不发生故障,而发生故障时能否迅速切换到一个好设备上是需要关心的问题。另外,在硬件上要考虑冗余能力,如电源、管理模块和端口等重要部件是否支持冗余,这对诸如电信、金融等对安全可靠性要求高的用户尤其重要。还有就是散热方式,如散热风扇等设置是否合理等。最后,对宽带运营商来说,认证功能也是考察的重要方面。以前交换机是给企业用的,上了网就直接连出去了,不需要认证。而宽带运营商则需要确认用户是否记录在案。用户访问Internet时出现了一个窗口,输入用户名和密码才能通过认证,所以宽带运营商的第三层交换机还应支持一些特殊的协议如802.1x等,以实现认证。
6.功能齐全 产品不但要满足现有需求,还应满足未来一段时间内的需求,从而给用户一个增值空间。如当公司员工增加时,可以插上模块来扩充而不必淘汰原有设备。还有一些功能,如组播、QoS、端口干路(Port Trunking)、802.1d跨越树(Spanning Tree)以及是否支持RIP、OSPF等路由协议,对第三层交换机来说都是十分重要的。以组播为例,在VOD应用中,如果一组用户同时点播一个节目,用组播协议可以保证交换机在高密度视频流点播时非常顺畅地进行数据处理,反之,如果交换机不支持组播协议,则占用的带宽就相当大。再如QoS功能可以根据用户不同需求将其划分为不同等级,可以使宽带运营商按端口流量计费,从而为不同用户提供不同服务。另外,访问列表功能。如果在接入层划分VLAN,则不同VLAN用户间是不能通讯的,因为这是基于第二层的VLAN。若想通讯,必须通过第三层。如企业的财务部与市场部,一般都不来往,若有用户需要访问,则网管人员可以通过第三层交换机进行一个简单命令行设置,使VLAN间正常通讯,这就是访问列表功能。它是从路由器移植到第三层交换机上的一个功能,可以实现不同VLAN间的单向或双向通讯。如果发现外部某IP地址总发送无用数据包到自己网络上,则可以在访问列表中设置,禁止其发送数据包。
实验目的:
- 理解和掌握防火墙和交换机的基础配置
- 理解和掌握中型企业网络的基本部署
- 理解和掌握NAT和Static的基础配置
实验拓扑:
基础配置:
FW1:
配置接口:
#
interface GigabitEthernet0/0/0
undo shutdown
ip binding vpn-instance default
ip address 10.1.1.1 255.255.255.0
alias GE0/METH
service-manage http permit
service-manage https permit
service-manage ping permit
service-manage ssh permit
service-manage snmp permit
service-manage telnet permit
#
interface GigabitEthernet1/0/0
undo shutdown
ip address 192.168.100.1 255.255.255.0
service-manage ping permit
#
interface GigabitEthernet1/0/1
undo shutdown
ip address 192.168.200.1 255.255.255.0
service-manage ping permit
#
interface GigabitEthernet1/0/2
undo shutdown
ip address 200.1.1.2 255.255.255.0
gateway 200.1.1.1
service-manage ping permit
配置路由:
#
ip route-static 0.0.0.0 0.0.0.0 GigabitEthernet1/0/2 200.1.1.1
ip route-static 192.168.10.0 255.255.255.0 GigabitEthernet1/0/0 192.168.100.254
Ip route-static 192.168.30.0 255.255.255.0 GigabitEthernet1/0/1 192.168.200.254
配置安全策略:
#
security-policy
rule name 放通
action permit
配置NAT:
#
nat-policy
rule name SNAT
source-zone trust
egress-interface GigabitEthernet1/0/2
action source-nat easy-ip
配置安全防护:
查看防火墙监控大屏:
汇聚交换机1:
#
interface Vlanif10
ip address 192.168.10.254 255.255.255.0
#
interface Vlanif20
ip address 192.168.20.1 255.255.255.0
#
interface MEth0/0/1
#
interface Ethernet0/0/1
port link-type access
port default vlan 10
#
interface Ethernet0/0/2
port link-type trunk
port trunk allow-pass vlan 2 to 4094
核心交换机1:
#
interface Vlanif20
ip address 192.168.20.254 255.255.255.0
#
interface Vlanif40
ip address 192.168.40.253 255.255.255.0
#
interface MEth0/0/1
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
#
interface GigabitEthernet0/0/2
port link-type trunk
port trunk allow-pass vlan 2 to 4094
汇聚交换机2:
#
interface Vlanif30
ip address 192.168.30.254 255.255.255.0
#
interface Vlanif40
ip address 192.168.40.1 255.255.255.0
#
interface MEth0/0/1
#
interface Ethernet0/0/1
port link-type access
port default vlan 30
#
interface Ethernet0/0/2
port link-type trunk
port trunk allow-pass vlan 2 to 4094
核心交换机2:
#
interface Vlanif20
ip address 192.168.20.253 255.255.255.0
#
interface Vlanif40
ip address 192.168.40.254 255.255.255.0
#
interface MEth0/0/1
#
interface GigabitEthernet0/0/1
port link-type trunk
port trunk allow-pass vlan 2 to 4094
#
interface GigabitEthernet0/0/2
port link-type trunk
port trunk allow-pass vlan 2 to 4094
验证实验:
客户端配置:
服务器配置:
实验结束;
备注:如有错误,请谅解!
此文章为本人学习笔记,仅供参考!如有重复!!!请联系本人
以上是关于Serverless安全揭秘:架构风险与防护措施的主要内容,如果未能解决你的问题,请参考以下文章