做网络这一行,华为防火墙基本是绕不开的设备。从早期USG2000系列一路用到现在的USG6000、HiSecEngine,不管是在企业出口、分支机构还是数据中心边界,总能见到它的身影。这篇文章不打算把官方手册搬过来复述,我尽量用实际项目里积累的经验,把华为防火墙的工作原理和基础配置讲透,尤其是新手最容易懵的安全区域、安全策略、会话表这几个概念,以及ensp模拟器里从零到能跑通流量的一套完整操作。
这篇文章适合刚接触防火墙网络工程师、整天被安全策略搞得头疼的运维,以及想系统理解防火墙转发原理的在校学生。看完你至少能明白:报文进了防火墙之后到底经历了什么,为什么明明写了策略却不生效,以及如何用ensp把这套流程跑起来。
1. 华为防火墙的核心工作原理
1.1 防火墙到底在防什么:从包过滤到状态检测
要理解华为防火墙的工作原理,先得搞清楚防火墙的定位。传统路由器转发报文只看路由表,有路由就转发,没有就丢掉;ACL能做访问控制,但ACL本质是静态规则,每个报文都是独立判断,彼此之间没有上下文关系。华为防火墙最大的不同在于,它采用的是状态检测机制,也就是说它会“记住”一条通信连接的所有相关信息,并根据这些信息来做放行或拦截的判断。
早期防火墙大多还停留在包过滤阶段,相当于物业保安挨个检查每辆车:看你车牌号、看你是不是本小区的,符合登记表就放行,不符合就拦下。但这种方式有个明显缺陷——比如内网用户访问外部网站时,外网服务器返回的数据包源端口是80,如果只按照“放行来自80端口的报文”这样的静态规则,等于把外网进来的80端口流量也放行了,这扇门一开就太大了。状态检测防火墙的思路是:保安不但看车牌,还建立了一个“访客登记本”,内网用户出去时记一笔,等外部服务器回包时对着本子核对,确实是刚才那辆车出去的响应才放行。
这个“访客登记本”在华为防火墙里就是会话表。理解了会话表,防火墙的转发逻辑已经懂了一大半。
1.2 会话表:华为防火墙的灵魂机制
华为防火墙无论是什么型号,核心处理单元都围绕着会话表来展开。当一个报文从某个安全区域进入防火墙时,防火墙会先查会话表,看看这个报文是否属于一条已经建立的会话。
拿最常见的上网场景举例,内网PC访问一个网站,报文首先从Trust区域进入防火墙。防火墙在会话表里查找,发现没有匹配项,于是进入首包处理流程。它先检查安全策略是否允许这条连接,允许的话就创建一个新会话,把源目IP、端口、协议等五元组信息记录下来,并分配一个会话表项,后续这个连接的所有报文都能直接命中会话表,无须再走安全策略检查。这就是状态检测防火墙比传统包过滤性能更高的原因——绝大多数报文走的是会话表快速转发通道,而不是每次都做复杂的策略匹配。
华为防火墙的会话表项是有状态和老化机制的。TCP连接老化时间默认是1800秒,UDP是120秒左右,当然这些参数可以根据业务需求调整。如果一条会话长时间没有数据传输,防火墙会在老化时间到期后把会话删掉。很多现场问题就出在这里——比如某些应用使用长连接,空闲时间超过了会话老化时间,防火墙把会话删了,但客户端和服务端并不知道,下一条数据到达时防火墙无法匹配会话,就会丢弃这个报文,导致应用“突然卡一下”或直接中断。我排查过不少这种“看似策略没问题但就是不通”的案例,最后都落在会话老化上。
1.3 报文在防火墙内的完整旅程
一个数据报文从华为防火墙的一个接口进来,再到另一个接口出去,中间大致要经过这么几个关键步骤:
第一步,报文从入接口进入,防火墙做基础的二层处理,比如MAC地址学习、VLAN解封装等,然后根据报文的目的IP查路由表,决定从哪个接口出去。这个过程在华为防火墙里叫路由查询。防火墙首先要确定报文的出接口和目的安全区域,才能知道这个报文是从哪个区域到哪个区域的流量。
第二步,防火墙会查会话表,如果已经有对应会话,直接按会话里的动作处理并转发;没有会话的话,就进入新建会话流程。
第三步,对于需要新建会话的报文,先检查安全区域之间的安全策略。华为防火墙的策略匹配顺序是从上到下逐条匹配,一旦命中某条规则就停止向后匹配,按这条规则的动作执行。所以策略顺序相当重要,一个容易踩的坑就是写了一条很宽的allow规则放在拒绝规则前面,导致拒绝规则永远不生效。
第四步,如果报文通过策略检查,还会经过NAT处理。华为防火墙的NAT策略和安全策略是两个独立的策略组,但执行顺序上是先做NAT转换,还是先做安全策略检测,不同版本有差异。在较新的V500系列版本里,报文先做安全策略匹配,再做NAT转换。这一点在实际排障中要格外注意,尤其是查看会话表时,你看到的是NAT转换后的地址还是转换前的地址,会直接影响判断。
第五步,通过检查和转换后,报文从出接口发出,同时防火墙会在会话表里建立一条完整会话,记录转换前后的地址映射关系。这样回程流量到达防火墙时,同样能通过会话表完成反向转换和转发。
明白了这个过程,后面所有配置就很好理解了——安全策略决定“能不能通”,路由决定“往哪走”,NAT负责“怎么改地址”,会话表则是这一切的纽带。
2. 安全区域体系与信任模型
2.1 安全区域的划分逻辑与方法
华为防火墙里的“安全区域”是一个逻辑概念,相当于把不同的物理接口或者VLAN归类到不同的信任级别下。最常用的是三个系统预定义区域:Trust、DMZ、Untrust。Trust区域是内网,信任程度最高;DMZ一般放对外提供服务的服务器,比如Web服务器、邮件服务器;Untrust区域是外网,默认什么都不可信。
为什么要划分区域?因为华为防火墙的策略都是基于“源区域到目的区域”这个维度来写的。如果没有区域的概念,策略就只能基于IP和端口,配置会极度碎片化,管理难度直线上升。有了区域之后,你只需要定义“哪些接口属于哪个区域”,然后写区域之间的策略就行了,逻辑清晰,规则数量也少很多。
在华为防火墙里,把一个接口划入区域的操作很简单:
[USG] firewall zone trust [USG-zone-trust] add interface GigabitEthernet1/0/0 [USG-zone-trust] quit接口划分好区域后,该接口下的所有流量都以这个区域的身份参与策略匹配。需要注意,一个接口只能属于一个安全区域,不存在“既属于Trust又属于DMZ”的情况。如果交换机上做了VLAN划分,防火墙这边也支持把VLANIF接口或者子接口加入不同的区域,从而实现单臂路由或VLAN间隔离。
华为防火墙最多可以自定义几十个安全区域,区域间的优先级和安全级别可以自行调整。但除非特殊场景,我不建议一开始就搞太多区域,三层区域模型已经能覆盖绝大多数需求。区域太多,策略数量会指数级上涨,后期排查“哪条策略放行了什么流量”会让人崩溃。
2.2 默认规则与域间策略的重要性
华为防火墙有两条非常关键的默认规则,新手必须刻在脑子里:
第一,同一个安全区域内部的接口之间,流量默认是允许互通的。也就是说,如果两个接口都在Trust区域,那么这两个接口下的网络不需要配置任何策略就能通信。这一点在设计网络时要格外注意——如果你希望内网实现部门之间互相隔离,单靠防火墙区域划分是做不到的,因为同区域默认全通,你需要借助交换机VLAN或防火墙子接口的局部策略来限制。
第二,不同安全区域之间的流量,默认全部拒绝。Trust到Untrust、Untrust到Trust、DMZ到Untrust,所有跨区域的流量默认都是丢弃的,除非你在安全策略里显式放行。这个设计在金融、政企等安全要求高的场景非常受用,因为它保证了一个原则:默认拒绝,最小权限。
理解了这两条默认规则,很多问题就迎刃而解了。比如很多新手在ensp里做实验,给防火墙接口配好IP、把接口加进区域后,发现内网Ping不通外网,第一反应是查路由,查了半天路由没问题,其实是忘了写安全策略。我见过太多这样的案例了——防火墙和路由器最大的区别就在这里,路由器只要有路由就能转发,防火墙光有路由不够,区域间策略不放行,流量的宿命就是被丢弃。
要放行区域间的流量,需要在安全策略里显式配置。以“内网访问外网”为例:
[USG] security-policy [USG-policy-security] rule name trust_to_untrust [USG-policy-security-rule-trust_to_untrust] source-zone trust [USG-policy-security-rule-trust_to_untrust] destination-zone untrust [USG-policy-security-rule-trust_to_untrust] source-address 192.168.1.0 24 [USG-policy-security-rule-trust_to_untrust] action permit [USG-policy-security-rule-trust_to_untrust] quit [USG-policy-security] quit这条规则的意思是:从Trust区域来的、源网段是192.168.1.0/24、目的区域是Untrust的流量,允许通过。在写安全策略的时候,我个人的习惯是源目区域必填、源地址能写多精确就写多精确,目的地址在场景允许的时候也尽量写明,避免写全0段这种宽泛规则。
2.3 同区域通信的规则细节
再展开说一下同区域通信。华为防火墙默认允许同区域内部通信,这个设计初衷是“防火墙主要用来做区域间隔离,区域内部视为可信环境”。但生产环境中经常有这种需求:两个部门都在内网,但希望他们之间不能互访,或者服务器区域的运维网段和数据网段要隔离。这时依然可以靠防火墙来实现,只是需要通过特殊的配置方式。
一种方式是使用安全策略中的同区域策略。在华为防火墙上,可以针对同区域写策略,比如源区域和目标区域都是trust,然后限制源地址和目的地址。配置方法就是把source-zone和destination-zone都设置成trust,然后再加上具体的IP限制。这样虽然还是同一个区域,但局部隔离已经实现了。
另一种方式是拆分子接口并划分到不同区域。把物理接口做成子接口,不同的VLAN对应不同的子接口,然后划分到不同的安全区域,再通过策略控制VLAN间的互访。这种方式更符合防火墙的逻辑模型,区域间的隔离力度更彻底,但是配置量也比较大,适合对安全要求比较高、VLAN划分比较清晰的企业内网。
我个人的经验是,同区域隔离尽量不要在防火墙上“硬做”,因为这会让整个网络模型变得复杂,排障时很难一眼看出流量走向。更好的做法是在内网核心交换机上用ACL或者VLAN隔离实现内部互访控制,防火墙负责的是内外边界安全,各司其职,网络模型也会清爽很多。
3. 基础配置实操:从零配置一台USG防火墙
3.1 实验环境准备(ensp模拟器与USG6000V)
对于没有真实设备的工程师来说,ensp是练手华为防火墙最好的地方。ensp里的USG6000V是一个虚拟化防火墙镜像,功能和真实USG6000系列基本一致,安全策略、NAT、双机热备这些核心功能都支持,拿来学习完全够了。
如果你装了ensp却找不到USG6000V设备,多半是模拟器版本或者镜像导入的问题。华为官方提供的ensp安装包里通常自带USG6000V镜像,如果没有,你就需要手动导入防火墙镜像文件。导入路径一般是ensp主界面右上角的“菜单”按钮,找到“设备管理”或“导入设备”选项,添加对应的镜像压缩包即可。导入完成后,在设备列表里找到USG6000V,拖到拓扑区就能用。
有一点要提醒大家:USG6000V在ensp里启动比较慢,有时候要等一两分钟才能完全启动,建议启动后等命令行能正常回显再继续配置,不要着急。另外这台虚拟防火墙默认没有Web管理界面,需要额外配置才能用浏览器登录,这个我们后面单独讲。
拓扑上最经典的就是“PC—防火墙—外部服务器”这样的三节点结构。用ensp自带的PC机模拟内网用户,再建一台AR路由器或者直接用Cloud模拟网关,把防火墙的GE1/0/0接口划到Trust区域作为内网口,GE1/0/1接口划到Untrust区域作为外网口,中间再串一台服务器用来做连通性测试。
3.2 接口与区域配置
先在ensp里建好一台USG6000V防火墙,连接好拓扑,双击防火墙进入命令行。华为防火墙默认用户名admin,密码Admin@123,首次登录会提示修改密码。
接口和区域的配置顺序,我习惯先配IP、再划区域。以内网接口GE1/0/0为例:
[USG] interface GigabitEthernet1/0/0 [USG-GigabitEthernet1/0/0] ip address 192.168.1.254 255.255.255.0 [USG-GigabitEthernet1/0/0] service-manage ping permit [USG-GigabitEthernet1/0/0] quit [USG] firewall zone trust [USG-zone-trust] add interface GigabitEthernet1/0/0 [USG-zone-trust] quit这里有个小细节:service-manage ping permit的意思是允许这个接口响应Ping请求。默认情况下华为防火墙的接口是不允许ping的管理协议访问的,如果你不给接口开这个权限,就算接口IP配好了,内网PC也Ping不通防火墙这个地址,很多人会在这一步卡住。
同理,外网接口GE1/0/1也做同样的配置,只不过IP要换一个,并且划入untrust区域:
[USG] interface GigabitEthernet1/0/1 [USG-GigabitEthernet1/0/1] ip address 203.0.113.1 255.255.255.0 [USG-GigabitEthernet1/0/1] service-manage ping permit [USG-GigabitEthernet1/0/1] quit [USG] firewall zone untrust [USG-zone-untrust] add interface GigabitEthernet1/0/1 [USG-zone-untrust] quitIP地址这块我用了文档专用的203.0.113.0/24网段,做实验不会冲突,实际生产时换成你运营商给的公网地址或者在ensp里随便用一段私网地址做模拟也行。
配置完接口和区域后,可以先做一次连通性验证。在PC上Ping防火墙的内网接口地址192.168.1.254,通了就说明二层链路和接口管理权限都没问题。如果Ping不通,先查接口有没有UP,再查service-manage ping有没有开,这两个是最常见的坑。
3.3 安全策略与NAT配置
接口通了不代表业务能通。现在PC如果要访问外网的服务器,流量到了防火墙,发现Trust到Untrust默认是无策略拒绝的,所以还需要写安全策略。
前面我们已经写了trust到untrust的放行策略,命令就不再重复。这里补充一个细节:如果实验里你有多个内网网段,源地址可以写成多条,或者用any代替,但生产环境强烈建议用精确地址。写策略的时候可以在规则里依次添加多个source-address匹配项,防火墙会按照规则内部的与逻辑合并判断。
光有安全策略还不够。内网PC用的是私网地址,直接到公网路由是回不来的,必须做NAT。华为防火墙的NAT配置在nat-policy里,最简单的配置是Easy IP,直接使用出接口的公网地址做源地址转换:
[USG] nat-policy [USG-policy-nat] rule name outbound_nat [USG-policy-nat-rule-outbound_nat] source-zone trust [USG-policy-nat-rule-outbound_nat] destination-zone untrust [USG-policy-nat-rule-outbound_nat] action source-nat easy-ip [USG-policy-nat-rule-outbound_nat] quit [USG-policy-nat] quitEasy IP的好处是配置简单,不加地址池,直接用接口IP做NAT,适合只有一个公网出口的场景。如果公网地址是一段,可以用地址池做PAT,配置量也不大:
[USG] nat address-group 1 [USG-address-group-1] section 0 203.0.113.10 203.0.113.20 [USG-address-group-1] quit [USG] nat-policy [USG-policy-nat] rule name outbound_nat_pool [USG-policy-nat-rule-outbound_nat_pool] source-zone trust [USG-policy-nat-rule-outbound_nat_pool] destination-zone untrust [USG-policy-nat-rule-outbound_nat_pool] action source-nat address-group 1 [USG-policy-nat-rule-outbound_nat_pool] quit [USG-policy-nat] quitNAT配置完成后,需要在防火墙上查看一下会话确认转换是否生效。使用命令display firewall session table,如果看到会话里的转换后源地址是出接口的地址,说明NAT生效了。此时再从PC上Ping外网服务器,应该能通。
3.4 Web管理配置与日常维护
华为防火墙虽然主打命令行配置,但很多日常运维操作在Web界面上确实更直观,特别是策略查询、会话监控、日志审计这些模块。要在ensp里给USG6000V开启Web管理,需要在防火墙上做两步配置:
第一步是开启Web管理服务:
[USG] web-manager enable第二步是允许HTTPS流量访问防火墙的管理接口。因为Web管理走的是HTTPS协议,而防火墙默认是拒绝所有管理协议的,你得在管理接口上显式放行:
[USG] interface GigabitEthernet1/0/0 [USG-GigabitEthernet1/0/0] service-manage https permit [USG-GigabitEthernet1/0/0] quit然后浏览器输入https://192.168.1.254,就能进入Web登录界面了。第一次登录会提示证书不受信任,直接继续访问即可。
这里要注意一个常见坑:如果你在ensp里配置了Web登录,但是浏览器就是打不开页面,多半是service-manage https没开,或者你访问的接口本身没有加入任何区域——在华为防火墙上,服务管理权限是按接口开的,只有接口本身允许了https,Web流量才能进来。还有一个常被忽略的点:PC的浏览器地址要按接口的实际IP访问,别通过NAT后的公网地址访问内网管理地址,实验里没必要绕这个弯。
日常维护的话,常用的几个命令建议背下来:
display firewall session table # 查看当前会话表 display security-policy rule all # 查看所有安全策略 display nat-policy rule all # 查看所有NAT策略 display log session # 查看会话日志 reset firewall session table # 清空会话表其中display firewall session table是排障神器,不管问题是通还是不通,先看一眼会话表,能省掉一半的瞎猜时间。会话表里能看到完整的五元组和转换前后的地址信息,哪条流量有没有经过防火墙、有没有做NAT,一目了然。
4. 常见问题与排查技巧实录
4.1 策略写了却不生效的排查思路
这是所有防火墙排障里遇到最多的问题。业务侧很委屈:“策略明明写了,怎么还是不通?”每回我都按固定的套路查,基本都能找到原因。
第一步,确认流量走的区域对不对。我曾经遇到过最离谱的案例:现场工程师把两个接口都划到了Trust区域,然后写了一条trust到untrust的策略,当然永远不生效。因为流量根本就没跨区域。所以排障前先理清流量路径,A到B这个流量,入口在哪个区域,出口在哪个区域,写策略的方向对不对。
第二步,检查策略的匹配顺序。我在前面提过,华为防火墙的策略按顺序匹配,命中即停。如果你先写了一条大范围的拒绝规则,后面的允许规则永远不会被匹配。用display security-policy rule all查看规则顺序,确认你想要的那条规则没被前面的规则挡住,这是最容易被忽略却又最常见的问题。
第三步,用display firewall session table查看流量有没有到达防火墙。如果根本看不到会话,说明流量可能没有走到这台设备上,问题可能在交换机的VLAN或者路由指向。如果能看到会话且状态是active,但业务不通,那就需要进一步看NAT和路由回程的问题。
第四步,检查NAT是否导致回程路由异常。防火墙NAT后会将会话记录下来,正常情况下回包没问题。但如果NAT策略配置不对,比如源NAT转换后源地址是某个不可路由的地址,回包自然到不了。这种问题从会话表里能看出端倪——转换后的源地址如果不正常,十有八九是NAT策略的问题。
4.2 防火墙“学习不到路由”的排查
很多人在ensp里做实验时发现,防火墙配了OSPF或者静态路由,但display ip routing-table就是学不到路由,或者学到路由却Ping不通。这个问题要分几种情况。
如果防火墙跑的是OSPF动态路由,先看邻居状态是否正常。OSPF邻居建立不起来的常见原因有三个:一是接口没加入正确的安全区域,导致OSPF报文被防火墙策略拦截;二是网络上有人写了策略把OSPF协议(协议号89)给deny了;三是接口的类型、区域ID、认证参数不对。
这里重点说一下安全策略对OSPF的影响。很多新手写了安全策略只放行了某些协议的端口,比如TCP 80、UDP 53,忘了OSPF用的是IP协议号89,也没放行。华为防火墙放行OSPF其实有两种方式:一是直接在安全策略里写一条允许source-zone和destination-zone之间协议为OSPF的规则;二是因为同区域内部默认放行,把OSPF邻居接口放到同一个区域。后者是更常见的做法——防火墙的物理接口跑OSPF,建议把互联接口都划入同一区域,或者采用默认放行区域内部规则,避免额外处理协议放行的问题。
如果防火墙学不到静态路由,那就要查路由本身有没有写错、出接口有没有UP、下一跳能不能到达。华为防火墙和路由器在路由表上的查看命令完全一致,默认路由配置如下:
[USG] ip route-static 0.0.0.0 0 203.0.113.254这个意思是默认路由下一跳指向203.0.113.254。配置之后用display ip routing-table确认路由表里有这条默认路由。
还有一个很常见的问题:防火墙学到路由了但Ping不通。这种问题通常不在路由,而在区域策略。记住,防火墙是状态检测设备,即使路由表正确,区域间没有策略照样不通。
4.3 规则库更新失败与License的问题
华为USG防火墙的入侵防御、URL过滤等功能依赖特征库,规则库能不能更新、更新成不成功,直接影响安全效果。现场经常碰到“规则库更新不了”的情况,原因千奇百怪,我总结了几个重点排查方向。
License问题排在第一位。华为防火墙的很多安全特性,比如入侵防御、防病毒,都是需要购买License授权的。License过期或者根本没激活,界面上就会显示规则库不能升级或者升级失败。用display license查看授权信息,确认相关特性处于有效状态。
网络连通性是第二位。防火墙更新规则库需要能访问华为的升级服务器,如果防火墙本身出不了外网,或者DNS解析不了更新服务器的域名,自然更新失败。在防火墙命令行或者Web管理界面里测试到更新服务器的连通性,一般问题就出在这里。有些政企内网做了严格的策略管控,更新流量被中途拦截,这种问题比较隐蔽,需要看中间设备的日志。
还有一种情况是系统时间不对。升级服务器在做HTTPS校验时会检查防火墙的系统时间,如果防火墙时间严重偏离当前时间,握手会直接失败。命令是clock datetime,设完时间再试一次升级,这个细节很多人忽略。
4.4 透明模式与旁挂部署的问题
热词里提到了透明模式,这是防火墙里一个很有代表性的工作模式。华为防火墙默认工作在路由模式,也就是每个接口需要配IP,防火墙扮演三层设备的角色。透明模式则不同,防火墙像一个“智能网线”,工作在二层,接口不配IP,直接透传业务流量,用桥组来承载转发逻辑。
很多人会在柔性需求或者设备改造中用到透明模式,因为它不改变原有网络结构,不需要把原来的路由器换掉,串在链路上就能用。透明模式下有一个大家经常问的问题:防火墙端口还能不能配IP?答案是接口本身不能直接配IP,透明模式的接口是通过创建Bridge-if逻辑接口来管理转发和管理的,管理IP配在Bridge-if上,不能配在物理接口上。物理接口只需要加入桥组,就像交换机端口加入VLAN一样。
透明模式的基本开法:
[USG] firewall mode transparent [USG] bridge-group 1 [USG-bridge-group-1] add interface GigabitEthernet1/0/0 [USG-bridge-group-1] add interface GigabitEthernet1/0/1 [USG-bridge-group-1] quit [USG] interface Bridge-if 1 [USG-Bridge-if1] ip address 10.0.0.1 255.255.255.0 [USG-Bridge-if1] quit透明模式下,安全区域的概念依然有效。GE1/0/0划入Trust区域、GE1/0/1划入Untrust区域,业务流量从这两个区域穿过时,依然要受安全策略检测。这也就是透明模式的最大价值所在:网络拓扑不变,但是边界安全能力被完整地插入了。
再说旁挂部署。旁挂分两种:一种是旁路流量分析,防火墙只做镜像流量检测;另一种是旁路+策略路由,核心交换机用策略路由把特定流量引到防火墙上处理,处理完再送回来。后一种部署方式会在核心交换机上配置策略路由或者VRF路由重定向,很多人在这一步搞不清楚。
有人问“核心这边配置vrf吗”,其实要看你的整体设计。如果核心交换机用策略路由引流,通常不需要配置VRF,策略路由本身就能完成“把流量扔给防火墙”的动作。如果在数据中心里做了多租户隔离、每个业务一个VRF,那是另一种复杂场景,防火墙也要对应配置虚拟防火墙或VRF路由实例才能配合。这个属于进阶内容,新手先从策略路由的方式入门就好,配置思路是:核心交换机的需要过滤的流量下一跳指向防火墙的接口,防火墙处理后再通过路由发回核心交换机,在防火墙上要保证回程路由和策略同时放行。
4.5 常见问题速查表
为了方便你直接检索问题,我把实际项目里高频遇到的故障整理成了一张速查表。这并不是手把手教学的全部,但可以作为网络维护少走弯路的参考清单:
| 问题现象 | 可能原因 | 排查命令/方法 | 解决办法 |
|---|---|---|---|
| 内网Ping不通防火墙接口 | 接口service-manage未放行ping | display current-configuration interface | 接口下配置service-manage ping permit |
| 策略写了但不生效 | 策略顺序错误、区域方向搞反 | display security-policy rule all | 调整策略顺序,确认源目区域 |
| 内网能上网但某些应用连接中断 | 会话老化时间过短 | display firewall session table | 调整会话老化时间或使用长连接保活 |
| OSPF邻居建立不起来 | 接口区域错误或OSPF报文被拦截 | display ospf peer | 把互联接口划入同一安全区域 |
| NAT转换后业务不通 | 回程路由异常、NAT地址池错误 | display firewall session table | 检查NAT策略流程、回程路由 |
| 防火墙Web管理页面打不开 | service-manage https未开启 | display current-configuration interface | 接口下配置service-manage https permit |
| 规则库升级失败 | License失效、时间不对、网络不通 | display license、display clock | 激活License、同步时间、测试到公共网络连通性 |
| 透明模式下配置IP失败 | 物理接口不支持直接配IP | 查看接口配置 | 配置Bridge-if管理IP,物理接口加入桥组 |
这张表看着简单,却是我反复踩了多年坑之后沉淀的经验。遇到问题先查表,基本能命中百分之八十。
4.6 关于黑白名单的配置
热词里提到了黑白名单,这在华为防火墙里通常有两种用法:一种是接口层面的包过滤黑白名单,在接口的traffic-filter里配置ACL;另一种是安全策略里用source-address做黑白名单控制。实际项目中,黑白名单更多用在安全策略里配合。
比如你现在想屏蔽某个恶意IP访问内部的服务器,直接在安全策略里加一条规则,源地址是那个恶意IP,动作是deny,放在策略列表最前面,其他流量按原规则走。这就是传统的黑名单模式。白名单则相反,先deny所有,再针对可信IP放行。
配置黑白名单要注意策略顺序。前面讲了策略按顺序匹配,所以黑名单规则必须放在所有匹配该IP的放行规则的前面。我用过的一个技巧是:把黑名单统一放在策略列表的顶部,并做好命名规范,比如blocklist_ip1、blocklist_ip2,方便后续维护。等恶意IP封禁周期结束,直接删掉对应规则即可,不用影响其他策略。这个习惯在攻防演练、爆发安全事件的时候尤其好用,能快速止血。
如果你需要做应用层面的黑白名单,比如封禁某个域名或URL,那需要配置URL过滤或者自定义应用识别,涉及的特征库和License就更多了。基础场景下,基于IP的黑白名单已经能挡住大部分问题。
4.7 配置管理的一些经验技巧
再补充一些配置层面的小技巧。华为防火墙支持批量配置,比如一次性把多个接口划入区域,不需要一条条敲:
[USG] firewall zone trust [USG-zone-trust] add interface GigabitEthernet1/0/0 [USG-zone-trust] add interface GigabitEthernet1/0/1 [USG-zone-trust] add interface GigabitEthernet1/0/2 [USG-zone-trust] quit加完接口用display zone确认。每个接口到底在哪个区域,这个命令显示得清清楚楚,别靠记忆,靠命令说话。
还有安全策略的命名。我见过很多现场的策略名是rule1、rule2、rule3这种没有意义的命名,等到两百条策略的时候,排查起来简直灾难。建议命名带上场景和编号,比如trust_2_untrust_pc_web或者deny_blocklist_ip_20240115。好的命名能让后续维护的人感谢你十八辈祖宗——在真实项目里,这个优势尤其明显。
保存配置也是一样,华为防火墙改了配置后要执行save命令,否则设备重启后配置全丢。ensp里更是这样,做实验半路忘了保存,结果拓扑一关配置没了,这种苦头我吃过不止一次。
最后再分享一个我在实际使用中养成的小习惯:每次做策略变更时,先备份一份当前的配置文件。华为防火墙执行display current-configuration,把输出存成文本文件,保留现场。一旦出现问题,拿文本回溯,能很快定位是自己改的哪条命令导致的。这个习惯让我少挨了很多次半夜两点半的加班电话。