百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Linux防火墙——iptables实战操作

ahcoder 2025-02-21 12:00 15 浏览

一、iptables字段详解

iptables原理以及参数介绍可以参考我上篇文章:Linux防火墙——iptables原理介绍

$ iptables -vL INPUT
  • pkts:对应规则匹配到的报文的个数。
  • bytes:对应匹配到的报文包的大小总和。
  • target:规则对应的target,往往表示规则对应的"动作",即规则匹配成功后需要采取的措施。
  • prot:表示规则对应的协议,是否只针对某些协议应用此规则。
  • opt:表示规则对应的选项。
  • in:表示数据包由哪个接口(网卡)流入,我们可以设置通过哪块网卡流入的报文需要匹配当前规则。
  • out:表示数据包由哪个接口(网卡)流出,我们可以设置通过哪块网卡流出的报文需要匹配当前规则。
  • source:表示规则对应的源头地址,可以是一个IP,也可以是一个网段。
  • destination:表示规则对应的目标地址。可以是一个IP,也可以是一个网段。
$ iptables --line-number -nvL
  • policy:表示当前链的默认策略
  • packets:表示当前链(上例为INPUT链)默认策略匹配到的包的数量,0 packets表示默认策略匹配到0个包。
  • bytes:表示当前链默认策略匹配到的所有包的大小总和。

【温馨提示】其实,我们可以把packets与bytes称作"计数器",上图中的计数器记录了默认策略匹配到的报文数量与总大小,"计数器"只会在使用-v选项时,才会显示出来。

二、iptables常用命令

1)【查】看iptables规则

1、查看所有规则

【查】看对应表的所有规则,-t选项指定要操作的表,省略"-t 表名"时,默认表示操作filter表,-L表示列出规则,即查看规则,格式如下:

iptables -t 表名 -L

2、查看指定表的指定链中的规则

iptables -t 表名 -L 链名

3、查看指定表的所有规则,并且显示更详细的信息(-v 更多字段)

查看指定表的所有规则,并且显示更详细的信息(更多字段),-v表示verbose,表示详细的,冗长的,当使用-v选项时,会显示出"计数器"的信息,由于上例中使用的选项都是短选项,所以一般简写为iptables -t 表名 -vL

iptables -t 表名 -v -L

计数器中的信息显示为精确的计数值,而不是显示为经过可读优化的计数值,-x选项表示显示计数器的精确值。

iptables -t 表名 -v -x -L

4、表示查看表的所有规则(-n 不解析IP地址)

表示查看表的所有规则,并且在显示规则时,不对规则中的IP或者端口进行名称反解,-n选项表示不解析IP地址。

iptables -t 表名 -n -L

5、表示查看表的所有规则,并且显示规则的序号(--line-numbers)

表示查看表的所有规则,并且显示规则的序号,--line-numbers选项表示显示规则的序号,注意,此选项为长选项,不能与其他短选项合并,不过此选项可以简写为--line,注意,简写后仍然是两条横杠,仍然是长选项。

iptables --line-numbers -t 表名 -L

6、只查看某张表中的某条链(-t 表)

iptables --line -t filter -nvxL INPUT

2)【增】加iptables规则

【温馨提示】添加规则时,规则的顺序非常重要。

1、指定表的指定链的尾部添加一条规则(-A)

【温馨提示】省略-t选项时,表示默认操作filter表中的规则

命令语法:iptables -t 表名 -A 链名 匹配条件 -j 动作
【示例】
iptables -t filter -A INPUT -s 192.168.1.146 -j DROP

2、指定表的指定链的首部添加一条规则(-I)

命令语法:iptables -t 表名 -I 链名 匹配条件 -j 动作
【示例】
iptables -t filter -I INPUT -s 192.168.1.146 -j ACCEPT

3、在指定表的指定链的指定位置添加一条规则

命令语法:iptables -t 表名 -I 链名 规则序号 匹配条件 -j 动作
【示例】
iptables -t filter -I INPUT 5 -s 192.168.1.146 -j REJECT

4、指定表的指定链的默认策略(默认动作),并非添加规则

命令语法:iptables -t 表名 -P 链名 动作
【示例】
iptables -t filter -P FORWARD ACCEPT

