1.1.1 访问控制列表

为过滤数据包,需要配置一些规则,规定什么样的数据包可以通过,什么样的数据包不能通过。

一般采用访问控制列表来配置过滤规则,访问控制列表可分为标准访问控制列表和扩展访问控制列表。

1. 标准访问控制列表

acl acl-number [ match-order config | auto ]

rule { normal | special }{ permit | deny } [source source-addr source-wildcard | any ]

2. 扩展访问控制列表

acl acl-number [ match-order config | auto ]

rule { normal | special }{ permit | deny } pro-number [source source-addr source-wildcard | any ] [source-port operator port1 [ port2 ] ] [ destination dest-addr dest- wildcard | any ] [destination-port operator port1 [ port2 ] ] [icmp-type icmp-type icmp-code] [logging]

其中“protocol-number”用名字或数字表示的IP承载的协议类型。数字范围为0~255;名字取值范围为:icmp、igmp、ip、tcp、udp、gre、ospf。

对于“protocol”参数的不同,该命令又有以下形式:

(1) “ protocol”为ICMP时的命令格式如下:

rule { normal | special }{ permit | deny } icmp [source source-addr source-wildcard | any ] [ destination dest-addr dest- wildcard | any ] [icmp-type icmp-type icmp-code] [logging]

(2) “ protocol”为IGMP、IP、GRE、OSPF时的命令格式如下:

rule { normal | special }{ permit | deny } { ip | ospf | igmp | gre } [source source-addr source-wildcard | any ] [ destination dest-addr dest- wildcard | any ] [logging]

(3) “ protocol”为TCP或UDP时的命令格式如下:

rule { normal | special }{ permit | deny } { tcp | udp } [source source-addr source-wildcard | any ] [source-port operator port1 [ port2 ] ] [ destination dest-addr dest- wildcard | any ] [destination-port operator port1 [ port2 ] ] [logging]

只有TCP和UDP协议需要指定端口范围,支持的操作符及其语法如下表:

表1-1 扩展访问列表的操作符operator的意义

操作符及语法

意义

图1-1 equal port-number

图1-2 等于端口号port-number

图1-3 greater-than port-number

图1-4 大于端口号port-number

图1-5 less-than port-number

图1-6 小于端口号port-number

图1-7 not-equal port-number

图1-8 不等于端口号port-number

图1-9 range port-number1 port-number2

图1-10 介于端口号port-number1 port-number2之间

在指定port-number时,对于部分常见的端口号,可用相应的助记符来代替其实际数字,端口号助记符如下表所示:

表1-2 端口号port-number的助记符

协议

助记符

意义及实际值

图1-11 TCP

图1-12 bgp

图1-13 chargen

图1-14 cmd

图1-15 daytime

图1-16 discard

图1-17 domain

图1-18 echo

图1-19 exec

图1-20 finger

图1-21 ftp

图1-22 ftp-data

图1-23 gopher

图1-24 hostname Irc

图1-25 chat

图1-26 klogin

图1-27 kshell

图1-28 login

图1-29 lpd

图1-30 nntp

图1-31 pop2

图1-32 pop3

图1-33 smtp

图1-34 sunrpc

图1-35 syslog

图1-36 tacacs

图1-37 talk

图1-38 telnet

图1-39 time

图1-40 uucp

图1-41 whois

图1-42 www

图1-43 Border Gateway Protocol (179)

图1-44 Character generator (19)

图1-45 Remote commands (rcmd, 514)

图1-46 Daytime (13)

图1-47 Discard (9)

图1-48 Domain Name Service (53)

图1-49 Echo (7)

图1-50 Exec (rsh, 512)

图1-51 Finger (79)

图1-52 File Transfer Protocol (21)

图1-53 FTP data connections (20)

图1-54 Gopher (70)

图1-55 NIC hostname server (101)

图1-56 Internet Relay Chat (194)

图1-57 Kerberos login (543)

图1-58 Kerberos shell (544)

图1-59 login (rlogin, 513)

图1-60 Printer service (515)

图1-61 Network News Transport Protocol (119)

图1-62 Post Office Protocol v2 (109)

图1-63 Post Office Protocol v3 (110)

图1-64 Simple Mail Transport Protocol (25)

