
1. 为什么还要折腾模拟器里的防火墙很多人第一次接触企业级防火墙都是从一台物理设备或者云上的虚拟实例开始的。但真到了要练手的时候物理设备贵、云上实例按小时计费改错一条策略还可能把自己关在门外。所以模拟器就成了最稳妥的练手场。eNSP 这个工具在国内网络学习圈子里流传很广它能模拟路由器、交换机也能把防火墙镜像挂进去跑。标题里说的“ensp华为防火墙的简单配置”核心就是在这个模拟环境里把一台防火墙从开机到能放行流量跑通。这件事看起来简单实际卡人的地方不少。镜像版本对不对、设备启动后默认账号是什么、接口怎么划分安全区域、策略怎么写才不会被隐式拒绝掉每一步都有坑。我见过不少人卡在“能ping通接口但业务不通”这种问题上折腾一晚上最后发现是区域没配对。这篇文章就把这些环节拆开讲清楚从环境准备到策略验证给一套可以直接照着做的流程。适合谁看如果你是刚接触网络安全设备的学生、准备考证的从业者或者想在家里搭个小实验环境验证策略逻辑的工程师这篇内容都能用上。不需要你有多深的底子但基本的IP地址、子网掩码、路由概念得知道不然配到一半会不知道自己在填什么。2. 环境准备与镜像选择2.1 eNSP版本与依赖组件eNSP本身对运行环境有要求尤其是涉及到虚拟化的时候。它依赖 VirtualBox 来承载虚拟设备还依赖 WinPcap 或 Npcap 来做抓包。这三者的版本搭配很关键版本错位会导致设备起不来或者抓不到包。我的建议是eNSP 用 1.3 系列里较新的版本VirtualBox 用 5.2 系列Npcap 用较新的稳定版。不要盲目追最新VirtualBox 6.x 和某些 eNSP 版本配合时会出现设备启动后一直转圈的情况。安装顺序也有讲究。先装 VirtualBox再装 Npcap最后装 eNSP。装完之后打开 eNSP在“菜单-工具-注册设备”里把防火墙设备注册一遍。这一步很多人会漏掉结果拓扑里拖出来的防火墙是灰色的根本启动不了。注册的时候如果提示失败多半是 VirtualBox 的路径没被正确识别手动指定一下 VirtualBox 的安装目录即可。提示安装路径不要带中文和空格这是老生常谈但每年都有人踩。路径里有中文时设备注册和启动都可能报奇怪的错误。2.2 防火墙镜像的获取与导入eNSP 自带的设备列表里默认没有防火墙需要单独导入镜像。常见的做法是使用 USG6000V 系列的镜像包。导入方式是在 eNSP 的“菜单-工具-注册设备”旁边有个镜像管理入口把下载好的镜像文件添加进去。镜像文件通常是一个压缩包解压后得到 .vmdk 或类似格式的磁盘文件再配合一个描述文件。导入完成后在设备列表里就能看到防火墙图标了。拖到拓扑里右键启动。第一次启动会比较慢因为要初始化磁盘。启动完成后双击设备图标进入命令行界面。默认的登录账号和密码通常是固定的初始凭据具体以你使用的镜像说明为准。登录进去之后会看到类似HRP_M[FW1]的提示符说明已经进入配置视图了。这里有个细节USG6000V 在 eNSP 里启动后默认的接口是GE0/0/0到GE0/0/5左右具体数量看镜像。这些接口默认没有配置也没有划分区域。你需要自己规划哪个口接内网、哪个口接外网、哪个口做管理。2.3 拓扑搭建的基本思路一个最简单的验证拓扑至少需要三部分一台模拟外网的设备可以用路由器或直接用一个 Loopback 接口模拟、防火墙本身、一台模拟内网的设备可以用另一台路由器或 PC。我习惯用两台路由器夹一台防火墙路由器之间跑静态路由防火墙做区域间的策略控制。连线的时候注意接口对应关系。比如 FW1 的GE0/0/0连外网路由器 R1 的GE0/0/0FW1 的GE0/0/1连内网路由器 R2 的GE0/0/0。IP 地址规划要提前想好不然后面改来改去容易乱。我一般用10.0.0.0/30这种小网段做互联内网用192.168.1.0/24外网模拟用200.1.1.0/24。这样一眼就能看出哪个是内、哪个是外。3. 防火墙基础配置的核心逻辑3.1 安全区域的概念与划分华为防火墙和普通路由器最大的区别就是“安全区域”这个概念。路由器只看路由表有路由就转发。防火墙在路由的基础上加了一层区域检查流量从哪个区域来、到哪个区域去这两个区域之间的关系决定了流量能不能过。默认情况下防火墙有四个内置区域Trust信任区、Untrust非信任区、DMZ隔离区、Local本地区域。Trust 一般用来放内网接口Untrust 放外网接口DMZ 放对外提供服务的服务器Local 代表防火墙自己。接口必须加入某个区域才能参与策略检查。如果你把接口配了 IP 但没加区域这个接口收到的流量在策略匹配时行为会很奇怪通常表现为直接被丢弃。配置区域用firewall zone命令进入区域视图然后用add interface把接口加进去。比如firewall zone trust add interface GigabitEthernet0/0/1 quit firewall zone untrust add interface GigabitEthernet0/0/0 quit这两步做完接口和区域的绑定关系就建立了。注意一个接口只能属于一个区域不能同时加到两个区域里。3.2 接口IP配置与路由打通接口配 IP 是基本功但防火墙上的接口默认是二层还是三层取决于型号和配置。USG6000V 的接口默认是三层接口可以直接配 IP。命令是interface GigabitEthernet0/0/0 ip address 200.1.1.2 30 quit interface GigabitEthernet0/0/1 ip address 10.0.0.1 30 quit配完接口 IP 之后防火墙需要知道去往内网和外网的路由。如果内网有多个网段就需要写静态路由或者跑动态路由协议。最简单的场景下外网路由器 R1 上写一条去往192.168.1.0/24的下一跳指向防火墙的200.1.1.2防火墙上写一条去往192.168.1.0/24的下一跳指向内网路由器 R2 的10.0.0.2。这样双向路由就通了。但路由通了不代表流量能过。防火墙默认策略是“没有匹配到允许策略就拒绝”所以接下来必须配安全策略。3.3 安全策略的匹配逻辑安全策略是防火墙的灵魂。一条策略通常包含这几个要素源区域、目的区域、源地址、目的地址、服务端口、动作允许或拒绝。匹配顺序是从上到下匹配到第一条符合条件的就执行动作不再往下看。所以策略的顺序很重要宽泛的允许策略如果放在前面后面的精细拒绝策略就永远不会生效。写策略的时候有个原则先精确后宽泛。比如你要允许内网某个网段访问外网的 Web 服务就先写一条源是192.168.1.0/24、目的是any、服务是http https、动作是允许的策略。如果后面还有更细的控制需求再往上插。华为防火墙的策略配置命令大致是这样的security-policy rule name allow_inside_to_outside source-zone trust destination-zone untrust source-address 192.168.1.0 24 action permit quit这条策略的意思是从 Trust 区域到 Untrust 区域、源地址是192.168.1.0/24的流量全部放行。注意这里没有限制目的地址和服务实际生产环境不建议这么写但实验环境里为了先跑通可以这么用。4. 从零到通的完整实操流程4.1 第一步设备启动与初始登录拓扑拖好之后先启动外网路由器 R1 和内网路由器 R2最后启动防火墙 FW1。防火墙启动最慢等它完全起来再操作。启动完成后双击 FW1进入命令行。初始登录可能需要输入用户名和密码登录后提示符会变成FW1或者HRP_M[FW1]。如果是HRP_M开头说明设备处于双机热备的主状态实验环境里单机运行不影响。进去之后先看接口状态display interface brief确认GE0/0/0和GE0/0/1都是 UP 状态。如果显示 DOWN检查连线是否正确或者接口是不是被 shutdown 了。用undo shutdown把接口打开。4.2 第二步接口IP与区域绑定按照前面的规划给两个接口配 IP然后分别加入 Untrust 和 Trust 区域。配置完用display zone查看区域和接口的对应关系确认没有加错。这一步出错的话后面策略怎么写都不会通。interface GigabitEthernet0/0/0 ip address 200.1.1.2 30 quit interface GigabitEthernet0/0/1 ip address 10.0.0.1 30 quit firewall zone untrust add interface GigabitEthernet0/0/0 quit firewall zone trust add interface GigabitEthernet0/0/1 quit配完之后从防火墙 ping 一下外网路由器的接口地址200.1.1.1应该能通。如果 ping 不通先检查物理连线再看接口状态最后看 IP 是否配错。4.3 第三步静态路由配置防火墙需要知道内网和外网的路由。假设内网路由器 R2 上有一个192.168.1.0/24的网段外网路由器 R1 上有一个200.1.1.0/24的模拟外网。那么在 FW1 上ip route-static 192.168.1.0 24 10.0.0.2在 R1 上ip route-static 192.168.1.0 24 200.1.1.2在 R2 上ip route-static 0.0.0.0 0 10.0.0.1这样 R2 的默认路由指向防火墙防火墙知道内网怎么走R1 知道内网怎么走。路由层面就通了。4.4 第四步安全策略放行路由通了之后从 R2 上 ping 外网地址200.1.1.1大概率是不通的。因为防火墙默认拒绝所有跨区域流量。这时候需要写策略security-policy rule name trust_to_untrust source-zone trust destination-zone untrust source-address 192.168.1.0 24 action permit quit写完策略后再次从 R2 ping200.1.1.1应该就能通了。如果还不通用display security-policy rule all查看策略是否生效再用display firewall session table看有没有会话建立。会话表里如果有记录说明流量已经到了防火墙并且被处理了。4.5 第五步验证与抓包验证的时候不要只 ping 一个地址。多试几个场景内网访问外网、外网访问内网应该被拒绝、内网访问防火墙本身。每个场景的结果都符合预期才算配置正确。抓包可以用 eNSP 自带的抓包功能右键链路选择“开始抓包”然后用 Wireshark 看。重点看 ICMP 请求和回复的源目地址、防火墙接口的 MAC 地址。如果看到请求发出去了但没有回复说明策略或路由有问题。如果看到回复被丢弃可能是回程策略没放行。注意防火墙的策略是有方向的。你放行了 Trust 到 Untrust不代表 Untrust 到 Trust 也能过。回程流量如果是从 Untrust 到 Trust需要单独写策略或者利用会话表的状态检测机制自动放行。华为防火墙默认开启状态检测已建立的会话的回程流量会自动放行不需要额外写策略。5. 常见问题与排查技巧5.1 设备起不来或注册失败这是最开头就会遇到的问题。表现是拓扑里防火墙图标是灰色的右键启动没反应或者启动后一直显示#号。原因通常是 VirtualBox 版本不兼容、镜像文件损坏、或者注册时路径不对。解决办法换 VirtualBox 版本重新导入镜像手动指定 VirtualBox 路径。如果还不行把 eNSP 和 VirtualBox 都卸载干净重启电脑后按顺序重装。5.2 接口UP但ping不通接口显示 UPIP 也配了但 ping 直连地址不通。先检查两端 IP 是否在同一网段掩码是否匹配。比如一端是200.1.1.2/30另一端是200.1.1.1/24这种掩码不一致会导致通信异常。其次检查接口是否被加入了错误的区域区域不对会影响策略匹配但直连 ping 通常不受区域影响除非有特殊配置。最后检查是否有 ACL 或策略把 ICMP 拒绝了。5.3 策略写了但不生效策略写完之后流量还是不通用display security-policy rule all看策略有没有被正确加载。有时候策略名字重复或者规则编号冲突会导致新策略没生效。另外注意策略的匹配顺序如果前面有一条拒绝所有的策略后面的允许策略永远不会被匹配到。把允许策略往上移或者调整规则编号。5.4 能ping通但业务不通这是最典型的问题。ICMP 通了说明路由和基本策略没问题但 TCP 业务不通通常是服务端口没放行。比如你只允许了 ICMP但 HTTP 的 80 端口没在策略里放行。解决办法是在策略里把服务改成any先测试通了之后再收紧到具体端口。另外注意 NAT 的影响如果内网访问外网需要做源 NAT没配 NAT 的话外网路由器可能没有回程路由。5.5 常见问题速查表现象可能原因排查命令设备启动后灰色镜像未注册或VirtualBox异常重新注册设备接口DOWN连线错误或接口未开启display interface brief直连ping不通IP/掩码错误display ip interface brief跨区域ping不通策略未放行display security-policy rule all业务端口不通服务未放行或NAT未配display firewall session table策略不生效顺序错误或规则冲突display security-policy rule all6. 几个容易被忽略的细节6.1 管理口的特殊性华为防火墙通常有一个专门的管理口比如GE0/0/0在某些型号上是管理口默认属于 Local 区域。如果你把业务流量配到这个口上可能会发现策略怎么写都不对。实验环境下建议避开管理口用其他接口做业务。如果非要用确认它的区域归属和默认策略。6.2 会话老化时间防火墙的会话表有老化时间TCP 会话默认老化时间比较长UDP 和 ICMP 比较短。实验的时候如果发现 ping 通了之后过一会儿又不通了可能是会话老化了而你的策略没有覆盖后续流量。生产环境要根据业务特点调整老化时间实验环境一般不用管。6.3 日志与调试排查问题的时候打开调试信息会很有帮助。用terminal monitor和terminal debugging打开终端显示然后用debugging security-policy查看策略匹配的详细过程。注意调试信息量很大看完记得关掉不然屏幕会一直刷。terminal monitor terminal debugging debugging security-policy all看完之后用undo debugging all关闭所有调试。6.4 配置保存eNSP 里的设备配置默认保存在内存里重启后会丢失。实验做完记得保存save然后输入文件名确认。下次启动时用startup saved-configuration指定配置文件。不过 eNSP 的保存机制有时候不太可靠重要的配置最好手动备份一份文本。7. 从简单配置延伸到实际场景把上面这套流程跑通之后其实已经覆盖了防火墙最核心的几个概念区域、接口、路由、策略、会话。剩下的就是在这个基础上做扩展。比如把 DMZ 区域加进来放一台模拟服务器写策略允许外网访问 DMZ 的特定端口同时禁止 DMZ 主动访问内网。再比如配置源 NAT让内网多个网段共享一个公网地址出去。这些扩展场景的配置逻辑和简单配置是一样的只是策略的源目区域和地址变了。你把简单场景吃透了后面加东西就是套模板。我个人的习惯是每加一个新区域或新网段先写一条最宽泛的允许策略把流量跑通然后再逐步收紧到具体地址和端口。这样排查问题的时候至少知道是策略收紧导致的而不是基础配置有问题。另外eNSP 里的防火墙镜像和真实设备在命令上可能有细微差别比如某些型号不支持某些命令或者默认行为不一样。遇到命令报错的时候用?查看当前视图下支持的命令列表比翻文档快得多。实验环境里试错成本很低多试几次就记住了。