网络安全防御模型
目录
6.1 网络防御概述
一、网络防御的意义
二、被动防御技术和主动防御技术
三、网络安全
纵深防御体系
四、主要防御技术
6.2 防火墙基础
一、防火墙的基本概念
二、防火墙的位置
1.防火墙的物理位置
2.防火墙的逻辑位置
3. 防火墙的不足
三、防火墙技术类型
四、包过滤防火墙
五、状态防火墙
六、代理
1. 不同类型的代理技术
2. 应用层代理
3. 电路级代理
4. NAT代理
七、Linux中的开源防火墙
6.3 入侵检测
基础
一、 入侵检测技术基本概念
二、入侵检测基本技术
三、入侵检测系统分类
四、网络入侵防御系统
五、Snort网络入侵检测系统(我的配置报告)
6.4 虚拟局域网基础
一、虚拟局域网概述
二、虚拟局域网分类
三、虚拟局域网应用场景
四、Virtual Private Network的安全
性
6.1 网络防御概述
一、网络防御的意义
进攻与防御是对立统一的矛盾体。进攻常常是为了有效的防御,而防御也常常是为了更好的进攻。
据说,普鲁士军事理论家、西方近代军事理论卡尔·菲利普·戈特弗里德·冯·克劳塞维茨曾经说过:进攻是最好的防守。
但是,克劳塞维茨确实说过:一将无谋,累死三军
他还说过:防御相比进攻是更强的战斗形式。
研究并积极部署网络防御技术,是达到“网络攻防平衡”的前提和基础
在网络空间中,如果只会进攻不懂防御,注定不会在网络攻防对抗中取得最终胜利。
二、被动防御技术和主动防御技术
所谓被动安全防御也称为传统的安全防御,主要是指以抵御网络攻击为目的的安全防御方法。
*典型的被动安全防御技术有:防火墙技术、加密技术、Virtual Private Network技术等*
主动网络安全防御则是以及时发现正在遭受攻击,并及时采用各种措施阻止攻击者达到攻击目的,尽可能减少自身损失的网络安全防御方法。
典型的主动安全防御技术有:网络安全态势预警、入侵检测、网络引诱、安全反击等技术。
三、网络安全纵深防御体系
网络安全的纵深防御(Defense in depth)的思想是指通过设置多重安全防御系统,实现各防御系统之间的相互补充,即使某一系统失效也能得到其他防御系统的弥补或纠正。
本质上是通过增加系统的防御屏障,既避免了对单一安全机制的依赖,也可以错开不同防御系统中可能存在的安全漏洞,从而提高抵御攻击的能力。
四、主要防御技术
1. 防火墙技术
防火墙是一种较早使用、实用性很强的网络安全防御技术,是最主要的被动安全防御技术之一。防火墙主要用于逻辑隔离不可信的外部网络与受保护的内部网络,或者说是用于对不同安全域的隔离。
2. 虚拟局域网技术
虚拟局域网(Virtual Private Network, Virtual Private Network)也是一种较早使用、实用性很强的网络安全被动防御技术,其主要的作用是通过加密技术,在不安全的网络中构建一个安全的传输通道,是加密和认证技术在网络传输中的应用。
3.入侵检测与防护技术
入侵检测与防护技术属于主动防御技术,主要有两种:入侵检测系统(lntrusion Detection System,IDS)和入侵防护系统( Intrusion Prevention System,IPS)。
- 入侵检测系统(IDS)注重的是网络安全状况的监管,通过监视网络或系统资源,寻找违反安全策略的行为或攻击迹缘,并发出报警
- 入侵防护系统(IPS)则倾向于提供主动防护,注重对入侵行为的控制。其设计宗旨是预先对入侵活动和攻击性网络流量进行拦截,避免其造成损失。
4. 网络蜜罐技术
蜜罐( Honeypot)技术也是一种主动防御技术,是一个“诱捕”攻击者的陷阱技术。蜜罐系统是一个包含漏洞的诱骗系统,通过模拟一个或多个易受攻击的主机和服务,给攻击者提供一个容易攻击的目标。攻击者往往在蜜罐上浪费时间,延缓对真正目标的攻击,而且可以为安全人员获得入侵取证提供重要的信息和有用的线索,便于研究入侵者的攻击行为。
6.2 防火墙基础
一、防火墙的基本概念
防火墙(Firewall),在徽派建筑中也称为马头墙,其本义是指设置在建筑物之间或在建筑物内部用以防火分隔以阻止火势或烟气蔓延,并具有较高的耐火性、稳定性、耐久性、隔热性和抗变形能力的墙体。
1. 防火墙的定义
在计算机网络(特别是互联网)中,防火墙特指一种在本地网络与外界网络之间的安全防御系统。作为一种非常有效的网络安全系统,防火墙能够隔离风险区域与安全区域的连接,同时不会妨碍安全区域对风险区域的访问。
1994年,William Cheswick 和Steven Bellovin在《Firewalls and Internet Security》一书中给出了防火墙的如下定义:
防火墙是位于两个网络之间的一组构件或一个系统,具有以下属性:
- 防火墙是不同网络或者安全域之间信息流的唯一通道,所有双向数据流必须经过防火墙。
- 只有经过授权的合法数据,即防火墙安全策略允许的数据才可以通过防火墙。
- 防火墙系统应具有很高的抗攻击能力,并且其自身还不受各种攻击的影响。
- 防火墙是位于两个(或多个)网络间,实施访问控制策略的一个或一组组件的集合。
2. 防火墙的基本要求
- 保障信任网络(内部网)的安全
- 保证信任网络与非信任网络(外部网)之间的连通
防火墙就是现实世界中的门卫
3.防火墙的作用
分离器:隔离风险区域,同时不妨碍对风险区域的访问;
限制器:不同网络或网络安全域之间信息的出入口并根据安全策略控制出入网络的信息流;
分析器:监控进出网络的信息流,仅让安全、核准了的信息进入,抵御对有安全威胁的数据包,从而完成看似不可能的任务。
4. 防火墙的基本要素
- 安全策略
- 信任网络(内部网)
- 非信任网络(外部网)
- 非信任网络(外部网)
二、防火墙的位置
1.防火墙的物理位置
在现实中,防火墙通常被部署在任何有访问控制需要的场合,比如局域网边界、两个不同的网络之间等。
2.防火墙的逻辑位置
逻辑位置指的是防火墙与ISO OSI模型对应的逻辑层次关系。处于不同层次的防火墙实现不同级别的过滤功能,其特性也不同。
一般说来,工作层次越高,能检查的信息就越多,其提供的安全保护等级就越高,复杂程度和实现难度也越大。
中继器级:不是严格意义上的防火墙,主要进行电磁辐射防护、物理物理隔离等。如网闸。
网桥级:透明模式的防火墙。本质上是利用防火墙连接了同一个网络的不同部分,用户感觉不到防火墙的存在,但在支持的功能方面有所欠缺。
路由器级:最主流的防火墙模式。防火墙处于网络边界或者两个不同网络之间,检查数据包的源、目的IP地址以及包首部的其他标志来确定是否允许数据包通过防火墙。
电路级:仅起到一种代理的作用,是一个安装专用软件的主机,并由其代表被保护主机与外界进行通信,也称为电路级代理。SOCKS协议是最著名的电路级代理协议。
网关级:也称应用层代理服务器,通常是一个安装了代理软件的主机,每一种应用都需要一个相应的代理软件。外界只能访问代理服务器而无法直接与被保护主机建立连接。
3. 防火墙的不足
作为网络边界防护机制,防火墙无法防范的安全威胁:
来自网络内部的安全威胁
通过非法外联的网络攻击
数据驱动型攻击(计算机病毒传播)
由于技术原因,无法有效防范的安全威胁:
针对开放服务安全漏洞的渗透攻击
针对网络客户端程序的渗透攻击
基于隐蔽通道进行通信的特洛伊木马或僵尸网络
三、防火墙技术类型
包过滤防火墙 (packet filter)
1988, DEC
网络包粒度, 工作在传输层与网络层之间, 主要实现形式为路由器ACL
状态防火墙 (stateful firewall)
1989, AT&T Bell
网络会话粒度,工作在传输层与网络层之间
目前防火墙最主要实现方式
应用层代理防火墙 (application layer firewall)
Paper: 1990 Purdue, AT&T
Product: 1991 DEC
工作在应用层
四、包过滤防火墙
1. 基本思想及实现原理
- 使用同一组规则,对到达的每个IP包进行匹配判断,并根据匹配成功与否决定转发或丢弃。
- 通常以到达数据包中的源、目标IP地址,以及源、目的端口号为判断对象
- 只要有一条规则被匹配,就根据规则决定其后续动作,不再匹配剩余规则
- 如果所有规则均未匹配,则采取默认规则
- 通常需要双向配置
2. 主要特点
包过滤防火墙实际上就是一种网络层的访问控制技术,通常可以在路由器上通过配置ACL的方式实现。
仅仅根据数据包自身包含的信息(协议头部)进行检查和过滤并没有考虑连接的状态。
优点:
实现简单
对用户透明
效率高
缺点:
正确制定规则并不容易
不可能引入认证机制
五、状态防火墙
1. 状态防火墙的基本思想
跟踪网络会话(连接)状态, 判断报文合法性
特性: 状态报文检查(SPI: stateful packet inspection)
2. 状态防火墙机制
跟踪和维护网络连接状态信息(CT: connection table)
TCP会话
SYN包: NEW connections
经过三次握手: ESTABLISHED connections
UDP会话
只有出现双向流量后,才设置为ESTABLISHED
规则配置
以会话为规则匹配粒度,即访问控制的对象为会话
支持对会话状态的匹配
六、代理
代理(proxy)也是一种安全防护技术。代理技术允许客户端通过代理服务器与网络服务进行非直接的连接
在代理服务器上可以进行访问控制和内容检查
1. 不同类型的代理技术
- 应用层:应用层代理 (HTTP代理)
- 传输层:电路级代理 (Socks代理)
- 网络层:NAT代理 (NAT网关、拨号上网路由器)
2. 应用层代理
应用层代理
也称为应用层网关、代理服务器
特定应用层网络服务(HTTP/Email…)
MPS – Microsoft Proxy Server、Squid
应用层代理优势
- 隐藏内部网络信息
- 通讯中转,严格内容审查
- 存储转发机制,在线审计
- 用户级身份认证机制
应用层代理不足
- 不通用、不透明、处理速度较慢、部署代价较高
3. 电路级代理
电路级代理
Socks代理
工作在传输层
同时为多种不同的应用服务提供支持
工作机制
TCP层中继
建立外部连接,并在连接会话间转发数据
差异:通用、用户级身份认证,但无法进行细致内容审查
4. NAT代理
NAT(网络地址转换)
- 允许多个用户分享少量或单一的IP地址(源NAT)
- 允许将网络服务映射到内部服务网络IP和端口(目的NAT)
NAT代理优势
- 方便:任意使用私有网段IP地址,无需申请,无冲突
- 安全:对外隐藏内部网络信息
七、Linux中的开源防火墙
Netfilter
Linux内核中的防火墙模块
Netfilter特性
- 包过滤->状态报文检查
- 灵活可扩展框架, 支持NAT网络地址转换, 提供多层API接口以支持第三方扩展
Netfilter功能
- 构建防火墙, NAT共享上网, 利用NAT构建透明代理, 构建QoS或策略路由器, …
Netfilter组成:由一系列表(Table)组成,每个表由若干个链(Chain)组成,每条链可以由一条或若干条规则(Rule)组成。
IPTables
- Linux应用层的防火墙配置工具
- ipfwadm(2.0.x)ipchains(2.2.x)iptables(2.4.x/2.6.x)
表→链→规则的分层结构
1、表(tables)
❐filter表:包过滤,有INPUT、FORWARD、OUTPUT三个链
❐nat表:地址转换,修改数据包的IP地址和端口号,有PREROUTING、POSTROUTING、OUTPUT三个链
❐mangle表:包重构,用于修改包的服务类型、生存周期以及为数据包设置Mark标记,以实现Qos(服务质量)、策略路由和网络流量整形等特殊应用。含PREROUTING、POSTROUTING、INPUT、OUTPUT和FORWARD五个链
❐raw表:数据跟踪,数据包是否被状态跟踪机制处理,有PREROUTING、OUTPUT两个链。
2、链(chains)
根据数据包流向的不同,有:
❐INPUT链:当数据包源自外界并前往防火墙所在的本机(入站)时,即数据包的目的地址是本机时,则应用此链中的规则。
❐OUTPUT链:当数据包源自防火墙所在的主机并要向外发送(出站)时,即数据包的源地址是本机时,则应用此链中的规则。
❐FORWARD链:当数据包源自外部系统,并经过防火墙所在主机前往另一个外部系统(转发)时,则应用此链中的规则。
❐PREROUTING链:当数据包到达防火墙所在的主机在作路由选择之前,且其源地址要被修改(源地址转换)时,则应用此链中的规则。
❐POSTROUTING链:当数据包在路由选择之后即将离开防火墙所在主机,且其目的地址要被修改(目的地址转换)时,则应用此链中的规则。
❐用户自定义链
3.规则(rules)
所谓规则实际上就是网络管理员根据安全需要而预先定义的过滤数据包的条件。
❐规则一般使用产生式进行定义,即“IF Then”方式。“如果数据包头符合这样的条件,就这样处理这个数据包”。
❐规则一般使用产生式进行定义,即“IF Then”方式。“如果数据包头符合这样的条件,就这样处理这个数据包”。
❐配置防火墙的通过工具进行规制的添加、修改和删除。
4.顺序
❐表间的优先顺序:raw➞mangle ➞ nat ➞ filter
❐链间的匹配顺序:
- 入站数据:PREROUTING➞ INPUT
- 出站数据:OUTPUT➞ POSTROUTING
- 转发数据:PREROUTING➞ FORWARD ➞ POSTROUTING
❐链内规则的匹配顺序:按顺序依次进行检查,找到相匹配的规则即停止(LOG策略会有例外)。若在该链内找不到相匹配的规则,则按该链的默认策略处理
5. Netfilter的运行机制
发送数据包时,数据包在协议栈中从上向下传送,每到达一层就会增加一个首部;在接受数据包时,数据包从下向上传送,每到达一层就剥离一个首部。
发送数据包时,数据包在协议栈中从上向下传送,每到达一层就会增加一个首部;在接受数据包时,数据包从下向上传送,每到达一层就剥离一个首部。
对于收到的每个数据包,都从“A”点进来,经过路由判决,如果是发送给本机的就经过“B”点,并向协议栈的上层继续传递;否则,如果数据包的目的地是不本机,那么就经过“C”点,并经“E”点将该包转发出去。
对于发送的每个数据包,首先也有一个路由判决,以确定该包是从哪个接口出去,然后经过“D”点,最后也是顺着“E”点将该包发送出去。
协议栈那五个关键点A,B,C,D和E就是Netfilter发挥作用的位置。
Netfilter在Linux内核中的位置如图所示:
Netfilter在netfilter_ipv4.h中将这个五个点重新命了个名,如下图所示:
在每个关键点(称为hook点)上,有很多已经按照优先级预先注册了的回调函数(称为“钩子函数”) ,形成一条数据包分析处理链。每个到来的数据包会依次被那些回调函数进行检查和处理并根据规则决定放行或丢弃。
处理完毕,每个回调函数最后必须向Netfilter返回处理结果。每个钩子函数向Netfilter返回下列几个值其中之一:
NF_ACCEPT:继续正常传输数据报,即该数据包正常,可以将其传送网络协议栈的下一个阶段。
NF_DROP:丢弃该数据报,不再传输。
NF_STOLEN:告诉Netfilter“忘掉”该数据报,由回调函数将从此开始对数据包的处理,并且Netfilter应当放弃对该数据包做任何的处理,回调函数从Netfilter获取了该数据包的所有权。
NF_QUEUE:对该数据报进行排队(通常用于将数据报给用户空间的进程进行处理)
NF_REPEAT:再次调用该回调函数,应当谨慎使用这个值,以免造成死循环。
6.3 入侵检测基础
一、 入侵检测技术基本概念
入侵检测(Intrusion Detection)
入侵检测,顾名思义,就是对入侵行为的检测与发现。
入侵检测即为通过对计算机网络或计算机系统中若干关键点信息的收集和分析,从中发现入侵行为的一种安全技术。
入侵(Intrusion)
一次入侵可被定义为任何尝试破坏信息资源的保密性、完整性或可用性的行为。
入侵检测系统(Intrusion Detection System,IDS)
实现入侵检测技术,专门用于入侵行为发现和处理的软件系统或硬件设备。
防火墙 VS IDS:: ::::::::::::::::::::::: 门卫 VS 巡逻队
二、入侵检测基本技术
误用检测(misuse detection)
也称为基于特征的检测 (signature-based detection)
建立起已知攻击的特征库
判别当前行为活动是否符合已知的攻击特征
异常检测(anomaly detection)
也称为基于行为的检测 (behavior-based detection)
首先建立起系统的正常模式轮廓
若实时获得的系统或用户的轮廓值与正常值的差异超出指定的阈值,就进行入侵报警
三、入侵检测系统分类
1。基于网络的入侵检测系统(NIDS)
IDS可以放在防火墙或者网关的后面,以网络嗅探器的形式捕获所有的对内对外的数据包
2.基于主机的入侵检测系统(HIDS)
安全操作系统必须具备一定的审计功能,并记录相应的安全性日志
基于内核——从操作系统的内核接收数据
基于应用——从正在运行的应用程序中收集数据
3。分布式入侵检测系统(DIDS)
入侵检测系统的部署位置
四、网络入侵防御系统
入侵防御系统(Intrusion Prevention System,IPS)是一种主动的、智能的入侵检测、防范、阻止系统,其设计旨在预先对入侵活动和攻击性网络流量进行拦截,避免其造成任何损失,而不是简单地在恶意流量传送时或传送后才发出警报。
IPS通常部署在网络(或被保护对象)的进出口处,当检测到攻击企图后,IPS自动地将攻击包丢掉或采取措施阻断攻击源。
1.IPS的特征
嵌入式运行模式
完善的安全策略
高质量的入侵特征库
高效处理数据包的能力
强大的响应功能
2. IDS与IPS的区别
IDS: 旁路监听,只起到Detection机制
侧重低漏报率,造成误报率较高
对使用者技术水平要求较高,应急响应及时
IPS:串联模式,实时处置数据包
侧重低误报率(对正常业务不造成影响)
高效的处理性能
即插即用,无需使用者参与
五、Snort网络入侵检测系统(我的配置报告)
1. Snort概述
Snort是一个开放源代码、免费、跨平台的基于规则的网络入侵保护和检测系统,支持各种形式的插件、扩充和定制,具有实时数据流量分析、对IP网络数据包进行日志记录、以及对入侵进行探测的功能。
Snort使用一种易于扩展的模块化体系结构,开发人员可以加入自己编写的模块来扩展Snort的功能,如HTTP解码插件、TCP数据流重组插件、端口扫描检测插件、FLEXRESP插件以及各种日志输入插件等。
2. Snort的特点
(1)Snort是一个轻量级的入侵检测系统。Snort虽然功能强大,但是其代码极为简洁、短小。
(2)Snort的跨平台性能极佳,Snort具有跨平台的特点,它支持的操作系统广泛,包括Linux、OpenBSD 、FreeBSD 、NetBSD 、Solaris 、HP-UX 、AIX 、IRIX 、Win32(Windows 9x/NT/2000)等。
(3)Snort的功能非常强大
Snort具有实时流量分析和日志IP网络数据包的能力。
Snort能够进行协议分析,内容的搜索/匹配。
Snort的日志格式既可以是Tcpdump式的二进制格式,也可以解码成ASCII字符形式。
Snort可以对TCP包进行重组。
Snort能够报告非正常的可疑包,从而对端口扫描进行有效的检测。
Snort还有很强的系统防护能力。
(4)良好的扩展性能
Snort对于新的攻击威胁反应迅速。作为一个轻量级的网络入侵检测系统,Snort有足够的扩展能力。 Snort支持插件,可以使用具有特定功能的报告、检测子系统插件对其功能进行扩展。Snort的插件库支持包括数据库日志输出插件、碎数据包检测插件、端口扫描检测插件、HTTP URI normalization插件、XML插件等。
(5)遵循公共通用许可证GPL
Snort遵循GNU通用公共许可证(GPL),所以任何企业、个人、组织都可以免费将其作为NIDS。
3. Snort的组成
Snort由数据包解码器、检测引擎、日志与报警系统等三个重要子系统构成。
4. Snort的工作模式
Snort有以下三种工作模式:
嗅探器——嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。
数据包记录器——数据包记录器模式把数据包记录到硬盘上。
网络入侵检测系统——网路入侵检测模式是最复杂的,而且是可配置的。用户可以让Snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。
5. Snort的安装
6. Snort应用
Snort总体结构
Snort的插件机制
在Snort中运用了插件机制。插件机制具有以下一些明显的优点:
通过增加插件,Snort能够非常容易地增加功能,使程序具有很强的可扩展性。
插件机制简化了Snort的编码工作。
插件机制使代码功能内聚,模块行强,程序相对易读。
插件模块包括预处理插件、处理插件和输出插件3种,它们通常对应规则中的一个或几个关键字,规则匹配中遇到这些关键字时就会激活相应的插件,以完成相应的功能。
(1)预处理插件
源文件名都以spp_开头,并在规则匹配(误用检测)之前运行,完成的功能主要分为以下几类。
模拟TCP/IP堆栈功能的插件:如IP碎片重组、TCP流重组插件。
各种解码插件:如HTTP解码插件、Unicode解码插件、RPC解码插件、Telnet协商插件等。
规则匹配无法进行攻击检测时所用的检测插件:如端口扫描插件、Spade异常入侵检测插件、Bo检测插件、Arp欺骗检测插件等
(2)处理插件
源文件名都以sp_开头,在规则匹配阶段的ParseRuleOptions中被调用,辅助完成基于规则的匹配检测过程。
每个规则处理函数通常对应规则选项中的一个关键字,实现对这个关键字的解释或辅助解释。这些插件的主要功能如下:
协议各字段的检查,如TCPFlag,IcmpType,IcmpCode,Ttl,IpId,TcpAck,TcpSeq,Dsize,IpOption,Rpc,IcmpId,IcmpSeq,IpTos,FragBits,TcpWin,IpProto和 IpSame等。
一些辅助功能,如Respond,Priority,PatternMatch,Session,React,Reference等,这些插件分别完成响应(关闭连接)、严重级别、模式匹配(内容)、会话记录、攻击响应(高级的响应机制)、攻击参考信息等功能。
(3)输出插件
源文件名都以spo_开头,这些插件分为日志和警告两种类型放入两个列表中,在规则匹配过程中和匹配结束之后调用,以便记录日志和警告。
以一个HTTP解码预处理器插件为例来解释插件的内部结构:
每个插件都有一个安装函数,名称为SetupXXX(),如Spp_http_decode.c:SetupHttpDecode()。
在解释规则文件时,如果检测到相应的关键字,系统就会使用规则文件中这些关键字后的字符串作为参数来调用相应的初始化函数。
在检测过程中,一旦规则匹配成功,就会触发处理函数的执行,预处理器就会在预处理过程中对数据报调用相应处理函数进行处理。
Snort的规则
Snort规则分为两个部分:规则头和规则选项。
- 规则头包含规则的动作、协议、源地址、目的地址、子网掩码、源和目的端口信息。
- 规则选项包含报警信息以及用于确定是否触发规则响应动作而检查的数据包区域位置信息。
规则头
(1)规则动作
规则的头包含了定义一个包的Who,Where和What信息,以及当满足规则定义的所有属性的包出现时要采取的行动。
规则的第一项是“规则动作”(Rule Action),“规则动作”告诉Snort在发现匹配规则的包时要干什么。在Snort中有5种动作:Alert,Log,Pass,Activate和Dynamic
(2)协议
规则的第二项是协议。Snort当前分析可疑包的协议有4种:TCP,UDP,ICMP和IP,将来可能会更多,如ARP,IGRP,GRE,OSPF,RIP,IPX等
(3)IP地址
规则头的下一个部分处理一个给定规则的IP地址和端口号信息。关键字“any”可以被用来定义任何地址。
有一个操作符可以应用在IP地址上,它是否定运算符。这个操作符告诉Snort匹配除了列出的IP地址以外的所有IP地址。否定操作符用“!”表示。下面这条规则对任何来自本地网络以外的流都进行报警。
(4)端口号
端口号可以用几种方法表示,包括“any”端口、静态端口定义、范围、以及通过否定操作符。“any”端口是一个通配符,表示任何端口。静态端口定义表示一个单个端口号,例如,23表示Telnet,80表示HTTP等。端口范围用范围操作符“:”表示。
(5)方向操作符
方向操作符“->”表示规则所施加的流的方向。方向操作符左边的IP地址和端口号被认为是流来自的源主机,方向操作符右边的IP地址和端口信息是目标主机,还有一个双向操作符“< >”,告诉Snort把地址/端口号对既作为源,又作为目标来考虑。这对于记录/分析双向对话很方便,例如,Telnet或者POP3会话 。
(6)Activate和Dynamic 规则
Activate和Dynamic规则对给了Snort更强大的能力。用户现在可以用一条规则来激活另一条规则,当这条规则适用于一些数据包时,在一些情况下这是非常有用的,例如用户想设置一条规则:当一条规则结束后来完成记录。Activate规则除了包含一个选择域:Activates外就和一条Alert规则一样。
注意:Activate和Dynamic 规则将被Tagging 所代替。在Snort的将来版本,Activate 和Dynamic规则将完全被功能增强的Tagging所代替。
规则选项
规则选项组成了Snort入侵检测引擎的核心,既易用又强大还灵活。所有的Snort规则选项用分号“;”隔开。规则选项关键字和它们的参数用冒号“:”分开。Snort中有42个规则选项关键字,如:
msg——在报警和包日志中打印一个消息。
logto——把包记录到用户指定的文件中而不是记录到标准输出。
ttl——检查IP头的TTL的值。
tos 检查IP头中TOS字段的值。
id——检查IP头的分片ID值。
ipoption 查看IP选项字段的特定编码。
fragbits 检查IP头的分段位。
dsize——检查包的净荷尺寸的值 。
flags ——检查TCP Flags的值。
seq——检查TCP顺序号的值。
ack——检查TCP应答(Acknowledgement)的值。
window 测试TCP窗口域的特殊值。
itype——检查ICMP Type的值。
icode——检查ICMP Code的值。
icmp_id——检查ICMP ECHO ID的值。
icmp_seq——检查ICMP ECHO 顺序号的值。
content——在包的净荷中搜索指定的样式。
content-list——在数据包载荷中搜索一个模式集合。
offset——Content选项的修饰符,设定开始搜索的位置。
depth——Content选项的修饰符,设定搜索的最大深度。
nocase——指定对Content字符串大小写不敏感。
session——记录指定会话的应用层信息的内容。
rpc——监视特定应用/进程调用的RPC服务。
resp——主动反应(切断连接等)。
react——响应动作(阻塞Web站点)。
reference——外部攻击参考IDS。
sid——Snort规则ID。
rev——规则版本号。
classtype——规则类别标识。
priority——规则优先级标识号。
uricontent——在数据包的URI部分搜索一个内容。
tag——规则的高级记录行为。
ip_proto——IP头的协议字段值。
sameip——判定源IP和目的IP是否相等。
stateless——忽略刘状态的有效性。
regex——通配符模式匹配。
distance——强迫关系模式匹配所跳过的距离。
within——强迫关系模式匹配所在的范围。
byte_test——数字模式匹配。
byte_jump——数字模式测试和偏移量调整。
规则的语法
规则分类存放在规则文件中。规则文件是普通的文本文件,用户可以使用普通的文本编辑器打开进行编辑。
规则文件可以包含注释行,注释行以“#”字符开头,#号前不能有任何非空字符。
Snort允许定义变量,并在规则中使用这些变量。变量的定义格式如下所示:
var:
在规则中可以直接使用。
预处理程序
预处理程序使得Snort的功能可以很容易地扩展,用户和程序员能够将模块化的插件方便地融入Snort之中。预处理程序代码在探测引擎被调用之前、数据包译码之后运行。通过这个机制,数据包可以通过额外的方法被修改或分析。
使用preprocessor关键字加载和配置预处理程序。
在Snort规则文件中的preprocessor指令格式如下:
preprocessor :
例如:
preprocessor minfrag: 128
输出插件
输出插件使得Snort在向用户提供格式化输出时更加灵活。输出插件在Snort的告警和记录子系统被调用时运行,在预处理程序和探测引擎之后。规则文件中指令的格式非常类似于预处理程序。
格式:
output :
例子:
output alert_syslog:LOG_AUTH LOG_ALERT
规则例子
(1)记录所有登录到一个特定主机的数据包:
log tcp any any -> 192.168.1.1/32 23
(2)在第一条的基础上记录了双向的流量:
log tcp any any < > 192.168.1.1/32 23
(3)这一条规则记录了所有到达你的本地主机的icmp数据包:
log icmp any any -> 192.168.1.0/24 any
(4)这条规则允许双向的从你的机子到其他站点的http包:
pass tcp any 80 < > 192.168.1.0/24 any
(5)这条告警规则显示了本地主机对其他主机的111端口的访问,并在log中显示端口影射调用(‘portmapper call’)信息:
alert tcp 192.168.1.0/24 any -> any 111 (msg:“Portmapper call”😉
(6)记录其他任意地址的小于1024端口访问本地小于1024端口的流量:
log tcp any :1024 -> 192.168.1.0/24 :1024
(7)这条规则将会发现SYN FIN扫描:
alert tcp any any -> 192.168.1.0/24 any (msg:“SYN-FIN scan!”; flags: SF;)
(8)这条规则将会发现空TCP扫描:
alert tcp any any -> 192.168.1.0/24 any (msg:“Null scan!”; flags: 0;)
(9)这条规则将会发现Queso fingerprint扫描:
alert tcp any any -> 192.168.1.0/24 any (msg:“Queso fingerprint”;flags: S12;)
(10)这条规则将进行基于内容的查找以发现溢出攻击:
alert tcp any any -> 192.168.1.0/24 143 (msg:“IMAP Buffer overflow!”; conten
t:“|90E8 C0FF FFFF|/bin/sh”😉
(11)这条规则将会发现PHF攻击:
alert tcp any any -> 192.168.1.0/24 80 (msg:“PHF attempt”; content:“/cgi-bin/phf”😉
(12)这条规则将会发现Traceroute包:
alert udp any any -> 192.168.1.0/24 any (msg:“Traceroute”; ttl:1;)
(13)这条规则将会发现其他主机对本地发出的icmp包:
alert udp any any -> 192.168.1.0/24 any (msg:“Traceroute”; ttl:1;)
(14)这条规则发现nmap的TCP的ping扫描:
alert tcp any any -> 192.168.1.0/24 any (flags: A; ack: 0; msg:“NMAP TCP ping!”😉
(15)这条规则将会发现源路由的数据包(源路由攻击):
alert tcp any any -> any any (ipopts: lsrr; msg: “Source Routed packet!”😉
6.4 虚拟局域网基础
一、虚拟局域网概述
虚拟局域网(Virtual Private Network)是指在两台计算机或两个网络之间之间建立的一条穿越公共网络的专用连接。一般地,这样的专有连接是通过隧道技术、加密和密钥管理、认证和访问控制等实现与专用网类似的安全性能,从而达到在Internet上安全传输机密数据的目的。
二、虚拟局域网分类
1. 按Virtual Private Network业务类型划分:
(1)Intranet Virtual Private Network(内部公文流转)
(2)Access Virtual Private Network(远程拨号Virtual Private Network)
(3)Extranet Virtual Private Network(各分支机构互联)
2. 按Virtual Private Network发起主体划分:
(1)客户发起,也称基于客户的Virtual Private Network
(2)服务器发起,也称客户透明方式 或基于网络的Virtual Private Network
3. 按隧道协议层次划分:
(1)二层隧道协议:L2F/L2TP 、PPTP
(2)三层隧道协议:GRE、IPSec
(3)介于二、三层间的隧道协议:MPLS
(4)SSL Virtual Private Network
三、虚拟局域网应用场景
Virtual Private Network通常用于以下两种场景:
- 远程接入
- LAN-LAN 通信(外联网接入)
1. 远程接入
企业Virtual Private Network允许移动用户通过因特网拨号进入它们本地的因特网服务供应商(ISP)来接入企业LAN,通常使用远程接入隧道协议,如L2TP,PPTP或L2F。
2. LAN-LAN 通信
同一组织机构的分支机构可以使用Virtual Private Network来接入到组织总部的内联网。这种方式的内联网互连可以确保通信安全,且其费用相对专线连接要低得多。
四、Virtual Private Network的安全性
一个Virtual Private Network至少提供如下功能:
数据加密;
身份认证;
访问权限控制。
网络安全学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
同时每个成长路线对应的板块都有配套的视频提供:
需要网络安全学习路线和视频教程的可以在评论区留言哦~
最后
- 如果你确实想自学的话,我可以把我自己整理收藏的这些教程分享给你,里面不仅有web安全,还有渗透测试等等内容,包含电子书、面试题、pdf文档、视频以及相关的课件笔记,我都已经学过了,都可以免费分享给大家!
给小伙伴们的意见是想清楚,自学网络安全没有捷径,相比而言系统的网络安全是最节省成本的方式,因为能够帮你节省大量的时间和精力成本。坚持住,既然已经走到这条路上,虽然前途看似困难重重,只要咬牙坚持,最终会收到你想要的效果。
黑客工具&SRC技术文档&PDF书籍&web安全等(可分享)
结语
网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。
特别声明:
此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失
相关文章:
网络安全防御模型
目录 6.1 网络防御概述 一、网络防御的意义 二、被动防御技术和主动防御技术 三、网络安全 纵深防御体系 四、主要防御技术 6.2 防火墙基础 一、防火墙的基本概念 二、防火墙的位置 1.防火墙的物理位置 2.防火墙的逻辑位置 3. 防火墙的不足 三、防火墙技术类型 四…...
APP自动化实战
APP自动化能做什么? 请看示例(实现批量的视频,封面功能复用能力(实现效果参考抖音号:71403700901) APP自动化实战-操作剪映APP PO模式 1. PO模式介绍 PO(Page Object)…...
Unity基础——资源导入
一.资源来源 1.Assert Store(Unity资源官方网站) (1)用于制作游戏的优质资源 | Unity Asset Store (2)或则通过Unity项目打开 2.外部资源 (1)淘宝 (2)找外…...
JMeter性能问题
性能测试中TPS上不去的几种原因 性能测试中TPS上不去的几种原因_tps一直上不去-CSDN博客 网络带宽 连接池 垃圾回收机制 压测脚本 通信连接机制 数据库配置 硬件资源 压测机 业务逻辑 系统架构 CPU过高什么原因 性能问题分析-CPU偏高 - 西瓜汁拌面 - 博客园 US C…...
形式化数学编程在AI医疗中的探索路径分析
一、引言 1.1 研究背景与意义 在数字化时代,形式化数学编程和 AI 形式化医疗作为前沿领域,正逐渐改变着我们的生活和医疗模式。形式化数学编程是一种运用数学逻辑和严格的形式化语言来描述和验证程序的技术,它通过数学的精确性和逻辑性,确保程序的正确性和可靠性。在软件…...
DeepSeek开源周Day1:FlashMLA引爆AI推理性能革命!
项目地址:GitHub - deepseek-ai/FlashMLA 开源日历:2025-02-24起 每日9AM(北京时间)更新,持续五天! 一、开源周震撼启幕 继上周预告后,DeepSeek于北京时间今晨9点准时开源「FlashMLA」,打响开源周五连…...
nginx 配置https
参考文档:nginx 文档 -- nginx官网|nginx下载安装|nginx配置|nginx教程 配置 HTTPS 服务器 HTTPS 服务器优化 SSL 证书链 单个 HTTP/HTTPS 服务器 基于名称的 HTTPS 服务器 具有多个名称 的 SSL 证书 服务器名称指示 兼容性 要配置 HTTPS 服务器,ssl…...
GhostBottleneck; InvertedResidual;Squeeze and Excite 是什么,怎么用
GhostBottleneck; InvertedResidual;Squeeze and Excite 是什么,怎么用 目录 GhostBottleneck; InvertedResidual;Squeeze and Excite 是什么,怎么用GhostBottleneckInvertedResidualSqueeze and Excite(SE)GhostBottleneck 概念: GhostBottleneck 是在轻量级神经网…...
Docker启动ES容器打包本地镜像
文章目录 1、安装 Docker2、下载镜像3、查看已下载的镜像4、 保存和加载镜像5、.tar 文件与 Docker 镜像的关系6、如何从 .tar 文件加载 Docker 镜像7、为什么需要 .tar 文件?8、ES 8.x版本无法启动8.1 问题原因8.2 解决方案8.3 提交容器为新镜像 1、安装 Docker 如…...
XXE漏洞:原理、危害与修复方法详解
目录 一、XXE漏洞概述二、XXE漏洞原理三、XXE漏洞危害1. 任意文件读取2. 命令执行3. 拒绝服务攻击(DoS)4. SSRF攻击四、XXE漏洞修复方法1. 禁用外部实体JavaPythonPHP2. 输入验证和过滤3. 安全配置服务器4. 升级解析器版本五、总结一、XXE漏洞概述 XXE(XML External Entity…...
android keystore源码分析
架构 Android Keystore API 和底层 Keymaster HAL 提供了一套基本的但足以满足需求的加密基元,以便使用访问受控且由硬件支持的密钥实现相关协议。 Keymaster HAL 是由原始设备制造商 (OEM) 提供的动态加载库,密钥库服务使用它来提供由硬件支持的加密服…...
状态模式
状态(State)模式属于行为型模式的一种。 状态模式允许对象在其内部状态改变时改变其行为,使其看上去就像改变了自身所属的类一样。 状态模式是为了把一大串if...else...的逻辑给分拆到不同的状态类中,使得将来增加状态比较容易。…...
C++ | 面向对象 | 类
👻类 👾语法格式 class className{Access specifiers: // 访问权限DataType variable; // 变量returnType functions() { } // 方法 };👾访问权限 class className {public:// 公有成员protected:// 受保护成员private:// 私有成员 }…...
鸿蒙-AVPlayer
compileVersion 5.0.2(14) 音频播放 import media from ohos.multimedia.media; import common from ohos.app.ability.common; import { BusinessError } from ohos.base;Entry Component struct AudioPlayer {private avPlayer: media.AVPlayer | nu…...
Android移动应用开发实践-1-下载安装和简单使用Android Studio 3.5.2版本(频频出错)
一、下载安装 1.Android Studio3.5.2下载地址:Android Studio3.5.2下载地址 其他版本下载地址:其他版本下载地址 2.安装教程(可以多找几个看看) 安装 | 手把手教你Android studio 3.5.2安装(安装教程)_a…...
从.m3u8到.mp4:使用批处理脚本完成视频处理的完整指南
这里介绍一个Windows批处理脚本(Windows Batch Script),主要用于处理 .m3u8 ts 视频文件的下载和合并功能。 以下是程序的主要功能和逻辑流程: 功能概述 参数检查与路径处理: 检查是否传递了文件或文件夹路径作为参数…...
qt5的中文乱码问题,QString、QStringLiteral 为 UTF-16 编码
qt5的中文乱码问题一直没有很明确的处理方案。 今天处理进程间通信时,也遇到了qt5乱码问题,一边是设置的GBK,一边设置的是UTF8,单向通信约定采用UTF8。 发送端保证发的是UTF8字符串,因为UTF8在网络数据包中没有字节序…...
Gurobi 并行计算的一些问题
最近尝试用 gurobi 进行并行计算,即同时用多个 cpu 核计算 gurobi 的 model,但是发现了不少问题。总体来看,gurobi 对并行计算的支持并不是那么好。 gurobi 官方对于并行计算的使用在这个网址,并有下面的大致代码: i…...
Vue3 中如何实现响应式系统中的依赖收集和更新队列的解耦?
一、问题解析:为什么需要解耦? 在响应式系统中,依赖收集(追踪数据与视图的关联关系)和更新队列(批量处理数据变化带来的副作用)是两个核心但职责不同的模块。 Vue3 通过以下设计实现解耦&…...
vue项目中动态添加类名样式不生效问题
一、问题描述 在vue项目中使用:class{tableContent: summary}给元素动态添加了类名tableContent,运行代码后查看类名已经添加成功但样式并未生效。 二、问题产生原因并解决 刚开始把样式写在了<style lang"scss" scoped></style>中&#x…...
供应链管理系统--升鲜宝门店收银系统功能解析,登录、主界面、会员 UI 设计图(一)
供应链管理系统--升鲜宝门店收银系统功能解析,登录、主界面 会员 UI 设计图(一)...
用AI写游戏3——deepseek实现kotlin android studio greedy snake game 贪吃蛇游戏
项目下载 https://download.csdn.net/download/AnalogElectronic/90421306 项目结构 就是通过android studio 建空项目,改下MainActivity.kt的内容就完事了 ctrlshiftalts 看项目结构如下 核心代码 MainActivity.kt package com.example.snakegame1// MainA…...
设计模式的引入
面向对象设计原则 1. 软件设计固有的复杂性2. 面向对象设计原则2.1 引入2.2 依赖倒置原则2.3 开放封闭原则2.4 单一职责原则2.5 Liskov 替换原则( LSP)2.6 接口隔离原则( ISP)2.7 优先使用对象组合,而不是类继承2.8 封…...
P8697 [蓝桥杯 2019 国 C] 最长子序列
P8697 [蓝桥杯 2019 国 C] 最长子序列 题目 分析代码 题目 分析 先分析一波xdm 题意呢就是在s中找有多少个能和t匹配的字符,注意:连续匹配,输出连续的次数 欧克,开始分析,首先,哎~字母!还强调…...
基于阿里云PAI平台快速部署DeepSeek大模型实战指南
一、DeepSeek大模型:企业级AI应用的新标杆 1.1 为什么选择DeepSeek? 近期,DeepSeek系列模型凭借其接近GPT-4的性能和开源策略,成为全球开发者关注的焦点。在多项国际评测中,DeepSeek-R1模型在推理能力、多语言支持和…...
【java进阶】java多态深入探讨
前言 在Java的编程宇宙中,多态是极为关键的概念,它宛如一条灵动的纽带,串联起面向对象编程的诸多特性,赋予程序宛如生命般的动态活力与高度灵活性。透彻理解多态,不仅是提升代码质量的关键,更是开启高效编程大门的钥匙。 一、多态的定义与本质 多态,从概念层面来讲,…...
蓝桥杯备赛-拔河
问题描述 小明是学校里的一名老师,他带的班级共有 nn 名同学,第 ii 名同学力量值为 aiai。在闲暇之余,小明决定在班级里组织一场拔河比赛。 为了保证比赛的双方实力尽可能相近,需要在这 nn 名同学中挑选出两个队伍,…...
Zookeeper(67) Zookeeper在HBase中的应用是什么?
Zookeeper 在 HBase 中起到了至关重要的作用,主要用于协调和管理 HBase 集群中的多个组件。具体来说,Zookeeper 在 HBase 中的应用包括以下几个方面: Master 选举:HBase 集群中可以有多个 Master 节点,但只有一个处于…...
java后端开发day20--面向对象进阶(一)--static继承
(以下内容全部来自上述课程) 1.static–静态–共享 static表示静态,是java中的一个修饰符,可以修饰成员方法,成员变量。 1.静态变量 被static修饰的成员变量,叫做静态变量。 特点: 被该类…...
IDEA使用Maven方式构建SpringBoot项目
1、环境准备 确保你已经安装了以下工具: Java JDK(推荐 JDK 8 或更高版本) IntelliJ IDEA(推荐使用最新版本) 2、创建 Spring Boot 项目 (1) 打开 IntelliJ IDEA。 (2)…...
Spring Boot2.0之十 使用自定义注解、Json序列化器实现自动转换字典类型字段
前言 项目中经常需要后端将字典类型字段值的中文名称返回给前端。通过sql中关联字典表或者自定义函数不仅影响性能还不能使用mybatisplus自带的查询方法,所以推荐使用自定义注解、Json序列化器,Spring的缓存功能实现自动转换字典类型字段。以下实现Spri…...
C#问题解决方案 --- 生成软件hash,生成文件hash
生成软件hash值: private string GetEXEHashString() {//获得软件哈希值Process currProcess Process.GetCurrentProcess();string filePath currProcess.MainModule.FileName;string hashEXE string.Empty;using (FileStream fs new FileStream(filePath, Fil…...
云计算如何解决延迟问题?
在云计算中,延迟(latency)指的是从请求发出到收到响应之间的时间间隔。延迟过高可能会严重影响用户体验,特别是在需要实时响应的应用中,如在线游戏、视频流、金融交易等。云计算服务如何解决延迟问题,通常依…...
多模态人物视频驱动技术回顾与业务应用
一种新的商品表现形态,内容几乎存在于手淘用户动线全流程,例如信息流种草内容、搜索消费决策内容、详情页种草内容等。通过低成本、高时效的AIGC内容生成能力,能够从供给端缓解内容生产成本高的问题,通过源源不断的低成本供给倒推…...
鸿蒙中连接手机可能遇到的问题
连接权限问题:手机开启了严格的权限管理机制,若未授予鸿蒙设备连接所需的权限,如蓝牙连接时未开启蓝牙权限,或者 USB 连接时未允许设备进行调试、文件传输等操作,就会导致连接失败。例如,当使用鸿蒙平板通过…...
15.代码随想录算法训练营第十五天|(递归)110. 平衡二叉树,257. 二叉树的所有路径*,404. 左叶子之和,222.完全二叉树的节点个数[打卡自用]
15.代码随想录算法训练营第十五天|(递归)110. 平衡二叉树,257. 二叉树的所有路径*,404. 左叶子之和,222.完全二叉树的节点个数 给定一个二叉树,判断它是否是 平衡二叉树 示例 1: 输入…...
H5 火柴人科目三和GitHub获取仓库点星星的用户列表发生了艺术的碰撞
先看效果,代码写的比较乱,有待优化 效果 https://linyisonger.github.io/H5.Examples/?name./089.%E7%9C%8B%E6%98%9F%E6%98%9F%E7%9A%84%E8%88%9E%E8%80%85.html 思路 看起来很简单,实则也不是很难,就是需要思路要打开。 一…...
使用消息队列怎样防止消息重复?
大家好,我是君哥。 使用消息队列时,我们经常会遇到一个可能对业务产生影响的问题,消息重复。在订单、扣款、对账等对幂等有要求的场景,消息重复的问题必须解决。 那怎样应对重复消息呢?今天来聊一聊这个话题。 1.三…...
06.【C++】模板初阶(template<typename T>,充分复用函数,函数模板和类模板的使用)
目录 一. 泛型编程 二. 函数模板(template的使用) 2.1 函数模板概念 2.2 函数模板格式 2.3 函数模板的原理 2.4 函数模板的实例化 2.5 模板参数的匹配原则 三. 类模板 3.1 类模板的定义格式 3.2 类模板的实例化 一. 泛型编程 如何实现一个通用…...
深入理解 并查集LRUCaChe
并查集&LRUCaChe 个人主页:顾漂亮 文章专栏:Java数据结构 1.并查集的原理 在一些应用问题中,需要将n个不同的元素划分成一些不相交的集合。开始时,每个元素自成一个单元素集合,然后根据一定规律将归于同一组元素的…...
在 macOS 系统上安装 kubectl
在 macOS 系统上安装 kubectl 官网:https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-macos/ 用 Homebrew 在 macOS 系统上安装 如果你是 macOS 系统,且用的是 Homebrew 包管理工具, 则可以用 Homebrew 安装 kubectl。 运行…...
如何设置HTTPOnly和Secure Cookie标志?
设置HttpOnly和Secure标志于Cookie中是增强Web应用安全性的重要措施。这两个标志帮助防止跨站脚本攻击(XSS)和中间人攻击(MitM)。下面是关于如何设置这些标志的具体步骤: 设置方法 在服务器端设置 根据你的服务器端…...
seacmsv9注入管理员账号密码+orderby+limi
1:mysql默认存储引擎innoDB携带的表 1,mysql.innodb_table_stats 2,mysql.innodb_index_stats SELECT table_name FROM mysql.innodb_table_stats WHERE database_name DATABASE(); 2: 关键字做处理 HEX编码:0x696E666F726D6174696F6E5F7…...
Orange 开源项目 - 集成百度智能云-千帆大模型
1 集成百度智能云-千帆大模型 百度智能云-千帆ModelBuilder百度智能云千帆大模型服务与开发平台ModelBuilder(以下简称千帆ModelBuilder)是面向企业开发者的一站式大模型开发及服务运行平台。千帆ModelBuilder不仅提供了包括文心一言底层模型和第三方开源…...
mac 安装Eclipse,汉化及安装ERMaster
1、下载Eclipse 进入官网直接下载 https://www.eclipse.org/downloads/ 2、Eclipse 汉化 以下是 Eclipse 2024-12 汉化的具体方法: 1、打开安装新软件界面:打开 Eclipse,点击菜单栏中的 “Help”,选择 “Install New Software……...
C++程序员内功修炼——Linux C/C++编程技术汇总
在软件开发的宏大版图中,C 语言宛如一座巍峨的高山,吸引着无数开发者攀登探索。而 Linux 操作系统,以其开源、稳定、高效的特性,成为了众多开发者钟爱的开发平台。将 C 与 Linux 相结合,就如同为开发者配备了一把无坚不…...
Unity3D 战斗系统架构与设计详解
引言 战斗系统是许多游戏的核心玩法之一,尤其是在动作游戏、角色扮演游戏(RPG)和策略游戏中。Unity3D 作为一款强大的游戏引擎,提供了丰富的工具和 API 来帮助开发者实现复杂的战斗系统。本文将详细探讨 Unity3D 中战斗系统的架构…...
Apache Commons Chain 与 Spring Boot 整合:构建用户注册处理链
文章目录 概述1. 环境准备2. 创建自定义上下文3. 创建命令验证用户输入保存用户数据发送欢迎邮件 4. 构建并执行处理链5. 使用处理链6. 运行结果7. 总结 概述 本文档旨在展示如何在 Spring Boot 应用中使用 Apache Commons Chain 来实现一个用户注册的处理链。我们将通过 Chai…...
数据结构:二叉树的数组结构以及堆的实现详解
目录 一.树与二叉树 1.树的概念与相关术语: 2.二叉树: (1)定义: (2)特殊的二叉树: (3)完全二叉树 (4)二叉树的存储结构&#x…...
机器学习01
机器学习的基本过程如下: 1.数据获取 2.数据划分 3.特征提取 4.模型选择与训练 5.模型评估 6.模型调优 一、特征工程(重点) 0. 特征工程步骤为: 特征提取(如果不是像dataframe那样的数据,要进行特征提取&#…...