【温馨提示】上例表示将filter表中FORWARD链的默认策略设置为ACCEPT

3)【删】除iptables规则

【温馨提示】注意点:如果没有保存规则,删除规则时请慎重。

1、按照规则序号删除规则

按照规则序号删除规则,删除指定表的指定链的指定规则,【-D】选项表示删除对应链中的规则。

命令语法:iptables -t 表名 -D 链名 规则序号
【示例】
iptables -t filter -D INPUT 3

上述示例表示删除filter表中INPUT链中序号为3的规则。

2、按照具体的匹配条件与动作删除规则,删除指定表的指定链的指定规则

命令语法:iptables -t 表名 -D 链名 匹配条件 -j 动作
【示例】
iptables -t filter -D INPUT -s 192.168.1.146 -j DROP

上述示例表示删除filter表中INPUT链中源地址为192.168.1.146并且动作为DROP的规则。

3、删除指定表的指定链中的所有规则(-F)

【-F】选项表示清空对应链中的规则,执行时需三思。

命令语法:iptables -t 表名 -F 链名
【示例】
iptables -t filter -F INPUT

4、删除指定表中的所有规则

命令语法:iptables -t 表名 -F
【示例】
iptables -t filter -F

4)修【改】iptables规则

【温馨提示】如果使用-R选项修改规则中的动作,那么必须指明原规则中的原匹配条件,例如源IP,目标IP等。

1、修改指定表中指定链的指定规则(-R)

修改指定表中指定链的指定规则,-R选项表示修改对应链中的规则,使用-R选项时要同时指定对应的链以及规则对应的序号,并且规则中原本的匹配条件不可省略

命令语法:iptables -t 表名 -R 链名 规则序号 规则原本的匹配条件 -j 动作
【示例】
iptables -t filter -R INPUT 3 -s 192.168.1.146 -j ACCEPT

上述示例表示修改filter表中INPUT链的第3条规则,将这条规则的动作修改为ACCEPT, -s 192.168.1.146为这条规则中原本的匹配条件,如果省略此匹配条件,修改后的规则中的源地址可能会变为0.0.0.0/0。

其他修改规则的方法:先通过编号删除规则,再在原编号位置添加一条规则。

2、修改指定表的指定链的默认策略(默认动作)

命令语法:iptables -t 表名 -P 链名 动作
【示例】
iptables -t filter -P FORWARD ACCEPT

5)保存iptables规则

保存规则命令如下,表示将iptables规则保存至/etc/sysconfig/iptables文件中,如果对应的操作没有保存,那么当重启iptables服务以后就不存在了。

service iptables save
# 或者使用如下方法保存规则
iptables-save > /etc/sysconfig/iptables
# 可以使用如下命令从指定的文件载入规则,注意:重载规则时,文件中的规则将会覆盖现有规则。
iptables-restore < /etc/sysconfig/iptables

【温馨提示】centos7中使用默认使用firewalld,后面会讲,如果想要使用上述命令保存规则,需要安装iptables-services,具体配置过程请回顾上文。

6)基本匹配条件

1、用于匹配报文的源地址(-s)

-s用于匹配报文的源地址,可以同时指定多个源地址,每个IP之间用逗号隔开,也可以指定为一个网段。示例如下:

iptables -t filter -I INPUT -s 192.168.1.111,192.168.1.118 -j DROP
iptables -t filter -I INPUT -s 192.168.1.0/24 -j ACCEPT
iptables -t filter -I INPUT ! -s 192.168.1.0/24 -j ACCEPT

2、用于匹配报文的目标地址(-d)

-d用于匹配报文的目标地址,可以同时指定多个目标地址,每个IP之间用逗号隔开,也可以指定为一个网段。示例如下:

iptables -t filter -I OUTPUT -d 192.168.1.111,192.168.1.118 -j DROP
iptables -t filter -I INPUT -d 192.168.1.0/24 -j ACCEPT
iptables -t filter -I INPUT ! -d 192.168.1.0/24 -j ACCEPT

3、用于匹配报文的协议类型(-p)

