概述:

随着互联网的发展,网络的普及,网络用户也在日益增长。无论普通用户,还是企业,或其他行业,网络也就日显其重要性。为了保障网络用户的权益性,这就得应用到网络设备的安全技术。常见的设备安全技术包括acl访问控制列表、aaa认证、dot1x网络接入控制协议、mac地址认证、arp地址绑定、am端口隔离。下面就分别对几种安全技术展开叙述。

 安全技术(一):acl访问控制列表

ACL简介:

ACL(Access Control List,访问控制列表)主要用来实现流识别功能。网络设备为了过滤数据包,需要配置一系列的匹配规则,以识别需要过滤的报文。在识别出特定的报文之后,才能根据预先设定的策略允许或禁止相应的数据包通过。

ACL通过一系列的匹配条件对数据包进行分类,这些条件可以是数据包的源地址、目的地址、端口号等。

由ACL定义的数据包匹配规则,可以被其它需要对流量进行区分的功能引用,如QoS中流分类规则的定义。

根据应用目的,可将ACL分为下面几种:

1.基本ACL:只根据三层源IP地址制定规则。
2.高级ACL:根据数据包的源IP地址信息、目的IP地址信息、IP承载的协议类型、协议特性等三、四层信息制定规则。
3.二层ACL:根据源MAC地址、目的MAC地址、VLAN优先级、二层协议类型等二层信息制定规则。

ACL 匹配顺序:

一条 ACL 中可以包含多个规则,而每个规则都指定不同的报文范围。这样,在匹配报文时就会出现匹配顺序的问题。
ACL 支持两种匹配顺序:
(1)配置顺序:根据用户配置规则的先后顺序进行规则匹配。
(2)自动排序:根据“深度优先”的顺序进行规则匹配。
1. 基本ACL 的“深度优先”顺序判断原则
(1) 先比较源IP 地址范围,源IP 地址范围小(反掩码中“0”位的数量多)的规则优先;
(2) 如果源IP 地址范围相同,则比较是否带有fragment 参数,带有fragment 参数的规则优先;
(3) 如果源IP 地址范围、是否带有fragment 参数这两个判断条件也相同,则先配置的规则优先。
2. 高级ACL 的“深度优先”顺序判断原则
(1) 首先比较协议范围,指定了IP 协议承载的协议类型的规则优先;
(2) 如果协议范围相同,则比较源IP 地址范围,源IP 地址范围小(反掩码中“0”位的数量多)的规则优先;

(3) 如果协议范围、源IP 地址范围相同,则比较目的IP 地址范围,目的IP 地址范围小(反掩码中“0”位的数量多)的规则优先;
(4) 如果协议范围、源IP 地址范围、目的IP 地址范围相同,则比较四层端口号(TCP/UDP 端口号)范围,四层端口号范围小的规则优先;
(5) 如果协议范围、源IP 地址范围、目的IP 地址范围、四层端口号范围相同,则比较规则中参数的个数,参数个数多的规则优先。

如果规则A 与规则B 的协议范围、源IP 地址范围、目的IP 地址范围、四层端口号范围完全相同,并且其它的参数个数也相同,将按照加权规则进行排序。设备为每个参数设定一个固定的权值,最终的匹配顺序由各个参数的权值和参数的取值来决定。各个参数自身的权值从大到小排列为icmp-type、established、dscp、tos、precedence、fragment。比较规则如下:
1.设备以一个固定权值依次减去规则中所配置的各个参数自身的权值,所得结果小的规则优先;
2.如果各个规则中参数种类完全相同,则这些参数取值的累加和小的规则优先。
ACL 在交换机上的应用方式:

1. ACL 直接下发到硬件的情况:
ACL 可以直接下发到交换机的硬件,用于数据转发过程中的报文过滤和流分类。此时一条ACL中多个规则的匹配顺序是由交换机的硬件决定的,对于S3100 系列以太网交换机,匹配顺序为先下发的规则先匹配。(ACL 直接下发到硬件的情况包括:通过ACL 过滤转发数据、配置QoS 功能时引用ACL 等。)

2. ACL 被上层软件引用的情况:
ACL 也可以用来对由软件处理的报文进行过滤和流分类。此时ACL 规则的匹配顺序有两种:
config:按用户配置的先后顺序。
auto:按“深度优先”的顺序。
用户可以在定义ACL 的时候指定一条ACL 中多个规则的匹配顺序。用户一旦指定某一条ACL 的匹配顺序,就不能再更改该顺序。只有把该ACL 中所有的规则全部删除后,才能重新指定其匹配顺序。(ACL 被上层软件引用的情况包括:路由策略引用ACL、对Telnet、SNMP 和WEB 登录用户进行控制时引用ACL 等。)

说明:

当 ACL 直接下发到硬件对报文进行过滤时,如果报文没有与ACL 中的规则匹配,此时设备对此类报文采取的动作为permit,即允许报文通过。

当 ACL 被上层软件引用,对Telnet、SNMP 和WEB 登录用户进行控制时,如果报文没有与ACL 中的规则匹配,此时设备对此类报文采取的动作为deny,即拒绝报文过。

ACL 配置:

配置时间段:

用户可以根据时间段对报文进行控制。ACL 中的每条规则都可以选择一个时间段。如果规则引用的时间段未配置,则系统给出提示信息,并允许这样的规则创建成功。但是规则不能立即生效,直到用户配置了引用的时间段,并且系统时间在指定时间段范围内才能生效。

对时间段的配置有如下两种情况:

配置周期时间段:采用每个星期固定时间段的形式,例如从星期一至星期五的8:00 至18:00。
配置绝对时间段:采用从某年某月某日某时某分起至某年某月某日某时某分结束的形式,例如从2000 年1 月28 日15:00 起至2004 年1 月28 日15:00 结束。

需要注意的是:

如果一个时间段只定义了周期时间段,则只有系统时钟在该周期时间段内,该时间段才进入激活状态。如果一个时间段下定义了多个周期时间段,则这些周期时间段之间是“或”的关系。

如果一个时间段只定义了绝对时间段,则只有系统时钟在该绝对时间段内,该时间段才进入激活状态。如果一个时间段下定义了多个绝对时间段,则这些绝对时间段之间是“或”的关系。

如果一个时间段同时定义了绝对时间段和周期时间段,则只有同时满足绝对时间段和周期时间段的定义时,该时间段才进入激活状态。例如,一个时间段定义了绝对时间段:从2004年1 月1 日0 点0 分到2004 年12 月31 日23 点59 分,同时定义了周期时间段:每周三的12:00 到14:00。该时间段只有在2004 年内每周三的12:00 到14:00 才进入激活状态。
配置绝对时间段时,如果不配置开始日期,时间段就是从1970/1/1 00:00 起到配置的结束日期为止。如果不配置结束日期,时间段就是从配置的开始日期起2100/12/31 23:59 为止。

配置举例:

# 配置周期时间段,时间范围为周一到周五每天8:00 到18:00。
<Sysname> system-view
[Sysname] time-range test 8:00 to 18:00 working-day
[Sysname] display time-range test
Current time is 13:27:32 Apr/16/2005 Saturday
Time-range : test ( Inactive )
08:00 to 18:00 working-day

# 配置绝对时间段,时间范围为2006 年1 月28 日15:00 起至2008 年1 月28 日15:00 结束。
<Sysname> system-view
[Sysname] time-range test from 15:00 1/28/2006 to 15:00 1/28/2008
[Sysname] display time-range test
Current time is 13:30:32 Apr/16/2005 Saturday
Time-range : test ( Inactive )
From 15:00 Jan/28/2006 to 15:00 Jan/28/2008

定义基本ACL:

基本ACL 只根据源IP 地址制定规则,对数据包进行相应的分析处理。
基本 ACL 的序号取值范围为2000~2999。

配置过程:

image

需要注意的是:

1.当基本ACL 的匹配顺序为config 时,用户可以修改该ACL 中的任何一条已经存在的规则,在修改ACL 中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态;当基本ACL的匹配顺序为auto 时,用户不能修改该ACL 中的任何一条已经存在的规则,否则系统会提示错误信息。
2.在创建一条ACL 规则的时候,用户可以不指定规则的编号,设备将自动为这个规则分配一个编号:如果此ACL 中没有规则,编号为0;如果此ACL 中已有规则,编号为现有规则的最大编号+1;如果此ACL 中现有规则的最大编号为65534,则系统会提示错误信息,此时用户必须指定规则的编号才能创建成功。
3.新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。
4.当基本ACL 的匹配顺序为auto 时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。
配置举例:
# 配置基本ACL 2000,禁止源IP 地址为192.168.0.1 的报文通过。
<Sysname> system-view
[Sysname] acl number 2000
[Sysname-acl-basic-2000] rule deny source 192.168.0.1 0
# 显示基本ACL 2000 的配置信息。
[Sysname-acl-basic-2000] display acl 2000
Basic ACL 2000, 1 rule
Acl's step is 1
rule 0 deny source 192.168.0.1 0

定义高级ACL:

高级ACL 可以使用数据包的源IP 地址、目的IP 地址、IP 承载的协议类型、针对协议的特性(例如TCP 或UDP 的源端口、目的端口,ICMP 协议的消息类型、消息码等)内容定义规则。高级 ACL 序号取值范围3000~3999(3998 与3999 是系统为集群管理预留的编号,用户无法配置)。
高级 ACL 支持对三种报文优先级的分析处理:ToS(Type of Service,服务类型)优先级、IP优先级和DSCP(Differentiated Services CodePoint,差分服务编码点)优先级。用户可以利用高级ACL 定义比基本ACL 更准确、更丰富、更灵活的规则。