图1-65 Sun Remote Procedure Call (111)

图1-66 Syslog (514)

图1-67 TAC Access Control System (49)

图1-68 Talk (517)

图1-69 Telnet (23)

图1-70 Time (37)

图1-71 Unix-to-Unix Copy Program (540)

图1-72 Nicname (43)

图1-73 World Wide Web (HTTP, 80)

图1-74 UDP

图1-75 biff

图1-76 bootpc

图1-77 bootps

图1-78 discard

图1-79 dns

图1-80 dnsix

图1-81 echo

图1-82 mobilip-ag

图1-83 mobilip-mn

图1-84 nameserver

图1-85 netbios-dgm

图1-86 netbios-ns

图1-87 netbios-ssn

图1-88 ntp

图1-89 rip

图1-90 snmp

图1-91 snmptrap

图1-92 sunrpc

图1-93 syslog

图1-94 tacacs-ds

图1-95 talk

图1-96 tftp

图1-97 time

图1-98 who

图1-99 xdmcp

图1-100 Mail notify (512)

图1-101 Bootstrap Protocol Client (68)

图1-102 Bootstrap Protocol Server (67)

图1-103 Discard (9)

图1-104 Domain Name Service (53)

图1-105 DNSIX Securit Attribute Token Map (90)

图1-106 Echo (7)

图1-107 MobileIP-Agent (434)

图1-108 MobilIP-MN (435)

图1-109 Host Name Server (42)

图1-110 NETBIOS Datagram Service (138)

图1-111 NETBIOS Name Service (137)

图1-112 NETBIOS Session Service (139)

图1-113 Network Time Protocol (123)

图1-114 Routing Information Protocol (520)

图1-115 SNMP (161)

图1-116 SNMPTRAP (162)

图1-117 SUN Remote Procedure Call (111)

图1-118 Syslog (514)

图1-119 TACACS-Database Service (65)

图1-120 Talk (517)

图1-121 Trivial File Transfer (69)

图1-122 Time (37)

图1-123 Who(513)

图1-124 X Display Manager Control Protocol (177)

对于ICMP协议,可指定ICMP报文类型,缺省为全部ICMP报文。指定ICMP报文类型时,可以用数字(0~255),也可以用助记符。

表1-3 ICMP报文类型的助记符

助记符

意义

图1-125 echo

图1-126 echo-reply

图1-127 fragmentneed-DFset

图1-128 host-redirect

图1-129 host-tos-redirect

图1-130 host-unreachable

图1-131 information-reply

图1-132 information-request

图1-133 net-redirect

图1-134 net-tos-redirect

图1-135 net-unreachable

图1-136 parameter-problem

图1-137 port-unreachable

图1-138 protocol-unreachable

图1-139 reassembly-timeout

图1-140 source-quench

图1-141 source-route-failed

图1-142 timestamp-reply

图1-143 timestamp-request

图1-144 ttl-exceeded

图1-145 Type=8, Code=0

图1-146 Type=0, Code=0

图1-147 Type=3, Code=4

图1-148 Type=5, Code=1

图1-149 Type=5, Code=3

图1-150 Type=3, Code=1

图1-151 Type=16,Code=0

图1-152 Type=15,Code=0

图1-153 Type=5, Code=0

图1-154 Type=5, Code=2

图1-155 Type=3, Code=0

图1-156 Type=12,Code=0

图1-157 Type=3, Code=3

图1-158 Type=3, Code=2

图1-159 Type=11,Code=1

图1-160 Type=4, Code=0

图1-161 Type=3, Code=5

图1-162 Type=14,Code=0

图1-163 Type=13,Code=0

图1-164 Type=11,Code=0

用户通过配置防火墙添加适当的访问规则,就可利用包过滤来对通过路由器的IP包进行检查,从而过滤掉用户不希望通过路由器的包,起到网络安全的作用。

3. 配置访问控制列表的匹配顺序

一条访问控制规则可由多条“permit/deny”语句组成,而每一条语句指定的数据包的范围大小有别,在匹配一个数据包和访问控制规则的时候就存在匹配顺序的问题。

