17、防火墙
防火墙基本概念
防火墙用于保护一个网络区域免受来自另一个网络区域的攻击和入侵,通常被应用于网络边界,例如企业互联网出口、企业内部业务边界、数据中心边界。
防火墙有框式防火墙、盒式防火墙、桌面型防火墙、软件防火墙。
防火墙的主要作用是:流量控制和安全防护,区分和隔离不同安全区域。
防火墙发展史:早期的是包过滤防火墙,现在用的基本是状态检查测防火墙,未来趋势是AI防火墙。
包过滤防火墙:基于五元组对每个数据包进行检测。(五元组:源/目的IP,源/目的端口、协议)
状态检测防火墙:考虑报文前后的关联性,检测的是连接状态而非单个报文。
安全区域
安全区域(Security Zone),简称为区域(Zone)。安全区域是防火墙若干接口所连网络的集合,一个区域内的用户具有相同的安全属性。
防火墙通过将接口划分到某个区域,该接口下连接的网络就属于该区域,但是该接口以及防火墙本身都仍然是属于Local区域。
华为防火墙默认有四个区域:untrust、dmz、trust、local区域。安全区域有以下特性:
- 默认的安全区域不能删除,也不允许修改安全优先级。
- 每个区域都必须设置一个安全优先级,值越大,安全优先级越高(范围1~100),两个区域的优先级不可相同。
- 用户看可以创建自定义区域。
本地区域(local):local区域定义的是设备本身,包括设备的各接口本身。凡是由设备构造并主动发出的报文均可认为是从Local区域中发出,凡是需要设备响应并处理(而不仅是检测或直接转发)的报文均可认为是由local区域接收。用户不能改变local区域本身的任何配置,包括向其中添加接口。
安全策略
安全策略是控制防火墙对流量转发以及对流量进行内容安全一体化检测的策略。
当防火墙收到流量后,对流量的属性(五元组、用户、时间段等)进行识别,然后与安全策略的条件进行匹配。如果条件匹配,则此流量被执行对应的动作。
安全策略的组成有:匹配条件、动作和安全配置文件(可选)。
安全策略动作如果为“允许”则可配置安全配置文件,如果为“禁止”则可配置反馈报文。
当配置多条安全策略规则时,安全策略的匹配按照策略列表的顺序执行,即从策略列表顶端开始逐条向下匹配。如果流量匹配了某个安全策略,将不再进行下一个策略的匹配。
需要先配置条件精确的策略,再配置宽泛的策略。
会话表
会话表是用来记录TCP、UDP、ICMP等协议连接状态的表项,是防火墙转发报文的重要依据。
防火墙采用了基于“状态”的报文控制机制:只对首包或者少量报文进行检测就确定一条连接的状态,大量报文直接根据所属连接的状态进行控制。这种状态检测机制迅速提高了防火墙的检测和转发效率。
会话表就是为了记录连接的状态而存在的。设备在转发TCP、UDP和ICMP报文时都需要查询会话表,来判断该报文所属的连接并采取相应的处理措施。
防火墙状态检测开启情况下,流量的首包会创建会话表项,后续包即可直接匹配会话表项。
会话表的老化时间与长连接
防火墙为各种协议设定了会话老化机制。当一条会话在老化时间内没有被任何报文匹配,则会被从会话表中删除。这种机制可以避免防火墙的设备资源被大量无用、陈旧的会话表项消耗。
但是对于某些特殊业务中,一条会话的两个连续报文可能间隔时间很长。例如FTP下载大文件。
此时如果其会话表项被删除,则该业务会中断。长连接(Long Link)机制可以给部分连接设定超长的老化时间,有效解决这个问题。
多通道协议在防火墙上的问题
如果在防火墙上配置严格的单向安全策略,那么防火墙将只允许业务单方向发起访问。这会导致一些特殊的协议无法工作,例如FTP。
FTP主动模式传输文件时,首先需要客户端主动向服务器端发起控制连接,然后需要服务器端向客户端发起数据连接。如果设备上配置的安全策略仅允许客户端报文单方向通过,则FTP文件传输不能成功。
同FTP,通信过程中需占用两个或两个以上端口的协议被称为多通道协议。多通道协议都需要考虑此类问题。
为了解决多通道协议的问题,防火墙需要识别协议在应用层协商的地址和端口。这需要开启ASPF
(Application Specific Packet Filter,,针对应用层的包过滤)功能。
ASPF也称作基于状态的报文过滤,ASPF功能可以自动检测某些报文的应用层信息并根据应用层信息放开相应的访问规则,即生成Server-map表。
Server-map表也记录了类似会话表中连接的状态。Server-map表中的信息相对简单,是简化的会话表,在真实流量到达前生成。在流量真实到达防火墙时,防火墙会基于Server-map表生成会话表,然后执行转发。
开启ASPF解决多通道协议问题,是生成Server--map表的一种方式。
配置案例
基础配置命令
接口
配置接口允许通过的协议、
service-manage {http | https | ping | ssh | snmp | netconf | telnet | all} {permit | deny}
service-manage命令用来允许或拒绝管理员通过HTTP、HTTPS、、、Telnet等访问设备。
缺省情况下,接口开启了访问控制管理功能,只有管理接口下HTTP、HTTPS、Ping权限开放。非管理口所有权限都关闭。此时,即使配置了接口所在安全区域允许访问local区域的安全策略,也不能通过该接口访问本地防火墙。
安全区域
1、创建安全区域
[Huawei]firewall zone name zone-name [id id]
id表示安全区域ID,取值4~99。
2、进入安全区域视图
[Huawei]firewall zone zone-name
# 示例
[Huawei]firewall zone dmz
3、设置安全区域优先级
[Huawei-zone-name]set priority security-priority
优先级取值范围1~100,全局唯一,越大越优。
4、添加接口到安全区域
[Huawei-zone-name]add interface interface-type interface-number
# 示例
[Huawei-zone-name]add interface interface g0/0/0
安全策略
1、进入安全策略视图
[Huawei]security-policy
2、创建规则
[Huawei-policy-security]rule name rule-name
3、配置安全策略规则的安全区域
[Huawei-policy-security-rule-name]source-zone {zone-name &<1-6> | any}
安全策略规则一次最多添加或删除六个安全区域。
4、配置安全策略规则的目的安全区域
[Huawei-policy-security-rule-name]destination-zone {zone-name &<1-6> | any}
5、配置安全策略规则的源IP地址
[Huawei-policy-security-rule-name]source-address ipv4-address {ipv4-mask-length | mask mask-address}
命令中mask-address使用反掩码。
6、配置安全策略规则的目的IP地址
[Huawei-policy-security-rule-name]destination-address ipv4-address {ipv4-mask-length | mask mask-address}
命令中mask-address使用反掩码。
7、配置服务
[Huawei-policy-security-rule-name]service {service-name &<1-6> | any}
service命令用来配置服务,例如service protocol命令用来在安全策略中直接引用TCP/UDP/SCTP端口或IP层协议。
8、配置安全策略规则的动作
[Huawei-policy-security-rule-name]action {permit | deny}
配置案例
防火墙USG6000V的默认用户为admin,密码为Admin@123。
首次登录需要修改密码,我修改为了Huawei@123。
该防火墙需要导入镜像文件才能使用,在ensp启动防火墙时,会提示选设备包,选择下载解压后的镜像文件就能使用了。
下载地址:项目首页 - 华为USG6000V镜像包下载:华为USG6000V镜像包下载 - GitCode
1、配置各设备的IP地址,在防火墙上配置默认路由指向ISP。
2、配置安全区域
[USG6000V1]firewall zone dmz
[USG6000V1-zone-dmz]add interface g1/0/0
# 其他区域同理
3、配置安全策略
# 配置PC1网段访问外网的策略
[USG6000V1]security-policy
[USG6000V1-policy-security]rule name P_T2U_Internat
[USG6000V1-policy-security-rule-P_T2U_Internat]source-zone trust
[USG6000V1-policy-security-rule-P_T2U_Internat]destination-zone untrust
[USG6000V1-policy-security-rule-P_T2U_Internat]source-address 172.16.2.0 mask 255.255.255.0
[USG6000V1-policy-security-rule-P_T2U_Internat]action permit
# 配置clinet1访问内部服务器的策略
[USG6000V1]security-policy
[USG6000V1-policy-security]rule name P_T2D_Server
[USG6000V1-policy-security-rule-P_T2D_Server]source-zone untrust
[USG6000V1-policy-security-rule-P_T2D_Server]destination-zone dmz
[USG6000V1-policy-security-rule-P_T2D_Server]destination-address 172.16.1.0 mask 255.255.255.0
[USG6000V1-policy-security-rule-P_T2D_Server]action permit
不写源或目的IP地址,就代表任意IP地址都可以。
4、配置NAT
# 配置PC1网段访问外网的easy-nat
[USG6000V1]nat-policy
[USG6000V1-policy-nat]rule name 2.0
[USG6000V1-policy-nat-rule-2.0]source-zone trust
[USG6000V1-policy-nat-rule-2.0]destination-zone untrust
[USG6000V1-policy-nat-rule-2.0]source-address 172.16.2.0 mask 255.255.255.0
[USG6000V1-policy-nat-rule-2.0]action source-nat easy-ip
# 配置服务器的nat server
[USG6000V1]nat server protocol tcp global 200.1.1.1 80 inside 172.16.1.2 80
配置验证
1、验证防火墙安全区域
display zone
2、验证PC1能够访问外网
ping 100.1.1.2
同时,查看防火墙的会话表。(会话表老化时间较短,最好在ping的时候查看)
display firewall session table all-systems
3、验证Client1访问Server1
准备一个文件夹,里面放一个示例html文件,用来作为Server1的文件根目录。
在Client1中访问服务器。
注意获取的IP地址为防火墙的g1/0/1接口(因为使用了该接口做nat server),同时,请确保server文件根目录中存在url中指向的文件。
测试时,访问图片访问不了,后来改为html文件了才成功。
访问成功后,会弹窗提示是否保存文件。
思考题
-
D
-
错。
-
ABCD