Snort的配置与使用

 声明:学习视频来自b站up主 泷羽sec,如涉及侵权马上删除文章

感谢泷羽sec 团队的教学
视频地址:蓝队基础之网络七层杀伤链_哔哩哔哩_bilibili

目录

一、什么是Snort

Snort的主要功能包括:

Snort的工作原理:

Snort的应用场景:

二、如何配置Snort

(一)安装依赖包

(二)安装和配置Snort

(三)示例规则

(四)测试Snort配置

(五)启动和监控Snort

三、如何使用Snort

(一)文件管理概述

(二)各字段详细描述

1.alert

含义:

示例用法:

2.icmp

含义:

示例用法:

3.any

含义

示例用法:

4.< >(方向运算符)

含义:

示例用法:

5.$HOME_NET

含义:

示例用法:

6.any(指定要检测的目标端口)

含义:

示例用法:

7.msg

含义:

示例用法:

8.sid

含义:

示例用法:

9.rev

含义:

示例用法:

10.classtype

含义:

示例用法:

四、本地账号与 Snort 条件子句

(一)概述

(二)具体 Snort 条件子句示例及解释

1.检查失败的 telnet 登录尝试

规则语句:

详细解释:

协议及源目标设定:

告警信息及分类相关:

(三)外部规则集

(四)In Line 部署及阻断操作

In-Line部署

阻断操作

应用场景

配置示例


一、什么是Snort

Snort是一个开源的网络入侵检测系统(NIDS)和入侵防御系统(IDS/IPS),由Martin Roesch于1998年创建,并在2000年发布了第一个版本。Snort被广泛用于实时检测和预防各种网络攻击,包括但不限于缓冲区溢出攻击、端口扫描、木马、蠕虫等恶意活动。

Snort的主要功能包括:

  1. 网络监控

    • 实时监控网络流量,检测潜在的恶意活动。
  2. 入侵检测

    • 通过预定义的规则集(称为签名)来识别和响应各种攻击。
  3. 数据包记录

    • 记录网络流量数据包,用于后续分析和取证。
  4. 警报和日志

    • 生成警报和日志,帮助安全分析师了解网络事件。
  5. 流量分析

    • 提供流量分析功能,帮助识别异常流量模式。
  6. 规则自定义

    • 用户可以自定义规则,以适应特定的网络环境和安全需求。
  7. 性能优化

    • 支持多种优化技术,如预处理模块和检测引擎优化,以提高性能。

Snort的工作原理:

  • 规则引擎

    • Snort使用规则引擎来分析网络流量。规则定义了Snort应如何检测特定的网络行为。
    • 规则可以指定要检测的协议、端口、数据包内容等。
  • 检测方法

    • Snort可以执行多种检测方法,包括模式匹配、异常检测、应用层检测等。
  • 响应机制

    • Snort可以配置为仅检测并报告可疑活动(IDS模式),或者主动阻止恶意流量(IPS模式)。

Snort的应用场景:

  • 企业网络
    • 保护企业网络免受外部和内部威胁。
  • 网络安全研究
    • 作为研究工具,帮助研究人员分析和理解网络攻击。
  • 教育和培训
    • 用于网络安全教育和培训,帮助学生和专业人员学习网络攻击和防御技术。

Snort因其灵活性、强大的检测能力和开源特性而受到广泛欢迎,是网络安全领域的重要工具之一。随着网络威胁的不断演变,Snort也在不断更新和改进,以应对新的挑战。

二、如何配置Snort

在安装和配置网络安全工具如Snort时,确保系统具备必要的依赖包和库是非常重要的。以下是安装Snort及其依赖项的步骤,以及如何配置Snort以发出警报的示例:

(一)安装依赖包

  1. DAQ数据采集库

    • DAQ(Data Acquisition Toolkit)是一个用于网络数据包捕获的库,Snort使用它来捕获网络流量。

    • 在基于Debian的系统上,可以使用以下命令安装DAQ:

      sudo apt-get update
      sudo apt-get install libdaq1 libdaq-dev
  2. 内存分配器

    • Snort需要一个内存分配器来管理内存使用。通常,DAQ库已经包含了所需的内存分配器。

