eNSP USG6000V防火墙入门:安全区域、安全策略与NAT实验指南
1. 为什么选 eNSP 做防火墙入门实验刚接触网络安全的同学十有八九是从 eNSP 里那台 USG6000V 开始的。原因很直接真机防火墙动辄几千上万实验室里排不上队而 eNSP 里这台虚拟防火墙几乎把华为 USG 系列的核心逻辑完整搬了过来——安全区域、安全策略、NAT、ASPF、双机热备该有的都有还不用花一分钱。你只要有一台能跑虚拟化的 Windows 电脑装好 eNSP 和配套的 VirtualBox、Wireshark就能在本地搭出一套“路由器交换机防火墙”的完整拓扑随便折腾。但真上手之后你很快会发现eNSP 里的防火墙和路由器、交换机完全不是一回事。路由器和交换机开机就能敲命令防火墙开机先给你一屏####连用户名密码都要自己设Web 界面还默认打不开。很多人卡在第一步设备起来了命令行进去了结果 PC 就是 ping 不通。其实这恰恰是防火墙在“正常工作”——它默认什么都不让过。理解了这一点后面的安全区域、安全策略就都好说了。这篇内容我打算把 eNSP 防火墙的基本操作从头到尾捋一遍设备怎么起、账号怎么设、Web 怎么开、接口怎么划区域、安全策略怎么写、NAT 怎么做、最后怎么用 PC 验证。适合刚学完路由交换、想往安全方向迈一步的人也适合做毕业设计需要搭安全拓扑的同学。里面会穿插不少我踩过的坑比如 USG6000V 一直井号怎么办、导入镜像报格式错误怎么解、启动设备 AR1 失败 40 是什么原因这些热词里反复出现的问题我都会给出实测可用的处理办法。2. 实验环境搭建与设备准备2.1 eNSP、VirtualBox 与镜像的版本搭配环境这一步千万别随便下最新版就往一起凑eNSP 对 VirtualBox 版本相当挑剔。我的经验是eNSP 用 1.3.00.100 这一代比较稳VirtualBox 用 5.2.x 系列两者匹配度最高。VirtualBox 6.x 有些版本会导致 USG6000V 起来后一直刷####6.1 之后的版本问题更多。如果你已经装了高版本最省事的做法是卸干净、清注册表、重启再装 5.2.44 这种经典版本。USG6000V 的镜像包一般是分卷压缩的文件名类似USG6000V.zip加几个.z01、.z02分卷。解压的时候要一次性全部选上一起解只解主包会得到一个不完整的.vdi导入 eNSP 时就会报“格式错误”。这也是热词里“ensp 导入防火墙 报格式错误”最常见的成因。解压后你会拿到一个.vdi磁盘文件和一堆配置说明把这个.vdi放到 eNSP 安装目录下的vfw或者你自定义的镜像目录里再在 eNSP 的“菜单—工具—注册设备”里把它注册进去。注意注册设备前先把 eNSP 完全关掉。注册过程中 eNSP 会去调 VirtualBox 的接口如果 eNSP 本身开着注册经常失败或者注册完了设备列表里还是灰的。2.2 拓扑设计与连线逻辑入门阶段拓扑不用复杂四样东西足够一台 USG6000V 防火墙、一台路由器AR2220 就行、一台二层交换机、一或两台 PC。接线逻辑是这样的PC 接到交换机的接入端口交换机上行接到防火墙的某个内网口防火墙的另一个口接路由器路由器再模拟外网。这样你就有了内网、防火墙、外网三段结构能完整演示安全区域和策略。防火墙的接口名字很有讲究。USG6000V 默认有GE0/0/0到GE0/0/5这几个千兆口其中GE1/0/0有时候也叫GE0/0/0具体看你镜像版本。刚开机这些口都是二层交换口状态属于Trust还是Untrust取决于默认配置。要当三层口用必须先undo portswitch把它从二层切到三层否则你ip address根本敲不进去。这个细节很多教程一句带过新手照着做发现命令报错就是卡在这。PC 的配置也顺手说一下。用 eNSP 自带的 PC 就行双击进去设 IP、掩码、网关。内网 PC 网关指向防火墙内网口地址外网路由器可以配一个 Loopback 模拟公网服务器地址方便后面做 NAT 验证。2.3 设备启动顺序与常见启动故障启动顺序建议先起交换机、路由器最后起防火墙。防火墙最吃资源最后起能避免前面设备抢虚拟化资源导致启动超时。USG6000V 启动后如果一直显示####通常有三种原因镜像不完整或没注册好重建注册一次。VirtualBox 版本不兼容换 5.2.x。主机内存不够USG6000V 默认要 2GB 内存加上 eNSP 本身和其它设备8GB 内存的机器勉强够16GB 才舒服。热词里“ensp 启动设备 ar1 失败 40”和“ensp 路由器启动失败 40”是另一类问题通常是 AR 设备的镜像没注册成功或者 VirtualBox 里 AR 的虚拟机被占用。解决办法是关掉 eNSP去 VirtualBox 里把残留的虚拟机删掉再重新注册 AR 设备。有时候是 Windows 的 Hyper-V 和 VirtualBox 冲突可以在“启用或关闭 Windows 功能”里把 Hyper-V 关掉或者用bcdedit /set hypervisorlaunchtype off关闭虚拟化平台重启后再试。3. USG6000V 首次登录与 Web 管理开启3.1 命令行首次登录与密码设置设备起来后双击进命令行会看到一连串####刷过去最后停下来让你输用户名密码。首次登录默认是admin密码也是admin但 USG6000V 出于安全考虑会强制你改密码而且密码复杂度要求不低至少 8 位包含大小写字母和数字。改完之后会提示你保存一路Y过去就行。这里有个小坑改密码时如果连着输错或者中途断掉设备可能进入一个“首次登录未完成”的状态再进来还是让你改。真遇到这种最干脆的办法是在 eNSP 里右键设备“停止”重新启动重新走一遍首次登录。别去想着改配置文件入门阶段没必要。首次登录完成后你会进入用户视图提示符是USG6000V。防火墙的命令行体系和路由器基本一致但还是有几个防火墙独有的东西需要先认识firewall zone用来管理安全区域security-policy用来写策略display firewall session table看会话表。这几个命令是防火墙的灵魂后面会逐个展开。3.2 开启 Web 管理界面的完整步骤命令行虽然强大但入门阶段用 Web 界面理解防火墙更直观尤其是看区域、看策略、看会话。USG6000V 默认 Web 是关的得手动开。完整步骤如下第一步给管理口配 IP。接管理口的那个物理口需要先切三层system-view interface GigabitEthernet 1/0/0 undo portswitch ip address 192.168.0.1 24 quit第二步把管理口划到 Trust 区域和管理 PC 同网段PC 直连或接交换机都行firewall zone trust add interface GigabitEthernet 1/0/0 quit第三步开启 Web 服务并放行http server enable http server port 8443端口用 8443 是习惯也可以用默认的 80但 80 在某些电脑上会被其它服务占用。改完端口记得后面访问时带上端口号。第四步写安全策略放行管理流量。这一步新手最容易漏。防火墙默认策略是 deny你就算开了 Web 服务没有策略照样访问不了。security-policy rule name allow_mgmt source-zone trust destination-zone local action permit第五步浏览器访问https://192.168.0.1:8443用admin和你刚设的密码登录。第一次会有证书警告点“继续”即可。注意destination-zone local这个区域代表防火墙本身。所有访问防火墙自身业务Web、SSH、SNMP的流量目标区域都是 local别写成 trust。这个点上很多人绕不明白写错了策略看着配了却不生效。3.3 管理口访问不通的三类排查配置都敲了浏览器还是打不开按这三类查第一类物理层。PC 的 IP 是不是配在跟192.168.0.1同网段网线是不是连到GE1/0/0用display interface brief看接口是不是 UP。第二类区域和策略。display firewall zone看接口是不是在 trust 里display security-policy rule all看策略有没有生效。注意策略还有enable状态有些版本配完规则默认是 disable要手动enable。第三类服务本身。display http server看 Web 服务有没有起来端口对不对。如果http server enable报错可能是端口被占或者服务没授权换个端口试试。我自己实测下来90% 的“Web 打不开”都是策略里 destination-zone 写错剩下 10% 是接口没切三层或者没划区域。把这两点记住基本不会再卡。4. 安全区域划分与接口配置4.1 理解安全区域这个核心概念防火墙和路由器最大的区别就是它不看“从哪个口进、从哪个口出”而是看“从哪个区域进、到哪个区域去”。安全区域是一组接口的逻辑集合同一个区域内流量默认互通也可以配成不互通跨区域流量必须过策略。这个设计的好处是你管理策略时不用关心具体物理口只看区域关系。USG6000V 默认有四个内置区域区域名默认信任级别典型用途Trust85内网、办公网Untrust5互联网、外网DMZ50对外提供服务的服务器区Local100防火墙自身信任级别是个 1 到 100 的数字级别高的区域访问级别低的区域在早期版本里有“默认放行”的趋势。现在主流版本都统一改成显式策略控制了但理解信任级别对后面做区域间策略顺序、以及判断流量方向依然有用。比如 Trust 到 Untrust 是“出方向”Untrust 到 Trust 是“入方向”这个方向概念在写 NAT 和 ASPF 时会反复用到。新增自定义区域也行比如你想单独隔一个“服务器区”可以firewall zone name Server建一个再把接口加进去。入门阶段先用默认四个就够。4.2 三层接口与二层接口的切换前面提过防火墙的物理口默认是二层口。要让接口承载 IP 地址、参与三层转发必须undo portswitch。这个操作在接口视图下做interface GigabitEthernet 1/0/1 undo portswitch ip address 10.1.1.1 24切三层之后这个口才能配 IP、写策略、做 NAT。反过来如果你想让某个口做二层就用portswitch切回去。注意一个口切了模式之前的 IP 会丢别在切换后忘了重新配。还有一种接口是子接口比如GE1/0/0.100用来做单臂路由或者 VLAN 终结。子接口必须先有物理口存在配置时指定vlan-type dot1q vid 100再配 IP。这个在做多 VLAN 内网接入防火墙时会用到入门实验里可以先不碰。接口划区域是配firewall zone再add interface不是接口视图里配。这个顺序和路由器完全不同新手容易在接口视图里找zone命令找不到。记住区域是区域的视图接口是接口的视图两者用 add 关联。4.3 内网、外网、DMZ 三区域配置示例假设内网是10.1.1.0/24外网模拟段是202.1.1.0/24DMZ 服务器段是172.16.1.0/24。配置思路是三个物理口分别切三层、配 IP、划区域# 内网口 interface GigabitEthernet 1/0/1 undo portswitch ip address 10.1.1.1 24 quit firewall zone trust add interface GigabitEthernet 1/0/1 quit # 外网口 interface GigabitEthernet 1/0/2 undo portswitch ip address 202.1.1.1 24 quit firewall zone untrust add interface GigabitEthernet 1/0/2 quit # DMZ 口 interface GigabitEthernet 1/0/3 undo portswitch ip address 172.16.1.1 24 quit firewall zone dmz add interface GigabitEthernet 1/0/3 quit配完用display firewall zone和display ip interface brief交叉验证一下确认接口状态 UP、IP 正确、区域归属对。这一步看着简单但区域没加对是后面策略不生效的头号原因。注意有些版本在划区域时会因为接口还没 UP 而报错先把两边设备起来、连好线接口物理状态起来了再加区域成功率更高。5. 安全策略配置与流量放行5.1 安全策略的匹配逻辑安全策略是防火墙的“大脑”。一条策略包含五个核心要素源区域、目的区域、源地址、目的地址、服务端口。流量进来后防火墙从策略列表顶部往下逐条匹配匹配到第一条符合条件的就执行动作permit 或 deny后面的不再看。所以策略顺序很重要宽泛的放行规则要放在具体规则后面否则会把后面的精确规则“吃掉”。USG6000V 的默认策略是最后一条隐藏的deny any你写多少条 permit最后都有一道兜底拒绝。这就解释了为什么“配了内网口和外网口PC 还是上不了网”——因为没有写 Trust 到 Untrust 的放行策略。策略还有“命中计数”用display security-policy rule all能看到每条规则匹配了多少包。写策略时先配一条宽放行的调试策略确认通了再收紧这个方法比一上来就精确匹配高效得多。调试完记得删掉或收紧宽放行规则别留在生产环境里。5.2 放行内网访问外网的策略写法接着上面的拓扑目标是让内网10.1.1.0/24能访问外网。先写最基础的放行不限制服务security-policy rule name trust_to_untrust source-zone trust destination-zone untrust source-address 10.1.1.0 mask 255.255.255.0 action permit这条规则的意思是源自 Trust 区域、去往 Untrust 区域、源地址是内网段的流量放行。配完 PC 应该能 ping 通外网接口202.1.1.1。如果还不行先查 PC 网关对不对、路由有没有、策略有没有生效。进一步收紧的话可以限制只允许 HTTP、HTTPS、DNS 出网security-policy rule name trust_to_untrust_web source-zone trust destination-zone untrust source-address 10.1.1.0 mask 255.255.255.0 service http service https service dns action permit这里service可以写多条表示“或”的关系。注意华为防火墙的服务名要用预定义的如http、https、dns、icmp自定义端口得先自定义服务或者直接写端口范围。ICMP 单独提醒一下ping 用的是 ICMP如果你只放行了 httpPC 照样 ping 不通会是“能上网但不能 ping”的现象别以为是坏了。5.3 放行外网访问 DMZ 服务器的策略DMZ 是对外提供服务的区域典型场景是外网用户访问 DMZ 里的 Web 服务器。这条策略方向是 Untrust 到 DMZsecurity-policy rule name untrust_to_dmz_web source-zone untrust destination-zone dmz destination-address 172.16.1.100 mask 255.255.255.255 service http service https action permit注意这里限定目的地址是具体的服务器 IP只放行 http/https这才是正确的 DMZ 暴露方式。别写成source-zone untrust destination-zone dmz action permit一条全放那等于把 DMZ 整个开放安全隐患极大。DMZ 的设计初衷就是“外网能访问的服务器单独隔离”即便服务器被攻陷攻击者也很难直接横向进内网因为从 DMZ 到 Trust 的策略默认是拒绝的。除非你显式放行否则 DMZ 到内网是不通的。这个隔离效果在实际安全运维里价值很大做实验时要有意识地验证一下从外网能访问 DMZ 的 Web但不能访问内网从 DMZ 也不能主动访问内网。6. NAT 与服务器映射配置6.1 源 NAT 让内网共享上网只写安全策略内网还是上不了公网因为内网是私有地址。要让内网访问外网得配源 NAT把内网地址转换成外网口地址。华为防火墙的源 NAT 有两种NAT No-PAT一对一和 PAT多对一也就是端口复用。家用场景肯定是 PATnat-policy rule name snat_trust source-zone trust destination-zone untrust source-address 10.1.1.0 mask 255.255.255.0 action source-nat easy-ipeasy-nat的意思是用出接口地址做转换省去单独建地址池。配完 PC 去 ping 外网如果通了说明 NAT 生效。验证方法是在外网设备上抓包看源地址是不是变成了202.1.1.1。注意NAT 策略和安全策略是两个独立的东西流量要先过安全策略放行再过 NAT 转换。顺序是“先策略后 NAT”。有时候策略通了但 NAT 没生效会表现为“能 ping 通外网网关但上不了真外网”因为地址没转换。这两个要分别验证。6.2 服务器映射让外网访问内网服务服务器映射Destination NAT目的 NAT是把外网地址的某个端口映射到内网或 DMZ 服务器的对应端口。比如外网访问202.1.1.1:80实际转到172.16.1.100:80nat-policy rule name dnatzmz source-zone untrust destination-zone dmz destination-address 202.1.1.1 mask 255.255.255.255 service http action destination-nat address-group dmz_server这里需要一个地址组把服务器地址放进去nat address-group dmz_server mode destination-nat section 0 172.16.1.100 172.16.1.100如果只是单台服务器也可以直接用action destination-nat address 172.16.1.100取决于版本有的版本用地址池有的支持直接指定地址。用之前建议?看一下当前版本支持哪种写法华为不同版本命令略有差异。服务器映射配完还要保证对应的 Untrust 到 DMZ 安全策略存在否则映射了也访问不了。很多人只配 NAT 不配策略然后怀疑 NAT 写错了其实是被策略拦了。6.3 双向 NAT 与端口映射的取舍有时候内网用户要用公网地址访问内网服务器这就涉及双向 NATHairpin NAT。不做特殊处理的话内网访问公网映射地址会失败因为流量出去又回来路径不对。解决办法是加一条 Trust 到 Trust 的 NAT 策略把内网访问公网地址转换成访问服务器私网地址。端口映射和整机映射的取舍也要说明端口映射只暴露特定端口安全整机映射DMZ Host把服务器所有端口暴露风险大除非临时调试生产别用。做实验时两种都可以试试感受一下差异。这里还有个热词里提到的问题“防火墙导入后连接云的时候无法连接端口”。这是 eNSP 里用 Cloud 桥接宿主机网卡时的典型问题。排查顺序Cloud 的端口有没有绑定到正确的虚拟网卡绑定后有没有点“增加”宿主机网卡是不是被其它虚拟化软件占用先把 Cloud 配好再用防火墙的接口去连 Cloud顺序错了会报端口无法连接。7. 常见故障排查与实操经验7.1 设备与镜像类故障速查现象常见原因处理办法USG6000V 一直刷 ####镜像不完整、VirtualBox 版本不匹配、内存不足重新解压全部镜像、换 5.2.x、加大内存导入防火墙报格式错误分卷没全部解压、.vdi 损坏全部分卷一起解压校验文件大小启动设备 AR1 失败 40AR 镜像未注册、虚拟机残留、Hyper-V 冲突重注册、清 VirtualBox 残留、关 Hyper-V设备列表里防火墙是灰的注册未完成、eNSP 开着注册关 eNSP 重注册这张表基本覆盖了热词里反复出现的启动类问题。记住一个原则eNSP 的问题九成是版本匹配和镜像完整性剩下一成是主机虚拟化环境冲突。遇到问题先从这里查别一上来就怀疑配置。7.2 策略不生效的排查思路策略配了不通按“物理—地址—区域—策略—NAT—会话”六步走物理层接口 UP 吗网线对吗display interface brief看一眼。地址层PC 和接口 IP 同网段吗网关对吗区域层接口加到正确区域了吗display firewall zone确认。策略层策略写对方向了吗源区域目的区域有没有写反display security-policy rule all看命中。NAT 层私网访问公网配源 NAT 了吗公网访问私网配目的 NAT 了吗会话层display firewall session table看有没有会话建立。有会话说明前面都通了没会话就是被前面某步拦了。这个六步法我自己用了很久几乎每次都能定位到问题。尤其是会话表这一步能快速区分“根本没进来”和“进来了被拦”两种情况。7.3 独家实操心得与避坑建议第一调试期先宽放行通了再收紧。一上来就写精确策略不通了你不知道是哪条要素写错了。先用一条source-zone trust destination-zone untrust action permit打通再逐步加地址和服务限制每次改完测一次问题定位效率翻倍。第二display系列命令要养成习惯。配置不生效时先用display cd或display current-configuration看配置在不在再用display看运行状态。配置在但状态不对说明没提交或没生效配置都不在说明没敲对视图。第三防火墙改动策略后已有会话不会立即失效。华为防火墙默认对已建立的会话不重新匹配策略所以你删了策略、旧连接可能还在通。要立即生效得用reset firewall session table清会话或者等会话老化。排查“策略删了怎么还能通”时别忘了这一点。第四Web 管理虽好但命令行才是根本。入门用 Web 理解概念进阶一定回到命令行。很多毕业设计答辩时老师会让你敲命令光会点 Web 会被问住。建议两条路都走一遍Web 配完再用display current-configuration看对应的命令行是什么反向学习效率很高。第五实验环境记得做快照。eNSP 拓扑搭好、基础配置配完在 VirtualBox 里给 USG6000V 的虚拟机做个快照。后面策略配乱了、实验做崩了直接回滚比重新配一遍省半小时。这个习惯我在做综合实验时帮了大忙尤其是涉及双机热备、OSPF 这种复杂配置的时候。7.4 进阶方向与实验扩展基础操作跑通后可以往这几个方向扩展体验一是双机热备两台防火墙做 HRP配合 OSPF 做动态路由这是企业出口的标配二是 ASPF解决多通道协议如 FTP穿越防火墙的问题热词里“windows 服务器 ftp 防火墙设置”其实就是这类场景——FTP 的控制通道和的数据通道是分开的不做 ASPF 检测数据通道会被防火墙拦掉三是黑白名单基于用户或 IP 做访问控制四是 SRv6 这类新特性实验虽然不是防火墙核心但 eNSP 里能做。我个人建议先把单机基本操作吃透再碰双机。双机涉及主备状态同步、HRP 配置、上下行链路切换基础不牢会很容易懵。单机把安全区域、策略、NAT、会话表这四样摸熟后面进阶就是水到渠成的事。8. 关于防火墙默认行为的几点个人体会最后说几个我在实际使用里印象比较深的点可能跟实验本身没直接关系但理解了能少踩很多坑。防火墙不是“加了就安全”恰恰相反它的默认行为是“什么都不通”你所有的连通性都是显式放行出来的。这跟路由器“默认能通、靠 ACL 拦”是相反的思路。所以初学防火墙最大的思维转变就是不是问“为什么不通”而是默认就不通要问“我要怎么放行”。这个心态转过来排查速度会快很多。另外别迷信“关闭防火墙”这种操作。热词里“关闭防火墙有影响吗”“关闭防火墙”“mpssvc 关闭防火墙”这些搜索反映的是很多人遇到连接问题第一反应是关防火墙。这在实验环境里图省事还行生产环境是绝对大忌。正确做法是定位到底哪条策略拦了用display security-policy rule all的计数找到命中规则精确放行而不是一关了之。养成这个习惯对网络安全职业发展是加分项。还有就是区域设计的意识。很多人做实验时把接口随便往 Trust 一塞能通就行。但真实网络里区域划分是安全架构的第一道设计题——哪些放 DMZ、哪些放 Trust、区域间放行到什么粒度直接决定了出事后攻击面有多大。实验阶段就按规范来别养成乱塞区域的习惯这个职业素养越早建立越好。eNSP 防火墙这块内容不算难但要真正玩明白靠的是把“默认拒绝、显式放行”这套逻辑刻进肌肉记忆然后一遍遍用策略、NAT、会话表去验证自己的理解。我见过太多人实验做通了但说不清为什么通也见过卡在####那一步就放弃的。其实跨过设备启动这道坎后面全是逻辑题想清楚方向、区域、地址、服务四要素配起来就是顺理成章的事。