-p用于匹配报文的协议类型,可以匹配的协议类型tcp、udp、udplite、icmp、esp、ah、sctp等(centos7中还支持icmpv6、mh)。示例如下:

iptables -t filter -I INPUT -p tcp -s 192.168.1.146 -j ACCEPT
iptables -t filter -I INPUT ! -p udp -s 192.168.1.146 -j ACCEPT

4、用于匹配报文是从哪个网卡接口流入本机的(-i)

-i用于匹配报文是从哪个网卡接口流入本机的,由于匹配条件只是用于匹配报文流入的网卡,所以在OUTPUT链与POSTROUTING链中不能使用此选项。

iptables -t filter -I INPUT -p icmp -i eth4 -j DROP
iptables -t filter -I INPUT -p icmp ! -i eth4 -j DROP

5、用于匹配报文将要从哪个网卡接口流出本机(-o)

-o用于匹配报文将要从哪个网卡接口流出本机,于匹配条件只是用于匹配报文流出的网卡,所以在INPUT链PREROUTING链不能使用此选项

7)扩展匹配条件

  • 不是基本匹配条件的就是扩展匹配条件
  • 基本匹配条件我们可以直接使用,而如果想要使用扩展匹配条件,则需要依赖一些扩展模块,或者说,在使用扩展匹配条件之前,需要指定相应的扩展模块才行
  • 想要使用--dport这个扩展匹配条件,则必须依靠某个扩展模块完成,如果在没有使用-m指定对应的扩展模块名称的情况下,使用了扩展匹配条件, iptables默认会调用与-p选项对应的协议名称相同的模块。

【温馨提示】-p tcp-m tcp并不冲突,-p用于匹配报文的协议,-m 用于指定扩展模块的名称,正好,这个扩展模块也叫tcp;如果协议和模块相同,则可以省略-m选项iptables默认会调用与-p选项对应的协议名称相同的模块

1、tcp扩展模块

常用的扩展匹配条件如下:

  • -p tcp -m tcp --sport 用于匹配tcp协议报文的源端口,可以使用冒号指定一个连续的端口范围
  • -p tcp -m tcp --dport 用于匹配tcp协议报文的目标端口,可以使用冒号指定一个连续的端口范围
  • -p tcp -m tcp --tcp-flags "--tcp-flags"指的就是tcp头中的标志位
  • -p tcp -m tcp --syn 可以使用"--syn"选项去匹配tcp新建连接的请求报文

用于匹配报文的tcp头的标志位,示例如下:


iptables -t filter -I OUTPUT -d 192.168.1.146 -p tcp -m tcp --sport 22 -j REJECT

iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport 22:25 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport :22 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m tcp --dport 80: -j REJECT

iptables -t filter -I INPUT -p tcp -m tcp --dport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH SYN -j REJECT
iptables -t filter -I OUTPUT -p tcp -m tcp --sport 22 --tcp-flags SYN,ACK,FIN,RST,URG,PSH SYN,ACK -j REJECT
iptables -t filter -I INPUT -p tcp -m tcp --dport 22 --tcp-flags ALL SYN -j REJECT
iptables -t filter -I OUTPUT -p tcp -m tcp --sport 22 --tcp-flags ALL SYN,ACK -j REJECT

iptables -t filter -I INPUT -p tcp -m tcp --dport 22 --syn -j REJECT

2、multiport扩展模块

常用的扩展匹配条件如下:

  • -p tcp -m multiport --sports 用于匹配报文的源端口,可以指定离散的多个端口号,端口之间用"逗号"隔开
  • -p udp -m multiport --dports 用于匹配报文的目标端口,可以指定离散的多个端口号,端口之间用"逗号"隔开

示例如下:

iptables -t filter -I OUTPUT -d 192.168.1.146 -p udp -m multiport --sports 137,138 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport --dports 22,80 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport ! --dports 22,80 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport --dports 80:88 -j REJECT
iptables -t filter -I INPUT -s 192.168.1.146 -p tcp -m multiport --dports 22,80:88 -j REJECT

3、iprange模块

包含的扩展匹配条件如下:

  • --src-range:指定连续的源地址范围
  • --dst-range:指定连续的目标地址范围

示例如下:

iptables -t filter -I INPUT -m iprange --src-range 192.168.1.127-192.168.1.146 -j DROP
iptables -t filter -I OUTPUT -m iprange --dst-range 192.168.1.127-192.168.1.146 -j DROP
iptables -t filter -I INPUT -m iprange ! --src-range 192.168.1.127-192.168.1.146 -j DROP

4、string模块

常用扩展匹配条件如下:

  • --algo:指定对应的匹配算法,可用算法为bm、kmp,此选项为必需选项。
  • --string:指定需要匹配的字符串

示例如下:

iptables -t filter -I INPUT -p tcp --sport 80 -m string --algo bm --string "OOXX" -j REJECT
iptables -t filter -I INPUT -p tcp --sport 80 -m string --algo bm --string "OOXX" -j REJECT

5、time模块

常用扩展匹配条件如下:

  • --timestart:用于指定时间范围的开始时间,不可取反
  • --timestop:用于指定时间范围的结束时间,不可取反
  • --weekdays:用于指定"星期几",可取反
  • --monthdays:用于指定"几号",可取反
  • --datestart:用于指定日期范围的开始日期,不可取反
  • --datestop:用于指定日期范围的结束时间,不可取反

示例如下:

iptables -t filter -I OUTPUT -p tcp --dport 80 -m time --timestart 09:00:00 --timestop 19:00:00 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 443 -m time --timestart 09:00:00 --timestop 19:00:00 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --weekdays 6,7 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --monthdays 22,23 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80  -m time ! --monthdays 22,23 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --timestart 09:00:00 --timestop 18:00:00 --weekdays 6,7 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --weekdays 5 --monthdays 22,23,24,25,26,27,28 -j REJECT
iptables -t filter -I OUTPUT -p tcp --dport 80  -m time --datestart 2017-12-24 --datestop 2017-12-27 -j REJECT

6、connlimit 模块

常用的扩展匹配条件如下:

  • --connlimit-above:单独使用此选项时,表示限制每个IP的链接数量。
  • --connlimit-mask:此选项不能单独使用,在使用--connlimit-above选项时,配合此选项,则可以针对"某类IP段内的一定数量的IP"进行连接数量的限制,如果不明白可以参考上文的详细解释。

示例如下:

iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 2 -j REJECT
iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 20 --connlimit-mask 24 -j REJECT
iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 10 --connlimit-mask 27 -j REJECT

7、limit模块

常用的扩展匹配条件如下:

  • --limit-burst:类比"令牌桶"算法,此选项用于指定令牌桶中令牌的最大数量,上文中已经详细的描述了"令牌桶"的概念,方便回顾。
  • --limit:类比"令牌桶"算法,此选项用于指定令牌桶中生成新令牌的频率,可用时间单位有second、minute 、hour、day。

示例如下:

iptables -t filter -I INPUT -p icmp -m limit --limit-burst 3 --limit 10/minute -j ACCEPT
iptables -t filter -A INPUT -p icmp -j REJECT

8、udp模块

常用的扩展匹配条件

  • --sport:匹配udp报文的源地址
  • --dport:匹配udp报文的目标地址

示例如下:

iptables -t filter -I INPUT -p udp -m udp --dport 137 -j ACCEPT
iptables -t filter -I INPUT -p udp -m udp --dport 137:157 -j ACCEPT
#可以结合multiport模块指定多个离散的端口

9、icmp模块

常用的扩展匹配条件:
--icmp-type:匹配icmp报文的具体类型

示例如下:

iptables -t filter -I INPUT -p icmp -m icmp --icmp-type 8/0 -j REJECT
iptables -t filter -I INPUT -p icmp --icmp-type 8 -j REJECT
iptables -t filter -I OUTPUT -p icmp -m icmp --icmp-type 0/0 -j REJECT
iptables -t filter -I OUTPUT -p icmp --icmp-type 0 -j REJECT
iptables -t filter -I INPUT -p icmp --icmp-type "echo-request" -j REJECT

10、state模块

从字面上理解,state可以译为状态,但是我们也可以用一个高大上的词去解释它,state模块可以让iptables实现"连接追踪"机制。

