当前位置: 首页 > news >正文

KylinSP3 | 防火墙和麒麟安全增强设置KySec

一、系统防火墙原理

麒麟操作系统从V10版本开始,默认使用了Firewalld防火墙,Firewalld是能提供动态管理的防火墙,支持网络/防火墙区域,用于定义网络连接或接口的信任级别。支持IPv4和IPv6防火墙设置、以太网桥接和IP集。将运行时配置和永久配置选项分开,为服务或应用程序提供了直接添加防火墙规则的接口。

Firewalld的一个很大的优势的它是动态管理的,不需要重启防服务的情况下也可以更改防火墙配置,也不会中断服务器的任何连接。

Linux是通过内核中的 netfilter 来实现网络数据包的过滤管理(查看、记录、修改、丢弃、拒绝)。netfilter 代码被编译到 Linux 内核中,并执行实际的包过滤,用户没有办法直接鱼 netfilter 交互,需要某种帮助程序作为桥梁来与 netfilter 交互。

与 netfilter 交互的方法:

  • 管理员编写内核模块程序与 netfilter 交互
  • ipchains (Linux kernel 2.4)
  • iptables (作为 Linux kernel 2.6 版本的1个特性引入)
  • nftables

Firewalld可以理解为就是iptables的前端工具。
在这里插入图片描述

Netfilter是Linux核心层内部的一个数据包处理模块,Linux平台下的包过滤防火墙

  • 网络地址转换(Network Address Translate)
  • 数据包内容修改
  • 数据包过滤的防火墙功能

Netfilter专业术语

  • 表tables:相同功能规则的集合
  • 链chains:关卡
  • 规则policy:匹配条件、处理动作

内核空间的转发流程图
在这里插入图片描述

1. 链chains

链是一组规则的集合,在配置规则的时候,要注意规则的顺序。Firewalld会根据规则的先后进行匹配,当匹配到合适项时,会停止匹配。在没有匹配项时,会应用缺省规则。
在这里插入图片描述

2. 表table

表是由链组成的,四张表的优先级由高到低的顺序为:raw --> mangle --> nat --> filter

  • raw:关闭nat表上启用的连接追踪机制【iptable_raw】
  • mangle表:拆解报文,做出修改,并重新封装【iptable_mangle】
  • nat表:网络地址转换功能【内核模块:iptable_nat】
  • filter表:负责过滤【内核模块:iptable_filter】

如果想要Linux支持转发,需要开启内核的ip_forward功能。可以临时修改对应文件/proc/sys/net/ipv4/ip_forward。

ip_forward默认是关闭的,可以通过查看/proc/sys/net/ipv4/ip_forward文件查看

cat /pro/sys/net/ipv4/ip_forward

在这里插入图片描述

临时启用IP转发功能:使用echo命令修改文件以开启IP转发,直接使用vim是无法编辑的

echo 1 > /proc/sys/net/ipv4/ip_forward

永久启用IP转发功能:修改内核文件,修改 ip_forward 的值

vim /etc/sysctl.conf
# 修改下列选项值为1
net.ipv4.ip_forward=1

在这里插入图片描述

sysctl -p		# 生效配置文件

在这里插入图片描述

二、 Firewalld防火墙控制

防火墙的类别

  • 静态防火墙
    • 只要修改规则就要进行所有规则的重新载入,例如:iptables service
  • 动态防火墙
    • 任何规则的变更都不需要对整个防火墙规则列表进行重新加载,只需要将变更部分保存并更新到 iptables ,例如:firewalld

Firewalld提供了一个 daemon 和 service,还有命令行和图形界面配置工具,它仅仅是替代了 iptables service部分,其底层还是使用 iptables 作为防火墙规则管理入口。真正利用规则进行数据包过滤是由内核中的 netfilter 子系统负责。

1. 区域zone