一个acl-number下可配置的规则数最多为500条(即在普通时间段下可配500条,在特殊时间段下同样也可配500条),同时所有acl-number下的规则总数不得超过500条。在多个规则之间发生冲突时,系统匹配规则的顺序应遵循下列原则:

l 可定义多个具有同一个序号的规则,若同一序号的两条规则互相冲突,则根据“深度优先原则”对source-addrsource-wildcard-maskdestination-addrdestination-wildcard-mask、协议号、端口号进行判断来决定使用规则的先后顺序。

l 若规则定义的范围相同,则根据规则定义时间的先后顺序来决定使用规则的顺序。系统将优先选择先定义的规则。

“深度优先原则”是指:将最先匹配那些数据包定义范围最小的访问规则。可通过比较地址的通配符来实现,通配符越小,则指定的主机的范围就越小。比如129.102.1.1 0.0.0.0指定了一台主机(地址是129.102.1.1),而129.102.1.1 0.0.255.255则指定了一个网段(地址范围是129.102.1.1~129.102.255.255),显然前者在访问控制规则中排在前面。

具体标准为:

l 对于标准访问控制规则的语句,直接比较源地址通配符,通配符相同的则按配置顺序;

l 对于基于接口过滤的访问控制规则,配置了“any”的规则排在后面,其它按配置顺序;

l 对于扩展访问控制规则,首先比较源地址通配符,相同的再比较目的地址通配符,仍相同的则比较端口号的范围,范围小的排在前面,若端口号范围也相同则按用户的配置顺序来匹配规则。

使用display acl acl-number命令可查看系统访问规则的执行的先后次序,列在前面的规则将被优先选择。

1.2 防火墙的配置

防火墙的配置包括:

l 允许/禁止防火墙

l 配置标准访问控制列表

l 配置扩展访问控制列表

l 配置在接口上应用访问控制列表的规则

l 设置防火墙的缺省过滤方式

l 设置特殊时间段

l 指定日志主机

1.2.1 允许/禁止防火墙

在报文过滤时,应先打开防火墙功能,这样才能使其它配置生效。

请在系统视图下进行下列配置。

表1-4 允许/禁止防火墙

操作

命令

图1-165 启动防火墙

图1-166 firewall enable

图1-167 禁止防火墙

图1-168 firewall disable

缺省情况下,防火墙处于“启动”状态。

1.2.2 配置标准访问控制列表

标准访问控制列表序号可取值1~99之间的整数。首先应使用acl命令进入到ACL配置视图并配置访问控制列表的匹配顺序,然后再使用rule命令配置具体的访问规则。若不配置匹配顺序的话,按照auto方式进行。

请在系统视图(acl命令)和ACL视图(rule命令)下进行下列配置。

表1-5 配置标准访问控制列表

操作

命令

图1-169 进入ACL视图并配置访问控制列表的匹配顺序

图1-170 acl acl-number [ match-order config | auto ]

图1-171 配置标准访问列表规则

图1-172 rule { normal | special }{ permit | deny } [source source-addr source-wildcard | any ]

图1-173 删除特定的访问列表规则

图1-174 undo rule { rule-id | normal | special }

图1-175 删除访问列表

图1-176 undo acl {acl-number| all }

normal指该规则是在普通时间段内起起用;special指该规则是在特殊时间段内起作用,使用special时用户需另外设定特殊时间段。具有同一序号的多条规则按照“深度优先原则”进行匹配。

缺省情况下,为normal时间段。

1.2.3 配置扩展访问控制列表

扩展访问控制列表可取值100~199之间的整数。首先应使用acl命令进入到ACL配置视图并配置访问控制列表的匹配顺序,然后再使用rule命令配置具体的访问规则。若不配置匹配顺序的话,按照auto方式进行。

请在系统视图(acl命令)和ACL视图(rule命令)下进行下列配置。

表1-6 配置扩展访问控制列表

操作

命令

图1-177 进入ACL视图并配置访问控制列表的匹配顺序

图1-178 acl acl-number [ match-order config | auto ]

图1-179 配置TCP/UDP协议的扩展访问列表规则

图1-180 rule { normal | special }{ permit | deny } { tcp | udp } [source source-addr source-wildcard | any ] [source-port operator port1 [ port2 ] ] [ destination dest-addr dest- wildcard | any ] [destination-port operator port1 [ port2 ] ] [logging]