配置过程:

image

需要注意的是:

1.当高级ACL 的匹配顺序为config 时,用户可以修改该ACL 中的任何一条已经存在的规则,在修改ACL 中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态;当高级ACL的匹配顺序为auto 时,用户不能修改该ACL 中的任何一条已经存在的规则,否则系统会提示错误信息。
2.在创建一条ACL 规则的时候,用户可以不指定规则的编号,设备将自动为这个规则分配一个编号:如果此ACL 中没有规则,编号为0;如果此ACL 中已有规则,编号为现有规则的最大编号+1;如果此ACL 中现有规则的最大编号为65534,则系统会提示错误信息,此时用户必须指定规则的编号才能创建成功。
3.新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。
4.当高级ACL 的匹配顺序为auto 时,新创建的规则将按照“深度优先”的原则插入到已有的规则中,但是所有规则对应的编号不会改变。
配置举例:
# 配置高级ACL 3000,允许从129.9.0.0/16 网段的主机向202.38.160.0/24 网段的主机发送的端口号为80 的TCP 报文通过。
<Sysname> system-view
[Sysname] acl number 3000
[Sysname-acl-adv-3000] rule permit tcp source 129.9.0.0 0.0.255.255 destination
202.38.160.0 0.0.0.255 destination-port eq 80
# 显示高级ACL 3000 的配置信息。

 

[Sysname-acl-adv-3000] display acl 3000
Advanced ACL 3000, 1 rule
Acl's step is 1
rule 0 permit tcp source 129.9.0.0 0.0.255.255 destination 202.38.160.0 0.0.0.255
destination-port eq www

定义二层ACL:

二层ACL 根据源MAC 地址、目的MAC 地址、802.1p 优先级、二层协议类型等二层信息制定规则,对数据进行相应处理。
二层 ACL 的序号取值范围为4000~4999。

配置过程:

image

需要注意的是:

1.用户可以修改二层ACL 中的任何一条已经存在的规则,在修改ACL 中的某条规则时,该规则中没有修改到的部分仍旧保持原来的状态。
2.在创建一条ACL 规则的时候,用户可以不指定规则的编号,设备将自动为这个规则分配一个编号:如果此ACL 中没有规则,编号为0;如果此ACL 中已有规则,编号为现有规则的最大编号+1;如果此ACL 中现有规则的最大编号为65534,则系统会提示错误信息,此时用户必须指定规则的编号才能创建成功。
3.新创建或修改后的规则不能和已经存在的规则相同,否则会导致创建或修改不成功,系统会提示该规则已经存在。
配置举例:
# 配置二层ACL 4000,禁止从MAC 地址000d-88f5-97ed 发送到MAC 地址0011-4301-991e
且802.1p 优先级为3 的报文通过。

<Sysname> system-view
[Sysname] acl number 4000
[Sysname-acl-ethernetframe-4000] rule deny cos 3 source 000d-88f5-97ed ffff-ffff-ffff
dest 0011-4301-991e ffff-ffff-ffff
# 显示二层ACL 4000 的配置信息。
[Sysname-acl-ethernetframe-4000] display acl 4000
Ethernet frame ACL 4000, 1 rule
Acl's step is 1
rule 0 deny cos excellent-effort source 000d-88f5-97ed ffff-ffff-ffff dest
0011-4301-991e ffff-ffff-ffff

应用实例:

组网需求(一):

PC 1、PC 2 和PC 3 分别通过端口Ethernet 1/0/1、Ethernet 1/0/2 和Ethernet 1/0/3 接入交换机。其中端口Ethernet 1/0/1、Ethernet 1/0/2 和Ethernet 1/0/3 属于端口组1,数据库服务器的IP 地址为192.168.1.2。要求配置高级ACL 3000,禁止端口组1 内的PC 在工作日8:00~18:00 的时间段内访问数据库服务器。

组网图:

image

配置步骤:

# 定义周期时间段test,时间范围为工作日的8:00~18:00。
<Sysname> system-view
[Sysname] time-range test 8:00 to 18:00 working-day
# 定义高级ACL 3000,配置目的IP 地址为数据库服务器的访问规则。
[Sysname] acl number 3000
[Sysname-acl-adv-3000] rule 1 deny ip destination 192.168.1.2 0 time-range test
[Sysname-acl-adv-3000] quit
# 创建端口组1,将端口Ethernet 1/0/1、Ethernet 1/0/2 和Ethernet 1/0/3 加入到端口组1 中。
[Sysname] port-group 1
[Sysname-port-group-1] port Ethernet 1/0/1 to Ethernet 1/0/3
# 在端口组1 上应用ACL 3000。
[Sysname-port-group-1] packet-filter inbound ip-group 3000

 