Firewalld将网卡对应到不同的区域(zone),zone默认一共有9个

  • 不同区域之间的差异是它对待数据包的默认行为不同,根据区域名字我们可以很直观的知道该区域的特征,在银河麒麟操作系统中,默认区域为public。
  • Firewalld默认每个服务都是拒绝,需要去设置才能放行

通过查看/usr/lib/firewalld/zones目录可以看到系统预先配置的区域和服务,zones文件都是xml格式

在这里插入图片描述

Firewalld区域(zone)

区域zone默认策略规则适用区域
trusted(信任)接受任何网络连接,允许所有数据包进出内部网络
home(家庭)流量与ssh、mdns、ipp-client、samba-client、dhcpv6-client服务相关允许进入家庭网络
Internal(内部)等同于home区域内部网络
work(工作)仅流量与ssh、ipp-client、dhcpv6-client服务相关允许进入工作区
public(公共)只有经过选取的连接、流量与ssh、dhcpv6-client服务相关允许进入公共区域
external(外部)流量与ssh服务相关允许进入启用伪装功能的外部网
dmz(非军事区)可以公开访问、可以有限的进入内部网络、流量与ssh服务相关允许进入,安全级别位于内网与外网间(停火区域)允许公网访问的服务器所在区域
block(限制)任何接接收的网络连接都被拒绝保护区域

2. 图形界面修改防火墙设置

在这里插入图片描述
在这里插入图片描述

3. 命令行界面修改防火墙设置

Firewalld基本命令

命令说明
systemctl start firewalld开启防火墙
systemctl enable firewalld开机自启防火墙
systemctl stop firewalld关闭防火墙
systemctl disable firewalld开机自动关闭防火墙
firewalld-cmd --state | systemclt status firewalld查看防火墙状态
firewalld-cmd --get-active-zones查看防火墙管理的设备
firewalld-cmd --get-default-zone查看防火墙生效的区域
firewalld-cmd --get-zones查看防火墙所有区域
firewalld-cmd --zone=public --list-all列出关于public区域的服务设置
firewalld-cmd --get-services列出可使用的服务
firewalld-cmd --set-default-zone=trusted修改默认区域为trusted
firewalld-cmd --list-all-zones列出所有的区域
firewalld-cmd --set-default-zone=dmz设置防火墙的区域
firewalld-cmd --set-default-zone=dmz查看特定区域的信息

修改安全策略

命令说明
firewalld-cmd --add-service=https临时添加服务(默认的区域)
firewalld-cmd --permanent --add-service=https永久添加服务(默认的区域)
firewalld-cmd --add-port=80/tcp临时添加端口
firewalld-cmd --remove-interface=eth0删除接口
firewalld-cmd --permanent --change-interface=eth1 --zone=dmz永久更改接口区域
firewalld-cmd --remove-souce=192.168.10.1 --zone=block临时拒绝主机192.168.10.1的所有网络连接
firewalld-cmd --remove-source=192.168.10.1 --zone=block --permanent永久移除限制
firewalld-cmd --complete-reload中断连接,重启防火墙策略
firewalld-cmd --reload不中断连接,重启防火墙策略
firewalld-cmd --direct --get-all-rules查看设置的规则

[Step1]: Firewalld服务默认为开机自启,可以通过命令查看

在这里插入图片描述

[Step2]: 当使用 firewalld-cmd 命令时,如果拼写错误会有智能提示

firewalld-cmd --list-zone		# 查看防火墙所有区域,正确命令为[ --list-zones ]

在这里插入图片描述

[Step3]: 防火墙配置文件可以手动修改,修改后需要重启防火墙或重新加载生效

vim /etc/firewalld/zones/public.xml# 允许http服务通过
<service name="http">

在这里插入图片描述

firewall-cmd --reload		# 重新加载防火墙,不会中断用户连接
firewall-cmd --list-services --zone=public		# 查看防火墙放行的服务,可以看到多出http

在这里插入图片描述

[Step4]: 当防火墙出现严重问题时,如:防火墙规则设置正确,但却出现状态信息问题和无法建立连接