图1-181 配置ICMP协议的扩展访问列表规则

图1-182 rule { normal | special }{ permit | deny } ICMP [source source-addr source-wildcard | any ] [ destination dest-addr dest- wildcard | any ] [icmp-type icmp-type icmp-code] [logging]

图1-183 配置其它协议扩展访问列表规则

图1-184 rule { normal | special }{ permit | deny } pro-number [source source-addr source-wildcard | any ] [ destination dest-addr dest- wildcard | any ] [logging]

图1-185 删除特定的访问列表规则

图1-186 undo rule { rule-id | normal | special }

图1-187 删除访问列表

图1-188 undo acl {acl-number| all }

normal指该规则是在普通时间段内起起用;special指该规则是在特殊时间段内起作用,使用special时用户需另外设定特殊时间段。具有同一序号的多条规则按照“深度优先原则”进行匹配。

缺省情况下,为normal时间段。

1.2.4 设置防火墙的缺省过滤方式

防火墙的缺省过滤方式是指:当访问规则中没有找到一个合适的匹配规则来判定用户数据包是否可以通过的时候,将根据用户设置的防火墙的缺省过滤方式来决定究竟允许还是禁止报文通过。

请在系统视图下进行下列配置。

表1-7 设置防火墙缺省过滤方式

操作

命令

图1-189 设置防火墙的缺省过滤方式为允许报文通过

图1-190 firewall default permit

图1-191 设置防火墙的缺省过滤方式为禁止报文通过

图1-192 firewall default deny

缺省情况下,防火墙的缺省过滤方式为允许报文通过。

1.2.5 设置特殊时间段 1. 允许/禁止按时间段过滤

所谓按时间段过滤是指:在不同的时间段内,采用不同的访问规则对IP数据包进行过滤,这个特性又称为在特别时间段内应用特别的规则(Special Rules For Special Time)。

根据实际使用情况,将时间段分为下列两类:

l 特殊时间段:在设定时间段内的时间(由special关键字指定)

l 普通时间段:未在设定时间段内的时间(由normal关键字指定)

同样地,访问规则按时间也分为这样两类:

l 基于普通时间段的访问规则(Normal Packet-filtering Access Rules)

l 基于特殊时间段的访问规则(Timerange Packet-filtering Access Rules)

可为这两类时间段分别定义不同的访问控制列表及访问规则,它们互不影响。在实际使用时,可把它们看成是两套独立的规则,系统在查看当前所处的时间段(普通时间段还是特殊时间段)后决定究竟采用哪套访问规则。比如,当前系统时间是在特殊时间段(由rule special定义)之内,则采用特殊时间段内的访问规则进行过滤;当时间切换到普通时间段(由rule normal定义)后,则采用普通时间段规则进行过滤。

请在系统视图下进行下列配置。

表1-8 允许/禁止按时间段过滤

操作

命令

图1-193 允许按时间段过滤

图1-194 timerange enable

图1-195 禁止按时间段过滤

图1-196 timerange disable

缺省情况下,禁止按特殊时间段过滤。

只有在打开允许按时间段过滤的开关后,用户设定的特殊时间段内的访问规则才能生效;当该开关被禁止后,将采用普通时间段定义的访问规则。

2. 设定特殊时间段

当用户选择了允许按时间段过滤报文的功能后,在用户定义的时间段内,防火墙将采用用户在定义的特殊时间段内的访问规则进行过滤。本次定义特殊时间段将在大约一分钟左右才能生效,上次定义的特殊时间段也将自动作废。

请在系统视图下进行下列配置。

表1-9 设定特殊时间段

操作

命令

图1-197 设定特殊时间段

图1-198 settr { begin-time end-time ... }

图1-199 取消特殊时间段

图1-200 undo settr

缺省情况下,系统使用普通时间段下定义的访问规则进行报文过滤。使用settr命令能最多同时定义6个时间段。时间段具体格式为小时:分钟(即hh:mm),hh的范围为0~23,mm的范围为0~59。

display clock命令可查看系统当前的时钟状况。

1.2.6 配置在接口上应用访问控制列表的规则

若要实现接口对报文的过滤功能,就必须先将相应访问控制列表规则应用到接口上。用户可在一个接口上对接收和发送两个方向的报文分别定义不同的访问控制规则。

