Iptables加固服务器安全

文章目录

  • Iptables加固服务器安全
  • 一、信息安全概述系统方面
  • 二、信息安全概述网络方面
    • 1、网络防火墙
    • 2、上网安全行为
    • 3、入侵检测
    • 4、传输安全VPN 虚拟专用网
  • 三、信息安全概述Linux防火墙的建议
  • 四、Iptables主机型防火墙概述
    • 1、概述:
    • 2、Iptabiles工作在TCP/IP2、3、4层模型
    • 3、Iptables防火墙缺点
  • 五、Iptables的table&Chain&police(四表五链一堆策略)
    • 1、四个表
    • 2、五个链
    • 3、一堆策略
    • 4、Iptables数据包过滤架构图和表链关系结构图
    • 5、表链关系
    • 6、表的应用顺序
    • 7、链之间的顺序
    • 8、规则的应用顺序
  • 六、Iptables主机型防火墙规则语法
  • 七、Iptables主机型防火墙配置规则示例:(宽进严格出,没有明确的允许皆为拒绝)
    • 1、添加和删除禁止自己被ping的规则
    • 2、第一行添加
    • 3、第二行添加
    • 4、A最后一行添加
    • 5、以数字形式显示端口、每行显示行号产看规则
    • 6、通过行号删除规则
    • 7、清空规则
    • 8、修改默认规则
  • 八、Iptables主机型防火墙规则进阶(条件匹配)
    • 1、通用匹配(协议、ip地址、网络接口可以独立使用)
    • 2、隐含匹配--sport/--dport(源地址端口和目的地址端口),需要协议的前提
    • 3、显示匹配(通过调用模块:lsmod | grep xt_ 来加载内核扩展模块,如端口匹配,IP范围,MAC地址,状态等特殊匹配)
    • 4、新的Web服务器的iptables规则示例
  • 九、Iptables网络型防火墙SNAT(源地址网络地址转换)技术
    • 1、配置IP,将同一网段打通。注意配置网关地址
    • 2、启动CENTOS7B的路由转发功能,后测试内外网互通。成功
    • 3、删除CENTOS7C的网关,模拟私有IP没有路由的情况。尝试通信失败
    • 4、建立SNAT。通信成功
  • 十、Iptables网络型防火墙MASQUERADE(地址伪装)技术
  • 十一、Iptables网络型防火墙DNAT(目标地址转换)技术
  • 十二、Iptables网络型防火墙PNAT(端口映射)技术

一、信息安全概述系统方面

系统安全策略:SSH端口修改、SUDO、禁止ROOT登录
文件指纹:数据安全(加密认证)
Selinux:系统对内的防护,自身程序用于自身文件的访问(文件指纹),修改删除监控
Linux软件防火墙:系统对外的防护
  前身:ipfwadm,ipchains
  centos6:iptables(服务器自身和网络通信流量控制)
  centos7:firewall

二、信息安全概述网络方面

1、网络防火墙

应用安全防火墙
  WAF => Web Application Firewall ,可以用来屏蔽常见的网站漏洞攻击,如SQL注入,XML注入、XSS等。一般针对的是应用层而非网络层的入侵,从技术角度应该称之为Web IPS。其防护重点是SQL注入。
网络防火墙(UTM)
  思科ASA5550、华为USG6650、启明星辰 天清汉马 USG-2000C
  UTM安全设备的定义是指一体化安全设备,它具备的基本功能包括网络防火墙、网络入侵检测/防御和网关防病毒功能,但这几项功能并不一定要同时得到使用,不过它们应该是UTM设备自身固有的功能。
防毒墙
  垃圾邮件病毒邮件过滤、国信冠群Yorton-2000应用安全网关 、趋势科技

2、上网安全行为

网康NI3200-50

3、入侵检测

IDS,IPS(网络扫描,网络嗅探)
绿盟,华为,天融信,启明星辰

4、传输安全VPN 虚拟专用网

三、信息安全概述Linux防火墙的建议

关闭Linux自身防火墙。(解决安全问题尽量不给服务器配置外网IP.需要访问的话,就使用代理转发。)因为高并发,iptables会加大延迟。除非并发小,服务器必须处于公网。考虑开启防火墙。