firewall-cmd --complete-reload		# 重新加载防火墙并中断用户连接

4. 服务配置文件

在/usr/lib/firewalld/services目录下保存了daemon文件,每个文件对应一项具体的网络服务。

  • 与之对应的配置文件中记录了各项服务所使用的tcp/udp端口,当默认提供的服务不够用或需要自定义某项服务的端口时,我们需要将 service 配置文件放置在 /etc/firewalld/services目录中
  • 每加载一项已设置好的 service 配置就意味着开放对应端口访问
  • 请勿修改/usr/lib/firewalld/services,只有/etc/firewalld/services的文件可以被编辑

查看ssh服务的配置文件内容

vim /usr/lib/firewalld/services/ssh.xml

在这里插入图片描述

如果想修改特定服务,可以将该服务配置文件复制到/etc/firewalld/services/目录下

系统会优先读取/etc/firewalld里面的文件,其次读取/usr/lib/firewalld/services/中的文件,为了方便管理和修改,建议将文件复制到/etc/firewalld/services/目录下。

cp /usr/lib/firewalld/services/http.xml /etc/firewalld/services

添加自定义服务:添加8080端口

# 随便复制一个配置文件充当模板
cp /usr/lib/firewalld/services/http.xml /etc/firewalld/services/tcp8080.xml
# 编辑新配置文件,修改后内容如下图所示
vim /etc/firewalld/services/tcp8080.xml

在这里插入图片描述

# 将新添加的服务文件添加到 public 区域配置文件中
vim /etc/firewalld/zones/public.xml# 末尾追加一行
<service name="tcp8080"/>

在这里插入图片描述

firewall-cmd --reload		# 重新加载防火墙

验证:可以通过8080访问服务器上的web服务
在这里插入图片描述

三、麒麟安全增强设置

1. 管理员分权机制(管理员权限拒绝滥用)

存在的问题

  • 超级管理员权限具有所有权限【权限不受限】
  • 系统容易发生错误【当超级管理员误删除关键文件】
  • 病毒木马容易入侵【提权后可以肆意攻击,存在安全隐患】

管理员分权的优势

  • 将超级管理员的权限拆分
  • 三个管理员相互合作、互相制约【三权分立】
  • 避免误操作引起的系统错误
  • 避免权限过大引起的安全隐患

2. 典型实施机制(进程和数据安全隔离)

存在的问题

  • 进程可以随意访问数据
  • 数据安全性、机密性差

进程和数据安全隔离的优势

  • 对进程可以划分不同类型域
  • 对文件数据可以划分不同的类型域
  • 数据隔离

3. 多级安全机密性机制(等级划分、安全机密)

存在的问题

  • 无等级划分、访问数据限制性较低
  • 低级别进程可以访问部分数据
  • 数据安全性、机密性差

等级划分、安全机密的优势

  • 禁止上读下写
  • 保证数据机密性

4. Kysed机制(提出基于标记的软件执行控制机制)

  • 未认证非法外来、被篡改程序拒绝执行
  • 外来内核模块拒绝加载
  • 非法来源程序拒绝安装
  • 保护文件拒绝篡改
  • 保护内核模块拒绝卸载
  • 未授权应用拒绝联网
  • 保护进程拒绝被杀死

5. 支持国密算法(支持软硬国密算法)

存在的问题

  • 不支持、不合规

支持软硬算法的优势

  • 符合国家密码主管部门要求

6. 用户UID唯一性(用户拒绝重复)

存在的问题

  • 用户删除之后,重复使用
  • 用户信息容易泄露

用户拒绝重复的优势

  • 用户UID唯一,且不可重复
  • 保证用户信息机密性

7. 安全中心(病毒防护、账户安全、网络保护、应用执行控制、极限扫描功能)

存在的问题

  • 功能分散、难以整合
  • 命令操作系统为主,用户体验感差、交互差

安全中心的优势

  • 图形化操作,操作简便,交互友好
  • 功能集中,统一配置和管理