组网需求(二):

如图7-1 所示,三个本地网用户通过路由器Router 访问Internet。限制网段1.1.1.0 的用户的接入速率为10Mbit/s,网段1.1.2.0 的用户的接入速率为5Mbit/s,网段1.1.3.0 的用户的接入速率为2Mbit/s,并分别标记不同的DSCP 值。

image

配置步骤:

配置路由器Router:
# 定义ACL 规则,配置类,定义基于ACL 的流分类规则。
<Router> system view
[Router] acl number 10001

[Router-acl-simple-10001] rule ip source 1.1.1.0 0.0.0.255
[Router-acl-simple-10001] quit
[Router] acl number 10002
[Router-acl-simple-10002] rule ip source 1.1.2.0 0.0.0.255
[Router-acl-simple-10002] quit
[Router] acl number 10003
[Router-acl-simple-10003] rule ip source 1.1.3.0 0.0.0.255
[Router-acl-simple-10003] quit
[Router] traffic classifier a
[Router-classifier-a] if-match acl 10001
[Router-classifier-a] quit
[Router] traffic classifier b
[Router-classifier-b] if-match acl 10002
[Router-classifier-b] quit
[Router] traffic classifier c
[Router-classifier-c] if-match acl 10003
[Router-classifier-c] quit

# 定义行为,并重新设置DSCP:

[Router] traffic behavior e
[Router-behavior-e] car cir 10000 cbs 150000
[Router-behavior-e] remark dscp 40
[Router-behavior-e] quit
[Router] traffic behavior f
[Router-behavior-f] car cir 5000 cbs 100000
[Router-behavior-f] remark dscp 26
[Router-behavior-f] quit
[Router] traffic behavior g
[Router-behavior-g] car cir 2000 cbs 100000
[Router-behavior-g] remark dscp 0
[Router-behavior-g] quit

# 定义策略,将类与行为关联:

[Router] traffic policy 1
[Router-trafficpolicy-1] classifier a behavior e
[Router-trafficpolicy-1] quit
[Router] traffic policy 2
[Router-trafficpolicy-2] classifier b behavior f
[Router-trafficpolicy-2] quit
[Router] traffic policy 3
[Router-trafficpolicy-3] classifier c behavior g

[Router-trafficpolicy-3] quit
# 将策略应用到接口上:
[Router] interface ethernet 1/0/0
[Router-Ethernet1/0/0] traffic-policy 1 inbound
[Router] interface ethernet 1/0/1
[Router-Ethernet1/0/1] traffic-policy 2 inbound
[Router] interface ethernet 1/0/2
[Router-Ethernet1/0/2] traffic-policy 3 inbound

# 启用流量策略:
[Router] commit traffic policy

 

安全技术(二):am端口隔离

端口隔离简介:

通过端口隔离特性,用户可以将需要进行控制的端口加入到一个隔离组中,实现隔离组中的端口之间二层数据的隔离,既增强了网络的安全性,也为用户提供了灵活的组网方案。

目前一台设备只支持建立一个隔离组,组内的以太网端口数量不限。

说明:

端口隔离特性与以太网端口所属的VLAN无关。

端口隔离与端口聚合的关系

当聚合组中的某个端口加入到隔离组后,同一聚合组内的其它端口,均会自动加入隔离组中。

配置端口隔离

通过以下配置步骤,用户可以将以太网端口加入到隔离组中,实现组内端口之间二层数据的隔离。

image

端口隔离配置显示:

在完成上述配置后,在任意视图下执行display命令,可以显示已经加入到隔离组中的以太网端口信息。

显示已经加入到隔离组中的以太网端口信息

display isolate port

端口隔离配置举例

组网需求:

小区用户PC2、PC3、PC4分别与交换机的以太网端口Ethernet1/0/2、Ethernet1/0/3、Ethernet1/0/4相连,交换机通过Ethernet1/0/1端口与外部网络相连,

小区用户PC2、PC3和PC4之间不能互通。

组网图

image

配置步骤:

# 将以太网端口Ethernet1/0/2、Ethernet1/0/3、Ethernet1/0/4加入隔离组。

<H3C> system-view

System View: return to User View with Ctrl+Z.

[H3C] interface ethernet1/0/2

[H3C-Ethernet1/0/2] port isolate

[H3C-Ethernet1/0/2] quit

[H3C] interface ethernet1/0/3

[H3C-Ethernet1/0/3] port isolate

[H3C-Ethernet1/0/3] quit

[H3C] interface ethernet1/0/4

[H3C-Ethernet1/0/4] port isolate

[H3C-Ethernet1/0/4] quit