四、Iptables主机型防火墙概述

1、概述:

linux提供了大量的网络服务,FTP,WEB,EMAIL.DB等,保护互联网应用访问。通过linux防火墙,防火墙有:netfilter和iptables可以有效控制进出服务器的流量和流经服务器的流量。今天主要掌握墙的结构,匹配流程和编写规则。
  netfilter:内核态,即不以文件和形式存在(kernal space)的防火墙。
  iptables:用户态,在/sbin/iptables存在(User space)的防火。操作上二者没有区分

2、Iptabiles工作在TCP/IP2、3、4层模型

linux-iptables主机型防火墙工作在2,3,4层,对TCP/IP数据包进行过滤和限制。属于包过滤型防火墙(无法过滤病毒)。(除非编译内核才可以使iptables支持7层)

3、Iptables防火墙缺点

(1)防火墙虽然可以过滤互联网的数据包,但却无法过滤内部网络的数据包。因此若有人从内部网络攻击时,防火墙没有作用。
(2)电脑本身的操作系统亦可能因一些系统漏洞,使入侵者可以利用这些漏洞绕过防火墙过滤,从而入侵电脑。
(3)防火墙无法有效阻挡病毒攻击,尤其是隐藏在数据中的病毒。
(4)正常状况下,所有互联网的数据包软件都应经过防火墙的过滤,这将造成网络交通的瓶颈。例如在攻击性数据包出现时,攻击者会不时寄出数据包,让防火墙疲于过滤数据包,而使一些合法数据包软件亦无法正常进出防火墙。
 PS:没有绝对安全的操作系统,虽然防火墙有这些缺点,但还是能阻挡大多数来自于外网的攻击!

五、Iptables的table&Chain&police(四表五链一堆策略)

1、四个表

filter过滤/nat装换/mangle碾压/raw生的
  主要是filter和nat
  表像安防小队

2、五个链

PREROUTING预路由
  POSTROUTING已路由
  INPUT入站
  OUTPUT出站
  FORWARD转发
  主要是INPUT、OUTPUT、POSTROUTING
  链像安防小队中的安防员

3、一堆策略

Iptables的防火墙规则

4、Iptables数据包过滤架构图和表链关系结构图


5、表链关系

filter表
  INPUT:访问本机的数据包进行过滤
  FORWARD:途径本机的数据包进行过过滤
  OUTPUT:本机访问互联网的数据包进行过滤
  总结:根据规则来处理数据包,如转或者丢。就是实现主机型防火墙的主要表。内核模块 iptable_filter
nat
  PREROUTING:修改目的地址
  POSTTOUTING:修改源地址
  OUTPUT:主要是控制内部
  总结:转换地址的表(改IP,改端口。当网关使用的linux。保护内外网流量。内核模块叫iptable_nat)
mangle
  PREROUTING,POSTROUTING,INPUIT,OUTPUT,FORWARD
  流量整形的表。路由标记用的表。改TOS,TTL,Mark标记策略路由等,内核模块iptables_mangle
raw:PREROUTING,OUTPUT,新表,数据包跟踪 iptables_raw

6、表的应用顺序

raw → mangle → nat → filter

7、链之间的顺序

入站
  比如访问自身的web服务流量。先PREROUTING(是否改地址),再INPUT(是否允许)到达程序。
  转发
  经过linux网关的流量。先PREROUTING(是否改地址),然后路由。转发给FORWARD(转发或者丢弃),最后经过POSTROUTING(看看改不改地址。如NAT)
  出站
  源自linux自身的流量。先OUTPUT,然后路由。再给POSTROUTING(是否改IP)。

8、规则的应用顺序

ACL(访问控制列表)逐条匹配,匹配即停止。(除了LOG规则)

六、Iptables主机型防火墙规则语法