8. 安全管理工具(对系统安全模式、系统安全状态、执行控制功能、管理员分权、内核防卸载功能、文件保护功能等安全功能管理)

存在的问题

  • 命令操作门槛高,不易操作
  • 用户体验不直观,交互体验差

安全管理工具的优势

  • 统一管理
  • 操作简便
  • 交互友好

9. 文件保密箱(数据隔离、授权共享、透明加解密)

存在的问题

  • 数据被其它用户可见、可操作、可复制、数据存储不安全
  • 其它用户难以共享数据,配置复杂
  • 数据明文存储,机密性差,容易被窃取
  • 硬盘被窃取后,所有数据全部泄露

文件保险箱的优势

  • 数据安全隔离、数据可授权共享
  • 数据加解密,保证数据机密性
  • 硬盘被窃取后,加密数据无法查看,依然保证数据机密性
  • 图形化操作,操作简便,交互友好

10. 日志管理工具(日志展示、日志过滤、日志检索、日志导出)

存在的问题

  • 日志过多,管理难
  • 日志查看不便,搜索不便

日志管理根据的优势

  • 便于日志查看、管理
  • 便于搜索定位
  • 便于导出

四、访问控制模型

**DAC:**自主访问控制是Linux下默认的接入控制机制,通过对资源读、写、执行操作,保证系统安全。

**MAC:**安全接入控制机制,默认情况下:MAC不允许任何访问,用户可以自定义策略规则,指定运行什么,从而可以避免很多攻击。

MAC强制访问控制有三种实现方式:Apparmor、SELinux、Kysec

  • Apparmor:内核模块的一个安全框架,是Ubuntu的强制访问默认选择
  • SELinux:美国国家安全局(NSA)对于强制访问控制的实现,是RHEL的强制访问默认选择
  • KySec:是基于kysec安全标记对执行程序、脚本文件、共享库、内核模块进行保护的一种安全机制,是麒麟操作系统的强制访问默认选择

KYSEC的两种安全模式

  1. 强制模式(Normal):出现违规操作时,阻止该操作的运行并审计记录该操作
  2. 警告模式(Warning):出现违规操作时,弹出麒麟安全授权认证框进行授权(桌面操作系统才有)
  3. 软模式(Softmode):出现违规操作时,只会审计记录该操作,不会阻止该操作的运行

五、麒麟安全增强Kysec

Tips:在安装麒麟操作系统时,默认不会安装【麒麟安全增强工具】,也就无法使用kysec

在这里插入图片描述

后期如果需要使用麒麟安装增加工具,不同的命令需要安装不同的软件包,以下安装包推荐使用Kylin自带的网络源进行安装

# 查看当前kysec安全状态的命令[getstatus],
kysec-utils-3.4.1-01.se.26.ky10.x86_64# 修改kysec安全状态的命令[kysec]
security-switch-1.3.1-1.se.04.ky10.x86_64# 查看kysec安全标记的命令[kysec],在安装kysec-utils会关联安装
kysec-utils-3.4.1-01.se.26.ky10.x86_64

查看当前kysec的安全状态

getstatus

在这里插入图片描述
在这里插入图片描述

kysec安全标记类型安全状态
exec control(执行控制)on/off/warning
net control(网络控制)on/off/warning
file protect(文件保护)on/off/warning
kmod protect(内核模块保护)on/off/warning
three protect(三权分立)on/off/warning
process protect(进程保护)on/off/warning

KYSEC的开启与关闭,需要重启系统生效

security-switch --set default		# 开启KYSEC
security-switch --set none			# 关闭KYSEC
security-switch --set strict		# 启用三权分立

在这里插入图片描述

设置KYSEC的模式为softmode还是normal

setstatus softmode/normal

修改相应功能安全状态,将网络控制模式临时关闭

setstatus kysec -f netctl -c off -t
  • -f netctl:指定安全模块下的子功能
  • -c off:设置子功能的状态,on为开启,off为关闭
  • -t:临时生效