(二)安装和配置Snort

  1. 安装Snort

    • 可以从Snort的官方网站下载最新版本的Snort,或者使用包管理器安装。

    • 在基于Debian的系统上,可以使用以下命令安装Snort:

      sudo apt-get install snort
  2. 配置Snort

    • Snort的配置文件通常位于/etc/snort/snort.conf
    • 需要根据网络环境和安全需求自定义配置文件。
  3. 自定义规则

    • Snort规则定义了Snort应如何检测网络流量中的异常或恶意行为。
    • 创建或修改规则文件,例如/etc/snort/rules/local.rules,并添加自定义规则。

(三)示例规则

以下是一个示例Snort规则,用于对发往特定网络($HOME_NET)的任何ICMP流量发出警报:

alert icmp any any -> $HOME_NET any (msg:"Test Ping Event"; sid:1000001; rev:1; classtype:icmp-event;)
  • 字段解释
    • alert:指示这是一个警报规则。
    • icmp:指定协议为ICMP。
    • any any -> $HOME_NET any:源可以是任何IP和端口,目标是定义在配置文件中的$HOME_NET网络的任何端口。
    • msg:定义警报消息。
    • sid:规则的唯一标识符。
    • rev:规则的修订号。
    • classtype:分类警报类型。

(四)测试Snort配置

在应用新规则或配置更改后,应测试Snort配置以确保其正确无误:

snort -T -c /etc/snort/snort.conf
  • -T:测试模式,检查配置文件和规则。
  • -c:指定配置文件路径。

(五)启动和监控Snort

  • 启动Snort

    • 可以使用系统服务管理器启动Snort,例如使用systemctl

      sudo systemctl start snort
      sudo systemctl enable snort
  • 监控日志

    • Snort通常将警报和日志记录到指定的日志文件中,可以通过查看这些日志来监控网络活动。

通过这些步骤,可以成功安装、配置和测试Snort,以保护网络免受各种威胁。确保定期更新Snort规则和配置,以应对新的安全威胁。

三、如何使用Snort

(一)文件管理概述

在涉及网络安全监控工具(如 Snort)的文件管理中,有一系列重要的字段用于定义规则,这些规则能够帮助准确地检测和处理网络中的各类活动,并以特定方式进行告警等操作。

(二)各字段详细描述

1.alert

含义:

    该字段明确告诉 Snort 此规则是一个告警规则。当网络流量符合此规则所设定的条件时,Snort 会发出相应的告警信息,以便管理员及时知晓可能存在的异常活动。

示例用法:

    在规则配置文件中,如 alert icmp any any -> $HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) ,“alert” 开头就表明这是一个用于产生告警的规则。

2.icmp

含义:

    用于指定要标记活动的流量类型。除了 ICMP(Internet Control Message Protocol,互联网控制报文协议)之外,还可以是 TCP(Transmission Control Protocol,传输控制协议)、UDP(User Datagram Protocol,用户数据报协议)等其他常见的网络协议。通过指定具体的协议类型,能够精准地针对特定协议的流量进行监控和规则应用。

示例用法:

    在规则 alert icmp any any -> $HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) 中,“icmp” 明确了此规则是针对 ICMP 协议的流量进行相关操作。

3.any

含义

    当用于指定源 IP 地址或 CIDC(无类别域间路由,Classless Inter-Domain Routing)时,“any” 表示任何地址。这意味着规则将对来自任何源 IP 地址的流量进行检测,不局限于特定的 IP 范围,从而实现对广泛来源的流量监控。

示例用法:

    在规则 alert icmp any any -> $HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) 中,第一个any指定源IP地址可以是任何地址,第二个any指定源端口可以是任何端口。这种宽泛的指定方式有助于全面捕捉可能存在问题的流量情况,不过在某些特定需求下,也可以根据实际情况将其替换为具体的端口号以实现更精准的监控。

4.< >(方向运算符)

含义:

    方向运算符 “<>” 用于指定流量方向。它标识 IP 和端口同时作为来源和目的,明确了流量是从哪里来以及要到哪里去的路径关系。通过这种方式,可以准确地界定规则所适用的流量流向情况,以便更精准地检测符合特定流向要求的流量活动。

示例用法:

    在规则 alert icmp any any ->$HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) 中,“->” 就是方向运算符,表明流量是从由前面 “any any” 所指定的源(任何源 IP 地址和任何源端口)流向由 “HOME_NET any” 所指定的目标(配置文件中指定的本地网络的任何目标 IP 地址和任何目标端口)。