iptables -t 表名 管理选项 [链名] [匹配条件] [-j 控制类型]
表名:filter(默认)、nat、mangle、raw
管理选项:
  添加新的规则
  -I:在链的开头(或指定序号)插入一条规则
  -A:在链的末尾追加一条规则
  查看规则列表
  -L:列出所有的规则条目
  -n:以数字形式显示地址、端口等信息
  -v:以更详细的方式显示规则信息
  --line-numbers:查看规则时,显示规则的序号(方便之处,通过需要删除规则-D INPUT 1
  删除、清空规则
  -D:删除链内指定序号(或内容)的一条规则
  -F:清空所有的规则(-X是清理自定义的链,用的少;-Z清零规则序号)(-F -X -Z连用,删除干净)
  设置默认策略
  -P:为指定的链设置默认规则
链名:PREROUTING、POSTROUTING、INPUIT、OUTPUT、ORWARD
匹配条件:数据包特征ip,端口等
控制类型:数据包处理方式,ACCEPT允许、REJECT拒绝、DROP丢弃、LOG日志(log不适用匹配即停止,记录后下一条)等

七、Iptables主机型防火墙配置规则示例:(宽进严格出,没有明确的允许皆为拒绝)

链名和控制类型名要用大写,默认的规则优先级最低
同一个表中的同一个链的配置规则中
优先级高的规则放行之后,后面的拒绝规则无效
优先级高的规则拒绝之后,后面的放行规则无效

1、添加和删除禁止自己被ping的规则

[root@iptables ~]# iptables -t filter -I INPUT -p icmp -j REJECT
[root@iptables ~]# iptables -t filter -D INPUT -p icmp -j REJECT

2、第一行添加

[root@iptables ~]# iptables -t filter -I INPUT -p udp -j ACCEPT

3、第二行添加

[root@iptables ~]# iptables -t filter -I INPUT 2 -p icmp -j ACCEPT

4、A最后一行添加

[root@iptables ~]# iptables -t filter -A INPUT -p tcp -j ACCEPT

5、以数字形式显示端口、每行显示行号产看规则

[root@iptables ~]# iptables -L -n --line-number

6、通过行号删除规则

[root@iptables ~]# iptables -D INPUT 3

7、清空规则

[root@iptables ~]# iptables -F
[root@iptables ~]# iptables -X
[root@iptables ~]# iptables -Z

8、修改默认规则

[root@iptables ~]# iptables -t filter -P INPUT DROP
[root@iptables ~]# iptables -t filter -P INPUT ACCEPT

八、Iptables主机型防火墙规则进阶(条件匹配)

1、通用匹配(协议、ip地址、网络接口可以独立使用)

协议,不让别人ping自己
[root@iptables ~]# iptables -t filter -I INPUT -p icmp -j DROP
禁止10.11.67.85的主机ping自己(-s)
[root@iptables ~]# iptables -t filter -I INPUT -p icmp -s 10.11.67.85 -j REJECT
禁止10.11.67.0/24的网段ping自己
[root@iptables ~]# iptables -t filter -I INPUT -p icmp -s 10.11.67.0/24 -j REJECT
禁止物理接口eth0的数据包(-i)
[root@iptables ~]# iptables -t filter -I INPUT -i eth0 -j REJECT

2、隐含匹配–sport/–dport(源地址端口和目的地址端口),需要协议的前提

先设置默认拒绝所有,然后放行个别端口
[root@iptables ~]# iptables -t filter -P INPUT DROP
或者先设置默认允许所有,然后拒绝个别端口
[root@iptables ~]# iptables -t filter -P INPUT ACCEPT
端口匹配:允许个别端口,如网站端口,网站访问放行(–dport 80)
[root@iptables ~]# iptables -t filter -I INPUT -s 10.11.67.85 -p tcp --dport 80 -j ACCEPT
端口匹配:10:21表示端口范围,放行FTP(–dport 20:21)
[root@iptables ~]# iptables -t filter -I INPUT -p tcp --dport 20:21 -j ACCEPT
[root@iptables ~]# iptables -t filter -I INPUT -p tcp --dport 24500:24600 -j ACCEPT
标记位匹配(TCP连接类型SYN,ACK,RST)(–tcp-flags)
[root@iptables ~]# iptables -t filter -I INPUT -p tcp --tcp-flags SYN,RST,ACK SYN -j DROP
ICMP类型匹配(请求8,回应0)(–icmp-type)
自己可以ping别人反过来不可以(input进口禁掉8)
[root@iptables ~]# iptables -t filter -A INPUT -p icmp --icmp-type 8 -j DROP
自己不能ping别人了。别人可以ping自己。。
[root@iptables ~]# iptables -t filter -A INPUT -p icmp --icmp-type 0 -j DROP
拒绝任何ping请求
[root@iptables ~]# iptables -t filter -I INPUT -p icmp -j DROP

3、显示匹配(通过调用模块:lsmod | grep xt_ 来加载内核扩展模块,如端口匹配,IP范围,MAC地址,状态等特殊匹配)

多端口匹配,一次放行多个端口(-m multiport --sports -m multiport --dports)
[root@iptables ~]# iptables -t filter -I INPUT -p tcp -m multiport --dport 18,21,20 -j DROP
IP地址范围匹配,自定义ip地址范围(-m iprange --src-range)
[root@iptables ~]# iptables -t filter -I INPUT -p tcp -m iprange --src-range 10.11.67.2-10.11.67.89 -j ACCEPT
MAC地址匹配,放行一个MAC地址(-m mac --mac-source)
[root@iptables ~]# iptables -t filter -A INPUT -p tcp -m mac --mac-source 00:0c:29:43:38:28 -j ACCEPT
TCP状态匹配,根据iptables跟踪链接状态,来定义链接的3个状态new新,established相应,related已有(-m state --state)
[root@iptables ~]# iptables -t filter -I INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT

4、新的Web服务器的iptables规则示例

IPT="/usr/sbin/iptables"
$IPT --delete-chain
$IPT --flush
$IPT -P INPUT DROP #1
$IPT -P FORWARD DROP#1
$IPT -P OUTPUT DROP #1
$IPT -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #2
$IPT -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT #3
$IPT -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT #3
$IPT -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT#3
$IPT -A INPUT -p tcp -m tcp --dport 873 -j ACCEPT #3
$IPT -A INPUT -i lo -j ACCEPT #4
$IPT -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT#5
$IPT -A INPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT #5
$IPT -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT #6
$IPT -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT #7
$IPT -A OUTPUT -o lo -j ACCEPT #4
$IPT -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT #8
$IPT -A OUTPUT -p tcp -m tcp --dport 25 -j ACCEPT #9
$IPT -A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT#10
$IPT -A OUTPUT -p icmp -m icmp --icmp-type 11 -j ACCEPT #10
service iptables save
service iptables restart
存为脚本iptables. sh,执行sh iptables. sh自动配置防火墙。
解释:
#1、设置INPUT,FORWARD,OUTPUT链默认target为DROP,也就是外部与服务器不能通信。
#2、设置当连接状态为RELATED和ESTABLISHED时,允许数据进入服务器。
#3、设置外部客户端连接服务器端口80,22,21,873。
#4、允许内部数据循回。
#5、允许外部ping服务器。
#6、设置状态为RELATED和ESTABLISHED的数据可以从服务器发送到外部。
#7、允许服务器使用外部dns解析域名。
#8、设置服务器连接外部服务器端口80。
#9、允许服务器发送邮件。
#10、允许从服务器ping外部。
iptables保存:iptables-save
iptables还原:iptables-restore

九、Iptables网络型防火墙SNAT(源地址网络地址转换)技术

filter表主要做服务器流量控制。控制别人访问服务器的。
nat表主要做网关路由器的。网络地址转换。SNAT和DNAT
前言:
  internet访问,在没有NAT(network address translation)时,外部服务器对内部的私有地址是无法进行路由的。做了SNAT就可以转换地址,进行路由通信。(注意:您的网卡名称不是ens32;注意:您的虚拟网络名称不是VMNET1)
环境:
  CENTOS7A:内网客户机:192.168.100.10 ens32 VMnet1 GATEWAY:192.168.100.20
  CENTOS7B:网关内网 :192.168.100.20 ens32 VMnet1 GATEWAY:无
  CENTOS7B:网关外网 :192.168.200.10 ens33 VMnet2 GATEWAY:无
  CENTOS7C:WEB服务器:192.168.200.20 ens32 VMnet2 GATEWAY:192.168.200.10 (WEB 服务器)
原理:

1、配置IP,将同一网段打通。注意配置网关地址

配置网关,就可以进行不同网段的打通
  谁带我上网,谁就是我的网关

2、启动CENTOS7B的路由转发功能,后测试内外网互通。成功

echo “net.ipv4.ip_forward = 1” >>/usr/lib/sysctl.d/50-default.conf (重启一下,永久开启)
  sysctl -a | grep ip_forward
  echo 1 > /proc/sys/net/ipv4/ip_forward(临时开启)

3、删除CENTOS7C的网关,模拟私有IP没有路由的情况。尝试通信失败

4、建立SNAT。通信成功

iptables -FXZL(清空一下,分开执行)
  iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j SNAT --to-source 192.168.200.10
  Linux-CentOS7做路由器的Iptables加上这个规则
  参数
  -t nat NAT表
  -A POSTROUTING 追加,已路由链
  -s 192.168.100.0/24 源地址
  -o ens33 接口33,出方向
  -j SNAT 动作:源地址转换
  --to-source 192.168.200.10 源地址转成 200.10
  通过CENTOS7Cweb主机的访问日志,可以看出来访者。
  less /var/log/httpd/access_log

十、Iptables网络型防火墙MASQUERADE(地址伪装)技术

MASQUERADE —— 地址伪装
  地址伪装:适用于外网IP地址非固定的情况
  因为:对于ADSL拨号连接,接口通常为 ppp0、ppp1
  所以:将SNAT规则改为MASQUERADE即可,使动态地址作为SNAT的目标地址。效果同前一个实验
  iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j MASQUERADE
  参数 -t nat  -A POSTROUTING -s 92.168.100.0/24 -o ens33  -j MASQUERADE

十一、Iptables网络型防火墙DNAT(目标地址转换)技术

发布内网服务器,DNAT转换目标地址
  ①先部署内网服务器。100.10部署成web/ssh
  ②在网关配置DNAT,外网访问内网测试成功。
  iptables -t nat -A PREROUTING -i ens33 -d 192.168.200.10 -p tcp --dport 80 -j DNAT --to-destination 192.168.100.10
  参数
  -t nat
  -A PREROUTING
  -i ens33
  -d 192.168.200.10
  -p tcp --dport 80  
  -j DNAT
  --to-destination 192.168.100.10

十二、Iptables网络型防火墙PNAT(端口映射)技术

DAT端口转换(映射)。安全性更高,比如内网服务器的SSH程序的22号端口。发布时SSH使用2345端口。
  演示配置端口映射
  iptables -t nat -A PREROUTING -i ens33 -d 192.168.200.10 -p tcp --dport 2345 -j DNAT --to-destination 192.168.100.10:22
  参数
  -t nat NAT表
  -A PREROUTING 预路由链
  -i ens33 接口33 ,入方向
  -d 192.168.200.10 目的地址 200.10
  -p tcp --dport 2346 协议,端口2346
  -j DNAT  目标地址转换
  --to-destination 192.168.100.10:22 转成目标地址100.10
  那么外网访问的时候,就要访问改过的外网地址和端口了。
  ssh -p 2345 192.168.200.10

Iptables#Iptables加固服务器安全相关推荐

  1. 服务器安全之iptables iptables

    服务器安全之iptables 感谢老男孩老师为我们讲解iptables  优化之路 iptables防火墙简介 Netfilter/Iptables(以下简称Iptables)是unix/linux自 ...

  2. 多服务器虚拟化 map_兆芯双路刀片加固服务器简介

    一.需求 服务器作为信息处理.存储.传输的基础装备,随着武器装备国产化要求越来越高,对军用服务器软硬件装备型谱的发展提出了明确的规划和指标要求. 二.兆芯刀片加固服务器 为适应舰艇信息系统基础设施建设 ...

  3. 专业服务器加固系统价格,实惠的加固服务器哪家靠谱

    嵌入式加固计算机外壳一般采用铝型材制造,很坚固,散热性能也很好,可以安置在设备内.车载.桌面等,对抗震.防尘.防水.宽温等要求严格的环境,如下是B+F嵌入式加固计算机技术规格.从上个世纪90年代至今, ...

  4. linux 防火墙加固,Iptables 加固服务器安全

    防火墙在做信息滤决定时,有一套遵循和组成的规则,这些规则存储在专用的信息滤表中,而这些表集成在Linux内核中.在信息滤表中,规则被分组放在我们所谓的链(Chain)中.Iptables组件是一种工具 ...

  5. CentOS 6.9使用iptables搭建网关服务器(转)

    条件: 网关服务器IP:172.16.0.1,并且可以连接到外网 客户端IP:172.16.0.0/24 1.开启转发支持forward /etc/sysctl.conf net.ipv4.ip_fo ...

  6. iptables —— Iptables防火墙规则使用梳理

    iptables是组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤.封包重定向和网络地址转换(NAT)等功能 ...

  7. 【加固服务器】修改默认ssh端口

    前言 作为一名对Web安全感兴趣的人,怎么能没有一台自己的服务器呢?最好还是购买国外的服务器.最近一段时间,发现我的服务器特别卡,于是我想找一下原因(内心想应该是被DDOS),就用SSH登录上了服务器 ...

  8. android 加固服务器,Python 脚本构建Android APK 自动加固、打渠道包并上传服务器

    Python 脚本构建Android APK 自动加固.打渠道包并上传服务器 常规流程 打出原始apk 使用乐固工具加固并打出响应渠道包 将生成的渠道包上传对应服务器,生成推广链接 因为每一步都需要人 ...

  9. android 加固服务器,服务器加固工具

    1.高危服务项扫描 检测到有高危服务未禁用,如果服务器环境不需要此服务,建议将其彻底禁止: 禁用方法: 1)开始--控制面板--管理工具,打开服务管理器,找到对应的服务: 2)双击打开属性,点击停止服 ...

  10. Iptables防火墙详细介绍与实战增强服务器安全

    Iptables防火墙详细介绍与实战增强服务器安全 一:Iptables的概述及应用 iptables概述: netfilter/iptables : IP信息包过滤系统,它实际上由两个组件netfi ...