1. 查看kysec安全标记

文件身份标记:用于对执行文件的用户进行限制

  • secadm:文件属于安全管理员,只能由安全管理员执行
  • audadm:文件属于审计管理员,只能由升级管理员执行
  • none:无身份标记,所有用户都可执行

文件保护标记:用于对文件进行保护和检测

  • verify:执行前检查文件是否发生变化,如果发生变化,禁止执行
  • readonly:文件只读,对文件的写、移动、重命名和属性修改操作都禁止
  • none:无文件保护标记

执行控制标记:用于对文件的是否可执行进行控制

  • unknown:未知文件标记,该标记不可执行
  • original:系统原始文件标记,该标记可执行
  • verified:第三方可执行文件标记,该标记可执行
  • kysoft:可信安全脚本标记,该标记可执行
  • trusted:可信文件标记,拥有该标记的程序对文件仅修改时,文件标记不变,该表可执行

查看安全标记

kysec_get exectl -f xxx		# 查看xxx文件的执行控制标记
kysec_get fpro -f /usr/bin/ls	# 查看/usr/bin/ls的文件保护标记

在这里插入图片描述

2. 可执行文件的可执行控制

[Setp1]: 首先查看kysec的安全状态,可以看到当前执行控制模式为on

getstatus

在这里插入图片描述

[Setp2]: 查找本地的cat命令,将cat命令拷贝到/tmp目录下

whereis cat
cp /usr/bin/cat /tmp
ll /tmp

在这里插入图片描述

[Setp3]: 尝试使用tmp目录下的cat命令查看文件内容,可以看到该命令无法被执行

/tmp/cat /etc/selinux/config

在这里插入图片描述

[Setp4]: 临时关闭执行控制模式,重新使用该命令查看文件内容,此时可以看到文件内容

setstatus kysec -f exectl -c off -t
/tmp/cat /etc/selinux/config

在这里插入图片描述

[Setp4]: 重新开启执行控制模式状态,然后查看/tmp/cat文件的执行控制标记

setstatus kysec -f exectl -c on -t
kysec_get exectl -f /tmp/cat

在这里插入图片描述

[Setp5]: 修改/tmp/cat文件的执行控制标记为kysoft,然后使用/tmp/cat查看任意文件内容

kysec_set exectl -v kysoft -f /tmp/cat
  • -v kysoft:标记值,此处设置为kysoft
  • -f /tmp/cat:文件或目录路径, 设置文件或目录下文件的标记
kysec_get exectl -f /tmp/cat
/tmp/cat /etc/selinux/config

在这里插入图片描述

[Setp6]: 同时,如果修改文件内容后,改文件的执行控制标记会变更为unkonow

kysec_get exectl -f /tmp/cat
echo "" >> /tmp/cat		# 修改文件内容
kysec_get exectl -f /tmp/cat

在这里插入图片描述

3. 可执行文件的可执行控制

[Setp1]: 首先查看kysec的安全状态,可以看到当前执行控制模式为on

getstatus

在这里插入图片描述

[Setp2]: 新建一个脚本,赋予该脚本执行权限

touch demo.sh
chmod +x demo.sh		# 赋予该脚本执行权限,此处给所属者添加执行权限
vim demo.sh# 写入下列内容
#!/bin/bash
echo "Hello!"

[Setp3]: 测试执行脚本,提示【解释器错误:权限不够】
在这里插入图片描述

[Setp4]: 修改执行控制标记为kysoft,并尝试重新执行脚本文件

kysec_set exectl -v kysoft -f demo.sh
kysec_get exectl -f demo.sh

在这里插入图片描述

4. 内核模块的可执行控制

[Setp1]: 首先将内核文件拷贝至当前目录

cp /lib/modules/4.19.90-89.11.v2401.ky10.x86_64/kernel/net/netfilter/nf_conntrack_ftp.ko.xz .

[Setp2]: 将模块载入到内核中,此时会提示资源不可用

