你第一次接触防火墙,可能是在某个深夜,服务器突然无法访问,排查了一圈网络、端口、服务都正常,最后发现是防火墙规则把某个端口给拦了。或者,你刚接手一个项目,需要配置安全策略,看着命令行里密密麻麻的规则条目,完全不知道从何下手。防火墙,这个听起来像是一堵“墙”的东西,往往是网络工程师和运维人员从“会用网络”到“懂网络安全”的第一道分水岭。很多人觉得它复杂,是因为一开始就把自己绕进了各种协议、策略和命令的细节里,却忘了最根本的问题:防火墙到底在守护什么?它凭什么决定哪些数据包能过,哪些不能过?
今天,我们不谈那些让人望而生畏的官方术语,就从一次最真实的“登录”操作开始,带你亲手摸一摸这堵“墙”。你会发现,无论是通过命令行(CLI)还是网页(Web),登录防火墙只是第一步。真正关键的是登录之后,你如何理解它的“思考逻辑”,如何用几条简单的命令查看状态,又如何配置第一条真正起作用的“安全策略”。这篇文章的目的,不是让你背下所有华为防火墙的命令,而是帮你建立起一套清晰的认知框架:从登录到查看,从理解原理到动手配置,最终让你能独立解决“为什么我的服务不通了”这类实际问题。我们以华为防火墙为操作载体,但其中关于“策略思维”和“排查路径”的部分,适用于任何品牌的防火墙。
1. 登录防火墙:从黑屏命令行到可视化网页的第一次接触
很多人对防火墙的恐惧,始于登录。一个陌生的IP地址,一个未知的协议端口,不知道用户名密码,甚至不确定该用哪种方式连接。其实,防火墙的登录方式,恰恰反映了它的两种管理维度:底层控制与上层配置。
1.1 命令行(CLI)登录:通往设备“大脑”的终极通道
当你手头只有一根Console线,或者网络尚未配置,无法通过IP访问时,命令行登录是唯一的选择。它不依赖任何网络服务,直接与设备的操作系统对话。对于华为设备,你通常需要使用串口终端软件(如SecureCRT、MobaXterm、甚至系统自带的终端)连接。
连接成功后,你会看到一个以“< >”符号开头的命令行提示符。这个界面看似简陋,却是功能最全、权限最高的管理界面。所有高级诊断、底层调试、紧急恢复操作,都必须在这里完成。第一次登录,你大概率会遇到认证问题。常见的默认用户名密码组合是admin/Admin@123或admin/空密码,但这强烈依赖于设备型号和初始配置。一个必须养成的习惯是,在首次登录后立即修改默认密码,这是安全运维的底线。
通过CLI,你可以完成最基础的网络配置,比如给接口配置一个IP地址,从而为后续更便捷的Web登录铺平道路。这个过程,就像给一台新电脑插上网线、设置IP,让它能被人找到。
1.2 Web(GUI)登录:面向策略管理的图形化界面
当防火墙的管理接口配置好IP地址并放通了HTTPS服务(通常是TCP 443端口)后,你就可以在浏览器中输入这个IP地址进行Web登录了。这是绝大多数日常管理工作的主战场。
Web界面将复杂的命令行参数转化为直观的表单、按钮和拓扑图。创建安全策略、配置NAT、查看会话状态、监控流量日志,这些操作在Web界面上通过点击和下拉就能完成,效率远高于命令行。但是,便捷性也带来了局限性:并非所有底层、高级或排错命令都能在Web界面找到对应操作。
这里有一个新手极易踩坑的点:浏览器兼容性与安全警告。早期版本的防火墙Web界面可能只兼容特定的浏览器或IE内核。此外,由于防火墙使用的往往是自签名证书,浏览器会弹出“不安全连接”的警告。你需要理解,这只是因为证书未被公共CA机构认可,在可控的内网环境中,选择“继续访问”或“接受风险并继续”是常规操作,并非系统真的不安全。
| 登录方式 | 适用场景 | 优势 | 劣势 | 关键检查点 |
|---|---|---|---|---|
| 命令行 (CLI) | 初始配置、网络故障、复杂排错、批量脚本 | 功能最全、权限最高、不依赖网络 | 学习曲线陡峭、操作效率低 | 串口速率/流控、默认认证信息 |
| 网页 (Web) | 日常策略管理、状态监控、日志查看、直观配置 | 操作直观、效率高、易于理解 | 功能可能不全、依赖浏览器和网络 | 管理IP可达性、HTTPS端口开放、证书警告处理 |
完成登录,只是拿到了“房间钥匙”。接下来,你需要学会在房间里“查看”和“走动”,也就是熟悉防火墙的基本状态和常用命令。
2. 查看与导航:用几条关键命令摸清防火墙的“家底”
登录成功后,无论是CLI还是Web界面,新手常会陷入茫然:我现在该看哪里?设备是否健康?当前有什么配置?掌握几条核心的查看命令,就像获得了一张设备内部的“地图”。
2.1 状态查看:设备是死是活,健康与否
在CLI下,以下命令是你的“听诊器”:
display device:查看设备硬件信息,如型号、序列号、运行时长。这能确认设备本体是否正常。display cpu-usage和display memory-usage:实时查看CPU和内存利用率。如果某个值持续高于80%,就需要警惕可能有异常流量或策略配置不当。display interface brief:这是最重要的命令之一。它以表格形式列出所有接口的状态(物理状态、协议状态)、IP地址和收发流量。一个接口如果物理状态为“down”,可能是网线没插好;如果协议状态为“down”,可能是配置错误。这是排查网络连通性问题的第一步。
在Web界面上,这些信息通常以仪表盘的形式呈现在首页,更加直观。养成登录后先扫一眼健康状态的习惯。
2.2 配置查看:当前规则长什么样
配置是防火墙行为的依据。在CLI下查看运行配置的命令是display current-configuration。这条命令会输出所有当前生效的配置,内容可能非常长。我们通常结合管道符进行过滤查看:
display current-configuration | include security-policy:只查看所有安全策略的配置。display current-configuration | include interface GigabitEthernet 0/0/1:查看指定接口的配置。display current-configuration | include nat:查看所有NAT相关的配置。
在Web界面上,配置以菜单树的形式组织,在“策略”、“网络”、“对象”等目录下可以轻松找到并浏览。CLI的过滤查看方式在Web界面中对应为搜索框功能。
2.3 会话与日志:数据包命运的“监控录像”
防火墙的核心工作是放行或阻止会话。display firewall session table命令可以查看当前经过防火墙的所有活跃会话(连接)。你会看到源IP、目的IP、协议、端口、状态等信息。当你说“A访问B不通”时,首先就应该来查会话表。如果这里根本没有这条会话的记录,说明数据包在到达策略检查点之前就被丢弃了(可能是路由问题或接口状态问题);如果会话状态异常(如半连接),则可能是后端服务问题。
而display logbuffer或 Web界面上的日志中心,则记录了防火墙的“决策过程”。一条数据包被拒绝时,这里通常会生成一条日志,告诉你是因为哪条安全策略拒绝了它。排查访问不通的问题时,日志是比会话表更直接的证据。
注意:
display系列命令只是查看,不会对配置做任何修改。新手可以放心使用这些命令来探索设备状态,这是学习过程中成本最低、收益最高的方式。
通过查看命令,你从“访客”变成了“观察者”。接下来,你需要理解防火墙作为“裁判”所依据的根本法则——安全策略。
3. 安全策略:理解防火墙作为“智能门卫”的决策逻辑
如果把防火墙比作一个公司的门卫,那么安全策略(Security Policy)就是门卫手中的“访客清单”和“行为准则”。它定义了谁(源)、在什么条件下、可以访问谁的什么服务(目的)。这是防火墙最核心、最常用的功能,没有之一。
3.1 策略五元组:一条安全策略的完整描述
一条完整的安全策略,通常包含以下五个关键元素,俗称“五元组”:
- 源安全区域/源地址(Source Zone/Address):数据包从哪里来。可以是单个IP、一个IP段,或一个地址对象组。
- 目的安全区域/目的地址(Destination Zone/Address):数据包要到哪里去。
- 服务(Service):访问什么服务。如HTTP(TCP 80)、HTTPS(TCP 443)、SSH(TCP 22)等。它定义了协议和端口。
- 动作(Action):防火墙的决定。主要是“允许(permit)”或“拒绝(deny)”。
- 生效位置与方向:策略应用在哪个或哪对接口/安全区域上,以及针对哪个方向的数据流(入方向/出方向)。在华为防火墙上,这通常通过绑定“安全区域(Security Zone)”来实现。
安全区域(Zone)是一个极其重要的抽象概念。它不是物理接口,而是一个逻辑分组。我们通常把网络划分为几个信任等级不同的区域,例如:
- Trust区域:通常指内网,信任度高。
- Untrust区域:通常指外网(互联网),信任度低。
- DMZ区域:放置对外服务的服务器(如Web服务器),信任度介于内外网之间。
策略的配置就基于这些区域。例如,“允许Trust区域访问Untrust区域的任何服务”,这就是一条典型的出向上网策略。
3.2 策略匹配顺序:第一条匹配原则
防火墙检查数据包时,会按照策略列表的从上到下顺序逐条匹配。一旦数据包的特征(源、目的、服务)匹配了某条策略,就立即执行该策略的动作(允许或拒绝),并停止继续向下匹配。
这意味着,策略的顺序至关重要。必须把范围更精确、限制更严格的策略放在上面,把范围更宽泛的策略放在下面。一个常见的错误是把一条“允许任何到任何”的策略放在最顶端,这会导致下面所有的策略都失效。
3.3 默认策略:最后的“守门员”
如果数据包匹配了所有配置的策略后仍未命中,那么它将命中“默认策略”。绝大多数防火墙的默认策略是“拒绝所有(Deny All)”。这是一个重要的安全原则:除非明确允许,否则一律禁止。这也解释了为什么新防火墙上线后,如果不配置任何策略,所有跨区域访问都会失败。
理解了这个逻辑,你就能明白配置策略的本质:在“默认拒绝”的背景下,为合法的业务流量开具一条条“通行证”。
4. 从原理到配置:亲手创建你的第一条安全策略
理解了原理,我们通过一个最经典的实验场景,将理论转化为配置。这个场景是:允许内网(192.168.1.0/24)的用户访问互联网(Web服务)。
4.1 实验拓扑与规划
假设拓扑非常简单:
- 防火墙的G0/0/1接口属于Trust区域,IP是192.168.1.1/24,连接内网。
- 防火墙的G0/0/0接口属于Untrust区域,IP是公网地址(如1.1.1.2/24),连接互联网。
- 内网用户网关指向192.168.1.1。
我们需要创建一条策略:源是Trust区域,目的是Untrust区域,服务是常见的互联网服务(如HTTP、HTTPS、DNS等),动作为允许。
4.2 命令行(CLI)配置步骤
在CLI下,配置是线性的、精确的。以下是核心步骤:
- 进入系统视图:登录后输入
system-view。 - 配置接口与区域(如果未配置):
[FW] interface GigabitEthernet 0/0/1 [FW-GigabitEthernet0/0/1] ip address 192.168.1.1 24 [FW-GigabitEthernet0/0/1] quit [FW] firewall zone trust [FW-zone-trust] add interface GigabitEthernet 0/0/1 [FW-zone-trust] quit [FW] interface GigabitEthernet 0/0/0 [FW-GigabitEthernet0/0/0] ip address 1.1.1.2 24 [FW-GigabitEthernet0/0/0] quit [FW] firewall zone untrust [FW-zone-untrust] add interface GigabitEthernet 0/0/0 [FW-zone-untrust] quit - 创建安全策略:
[FW] security-policy [FW-policy-security] rule name permit_trust_to_untrust # 创建策略规则并命名 [FW-policy-security-rule-permit_trust_to_untrust] source-zone trust [FW-policy-security-rule-permit_trust_to_untrust] destination-zone untrust [FW-policy-security-rule-permit_trust_to_untrust] action permit [FW-policy-security-rule-permit_trust_to_untrust] quit [FW-policy-security] quit - 提交并保存配置:配置不会立即永久生效,需要保存。
系统会提示是否保存,输入[FW] savey确认。
4.3 网页(Web)配置步骤
在Web界面中,配置过程更直观:
- 登录Web界面。
- 进入“网络” -> “接口”,分别配置GE0/0/1和GE0/0/0的IP地址,并分别加入“trust”和“untrust”区域(如果区域不存在需先创建)。
- 进入“策略” -> “安全策略”,点击“新建”。
- 在弹出窗口中:
- 规则名称:填入
permit_trust_to_untrust。 - 源安全区域:选择
trust。 - 目的安全区域:选择
untrust。 - 服务:可以保持默认的“any”(任何服务),或者点击“选择”添加具体的服务如
http、https、dns。 - 动作:选择“允许”。
- 规则名称:填入
- 点击“确定”。Web界面配置通常是实时生效且自动保存的。
4.4 验证与排查:配置是否真的生效了?
配置完成后,不要想当然认为它一定生效。必须验证。
- 查看策略:在CLI中用
display security-policy rule all或在Web界面的策略列表中,确认你创建的策略存在,且顺序正确。 - 触发流量:让内网的一台电脑(IP为192.168.1.100)尝试访问一个外网网站。
- 检查会话表:在CLI中执行
display firewall session table,你应该能看到一条源为192.168.1.100,目的为某个公网IP,协议为TCP,目的端口为80或443的会话,且状态为“active”。 - 检查日志:如果访问失败,立即去查看安全日志(CLI:
display logbuffer, Web: “监控” -> “日志”)。寻找带有“deny”关键词的日志,它会告诉你数据包被哪条规则拒绝了。
一个高级技巧:在策略中启用日志记录。在创建或编辑策略时,有一个“记录”或“Log”选项。勾选它后,所有命中这条策略的流量(无论是允许还是拒绝)都会生成日志。这在策略调试阶段极其有用,你可以清晰地看到流量是否命中了你期望的策略。
5. 超越单条策略:构建可维护的安全策略体系
配置出一条能通的政策只是起点。在实际网络中,策略会越来越多,管理会越来越乱。如何从一开始就建立一个清晰、可维护的策略体系?
5.1 使用地址对象与服务对象
不要在策略中直接写IP地址和端口号。应该先创建“地址对象”(如“研发网段”、“服务器IP”)和“服务对象”(如“OA服务端口组”),然后在策略中引用这些对象。
好处是:
- 可读性强:策略规则名称为“允许研发访问OA服务器”,而不是“允许192.168.1.0访问10.1.1.1的TCP 8000端口”。
- 易于修改:当服务器IP变更时,你只需要修改“OA服务器”这个地址对象,所有引用该对象的策略会自动生效,无需逐条修改策略。
- 减少错误:避免在复杂的策略中输错IP或端口。
5.2 遵循清晰的命名规范
为每一条策略、每一个对象赋予一个清晰、统一的名称。例如:
- 策略名称:
Permit_[源区域/对象]_to_[目的区域/对象]_for_[服务]_[序号] - 地址对象名称:
Addr_[部门/用途]_[网段/IP] - 服务对象名称:
Svc_[应用名]_[端口]
良好的命名规范是你在面对上百条策略时,还能快速定位和理解每一条作用的唯一保障。
5.3 模块化与区域规划
根据业务逻辑划分安全区域,并基于区域设计策略模块。例如:
- 互联网访问模块:位于策略列表靠前位置,控制内网用户上网行为。
- 服务器访问模块:控制不同部门用户访问内部服务器(如文件服务器、数据库)的权限。
- 互访模块:控制内部不同区域(如办公区和生产区)之间的互访。
- 管理访问模块:严格控制哪些IP可以管理防火墙本身(SSH/HTTPS)。
在每个模块内部,再按照“先精确后宽泛”的顺序排列具体规则。为每个模块添加清晰的注释(在CLI中用description,在Web中用备注字段)。
5.4 定期审计与清理
安全策略不是配置完就一劳永逸的。业务在变,策略也需要变。定期(如每季度)进行策略审计:
- 查看长期未命中的策略:通过防火墙的统计功能,找出过去几个月内命中次数为0的策略。这些可能是为已下线业务配置的“僵尸策略”,可以考虑禁用或删除,以简化策略列表,提升匹配效率。
- 复核宽泛策略:检查那些源、目的、服务都为“any”的允许策略。它们是否是业务真正需要的?是否可以被更精确的策略替代?
- 测试关键策略:模拟业务流量,验证关键策略是否按预期工作。
防火墙的配置,尤其是安全策略,是一个动态的、持续优化的过程。它背后体现的是一种“最小权限”的安全设计思想:只开放业务必需的通路,其他一切默认禁止。从成功登录,到熟练查看,再到理解策略逻辑并亲手配置,最后建立起一套可维护的体系——走完这个过程,你才算真正推开了网络安全世界的大门。这堵“墙”不再是阻碍你前进的障碍,而是你手中守护网络疆域的有力工具。下次再遇到访问不通的问题,你的第一反应将不再是慌张,而是有条不紊地打开会话表、查看安全日志,沿着清晰的排查路径,定位到那条决定数据包命运的规则。