01-防火墙配置
本章节下载 (268.62 KB)
防火墙一方面可以阻止来自因特网的、对受保护网络的未授权访问,另一方面允许内部网络用户对因特网进行Web访问或收发E-mail等。防火墙也可以作为一个访问因特网的权限控制关口,如允许组织内的特定主机可以访问因特网。现在的许多防火墙同时还具有一些其它特点,如进行身份鉴别、对信息进行安全(加密)处理等。
防火墙不单用于控制对因特网连接,也可以用来在组织网络内部保护大型机和重要的资源(如数据)。对受保护数据的访问都必须经过防火墙的过滤,即使网络内部用户要访问受保护的数据,也要经过防火墙。
目前设备中的防火墙主要是指以下三种:
l 包过滤防火墙,即基于ACL(Access Control List,访问控制列表)的包过滤
l 状态防火墙,即ASPF(Application Specific Packet Filter,基于应用层状态的包过滤)
l 地址转换
& 说明:
关于地址转换的详细介绍,请参见“安全分册”中的“NAT配置”,本章主要介绍包过滤防火墙和状态防火墙。
包过滤实现了对IP数据包的过滤。对设备需要转发的数据包,先获取其包头信息(包括IP层所承载的上层协议的协议号、数据包的源地址、目的地址、源端口和目的端口等),然后与设定的ACL规则进行比较,根据比较的结果对数据包进行相应的处理。
目前的包过滤提供了对分片报文检测过滤的支持,检测的内容有:
l 报文类型(非分片报文、首片分片报文和非首片分片报文)
l 获得报文的三层信息(基本ACL规则和不含三层以上信息的高级ACL规则)
l 三层以上的信息(包含三层以上信息的高级ACL规则)
对于配置了精确匹配过滤方式的高级ACL规则,包过滤防火墙需要记录每一个首片分片的三层以上的信息,当后续分片到达时,使用这些保存的信息对ACL规则的每一个匹配条件进行精确匹配。
应用精确匹配过滤后,包过滤防火墙的执行效率会略微降低,配置的匹配项目越多,效率降低越多,可以配置门限值来限制防火墙最大处理的数目。
& 说明:
关于ACL的详细介绍,请参见“安全分册”中的“ACL配置”。
包过滤防火墙属于静态防火墙,目前存在的问题如下:
l 对于多通道的应用层协议(如FTP、H.323等),部分安全策略配置无法预知。
l 无法检测某些来自于传输层和应用层的攻击行为(如TCP SYN、Java Applets等)。
因此,提出了状态防火墙——ASPF的概念。ASPF能够实现的检测有:
l 应用层协议检测,包括FTP、HTTP、SMTP、RTSP、H.323(Q.931、H.245、 RTP/RTCP)检测;
l 传输层协议检测,包括TCP和UDP检测,即通用TCP/UDP检测。
ASPF的主要功能如下:
l 能够检查应用层协议信息,如报文的协议类型和端口号等信息,并且监控基于连接的应用层协议状态。对于所有连接,每一个连接状态信息都将被ASPF维护,并用于动态地决定数据包是否被允许通过防火墙进入内部网络,以便阻止恶意的入侵。
l 能够检测传输层协议信息(即通用TCP和UDP协议检测),能够根据源、目的地址及端口号,决定TCP或UDP报文是否可以通过防火墙进入内部网络。
ASPF的其它功能有:
l ASPF不仅能够根据连接的状态对报文进行过滤,还能够对应用层报文的内容加以检测,提供对不可信站点的Java Blocking(Java阻断)功能,用于保护网络不受有害的Java Applets的破坏。
l 增强的会话日志功能。可以对所有的连接进行记录,包括:记录连接的时间、源地址、目的地址、使用的端口和传输的字节数。
l 支持PAM(Port to Application Map,应用协议端口映射),允许用户自定义应用层协议使用非通用端口。
在网络边界,ASPF和包过滤防火墙协同工作,能够为企业内部网络提供更全面的、更符合实际需求的安全策略。
(1) Java Blocking
Java Blocking是对通过HTTP协议传输的Java Applets小程序进行阻断。当配置了Java Blocking后,用户为试图在Web页面中获取包含Java Applets的程序而发送的请求指令将会被阻断。
(2) PAM
应用层协议使用通用的端口号进行通信,PAM允许用户对不同的应用定义一组新的端口号,并提供了一些机制来维护和使用用户定义的端口配置信息。
PAM支持两类映射机制:
l 通用端口映射:是将用户自定义端口号与应用层协议建立映射关系。例如:将8080端口映射为HTTP协议,这样所有目的端口是8080的TCP报文将被认为是HTTP报文。
l 主机端口映射:是对去往或来自某些特定主机的报文建立自定义端口号和应用协议的映射。例如:将目的地址为10.110.0.0网段的、使用8080端口的TCP报文映射为HTTP报文。主机的范围可由基本ACL指定。
(3) 单通道协议和多通道协议
l 单通道协议:从会话建立到删除的全过程中,只有一个通道参与数据交互,如SMTP,HTTP。
l 多通道协议:包含一个控制通道和若干其它控制或数据通道,即控制信息的交互和数据的传送是在不同的通道上完成的,如FTP、RTSP。
(4) 内部接口和外部接口
如果设备连接了内部网和互联网,并且设备要通过部署ASPF来保护内部网的服务器,则设备上与内部网连接的接口就是内部接口,与互联7F51相连的接口就是外部接口。
当ASPF应用于设备外部接口的出方向时,可以在防火墙上为内部网用户访问互联网的返回报文打开一个临时通道。
如图1-1所示,为了保护内部网络,一般情况下需要在语音网关上配置访问控制列表,以允许内部网的主机访问外部网络,同时拒绝外部网络的主机访问内部网络。但访问控制列表会将用户发起连接后返回的报文过滤掉,导致连接无法正常建立。
当在设备上配置了应用层协议检测后,ASPF可以检测每一个应用层的会话,并创建一个状态表和一个临时访问控制列表(Temporary Access Control List,TACL):
l 状态表在ASPF检测到第一个向外发送的报文时创建,用于维护一次会话中某一时刻会话所处的状态,并检测会话状态的转换是否正确。
l 临时访问控制列表的表项在创建状态表项的同时创建,会话结束后删除,它相当于一个扩展ACL的permit项。TACL主要用于匹配一个会话中的所有返回的报文,可以为某一应用返回的报文在防火墙的外部接口上建立一个临时的返回通道。
下面以FTP检测为例说明多通道应用层协议检测的过程。
如图1-2所示,FTP连接的建立过程如下:假设FTP client以1333端口向FTP server的21端口发起FTP控制通道的连接,通过协商决定由FTP server端的20端口向FTP client端的1600端口发起数据通道的连接,数据传输超时或结束后连接删除。
FTP检测在FTP连接建立到拆除过程中的处理如下:
(1) 检查从出接口上向外发送的IP报文,确认为基于TCP的FTP报文。
(2) 检查端口号确认连接为控制连接,建立返回报文的TACL和状态表。
(3) 检查FTP控制连接报文,解析FTP指令,根据指令更新状态表,如果包含数据通道建立指令,则创建数据连接的TACL;对于数据连接,不进行状态检测。
(4) 对于返回报文,根据协议类型做相应匹配检查,检查将根据相应协议的状态表和TACL决定报文是否允许通过。
(5) FTP连接删除时,状态表及TACL随之删除。
单通道应用层协议(如SMTP、HTTP)的检测过程比较简单,当发起连接时建立TACL,连接删除时随之删除TACL即可。
这里的传输层协议检测是指通用TCP/UDP检测。通用TCP/UDP检测与应用层协议检测不同,是对报文的传输层信息进行的检测,如源、目的地址及端口号等。通用TCP/UDP检测要求返回到ASPF外部接口的报文要与前面从ASPF外部接口发出去的报文完全匹配,即源、目的地址及端口号恰好对应,否则返回的报文将被阻塞。因此对于FTP、H.323这样的多通道应用层协议,在不配置应用层检测而直接配置TCP检测的情况下会导致数据连接无法建立。
表1-1 包过滤防火墙配置任务简介
配置任务 |
说明 |
详细配置 |
启用防火墙功能 |
必选 |
|
配置缺省过滤方式 |
可选 |
|
打开分片报文检测开关 |
可选 |
|
配置分片报文检测门限 |
可选 |
|
配置接口的报文过滤功能 |
必选 |
|
配置接口的以太网帧过滤功能 |
可选 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启用防火墙功能 |
firewall enable |
必选 缺省情况下,禁止防火墙功能 |
缺省过滤方式用来定义对访问控制列表以外数据包的处理方式,即在没有规则去判定用户数据包是否可以通过的时候,防火墙采取的策略是允许还是禁止该数据包通过。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置缺省过滤方式 |
firewall default { permit | deny } |
可选 缺省情况下,缺省过滤方式为permit |
只有打开分片检测开关,才能进行分片报文的精确匹配。这时,包过滤防火墙将记录分片报文的状态,根据高级ACL规则对三层以上的信息进行精确匹配。
包过滤防火墙对分片报文的状态记录需要消耗系统资源。如果不使用精确匹配模式,则可以关闭此功能,以提高系统运行效率,减小系统开销。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
打开分片报文检测开关 |
firewall fragments-inspect |
必选 缺省情况下,IPv4分片检测开关处于关闭状态 |
在打开IPv6分片报文检测开关后,所有接口的IPv6分片报文,在进行IPv6 ACL匹配时,如果首片报文被丢弃,则非首片报文也会被丢弃,否则会将首片分片报文的协议信息,添加到该报文的非首片报文中,然后再去进行匹配比较。
表1-5 打开IPv6分片报文检测开关
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
打开IPv6分片报文检测开关 |
firewall ipv6 fragments-inspect |
必选 缺省情况下,IPv6分片报文检测开关处于关闭状态 |
在打开分片检测开关后,如果应用精确匹配过滤,包过滤的执行效率会降低,配置的匹配项目越多,效率降低越多。因此,需要设定分片报文检测门限。
当记录分片状态的数目达到上限阈值时,将删除最先保存的状态项,直至达到下限阈值。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置分片报文检测的上、下门限值 |
firewall fragments-inspect [ high | low ] { number | default } |
可选 缺省情况下,上分片状态记录数目的上限阈值为2000,下限阈值为1500 |
一般采用在接口上应用访问控制列表来实现报文过滤功能。将ACL规则应用到接口时,同时会遵循时间段过滤原则,另外可以对接口收发报文分别指定ACL规则。
l 基本访问控制列表只根据三层的源地址信息制定规则,对数据包进行相应的分析处理;
l 高级访问控制列表可以使用数据包的源地址信息、目的地址信息、IP承载的协议类型、TCP或UDP的源端口、目的端口等内容定义规则。
高级访问控制列表提供如下两种匹配方式:
l 标准匹配,即三层信息的匹配,该匹配将忽略三层以外的信息;
l 精确匹配,即对所有高级ACL的过滤规则进行匹配,这就要求防火墙必须记录首片分片报文的状态以获得完整的后续分片的匹配信息。
缺省的模式为标准匹配方式。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口的IPv4报文过滤功能 |
firewall packet-filter { acl-number | name acl-name } { inbound | outbound } [ match-fragments { normally | exactly } ] |
必选 缺省情况下,不对通过接口的IPv4报文进行过滤 |
IPv6报文过滤为提供了基于IPv6 ACL的基本防火墙功能。可在每个接口的进方向或出方向的IPv6报文进行过滤。在接口的一个方向上,用户只能配置一个IPv6 ACL。
表1-8 配置IPv6防火墙报文过滤
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口的IPv6报文过滤功能 |
firewall packet-filter ipv6 { acl6-number | name acl6-name } { inbound | outbound } |
必选 缺省情况下,不对通过接口的IPv6报文进行过滤 |
表1-9 配置接口的以太网帧过滤功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
配置接口的以太网帧过滤功能 |
firewall ethernet-frame-filter { acl-number | name acl-name } { inbound | outbound } |
必选 缺省情况下,不对接口进行以太网帧过滤 |
& 说明:
只有接口工作在网桥组下时,本配置才生效。
在完成上述配置后,在任意视图下执行display命令可以显示配置后包过滤防火墙的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除包过滤防火墙的统计信息。
表1-10 包过虑防火墙的显示和维护
操作 |
命令 |
查看以太网帧过滤情况的统计信息 |
display firewall ethernet-frame-filter { all | dlsw | interface interface-type interface-number } |
查看防火墙的统计信息 |
display firewall-statistics { all | interface interface-type interface-number | fragments-inspect } |
清除以太网帧过滤情况的统计信息 |
reset firewall ethernet-frame-filter { all | dlsw | interface interface-type interface-number } |
清除防火墙的统计信息 |
reset firewall-statistics { all | interface interface-type interface-number } |
l 某公司通过VG的接口GigabitEthernet0/1访问Internet,VG与内部网通过接口GigabitEthernet0/0连接;
l 公司内部对外提供WWW、FTP和Telnet服务:公司内部子网为129.1.1.0。其中,内部FTP服务器地址为129.1.1.1,内部Telnet服务器地址为129.1.1.2,内部WWW服务器地址为129.1.1.3;公司对外地址为20.1.1.1。在VG上配置了地址转换,这样公司内部主机可以访问Internet,公司外部主机可以访问公司内部的服务器;
l 通过配置防火墙,希望实现以下要求:外部网络只有特定用户可以访问内部服务器;内部网络只有特定主机可以访问外部网络。
l 假定外部特定用户的IP地址为20.3.3.3。
# 在VG上启用防火墙功能。
<VG> system-view
[VG] firewall enable
# 创建高级访问控制列表3001。
[VG] acl number 3001
# 配置规则允许特定主机访问外部网,允许内部服务器访问外部网。
[VG-acl-adv-3001] rule permit ip source 129.1.1.1 0
[VG-acl-adv-3001] rule permit ip source 129.1.1.2 0
[VG-acl-adv-3001] rule permit ip source 129.1.1.3 0
[VG-acl-adv-3001] rule permit ip source 129.1.1.4 0
# 配置规则禁止所有IP包通过。
[VG-acl-adv-3001] rule deny ip
# 创建高级访问控制列表3002。
[VG-acl-adv-3001] quit
[VG] acl number 3002
# 配置规则允许特定用户从外部网访问内部服务器。
[VG-acl-adv-3002] rule permit tcp source 20.3.3.3 0 destination 20.1.1.1 0
# 配置规则允许外部特定数据进入内部网络(只允许端口大于1024的包)。
[VG-acl-adv-3002] rule permit tcp destination 20.1.1.1 0 destination-port gt 1024
[VG-acl-adv-3002] rule deny ip
# 将ACL 3001作用于从接口GigabitEthernet0/0进入的包。
[VG-acl-adv-3002] quit
[VG] interface gigabitethernet 0/0
[VG-GigabitEthernet0/0] firewall packet-filter 3001 inbound
# 将ACL 3002作用于从接口 GigabitEthernet0/1进入的包。
[VG-GigabitEthernet0/0] quit
[VG] interface gigabitethernet 0/1
[VG-GigabitEthernet0/1] firewall packet-filter 3002 inbound
表1-11 ASPF配置任务简介
配置任务 |
说明 |
详细配置 |
启用防火墙功能 |
必选 |
|
配置ASPF策略 |
必选 |
|
在接口上应用ASPF策略 |
必选 |
|
配置ASPF会话日志功能 |
可选 |
|
配置端口映射 |
可选 |
表1-12 启用防火墙功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启用防火墙功能 |
firewall enable |
必选 缺省情况下,防火墙功能处于关闭状态 |
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
创建ASPF策略,并进入ASPF策略视图 |
aspf-policy aspf-policy-number |
必选 |
配置SYN、FIN、TCP和UDP的超时时间 |
aging-time { syn | fin | tcp | udp } seconds |
可选 缺省情况下,SYN、FIN、TCP和UDP的超时时间分别为30秒、5秒、3600秒和30秒 |
为应用层和传输层协议配置ASPF检测 |
detect protocol [ java-blocking acl-number ] [ aging-time seconds ] |
可选 缺省情况下,应用层协议的超时时间为3600秒;TCP协议的超时时间为3600秒;UDP协议的超时时间为30秒 |
& 说明:
l 在未配置应用层检测,直接配置TCP或UDP检测的情况下,可能会产生部分报文无法返回的情况,故建议应用层检测和TCP/UDP检测配合使用。
l 对于Telnet应用,直接配置通用TCP检测即可实现ASPF功能。
l detect命令配置的协议空闲的超时时间,其优先级大于aging-time命令的配置。
对于ASPF策略,有两个概念:内部接口和外部接口。如果设备连接了内部网和互联网,并且设备要通过部署ASPF来保护内部网的服务器,则设备上与内部网连接的接口就是内部接口,与互联网相连的接口就是外部接口。当ASPF与包过滤防火墙协同工作,并应用于外部接口时,可以拒绝互联网上的用户对内部网的访问,但内部网的用户访问互联网时,返回的报文可以通过ASPF。
只有将定义好ASPF策略应用到接口上,才能对通过接口的流量进行检测。
由于ASPF对于应用层协议状态的保存和维护都是基于接口的,因此在实际应用中,必须保证报文入口的一致性,即必须保证连接发起报文和返回报文基于同一接口。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
在接口上应用ASPF策略 |
firewall aspf aspf-policy-number { inbound | outbound } |
必选 缺省情况下,接口上没有应用ASPF策略 |
ASPF提供了增强的会话日志功能。可以对所有的连接进行记录,包括:连接的时间、源地址、目的地址、使用的端口和传输的字节数。
表1-15 配置ASPF会话日志功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入ASPF策略视图 |
aspf-policy aspf-policy-number |
- |
使能ASPF会话日志功能 |
log enable |
必选 缺省情况下,ASPF会话日志功能处于关闭状态 |
有如下两类映射机制:
l 通用端口映射:是将用户自定义的端口号与应用层协议建立起映射关系。例如,在建立端口8080到HTTP协议的映射后,所有目的端口为8080的TCP报文都将被认为是HTTP报文。
l 基于基本访问控制列表的主机端口映射:是对来自某些特定主机的报文建立自定义的端口号与应用协议的映射。例如,可以把去往网段1.1.0.0的、使用8080端口的TCP报文映射为HTTP报文。主机的范围由基本ACL指定。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置端口到应用层协议的映射 |
port-mapping application-name port port-number [ acl acl-number ] |
必选 缺省情况下,没有端口到应用层协议的映射关系 |
在完成上述配置后,在任意视图下执行display命令可以显示配置后ASPF的运行情况,通过查看显示信息验证配置的效果。
在用户视图下执行reset命令可以清除ASPF的统计信息。
操作 |
命令 |
查看所有的ASPF策略和会话信息 |
display aspf all |
查看接口上的ASPF策略信息 |
display aspf interface |
查看指定ASPF策略的信息 |
display aspf policy aspf-policy-number |
查看ASPF的会话信息 |
display aspf session [ verbose ] |
查看端口映射信息 |
display port-mapping [ application-name | port port-number ] |
清除ASPF的会话 |
reset aspf session |
l 在VG上配置一个ASPF策略,检测通过VG的FTP和HTTP流量。
l 要求:如果该报文是内部网络用户发起的FTP和HTTP连接的返回报文,则允许其通过VG进入内部网络,其他报文被禁止;并且,此ASPF策略能够过滤掉来自服务器2.2.2.2的HTTP报文中的Java Applets。
l 本例可以应用在本地用户需要访问远程网络服务的情况下。
# 在VG上启用防火墙功能。
<VG> system-view
[VG] firewall enable
# 配置ACL 3111,以拒绝所有IP流量进入内部网络,ASPF会为允许通过的流量创建临时的访问控制列表。
[VG] acl number 3111
[VG-acl-adv-3111] rule deny ip
[VG-acl-adv-3111] quit
# 配置ACL 2001,以过滤来自站点2.2.2.2的Java Applets。
[VG] acl number 2001
[VG-acl-basic-2001] rule deny source 2.2.2.2 0
[VG-acl-basic-2001] rule permit
[VG-acl-basic-2001] quit
# 创建ASPF策略1,该策略检测应用层的两个协议:FTP和HTTP协议,并定义没有任何行为的情况下,这两个协议的超时时间为3000秒。
[VG] aspf-policy 1
[VG-aspf-policy-1] detect ftp aging-time 3000
[VG-aspf-policy-1] detect http java-blocking 2001 aging-time 3000
[VG-aspf-policy-1] quit
# 在接口GigabitEthernet0/1上应用ASPF策略和ACL 3111。
[VG] interface gigabitethernet 0/1
[VG-GigabitEthernet0/1] firewall aspf 1 outbound
[VG-GigabitEthernet0/1] firewall packet-filter 3111 inbound
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!