最新文章

  1. ASP.NET Core 1.0 使用 MySQL for EF Core 1.0 (.NET Core 1.0)
  2. java Web 文件上传
  3. MongoDB Driver:使用正确的姿势连接复制集
  4. 2015.5.28 面试题1:赋值运算符函数
  5. SAP Spartacus 4.0 ng serve 之后,localhost 4200 会后面自动添上 electronics-spa 吗?
  6. 精通 Oracle+Python,第 4 部分:事务和大型对象
  7. 数组求最大公约数c语言,C语言辗转相除法求2个数的最小公约数
  8. python tuple
  9. python安装库pandas_安装python的第三方库 geopandas
  10. Activity去Title的几种方式
  11. 从后台获取的数据渲染到页面中的dom操作
  12. MVC5 + EF6 + Bootstrap3 (13) 查看详情、编辑数据、删除数据
  13. html字体加粗且变色,简单的html代码 加粗 加亮 字型加大 变色 分别是写什么`
  14. [每日一氵]Latex 的通讯作者怎么搞
  15. 拉普拉斯变换的性质 - 对查表
  16. 常见的一些代码编辑器
  17. 10 个快速提升技术水平的方法
  18. 微信小程序开通流量主,流量主收入却是个坑
  19. 0 嵌入式-ARM简介
  20. 基于GPT硬盘模式重装win10操作系统

热门文章

  1. 课题研究——HTML
  2. 计算机————你是准备拿高薪?还是准备做廉价劳动力?
  3. 常用机器学习算法优缺点分析
  4. 每日java笔试五小题-2020-9-18
  5. 【增强版】《Java面试笔试题全面含答案中篇》涉及java/数据库/框架/系统/设计模式相关-中篇
  6. HPE公司“The Machine”项目深度剖析
  7. Python里最神秘的一个魔法函数!
  8. PostgreSQL 9.5 BRIN 索引
  9. vue中this.$set()的用法----更新数组和对象的值
  10. bfs广度优先搜索matlab,【BFS】广度优先搜索,在归简法中的应用