5.$HOME_NET

含义:

    在 Snort 的配置文件中指定的本地网络。它可以通过具体的 IP 地址范围来表示,通常采用 CIDR 格式(如 192.168.0.0/16)。此外,也可以使用多个 CIDR 来更精准地界定本地网络的范围,以便根据实际需求对本地网络内的流量进行全面且精准的监控。

示例用法:

    在规则alert icmp any any ->$

HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) 中,“$HOME_NET” 就是指代在配置文件中已经定义好的本地网络范围,具体值需根据配置文件的设置来确定。

6.any(指定要检测的目标端口)

含义:

    用于指定要检测的目标端口,同样表示任何端口。这使得规则能够对流向本地网络(由 “$HOME_NET” 指定)的任何目标端口的流量进行检测,与前面指定源端口的 “any” 配合,实现对流量在端口层面的全面监控。

示例用法:

    在规则 alert icmp any any -> $HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) 中,最后一个 “any” 就是指定要检测的目标端口为任何端口。

7.msg

含义:

    报警名字段。用于给当网络流量符合规则时所发出的告警赋予一个特定的名称,以便管理员在查看告警信息时能够快速识别告警的大致内容和相关活动类型。这个名称应该具有一定的描述性,能够直观地反映出告警所对应的网络活动情况。

示例用法:

    在规则 alert icmp any any -> $HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) 中,“msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event)” 里的 “Test Ping Event” 就是报警名字段所设定的具体名称,用于标识此次告警与测试 Ping 事件相关。

8.sid

含义:

    签名 ID 字段。它用于给每个规则赋予一个唯一的标识编号,取值范围通常有一定要求,一般来说,自定义报警必须大于等于 100000 且唯一。这个编号在 Snort 的规则管理和识别中起着重要作用,便于对不同规则进行区分、查询和管理。

示例用法:

    在规则 alert icmp any any -> $HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) 中,“sid:1000001” 就是指定的签名 ID 字段的值,表明此规则的签名 ID 为 1000001。

9.rev

含义:

    规则更新时,作为版本号跟踪。当对规则进行修改、完善或更新等操作时,可以通过更新 “rev” 字段的值来记录规则的版本变化情况,以便在后续的规则管理和维护中能够清楚地了解到每条规则的演进历程,对于排查问题、分析规则效果等方面都具有重要意义。

示例用法:

    在规则 alert icmp any any -> $HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) 中,“rev:1” 就是指定的规则更新时的版本号,表明此规则当前的版本为 1。

10.classtype

含义:

    Snort 有一个默认类型列表,可以帮助分类告警,便于搜索特定类型的活动。通过将规则的告警归类到不同的类型中,能够更高效地对大量告警信息进行筛选、分析和处理,使得管理员可以根据特定类型的活动快速定位和处理相关告警,提高网络安全监控和管理的效率。