insmod nf_conntrack_ftp.ko.xz

在这里插入图片描述

[Setp3]: 修改执行控制标记为original,并尝试重新载入模块,此时不会报错

kysec_set exectl -v original -f nf_conntrack_ftp.ko.xz
kysec_get exectl -f nf_conntrack_ftp.ko.xz

在这里插入图片描述

5. 文件保护(受保护的文件不能被修改、重命名和删除)

[Setp1]: 本地新建一个文件,设置文件保护标记为只读

echo Hello > demo.txt
kysec_set fpro -v readonly -f demo.txt

在这里插入图片描述

[Setp2]: 测试发现,可以正常读取该文件,但是无法修改文件

在这里插入图片描述

[Setp3]: 修改文件保护标记为verify,移动该文件到/tmp目录下,可以发现无法读取该文件

kysec_set fpro -v verify -f demo.txt
mv demo.txt /tmp/

六、三权分立

主要的设计思想是将传统意义上的超级管理员root的权利进行划分,分为root(uid=0)、secadm(uid=600)和auditadm(uid=700)分别作为超级管理员的别名存在。通过SELinux+admin3+kysec技术实现基于角色的访问控制机制。三权系统除了使用传统的Linux用户身份鉴定机制外,还可以使用双因子验证方式进行身份验证,符合公安部的安全操作系统的相关标准。不同权限管理员之间实现权限隔离,满足等保“权限最小化原则”,提升系统抗风险能力。

在这里插入图片描述

[Step1]: 开启三权分立功能,在启用三权分立时,需要为三个用户设置密码

security-switch --set strict

在这里插入图片描述

[Step2]: 在重启过后,会出现两个新的用户

在这里插入图片描述

[Step3]: 使用auditadm用户(审计管理员)登录,在对磁盘进行操作时,会提示权限不够
在这里插入图片描述

[Step4]: 使用secadm用户(安全管理员)登录,新建用户时,会提示权限不够

在这里插入图片描述

[Step5]: 禁用三权分立

security-switch --set default

七、关闭KYSEC

[Step1]: 编辑引导配置文件,将与kysec有关的东西全部删掉

vim /etc/default/grub# 修改后内容如下图

在这里插入图片描述

[Step2]: 先查看当前的硬盘编号,然后重新安装引导配置文件到硬盘中

lsblk
grub2-install /dev/sda

在这里插入图片描述

[Step3]: 重新生成引导配置文件

grub2-mkconfig -o /boot/grub2/grub.cfg

在这里插入图片描述

[Step4]: 重启服务器,可以看到kysec已经被关闭
在这里插入图片描述

相关文章:

KylinSP3 | 防火墙和麒麟安全增强设置KySec

一、系统防火墙原理 麒麟操作系统从V10版本开始&#xff0c;默认使用了Firewalld防火墙&#xff0c;Firewalld是能提供动态管理的防火墙&#xff0c;支持网络/防火墙区域&#xff0c;用于定义网络连接或接口的信任级别。支持IPv4和IPv6防火墙设置、以太网桥接和IP集。将运行时…...

【C++】面试常问八股

5、内存管理 野指针 野指针指的是未进行初始化或未清零的指针&#xff0c;不是NULL指针野指针产生原因及解决方案&#xff1a; 指针变量未初始化&#xff1a;指针变量定义时若未初始化&#xff0c;则其指向的地址是随机的&#xff0c;不为NULL&#xff1b;定义时初始化为NULL…...

vscode多文件编译构建(CMake)和调试C++

目录 1. CMake 基础构建工具及作用相关配置文件 2. 配置 tasks.json关键字段详细解释 3. 配置 launch.json关键字段详细解释 4. 配置 CMakeLists.txt关键部分详细解释 5. 构建和调试项目1. 仅构建项目1.1 任务执行顺序1.2 cmake 任务执行详情1.3 build 任务执行详情1.4 构建后的…...

使用Docker 部署 LNMP+Redis 环境

