简介这是一份面向华为网络设备初学者与防火墙配置入门者的实验指导PDF以USG5500防火墙为核心演示典型内外网互联场景下的基础配置流程。文档先从实验拓扑讲起明确内网192.168.0.0/24与外网192.168.1.0/24的地址规划随后给出AR1、AR2路由器默认路由及Telnet远程登录的配置命令防火墙部分则进一步展示接口IP分配、自定义安全区域inside/outside、优先级设置、区域接口绑定以及默认策略过滤规则的查看与理解覆盖了防火墙基础配置的主干环节。命令步骤完整、层级清晰适合在eNSP模拟器或真实设备上边看边练也可作为HCIA/HCIP认证备考、课程实验报告或日常运维排错的速查资料从路由到安全区域实验设计环环相扣读者可逐步验证配置效果。包体为1个PDF文件大小约113KB内容精炼无冗余。该文档已有4737人学习/下载对快速掌握华为防火墙基础配置很有帮助。1. 华为USG5500防火墙配置实验从信任区到外部区域的策略链路最近整理实验环境时翻到这份华为USG5500防火墙配置实验PDF拓扑不复杂一台防火墙串在内外网路由器中间但把安全区域、域间策略、默认包过滤和会话状态这几块全串起来了。实验做完有个很直接的感觉USG的策略不是“配一条就通”而是区域方向、默认deny和具体策略三条线同时决定的顺序错一步Telnet就卡在半路。这份资料适合刚接触华为防火墙、准备HCIE或华为数通认证的人也适合习惯H3C或锐捷、想切换到华为命令行的人。下面按我实际复现的顺序拆一遍命令逐条过坑也逐条记。2. 区域划分先行接口归属与安全优先级决定策略方向2.1 实验拓扑与地址规划这个实验的网络规模很小内网一侧是路由器AR1外网一侧是路由器AR2防火墙FW1串在中间做安全隔离。内网网段192.168.0.0/24外网网段192.168.1.0/24两台路由器各开Telnet最后在防火墙上做域间策略放行。设备接口IP地址区域归属AR1g0/0/0192.168.0.150/24内网trust侧AR2g0/0/0192.168.1.150/24外网outside侧FW1g0/0/0192.168.0.1/24trust默认FW1g0/0/1192.168.1.1/24outside自定义加入拓扑关系是AR1直连防火墙g0/0/0AR2直连防火墙g0/0/1两台路由器的默认路由下一跳都指向防火墙接口防火墙自己两个口都是直连不需要额外写静态路由。这个设计很典型把防火墙当作内外网之间的唯一通道后面验证会话状态时路径非常清晰。2.2 路由器侧Telnet准备先看AR1配置基础地址和默认路由然后开Telnet。这段命令不复杂但认证方式和用户等级直接影响后续从防火墙侧登录测试的结果。Huaweisystem-view [Huawei]sysname AR1 [AR1]interface g0/0/0 [AR1-GigabitEthernet0/0/0]ip address 192.168.0.150 24 [AR1-GigabitEthernet0/0/0]quit [AR1]ip route-static 0.0.0.0 0.0.0.0 192.168.0.1 [AR1]user-interface vty 0 4 [AR1-ui-vty0-4]authentication-mode password [AR1-ui-vty0-4]set authentication password cipher 888 [AR1-ui-vty0-4]user privilege level 3 [AR1-ui-vty0-4]quitip route-static 0.0.0.0 0.0.0.0 192.168.0.1是默认路由下一跳是防火墙的g0/0/0外网流量全都交给防火墙转发。user-interface vty 0 4开启5条远程登录虚拟线路认证方式用password密码888用户等级3。等级3在华为设备里已经具备管理权限实验里后面要用Telnet验证跨域流量等级太低进不了系统视图测试就没法继续。AR2的配置除了IP地址不同其余思路完全一致密码改成666。这里有个等价写法authentication-mode password回车后系统会提示输入密码也可以直接用set authentication password cipher 666一步到位后者适合在脚本里批量下发避免交互式输入带来的不确定性。2.3 防火墙接口与区域定义防火墙启动后默认在SRG提示符下先进入系统视图改设备名再配两个接口的地址。SRGsystem-view [SRG]sysname FW1 [FW1]interface g0/0/0 [FW1-GigabitEthernet0/0/0]ip address 192.168.0.1 24 Warning: Address already exists! [FW1-GigabitEthernet0/0/0]quit [FW1]interface g0/0/1 [FW1-GigabitEthernet0/0/1]ip address 192.168.1.1 24 [FW1-GigabitEthernet0/0/1]quit给g0/0/0配地址时弹出Warning: Address already exists!这是因为USG5500出厂默认trust口已经预置了192.168.0.1不是配置冲突不用管它。但这里暴露了一个问题既然g0/0/0默认就在trust区域且地址已存在实验里创建的inside区域到底起了什么作用后面第4章细说。接下来用display zone看一下当前区域结构再创建自定义区域。[FW1]display zone local priority is 100 trust priority is 85 interface of the zone is (1): GigabitEthernet0/0/0 untrust priority is 5 interface of the zone is (0): dmz priority is 50 interface of the zone is (0):默认情况下g0/0/0已经挂在了trust区域里untrust和dmz都还没有接口。USG5500出厂的安全区域分得很清楚local、trust、untrust、dmz优先级分别是100、85、5、50。实验里要自定义outside和inside两个区域本质上是给这两个新区域设定中间优先级。[FW1]firewall zone name outside [FW1-zone-outside]set priority 30 [FW1-zone-outside]quit [FW1]firewall zone name inside [FW1-zone-inside]set priority 90 [FW1-zone-inside]quit [FW1]firewall zone outside [FW1-zone-outside]add interface GigabitEthernet 0/0/1 [FW1-zone-outside]display this # firewall zone name outside set priority 30 add interface GigabitEthernet0/0/1 #outside区域优先级30inside区域优先级90。优先级数值越大代表安全等级越高流量从低优先级区域往高优先级区域走属于inbound方向从高往低属于outbound方向。这里要特别注意实验里只把g0/0/1加进了outside区域g0/0/0仍然留在默认的trust区域inside区域创建后没有接口加入。也就是说后面配置策略时实际生效的区域对是trust和outside而不是inside和outside。2.4 区域优先级与接口归属set priority设置的是区域的安全等级USG5500的默认逻辑是等级高的区域访问等级低的区域流量方向算outbound反过来低等级访问高等级算inbound。这个方向定义直接决定策略命令里的最后一对关键字也是最容易配反的地方。这个实验里trust优先级85outside优先级30内网路由器访问外网路由器就是从trust往outside方向属于outbound。如果当时把g0/0/0划进了inside区域优先级90后面所有策略就都要写成inside到outside命令视图完全不同。可惜实验里创建了inside却没把接口迁进去这是模拟器上很典型的一种半截配置新手照敲时如果不看display zone很容易以为策略里应该写inside。接口加入区域的命令是add interface GigabitEthernet 0/0/1必须在firewall zone outside视图下执行。配完后用display this可以确认当前区域的配置完整包括优先级和接口列表。养成配完一个区域就display this的习惯后面排查接口归属问题会省很多时间。3. 放行trust到outside的outbound策略命令逐条拆解3.1 默认域间包过滤规则USG5500区域建好之后区域之间的默认包过滤策略是deny。用display policy all能看到所有区域间的默认规则这里截取与本次实验相关的部分策略方向默认动作说明local → trust inbounddeny外部访问防火墙自身被拒绝local → trust outboundpermit防火墙主动访问trust被允许trust → untrust inbounddenyuntrust访问trust被拒绝trust → untrust outbounddenytrust访问untrust也被拒绝trust → outside inbounddeny实验里自定义区域同样denytrust → outside outbounddeny放行前默认拒绝注意一个反直觉的地方trust到untrust的outbound默认也是deny。也就是说即使接口都在正确的区域里没有策略的情况下内网路由器Telnet外网路由器照样不通。很多人以为防火墙默认放行高优先级区域访问低优先级区域在USG上不是这样域间包过滤默认全deny只有local区域有部分例外。3.2 创建outbound策略实验的核心操作是在trust和outside之间放行outbound流量命令如下[FW1]policy interzone trust outside outbound [FW1-policy-interzone-trust-outside-outbound]policy 1 [FW1-policy-interzone-trust-outside-outbound-1]policy source 192.168.0.150 0 [FW1-policy-interzone-trust-outside-outbound-1]policy destination any [FW1-policy-interzone-trust-outside-outbound-1]policy service service-set ip [FW1-policy-interzone-trust-outside-outbound-1]action permit [FW1-policy-interzone-trust-outside-outbound-1]quit进入策略视图的命令格式是policy interzone 区域A 区域B 方向这里方向outbound是相对trust区域而言的意思是trust区域出去的流量。policy 1是策略序号同方向下可以多条策略按序号从小到大匹配。policy source指定源地址192.168.0.150 0里的0是反掩码表示精确匹配这一台主机如果要匹配整个内网网段要写成192.168.0.0 mask 255.255.255.0。policy destination any放行任意目的地址action permit最终动作是允许。配完用display policy interzone trust outside outbound查看结果能看到策略的完整内容。这时候要注意一个细节实验的display输出里出现了两条源地址条目一条是policy source 192.168.0.0 mask 255.255.255.0一条是policy source 192.168.0.150 0说明实际配置时既输出了网段又输出了单主机。USG允许策略里同时存在网段和主机两类源地址匹配条件匹配顺序没有先后之分只要命中任意一条就算匹配。3.3 源地址的两种写法华为防火墙策略里policy source参数有两种常见写法实验里都出现了policy source 192.168.0.150 0反掩码0表示精确匹配主机地址实际含义等价于255.255.255.255policy source 192.168.0.0 mask 255.255.255.0显式指定网段掩码匹配整个内网我在实际配置中更推荐写网段因为实验环境只有一台路由器放行单主机没问题真实网络里内网PC、服务器都在这条链路上只放行一台主机会导致其他内网设备访问外网全部被deny。如果实验目的是验证策略匹配逻辑单主机写法更直观如果模拟真实办公网建议改用网段写法。policy service service-set ip表示匹配所有IP报文实验里没有显式指定服务类型默认就是全部IP协议。这个参数在后面第5章反向Telnet实验里会有变化到时指定service-set telnet只放行23端口。3.4 default permit临时开关与恢复实验里在配完策略之后还做了一次firewall packet-filter default permit interzone trust outside操作把trust到outside的默认包过滤临时改成了permit然后马上又用firewall packet-filter default deny interzone trust outside恢复成deny。[FW1]firewall packet-filter default permit interzone trust outside Warning:Setting the default packet filtering to permit poses security risks. Are you sure you want to continue?[Y/N]y [FW1]firewall packet-filter default deny interzone trust outside这个操作在模拟器上验证“默认策略和精确策略谁的优先级高”很有效。permit状态下即使不配置policy 1流量也能通恢复deny后只有精确策略生效。实际生产环境不建议碰default permit这个开关系统弹出的安全警告不是吓唬人全放行状态的防火墙等同于没有防火墙。实验环境为了展示效果可以临时开一下但一定要记得恢复deny否则后续实验的验证结果全都会被默认permit污染。4. 防火墙配置避坑指南区域、方向与策略命中的五个坑4.1 现象创建了inside区域但策略里根本用不到按实验步骤走到最后display policy all里完全看不到inside相关的策略条目所有策略都在trust和outside之间inside区域仿佛不存在。原因USG5500接口默认归属是固定的g0/0/0出厂就在trust区域。实验里创建inside区域并设置了优先级90但没有把任何接口通过add interface加进去。策略是基于接口所属区域来匹配的接口不在inside区域策略自然就不会出现在inside相关的方向下。解决做区域规划时先用display zone确认每个接口当前的归属再决定策略方向。如果你想用inside这个区域必须先把g0/0/0从trust里移除或者直接把它加进inside区域而USG里移除接口要执行undo add interface GigabitEthernet 0/0/0不是简单换个区域名就能生效。4.2 现象给接口配IP提示Address already exists给FW1的g0/0/0配192.168.0.1时系统弹出Warning: Address already exists!看起来很吓人但配置其实没有失败。原因USG5500模拟器的trust口出厂预置了这个地址和网段配置属于默认配置的一部分。解决先用display current-configuration确认现有配置里的地址是否和自己要配的一致。一致就直接跳过不一致才需要undo ip address后重新配。模拟器上这个警告频繁出现不用每次都较真。4.3 现象策略配置正确Telnet还是不通策略显示0 times matcheddisplay policy interzone trust outside outbound里能看到policy 1 (0 times matched)说明策略存在但没有任何流量命中。原因分三种情况。第一测试流量用的源地址不在策略source范围内比如策略里写的是192.168.0.150测试时用了别的内网设备第二接口实际归属的区域和策略方向不一致比如g0/0/0其实不在trust区域第三流量压根没到达防火墙路由器侧的默认路由没指过来。解决优先查display zone确认接口归属再看display firewall session table里有没有会话记录。如果会话表里连一条都没有说明流量没到防火墙问题在路由器侧如果会话表里有记录且状态正常才需要回头检查策略的source匹配范围。4.4 现象命令行缩写导致串环境实验记录里大量出现poli、dis、ac这类缩写华为命令行支持Tab补全但缩写补全有歧义。比如poli可能补成policy也可能补成policy-interzone输入dis可能是display也可能是display this。两台设备同时开着的时候最容易把AR1的命令敲到AR2上。原因华为VRP的缩写机制按前缀匹配前缀同时匹配多条命令时不会自动补全需要继续输入。如果直接回车系统可能执行了完全不同的命令比如ac补全成action还是acl取决于当前视图。解决每个视图输入完成后用display this看一眼当前视图路径确认自己在哪台设备、哪个视图下。关键配置尽量写完整命令别赌Tab补全。另外用sysname区分两台设备AR1和AR2的提示符完全不同操作前瞄一眼提示符是成本最低的防呆手段。4.5 现象default permit改完没恢复后续实验全被污染实验里执行了firewall packet-filter default permit interzone trust outside之后如果忘了恢复deny后面无论配什么策略trust到outside的流量都默认放行。此时测试反向Telnet即使不配inbound策略也能通实验数据全部失真。原因default permit的优先级低于精确策略但它会影响所有未被策略覆盖的流量。后续实验如果新增了新的源或目的组合这些流量会直接命中默认permit而不是走你预期的策略逻辑。解决每次临时放开默认包过滤后必须立即在配置里确认恢复结果。我一般会执行display policy interzone trust outside outbound看最后一行状态是permit还是deny。恢复deny的命令是firewall packet-filter default deny interzone trust outside注意这里没有Y/N确认执行完要自己display确认。5. 反向场景放行外网Telnet到内网路由器的inbound策略5.1 需求分析与方向判断前面放通了内网访问外网实验的最后一部分是反方向允许外网路由器AR2192.168.1.150Telnet到内网路由器AR1192.168.0.150。这个需求在真实网络里对应的是远程运维场景比如出差在外的人员想从公网管理内网设备。先判断方向。流量从outside区域发起目的地是trust区域里的设备对trust区域来说是inbound方向对外部区域来说是进向流量。所以策略要写在policy interzone trust outside inbound视图下。注意这里的前两个区域写的是trust outsideinbound是相对trust而言的表示进入trust。华为USG5500在模拟器上的这种区域写法不太符合字面直觉很容易配反这是这个实验最容易踩坑的地方。5.2 策略配置命令命令如下[FW1]policy interzone trust outside inbound [FW1-policy-interzone-trust-outside-inbound]policy 1 [FW1-policy-interzone-trust-outside-inbound-1]policy source 192.168.1.150 0 [FW1-policy-interzone-trust-outside-inbound-1]policy destination 192.168.0.150 0 [FW1-policy-interzone-trust-outside-inbound-1]policy service service-set telnet [FW1-policy-interzone-trust-outside-inbound-1]action permit和前面的outbound策略相比这个配置的关键差异体现在三处源地址换成了outside侧的192.168.1.150目的地址精确指定了内网路由器192.168.0.150服务类型从默认的ip改成了service-set telnet。service-set telnet限定了只有23端口的流量能被放行比policy service service-set ip收敛得多符合最小化放行的思路。5.3 视图命名里的方向逻辑理解policy interzone trust outside inbound这个视图名是关键。表面看trust outside像是从trust到outside但inbound方向词在这里修饰的是第一个区域trust。实际语义是在trust和outside两个区域之间匹配进入trust方向的流量。流量从outside的AR2发往trust的AR1源地址是外网地址目的地址是内网地址正好命中这个视图。我之前在这个位置翻过车想放行外网访问内网下意识选了policy interzone outside trust outbound结果策略一直不生效。因为USG5500上域间策略的区域对没有方向性两个区域人谁前谁后决定了inbound/outbound的相对对象。习惯写法是policy interzone trust outside inbound表示进入trust方向的流量这和很多其他厂商防火墙“先写源区域再写目的区域”的直觉完全不同。配置完最好用display policy interzone trust outside inbound核对一下。5.4 放通前后对比验证配置完成后从AR2上执行telnet 192.168.0.150如果能看到登录提示并输入密码888说明策略生效。这个实验里AR1的Telnet服务是开着的vty 0 4下认证方式是password所以只要防火墙放行登录链路就通。验证时不只要看登录是否成功还要在防火墙上确认策略的命中情况。执行display policy interzone trust outside inbound如果策略显示policy 1 (X times matched)且X从0变成大于0说明这条策略确实被流量命中。如果X始终是0但Telnet能通就要怀疑是不是别的策略或默认规则放行了优先级顺序可能和你预期的不一样。6. 验证不止display policy从会话表确认流量真正穿过防火墙实验里Telnet通了之后用display firewall session table verbose查看会话状态这块信息比单纯看策略命中更接近流量的真实路径。[FW1]display firewall session table verbose Current Total Sessions : 2 telnet VPN:public -- public Zone: trust--outside TTL: 00:10:00 Left: 00:09:55 Interface: GigabitEthernet0/0/1 NextHop: 192.168.1.150 MAC: 00-e0-fc-7a-0b-5a --packets:16 bytes:725 --packets:17 bytes:726 192.168.0.150:49957--192.168.1.150:23会话表里的字段很有用。Zone: trust--outside确认了流量的区域走向和策略方向一致Interface: GigabitEthernet0/0/1说明出接口是防火墙接外网的接口NextHop: 192.168.1.150是外网路由器AR2的地址192.168.0.150:49957--192.168.1.150:23是完整的五元组信息源端口是49152以上的动态端口目的端口23是Telnet。验证时我会按固定顺序检查先看display policy interzone里策略的匹配次数再看display firewall session table verbose里的会话条目。如果策略匹配次数是0但会话表里没有建立连接问题出在流量根本没到防火墙如果会话表里有两三条同样的Telnet会话说明之前反复测试的旧会话还没老化不影响验证结果但会在文件里留下干扰项。还有一个值得养成习惯的操作改动策略前后先通过reset firewall session清空已有会话再重新发起Telnet测试。这样会话表里新出现的条目一定对应的是刚放行的流量而不是之前残留的旧会话。从那以后我每次配完华为防火墙的域间策略都会强制走一遍“display zone确认接口归属、reset firewall session清空会话、重新测试、display policy interzone看匹配次数”的流程这四步下来策略有没有问题基本一眼就能定位。希望帮到你。本文还有配套的精品资源点击获取