【温馨提示】如下报文状态都是对于state模块来说的。

  • NEW:连接中的第一个包,状态就是NEW,我们可以理解为新连接的第一个包的状态为NEW。
  • ESTABLISHED:我们可以把NEW状态包后面的包的状态理解为ESTABLISHED,表示连接已建立。
  • RELATED:从字面上理解RELATED译为关系,但是这样仍然不容易理解,我们举个例子。

-INVALID:如果一个包没有办法被识别,或者这个包没有任何状态,那么这个包的状态就是INVALID,我们可以主动屏蔽状态为INVALID的报文。

  • UNTRACKED:报文的状态为untracked时,表示报文未被追踪,当报文的状态为Untracked时通常表示无法找到相关的连接。

示例如下:

# 在filter表中创建IN_WEB自定义链
iptables -t filter -I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

11、自定义链

【温馨提示】自定义链并不能直接使用,而是需要被默认链引用才能够使用,空口白话说不明白,等到示例时我们自然会明白。

1)创建自定义链
【示例】在filter表中创建IN_WEB自定义链

iptables -t filter -N IN_WEB

2)引用自定义链
【示例】在INPUT链中引用刚才创建的自定义链

iptables -t filter -I INPUT -p tcp --dport 80 -j IN_WEB

3)重命名自定义链
【示例】将IN_WEB自定义链重命名为WEB

iptables -E IN_WEB WEB

4)删除自定义链
删除自定义链需要满足两个条件:

  • 自定义链没有被引用
  • 自定义链中没有任何规则

【示例】删除引用计数为0并且不包含任何规则的WEB链

iptables -X WEB

三、网络防火墙

#如果想要iptables作为网络防火墙,iptables所在主机开启核心转发功能,以便能够转发报文。
#使用如下命令查看当前主机是否已经开启了核心转发,0表示为开启,1表示已开启
cat /proc/sys/net/ipv4/ip_forward
#使用如下两种方法均可临时开启核心转发,立即生效,但是重启网络配置后会失效。
方法一:echo 1 > /proc/sys/net/ipv4/ip_forward
方法二:sysctl -w net.ipv4.ip_forward=1
#使用如下方法开启核心转发功能,重启网络服务后永久生效。
配置/etc/sysctl.conf文件(centos7中配置/usr/lib/sysctl.d/00-system.conf文件),在配置文件中将 net.ipv4.ip_forward设置为1
 
#由于iptables此时的角色为"网络防火墙",所以需要在filter表中的FORWARD链中设置规则。
#可以使用"白名单机制",先添加一条默认拒绝的规则,然后再为需要放行的报文设置规则。
#配置规则时需要考虑"方向问题",针对请求报文与回应报文,考虑报文的源地址与目标地址,源端口与目标端口等。
#示例为允许网络内主机访问网络外主机的web服务与sshd服务。
iptables -A FORWARD -j REJECT
iptables -I FORWARD -s 10.1.0.0/16 -p tcp --dport 80 -j ACCEPT
iptables -I FORWARD -d 10.1.0.0/16 -p tcp --sport 80 -j ACCEPT
iptables -I FORWARD -s 10.1.0.0/16 -p tcp --dport 22 -j ACCEPT
iptables -I FORWARD -d 10.1.0.0/16 -p tcp --sport 22 -j ACCEPT
 
#可以使用state扩展模块,对上述规则进行优化,使用如下配置可以省略许多"回应报文放行规则"。
iptables -A FORWARD -j REJECT
iptables -I FORWARD -s 10.1.0.0/16 -p tcp --dport 80 -j ACCEPT
iptables -I FORWARD -s 10.1.0.0/16 -p tcp --dport 22 -j ACCEPT
iptables -I FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

一些注意点:

  • 当测试网络防火墙时,默认前提为网络已经正确配置。
  • 当测试网络防火墙时,如果出现问题,请先确定主机防火墙规则的配置没有问题。

相关推荐

PC也能装MAX OS X

MACBOOK向来以其时尚的外观以及易用的OSX操作系统成为了时(zhuang)尚(bi)人士的最爱。但是其动不动就上万元的昂贵价格,也将一批立志时(zhuang)尚(bi)人士的拒之门外。但是最近...