使用Docker 部署 LNMPRedis 环境 Docker 简介 Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互…...

文件上传漏洞学习笔记

一、漏洞概述 定义 文件上传漏洞指未对用户上传的文件进行充分安全校验&#xff0c;导致攻击者可上传恶意文件&#xff08;如Webshell、木马&#xff09;&#xff0c;进而控制服务器或执行任意代码。 危害等级 ⚠️ 高危漏洞&#xff08;通常CVSS评分7.0&#xff09;&#xff…...

375_C++_cloud手机推送,添加人脸告警信息到任务队列中,UploadAlarmPush是典型的工厂模式应用,为什么使用工厂模式完成这部分代码

一:AlarmFaceInfo的应用 让我帮你解析这个lambda表达式的实现: // ...................... .h ...........................// struct RsMsgPushTask_S : public Task{AlarmType_E mainAlarmType;unsigned int subAlarmType;DateTime alarmTime...

Spring Boot 中的日志管理

一、日志框架选择 1. 主流框架对比 框架特点Spring Boot 默认支持Logback- 性能优异&#xff0c;Spring Boot 默认集成- 支持自动热更新配置文件✅ (默认)Log4j2- 异步日志性能更强- 支持插件扩展- 防范漏洞能力更好❌ (需手动配置)JUL (JDK自带)- 无需额外依赖- 功能简单&am…...

火绒终端安全管理系统V2.0网络防御功能介绍

火绒终端安全管理系统V2.0 【火绒企业版V2.0】网络防御功能包含网络入侵拦截、横向渗透防护、对外攻击检测、僵尸网络防护、Web服务保护、暴破攻击防护、远程登录防护、恶意网址拦截。火绒企业版V2.0的网络防御功能&#xff0c;多层次、多方位&#xff0c;守护用户终端安全。 …...

海康摄像头 + M7s(Monibuca) + FFmpeg + Python实现多个网络摄像头视频流推流

最近在研究流媒体服务器时&#xff0c;我注意到了一款开源软件——M7s。按照官网的指南部署完成后&#xff0c;我开始进行测试&#xff0c;发现单视频流推送非常顺利&#xff0c;没有任何问题。然而&#xff0c;当我尝试进行多视频流推送时&#xff0c;却发现网上的相关教程寥寥…...

抖音视频如何下载保存去水印

随着短视频平台的兴起&#xff0c;抖音作为国内最受欢迎的短视频平台之一&#xff0c;吸引了大量用户上传和观看各种创意视频。许多用户在浏览抖音视频时&#xff0c;往往会想要保存一些有趣或精彩的视频片段&#xff0c;但抖音视频通常会有水印&#xff0c;影响观看体验。为了…...

【鸿蒙开发】第三十九章 LazyForEach:数据懒加载

目录 1 背景 2 使用限制 键值生成规则 组件创建规则 首次渲染 非首次渲染 改变数据子属性 使用状态管理V2 拖拽排序 1 背景 LazyForEach从提供的数据源中按需迭代数据&#xff0c;并在每次迭代过程中创建相应的组件。当在滚动容器中使用了LazyForEach&#xff0c;框架…...

HTTP-

一.HTTP 1.什么是HTTP HTTP(超文本传输协议)是一种工作在应用层的协议.主要用于网站,就是浏览器和服务器之间的数据传输. 小知识:什么是超文本传输协议 文本:是字符串.(能在utf8/gbk码表上找到合法字符) 超文本:不仅可以传输字符串,也可以传输图片,html等 富文本:word文档 2.HT…...

创建型模式 - 原型模式 (Prototype Pattern)

创建型模式 -原型模式 (Prototype Pattern) 它允许通过复制现有对象来创建新对象&#xff0c;而无需知道对象的具体创建细节。在 Java 中&#xff0c;可以通过实现 Cloneable 接口和重写 clone() 方法来实现原型模式。 有深、浅两种克隆 类实现 Cloneable 接口就可以深克隆如果…...