示例用法:

    在规则 alert icmp any any -> $HOME_NET any (msg"Test Ping Event: sid:1000001rev:1; classtype:icmp-event) 中,“classtype:icmp-event” 就是指定将此次告警归类到 “icmp-event” 这种类型中,以便后续根据该类型进行相关操作。

通过对这些字段的准确理解和合理运用,能够在 Snort 等网络安全监控工具的文件管理中,更加精准地定义规则,实现对网络活动的有效监控和管理。

四、本地账号与 Snort 条件子句

(一)概述

在网络安全监控领域,特别是涉及到本地账号相关活动的监控时,Snort 作为一款常用的网络入侵检测系统(NIDS),可通过设置特定的条件子句来检测各种异常情况。当满足或不满足这些设定的条件时,相应的触发子句就会被执行,从而实现对潜在安全威胁的告警或其他处理操作。

(二)具体 Snort 条件子句示例及解释

1.检查失败的 telnet 登录尝试
规则语句:

    alert tcp $HOME_NET 23 -> any any (msg:"Failed login attempt"; content:"Login incorrect"; sid:1000002; rev:1; classtype:attempted-user;)

详细解释:
协议及源目标设定:

alert tcp:表明这是一个针对 TCP 协议的告警规则。Snort 会对符合后续条件的 TCP 协议流量进行监测并在满足条件时发出告警。

$HOME_NET 23:这里指定了源网络,$$HOME_NET 通常是在 Snort 配置文件中定义好的本地网络范围(如以 CIDR 格式表示的某个 IP 地址段),23 是 Telnet 服务所使用的端口号。这表示规则关注的是从本地网络的 Telnet 端口发出的流量。

-> any any:方向运算符,表明流量是从前面指定的源(本地网络的 Telnet 端口)流向任何目标 IP 地址和任何目标端口。

告警信息及分类相关:

msg:"Failed login attempt":msg 字段用于设置告警名字,在此处将告警命名为 “Failed login attempt”,以便管理员在查看告警信息时能快速了解到该告警与 Telnet 登录失败尝试相关。

content:"Login incorrect":content 字段用于指定在监测的流量中要查找的特定内容。在这里,当 Snort 在 TCP 流量中检测到包含 “Login incorrect” 这个字符串时,就会认为可能发生了 Telnet 登录失败的情况。

sid:1000002:sid 是签名 ID 字段,给这条规则赋予了一个唯一的标识编号 1000002。按照规定,自定义报警的sid 值通常要大于等于 100000 且唯一,方便在众多规则中对该规则进行区分和管理。

rev:1:rev 字段在规则更新时作为版本号跟踪。这里设置为 1,表示该规则当前的版本是 1,当后续对该规则进行修改等操作时,可以更新这个版本号来记录规则的演进历程。

classtype:attempted-user;:classttype 字段利用 Snort 的默认类型列表对告警进行分类,将此次告警归类到 “attempted-user” 类型中,便于后续搜索特定类型的活动,比如管理员可以通过查找 “attempted-user” 类型的告警来集中查看所有与用户登录尝试相关的情况。

(三)外部规则集

相关网址:

Enterprise Cybersecurity Solutions, Services & Training | Proofpoint US

    这是一个可能提供与网络安全相关规则或其他资源的网址,也许可以从这里获取到一些补充的规则内容、安全建议等信息,用于进一步完善对网络活动的监控和安全防护。

https://rules.emergingthreats.netopen/

    同样是一个与网络安全规则相关的网址,可能提供各种新兴威胁相关的规则集,通过参考这些外部规则集,可以拓宽 Snort 的检测范围,使其能够应对更多种类的潜在安全威胁。

(四)In Line 部署及阻断操作

In-Line部署和阻断操作是Snort等网络安全工具的关键功能,它们提供了更主动的防御措施,帮助保护网络免受恶意流量的侵害。

In-Line部署

In-Line部署模式允许Snort直接插入到网络流量路径中,这意味着Snort可以直接处理经过网络接口的流量,而不仅仅是被动地监控流量。这种部署方式使得Snort能够:

  • 实时检测和响应:对经过网络接口的流量进行实时检测,并在检测到异常或恶意流量时立即采取措施。
  • 主动防御:通过主动阻断恶意流量,防止攻击者进一步渗透网络。
阻断操作

Snort提供了多种阻断操作,用于处理检测到的恶意流量:

  1. D drop

    • 当Snort检测到符合特定阻断规则的流量时,会直接丢弃该流量,阻止其在网络中继续传播。
    • 这种方法适用于需要立即阻止恶意流量的场景。
  2. sdrop

    • 类似于D drop,sdrop也是一种阻断方式,但可能在实现细节上有所不同,具体取决于配置和环境。
    • 通常用于特定场景下的流量阻断。
  3. reject

    • 这种方式不仅会阻断特定流量的传输,还会向发送该流量的源端发送一个拒绝响应。
    • 这种方法可以向攻击者明确表示其流量已被拒绝,有助于维护网络秩序并提示用户进行相应的修正。
应用场景
  • 入侵防御:在检测到潜在的攻击或恶意流量时,立即采取措施阻止其进入网络。
  • 合规性要求:满足某些行业或法规要求,如PCI DSS,需要对网络流量进行实时监控和响应。
  • 网络维护:在维护期间,通过阻断操作防止不必要的流量干扰维护工作。
配置示例

以下是一个简单的Snort配置示例,展示了如何配置In-Line部署和阻断操作:

var HOME_NET 192.168.1.0/24
var EXTERNAL_NET anyalert tcp $EXTERNAL_NET any -> $HOME_NET 23 (msg:"Failed login attempt"; content:"Login incorrect"; sid:1000002; rev:1; classtype:attempted-user;)
drop tcp $EXTERNAL_NET any -> $HOME_NET 23 (msg:"Drop failed login attempts"; content:"Login incorrect"; sid:1000003; rev:1; classtype:attempted-user;)

在这个示例中:

  • 第一条规则是一个告警规则,用于检测来自外部网络到本地网络23端口(Telnet)的失败登录尝试。
  • 第二条规则是一个阻断规则,用于在检测到失败的登录尝试时直接丢弃这些流量。

通过这些配置,Snort可以更有效地保护网络免受恶意流量的侵害。在实际部署中,需要根据具体的网络环境和安全需求进行详细的配置和测试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/469900.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用docker-compose单点搭建社区版seafile+onlyoffice在线word编辑平台

文章目录 前言一、平台介绍1. seafile平台介绍2. onlyoffice平台介绍 二、版本信息三、基础信息准备1.docker配置文件2.准备目录 四、onlyoffice部署五、seafile平台部署1.准备seafile.yaml文件2.运行平台 六、双平台对接总结 前言 记录使用docker-compose单点搭建社区版seafi…

游戏引擎学习第七天

视频参考:https://www.bilibili.com/video/BV1QFmhYcE69 ERROR_DEVICE_NOT_CONNECTED 是一个错误代码&#xff0c;通常在调用 XInputGetState 或 XInputSetState 函数时返回&#xff0c;表示指定的设备未连接。通常会出现以下几种情况&#xff1a; 未连接控制器&#xff1a;如…

计算机的错误计算(一百五十二)

摘要 探讨 MATLAB 中双曲正弦函数 sinh(x)与双曲余弦函数 cosh(x)的计算精度问题。 例1. 已知 计算 以及 直接贴图吧&#xff1a; 另外&#xff0c;16或17位的正确值分别为 0.5168712762709208e1、0.52645599648397069e1、0.2140244217618104e247 与 0.2140244217…

【C++】详解RAII思想与智能指针

&#x1f308; 个人主页&#xff1a;谁在夜里看海. &#x1f525; 个人专栏&#xff1a;《C系列》《Linux系列》 ⛰️ 丢掉幻想&#xff0c;准备斗争 目录 引言 内存泄漏 内存泄漏的危害 内存泄漏的处理 一、RAII思想 二、智能指针 1.auto_ptr 实现原理 模拟实现 弊端…

JDBC-Dao层模式

分层思维 分层思维是软件架构设计的一种重要思想&#xff0c;它通过将应用程序划分为多个相互独立且依赖关系的层。 通常分为以下三层关系。 web层&#xff1a;主要负责与用户进行交互&#xff0c;处理请求。 service层&#xff1a;业务逻辑层&#xff0c;主要负责处理应用程序…

三种单例实现

1、不继承Mono的单例 实现 使用 注&#xff1a; 使用需要继承BaseManager 泛型填写自己本身 需要实现无参构造函数 2、挂载式的Mono单例 实现 使用 注&#xff1a; 使用需要继承SingletonMono 泛型填写自己本身 需要挂载在unity引擎面板 3、不用挂载式的单例 实现 使…

Flink API 的层次结构

Apache Flink 提供了多层 API&#xff0c;每层 API 针对不同的抽象层次和用途&#xff0c;使得开发者可以根据具体需求选择合适的 API 层次。以下是 Flink API 的层次结构及其简要说明&#xff1a;

DHCP与DNS安全管理

一、DHCPSnooping的攻击防范功能配置&#xff08;路由器&#xff09; 1.启动设备 2.将pc设为DHCP获取IP地址 3.配置DHCP [AR1]dhcp enable //启动DHCP服务 [AR1]ip pool aaa //设置地址池 [AR1-ip-pool-aaa]network 192.168.10.0 mask 24 //设置地址范围 [AR1-ip-poo…

51c视觉~合集6

我自己的原文哦~ https://blog.51cto.com/whaosoft/11603901 #CSWin-UNet 将自注意力机制集成到UNet中&#xff01;CSWin-UNet&#xff1a;U型分割方法&#xff0c;显著提高计算效率和感受野交互&#xff01;本文提出了CSWin-UNet&#xff0c;这是一种新颖的U型分割方法&…

深度学习服务器租赁AutoDL

省钱绝招 #AutoDL #GPU #租显卡

设备接入到NVR管理平台EasyNVR多品牌NVR管理工具/设备的音视频配置参考

NVR管理平台EasyNVR是一款功能强大的安防视频监控平台&#xff0c;能够轻松实现视频流的导入、录像、存储和回放等功能。在将设备接入到海康NVR管理平台EasyNVR时&#xff0c;视音频配置是确保视频监控效果的重要步骤。本文将详细介绍如何将设备接入到EasyNVR平台&#xff0c;并…

35.3K+ Star!PhotoPrism:一款基于AI的开源照片管理工具

PhotoPrism 简介 PhotoPrism[1] 是一个为去中心化网络设计的AI照片应用,它利用最新技术自动标记和查找图片,实现自动图像分类与本地化部署,你可以在家中、私有服务器或云端运行它。 项目特点 主要特点 浏览所有照片和视频,无需担心RAW转换、重复项或视频格式。 使用强大的…

HTML之列表

练习题&#xff1a; 图所示为一个问卷调查网页&#xff0c;请制作出来。要求&#xff1a;大标题用h1标签&#xff1b;小题目用h3标签&#xff1b;前两个问题使用有序列表&#xff1b;最后一个问题使用无序列表。 代码&#xff1a; <!DOCTYPE html> <html> <he…

redis实现消息队列的几种方式

一、了解 众所周知&#xff0c;redis是我们日常开发过程中使用最多的非关系型数据库&#xff0c;也是消息中间件。实际上除了常用的rabbitmq、rocketmq、kafka消息队列&#xff08;大家自己下去研究吧~模式都是通用的&#xff09;&#xff0c;我们也能使用redis实现消息队列。…

Linux下MySQL的简单使用

Linux下MySQL的简单使用 导语MySQL安装与配置MySQL安装密码设置 MySQL管理命令myisamchkmysql其他 常见操作 C语言访问MYSQL连接例程错误处理使用SQL 总结参考文献 导语 这一章是MySQL的使用&#xff0c;一些常用的MySQL语句属于本科阶段内容&#xff0c;然后是C语言和MySQl之…

即插即用篇 | YOLOv8 引入 代理注意力 AgentAttention

Transformer模型中的注意力模块是其核心组成部分。虽然全局注意力机制具有很强的表达能力,但其高昂的计算成本限制了在各种场景中的应用。本文提出了一种新的注意力范式,称为“代理注意力”(Agent Attention),以在计算效率和表示能力之间取得平衡。代理注意力使用四元组(Q…

从0开始学PHP面向对象内容之(常用魔术方法续一)

常用魔术方法&#xff08;续&#xff09; 上期我们讲到几个常用的魔术方法&#xff0c;但是由于篇幅过程且全是文字性质地东西&#xff0c;就没写完&#xff0c;篇幅太长也会丧失阅读兴趣&#xff0c;我尽量控制一篇文章在5000字左右 一、__isset()&&__unset() 1、在…

【MySQL】数据库知识突破:数据类型全解析与详解

前言&#xff1a;本节内容讲述MySQL的数据类型&#xff0c; 我们在学习之前的建表的时候已经用过各种各样的数据类型。 比如int、varchar、char类型等等。其中它们是对表的结构的操作&#xff0c; 并没有对数据的内容进行操作&#xff0c;所以它叫做DDL。另外&#xff0c;还有…

windows 11编译安装ffmpeg(包含ffplay)

一、源码及安装包下载 1.1&#xff0c;ffmpeg源码包下载 下载地址&#xff1a;Download FFmpeg 1.2&#xff0c;mysys下载 下载地址&#xff1a;MSYS2 1.3&#xff0c;libx264源码包下载 下载地址&#xff1a;x264, the best H.264/AVC encoder - VideoLAN 二、软件安装 2.1&…

从0开始深度学习(28)——序列模型

序列模型是指一类特别设计来处理序列数据的神经网络模型。序列数据指的是数据中的每个元素都有先后顺序&#xff0c;比如时间序列数据&#xff08;股票价格、天气变化等&#xff09;、自然语言文本&#xff08;句子中的单词顺序&#xff09;、语音信号等。 1 统计工具 前面介绍…