一千多元的笔记本能买吗?英特尔11代+大屏幕,豆小谷值得选吗?

前言:有很多粉丝都问过本人,一千多元到底能买到什么样的笔记本?在此笔者只想说,这样的资金预算真的太低了!如果想买全新的,那大概率买的就是性能比较拉垮的上网本,比如搭载英特赛扬N系列、J系列处理器的轻薄...

首款配备骁龙X Elite处理器的Linux笔记本:采用KDE Plasma桌面环境

德国Linux硬件供应商TUXEDOComputers宣布正在开发一款配备高通骁龙XElite处理器(SnapdragonXEliteSoC)的ARM笔记本电脑,内部将该...

System76推出Gazelle Linux笔记本:配酷睿i9-13900H处理器

IT之家3月30日消息,主打Linux硬件的厂商System76于今天发布了新一代Gazelle笔记本电脑,共有15英寸和17英寸两个版本,将于3月30日接受预订,...

Kubuntu Focus Xe Gen 2笔记本发布,预装Linux系统

IT之家3月25日消息,KubuntuFocusXeGen2笔记本于近日发布,这是一款预装Kubuntu22.04LTSGNU/Linux发行版的轻薄本。上一代Kub...

这台Linux笔记本已用上英特尔12代酷睿,最高可选i7-1255U、卖1149美元起

Linux笔记本可能因为比较小众,一般都是拿Windows笔记本换个系统而来,硬件上也会落后同期Windows笔记本一两代,不过现在专门做Linux电脑的System76,推出了一款名为LemurP...

戴尔Inspiron 14 Plus骁龙笔记本迎新补丁,支持启动Linux

IT之家4月25日消息,科技媒体phoronix今天(4月25日)发布博文,报道称最新发布的Linux内核补丁,针对骁龙芯片的戴尔Inspiron14Plus笔记本,让其...

TUXEDO推出InfinityFlex 14二合一Linux笔记本,配i5-1335U

IT之家8月12日消息,Linux硬件企业TUXEDO当地时间本月2日推出了InfinityFlex14二合一Linux笔记本。该笔记本搭载2+8核的英特尔酷睿i5-...

登月探测器嫦娥使用什么操作系统,是Linux还是其它自主研发?

这是不是国家机密啊。事实什么样的不知道,但是从美国的探测器来看,就算不是也是相似的东西。下面我来说说我知道的。龙芯已经随北斗卫星上天了.就算登月探测器嫦娥是用"龙芯+Linux"也不出奇.没必要...

DNS分离解析实验

如果本文对你有帮助,欢迎关注、点赞、收藏、转发给朋友,让我有持续创作的动力目录一、分离解析概述二、实验需求三、实验步骤3.1双网卡服务器配置3.1.1添加两张网卡(内外网)3.1.2对两个网卡进...

一个小实验巩固下进程管理

先回顾下之前的三篇文章:Linux进程在内核眼中是什么样子的?Linux进程线程是如何创建的?Linux是如何调度进程的?通过这三篇文章的学习我们知道,无论内核进程还是用户进程,都是可以用task...

VMware Kali无线WIFI密码破解

WIFI破解前准备工作一张支持Kali系统监听的无线网卡VMware虚拟机安装好Kali系统(本实验用的是Kali2022版本)Kali系统下载、安装官方网站:https://www.kali.or...

python多进程编程

forkwindows中是没有fork函数的,一开始直接在Windows中测试,直接报错importosimporttimeret=os.fork()ifret==0:...

拔电源十台电脑藏后门!德国实验惊曝Windows致命漏洞

2025年4月15日,央视突然曝出一个超级大新闻!原来美国国家安全局通过黑龙江,往微软Windows系统里发送加密信息,激活了系统里藏着的后门程序,想破坏哈尔滨亚冬会!这消息一出来,大家才发现,竟然已...

深度探索RK3568嵌入式教学平台实战案例:设备驱动开发实验

一、产品简介TL3568-PlusTEB人工智能实验箱国产高性能处理器64位4核低功耗2.0GHz超高主频1T超高算力NPU兼容鸿蒙等国产操作系统二、实验目的1、熟悉基本字符设备的驱动程序...