Android 8.0 (API 26) 对广播机制做了哪些变化

大部分隐式广播无法通过静态注册接收&#xff0c;除了以下白名单广播&#xff1a; ACTION_BOOT_COMPLETED ACTION_TIMEZONE_CHANGED ACTION_LOCALE_CHANGED ACTION_MY_PACKAGE_REPLACED ACTION_PACKAGE_ADDED ACTION_PACKAGE_REMOVED 需要以动态注册方案替换&#xff1a; cl…...

Unity汽车笔记

汽车的移动和转向 我们知道&#xff0c;汽车的前进后退是变速运动。按w&#xff0c;汽车开始加速&#xff0c;到最大速度后保持匀速&#xff0c;松开w&#xff0c;汽车受到阻力加速。如果按s减速&#xff0c;则以更大的加速度减速。后退反之。 按A/D时前轮偏转。只有前进后退…...

html中rel、href、src、url的区别

1.url url&#xff08;统一资源定位符&#xff09;&#xff1a;是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示&#xff0c;是互联网上标准资源的地址。 2.href href&#xff1a;Hypertext Reference的缩写。 意思是超文本引用。 3.rel rel&#xff1a;relatio…...

【idea问题排查技巧】

以下是针对 IDEA 中 日志打标(动态标记) 和 全链路追踪 功能的分步详解,结合具体场景和操作截图说明,帮助快速掌握实战技巧。 一、动态日志打标:不修改代码输出关键信息 1. 断点日志打印(非侵入式打标) 场景:在调试时,需要临时查看某个变量的值,但不想修改代码添加…...

SQL: DDL,DML,DCL,DTL,TCL,

Structured Query Language&#xff0c;结构化查询语言, 是一种用于管理和操作关系数据库的标准编程语言。 sql的分类 DQL&#xff08;Data Query Language&#xff09;&#xff1a;数据查询语言 DDL&#xff08;Data Definition Language&#xff09;&#xff1a;数据定义语…...

WordPress R+L Carrier Edition sql注入漏洞复现(CVE-2024-13481)(附脚本)

免责申明: 本文所描述的漏洞及其复现步骤仅供网络安全研究与教育目的使用。任何人不得将本文提供的信息用于非法目的或未经授权的系统测试。作者不对任何由于使用本文信息而导致的直接或间接损害承担责任。如涉及侵权,请及时与我们联系,我们将尽快处理并删除相关内容。 0x0…...

DeepSeek基础之机器学习

文章目录 一、核心概念总结&#xff08;一&#xff09;机器学习基本定义&#xff08;二&#xff09;基本术语&#xff08;三&#xff09;假设空间&#xff08;四&#xff09;归纳偏好&#xff08;五&#xff09;“没有免费的午餐”定理&#xff08;NFL 定理&#xff09; 二、重…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

Spring AI与Spring Modulith核心技术解析

Spring AI核心架构解析 Spring AI&#xff08;https://spring.io/projects/spring-ai&#xff09;作为Spring生态中的AI集成框架&#xff0c;其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似&#xff0c;但特别为多语…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载&#xff0c;仅供自学使用&#xff0c;侵权必究&#xff0c;如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

淘宝扭蛋机小程序系统开发:打造互动性强的购物平台

淘宝扭蛋机小程序系统的开发&#xff0c;旨在打造一个互动性强的购物平台&#xff0c;让用户在购物的同时&#xff0c;能够享受到更多的乐趣和惊喜。 淘宝扭蛋机小程序系统拥有丰富的互动功能。用户可以通过虚拟摇杆操作扭蛋机&#xff0c;实现旋转、抽拉等动作&#xff0c;增…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合

作者&#xff1a;来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布&#xff0c;Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明&#xff0c;Elastic 作为 …...

VisualXML全新升级 | 新增数据库编辑功能

VisualXML是一个功能强大的网络总线设计工具&#xff0c;专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑&#xff08;如DBC、LDF、ARXML、HEX等&#xff09;&#xff0c;并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...