请在接口视图下进行下列配置。

表1-10 配置接口上应用访问控制列表的规则

操作

命令

图1-201 配置在接口的入口或出口方向上应用访问控制列表规则

图1-202 firewall packet-filter acl-number [ inbound | outbound ]

图1-203 取消在接口的入口或出口方向上应用访问控制列表规则

图1-204 undo firewall packet-filter acl-number [ inbound | outbound ]

缺省情况下,接口上未定义过滤报文的规则。

在一个接口的一个方向上(inboundoutbound方向),最多可以应用20条访问规则。即在firewall packet-filter inbound方向上可应用20条规则;在firewall packet-filter outbound方向上也可应用20条规则。

若两条互相冲突的规则序号不同,优先匹配acl-number较大的规则。

1.2.7 指定日志主机

防火墙支持日志功能,当某条访问规则被匹配后,若用户指定了对该规则产生日志,可向日志主机发送日志,由日志主机做记录并保存。

请在系统视图下进行下列配置。

表1-11 指定日志主机

操作

命令

图1-205 指定日志主机

图1-206 ip host unix-hostname ip-address

图1-207 取消日志主机

图1-208 undo ip host

有关对配置“日志主机参数”更详细的描述,请用户参见本手册“系统管理”中“日志功能”一章中的内容。

1.3 防火墙的显示和调试

在所有视图下使用debuggingresetdisplay命令。

表1-12 防火墙的显示和调试

操作

命令

图1-209 显示包过滤规则及在接口上的应用

图1-210 display acl [ all | acl-number | interface type number ]

图1-211 显示防火墙状态

图1-212 display firewall

图1-213 显示当前时间段的范围

图1-214 display timerange

图1-215 显示当前时间是否在特殊时间段之内

图1-216 display isintr

图1-217 清除访问规则计数器

图1-218 reset acl counters [ acl-number ]

图1-219 打开防火墙包过滤调试信息开关

图1-220 debugging filter { all | icmp | tcp | udp}

1.4 防火墙典型配置举例 1. 组网需求

该公司通过一台路由器的接口Serial 0访问Internet,公司内部对外提供WWW、FTP和Telnet服务,公司内部子网为129.38.1.0,其中,内部FTP服务器地址为129.38.1.1,内部Telnet服务器地址为129.38.1.2,内部WWW服务器地址为129.38.1.3,公司对外地址为202.38.160.1。在路由器上配置了地址转换,这样内部PC机可以访问Internet,外部PC可以访问内部服务器。通过配置防火墙,希望实现以下要求:

l 外部网络只有特定用户可以访问内部服务器

l 内部网络只有特定主机可以访问外部网络

在本例中,假定外部特定用户的IP地址为202.39.2.3。

2. 组网图

华为访问控制_第1张图片

图1-221 防火墙配置的组网图

3. 配置步骤

# 打开防火墙功能。

[Router] firewall enable

# 设置防火墙缺省过滤方式为允许包通过。

[Router] firewall default permit

# 配置访问规则禁止所有包通过。

[Router] acl 101

[Router-acl-101] rule deny ip source any destination any

# 配置规则允许特定主机访问外部网,允许内部服务器访问外部网。

[Router-acl-101] rule permit ip source 129.38.1.4 0 destination any

[Router-acl-101] rule permit ip source 129.38.1.1 0 destination any

[Router-acl-101] rule permit ip source 129.38.1.2 0 destination any

[Router-acl-101] rule permit ip source 129.38.1.3 0 destination any

# 配置规则允许特定用户从外部网访问内部服务器。

[Router] acl 102

[Router-acl-102] rule permit tcp source 202.39.2.3 0 destination 202.38.160.1 0

# 配置规则允许特定用户从外部网取得数据(只允许端口大于1024的包)。

[Router-acl-102] rule permit tcp source any destination 202.38.160.1 0.0.0.0 destination-port greater-than 1024

# 将规则101作用于从接口Ethernet0进入的包。

[Router-Ethernet0] firewall packet-filter 101 inbound

# 将规则102作用于从接口Serial0进入的包。

[Router-Serial0] firewall packet-filter 102 inbound