一、设备初始化

为什么需要"设备初始化"?
一台全新的华为USG防火墙(无论是物理设备还是你在eNSP中使用的USG6000V2),出厂时只带有最基础的配置------默认管理IP、默认管理员账号、空的安全策略。从"拆箱"到"正式上线",中间需要完成一系列基础配置,包括:首次登录、修改默认密码、接口IP配置、安全区域划分、路由配置、安全策略等。这个从零到一的过程,就是设备初始化。
解决的痛点:
-
默认配置极度不安全(众所周知的管理员密码)。
-
防火墙默认"拒绝所有"流量,不初始化业务不通。
-
需要建立管理通路,让管理员能够远程维护设备。
一句话理解:设备初始化 = 给刚拆封的防火墙"通电、设密码、配地址、划区域、开策略",让它从一块"砖"变成一台能干活的安全设备。
防火墙的"出厂状态"是什么样?
| 配置项 | 出厂默认值 | 说明 |
|---|---|---|
| 管理接口 | GE0/0/0(或MGMT口) | 用于Web/SSH管理 |
| 管理IP | 192.168.0.1(部分版本为192.168.1.1) | 可通过HTTPS访问 |
| 管理员账号 | admin | 固定用户名 |
| 管理员密码 | Admin@123(部分版本为Admin@huawei) | 公开的默认密码 |
| 安全策略 | 默认拒绝所有(隐含deny any any) | 业务流量不通 |
| 接口状态 | 全部关闭管理服务(仅Ping允许) | 需要手动开启 |
| BootROM密码 | O&m15213 | 用于恢复/重置操作 |
防火墙初始化配置(逻辑清晰的三个阶段)
bash
┌─────────────────────────────────────────────────────────────────┐
│ 阶段一:建立管理通路 │
│ 目标:能登录防火墙,修改默认密码,开启远程管理 │
│ 步骤1:Console首次登录 → 步骤2:开启Web/SSH管理 │
├─────────────────────────────────────────────────────────────────┤
│ 阶段二:基础网络连通 │
│ 目标:配置接口IP、安全区域、路由,让防火墙自身和业务能通 │
│ 步骤3:接口IP + 安全区域 → 步骤4:默认路由 │
├─────────────────────────────────────────────────────────────────┤
│ 阶段三:业务放行与安全加固 │
│ 目标:让内网用户上网,并完成基础安全加固 │
│ 步骤5:安全策略 + 源NAT → 可选:管理员加固、日志 │
└─────────────────────────────────────────────────────────────────┘
阶段一:建立管理通路(目标:能登录防火墙)
步骤1:Console 首次登录

步骤2:开启 Web/SSH 远程管理(可选但推荐)
-
目标:避免每次都插Console线,实现远程图形化或命令行管理。
-
操作流程(CLI):
bash
system-view
interface GigabitEthernet0/0/0 # 以管理口为例,实际可能是GE0/0/0
ip address 192.168.1.1 24 # 配置管理IP(根据实际规划)
service-manage enable
service-manage https permit # 开启Web管理
service-manage ssh permit # 开启SSH管理
quit
# 可选:限制管理源IP
acl 2000
rule 5 permit source 192.168.1.0 0.0.0.255
interface GigabitEthernet0/0/0
service-manage https permit acl 2000
service-manage ssh permit acl 2000


bash
service-manage https permit
这条命令的完整含义是:允许任意源 IP 地址,通过该接口的 HTTPS 服务访问防火墙自身。
-
不需要 ACL ,因为
permit后面没有跟acl参数时,就是放行所有。 -
ACL 是可选的 ,只有当你想要限制 特定源 IP 时,才需要加上
acl 2000。
service-manage 命令的完整语法
bash
service-manage { http | https | ssh | telnet | ping } { permit | deny } [ acl acl-number ]
在生产环境中,强烈建议加上 ACL 限制管理源 IP,例如:
bash
acl 2000
rule 5 permit source 10.1.1.0 0.0.0.255
interface GigabitEthernet0/0/0
service-manage https permit acl 2000

这个 MGMT 口完全可以不加入任何安全区域

阶段二:基础网络连通(目标:防火墙能上网,业务接口通)
步骤3:配置业务接口 IP + 安全区域

bash
system-view
# 配置内网口
interface GigabitEthernet0/0/1
ip address 192.168.1.254 24
quit
firewall zone trust
add interface GigabitEthernet0/0/1
quit
# 配置外网口(示例:DHCP自动获取)
interface GigabitEthernet0/0/2
ip address dhcp-alloc
quit
firewall zone untrust
add interface GigabitEthernet0/0/2
quit
步骤4:配置默认路由(让防火墙自身能访问外网)
-
目标:防火墙需要知道如何到达外网(下一跳是运营商网关)。
-
操作流程:
cpp
ip route-static 0.0.0.0 0.0.0.0 运营商网关IP
# 如果外网口是DHCP,通常会自动生成默认路由,可查看路由表确认
display ip routing-table
验证:从防火墙Ping外网IP(如8.8.8.8),确保能通。
bash
ping 8.8.8.8
-
注意事项:
-
若Ping不通,检查外网接口IP是否获取成功,运营商网关是否可达。
-
防火墙自身Ping外网属于 Local → Untrust 流量,默认允许,不需安全策略。
-
阶段二完成标志:防火墙自身能Ping通外网(如8.8.8.8),且接口区域划分正确。
阶段三:业务放行与安全加固(目标:内网用户能上网)
步骤5:配置安全策略 + 源NAT

bash
system-view
# 1. 安全策略
security-policy
rule name trust_to_untrust
source-zone trust
destination-zone untrust
source-address 192.168.1.0 mask 255.255.255.0
action permit
quit
# 2. 源NAT(使用easy-ip,直接借用接口IP)
nat-policy
rule name trust_to_untrust_nat
source-zone trust
destination-zone untrust
source-address 192.168.1.0 mask 255.255.255.0
action source-nat easy-ip
quit

防火墙初始化 = 三步走:①Console改密码开管理,②配接口划区域加路由,③安全策略+源NAT放业务。
修改web登录的超时时间,防止web短时间掉线

二、管理员角色与权限




三、设备管理

3.1 命令行管理
Console管理实验


Console 口是设备的本地管理接口,通过专用线缆直接连接电脑的串口(或 USB 转串口)。它不依赖网络,即使设备没有 IP 地址、防火墙策略错误、网络完全中断,你依然可以通过 Console 口登录设备进行配置或恢复。
安全风险 :任何能物理接触到设备的人,只要插上 Console 线,就能直接进入系统。如果不设密码,就等于把设备完全交给陌生人。所以 Console 口必须配置认证。
超时风险 :管理员登录后忘记退出,后面的人可以继续操作。所以需要设置空闲超时,一段时间无操作自动断开。
步骤 1:进入 Console 接口,配置密码登录
操作命令
bash
system-view # 进入系统视图(如果需要)
user-interface console 0
authentication-mode password
set authentication password cipher Huawei@123
逐条解释


步骤 2:设置 Console 连接超时时间
操作命令
bash
idle-timeout 10 20

查看 Console 接口在线用户
操作命令
bash
display user-interface 0
输出及解释
bash
Idx Type Tx/Rx Modem Privi ActualPrivi Auth Int
0 CON 0 9600 15 15 A
| 字段 | 值 | 含义 |
|---|---|---|
| Idx | 0 | 用户线索引号,0 对应 Console 0 |
| Type | CON 0 | 类型为 Console 0 |
| Tx/Rx | 9600 | 波特率,串口通信速率,默认 9600,一般不需要修改 |
| Modem | (空) | 是否支持 Modem,Console 口不支持 |
| Privi | 15 | 该线路配置的默认优先级(权限级别),15 为最高 |
| ActualPrivi | 15 | 当前登录用户实际拥有的优先级(因为没做限制,所以也是 15) |
| Auth | A | 认证状态:A 表示已通过认证(Authenticated) |
| Int | (空) | 该行当前使用的物理接口(Console 口不显示) |

Telnet管理实验



步骤 1:配置管理接口允许 Telnet 协议
操作命令
bash
interface GigabitEthernet0/0/0
service-manage enable
service-manage telnet permit
逻辑拆解
-
service-manage:华为防火墙专门用于控制发往设备自身的管理流量的接口级命令。它独立于安全策略,不经过安全策略检查。 -
service-manage telnet permit:允许从该接口(G0/0/0)接收 Telnet 连接请求(目的端口 23)。 -
为什么需要这条命令?
防火墙默认只允许
ping管理,其它管理服务(Telnet、SSH、HTTPS)必须在接口下显式开启,否则即使 Telnet 服务全局激活,接口也会丢弃 Telnet 报文。
安全提醒 :Telnet 是明文协议,建议只在完全隔离的管理网络 中使用,或者仅用于实验。生产环境请改用 service-manage ssh permit。
service-manage enable:这是总开关,激活了接口的管理访问功能,是整个功能生效的前提。
service-manage telnet permit:这是分开关,在总开关打开的基础上,放行具体的Telnet服务。
service-manage enable是"我要启用管理功能",而service-manage telnet permit是"我要启用的是Telnet这项具体功能"。将两者分开,是V500系列软件为追求极致的安全控制 与架构灵活性,而做出的精妙设计选择。

步骤 2:激活 Telnet 服务
操作命令
bash
telnet server enable
逻辑拆解
-
全局开关 :
telnet server enable是激活设备 Telnet 服务的总开关 。如果此命令未配置,即使接口service-manage telnet permit也无法登录。 -
系统提示不安全的协议 :华为设备会明确警告
Warning: Telnet is not a secure protocol.,提醒你改用 SSH。
两者关系:
bash
全局 telnet server enable(总闸) + 接口 service-manage telnet permit(分支水龙头)= Telnet 可用
常见错误 :只配置了 service-manage telnet permit 却忘记 telnet server enable,导致无法连接。反之亦然。
telnet server enable 和 service-manage enable 是两个不同层级、不同作用范围的总开关,它们不是二选一,而是"与"的关系------必须同时开启,Telnet 才能真正可用。
两个"总开关"的分工
| 开关 | 层级 | 作用范围 | 类比 |
|---|---|---|---|
service-manage enable |
接口级 | 控制某个特定接口是否允许管理流量进入 | 大楼的某个侧门是否开放 |
telnet server enable |
设备级(全局) | 控制整个设备的 Telnet 服务进程是否启动 | 大楼内部的Telnet 服务台是否有人值班 |
关键理解:
-
service-manage enable管的是路(这个口让不让管理流量过)。 -
telnet server enable管的是车(Telnet 这个协议的服务进程有没有启动)。
两者缺一不可。


两者相乘,才是最终的访问结果:
bash
Telnet 最终可用 = telnet server enable (全局开) × service-manage telnet permit (接口开)
完整的工作流程(报文视角)
当一个 Telnet 请求到达防火墙的 G0/0/0 接口时:
bash
步骤 1:接口检查 ------ service-manage 是否 enable?
│
├── 未 enable → 丢弃(接口根本不处理管理流量)
│
└── 已 enable → 继续检查 service-manage telnet permit?
│
├── 未 permit → 丢弃(接口不允许 Telnet)
│
└── 已 permit → 放行,进入下一层
步骤 2:设备全局检查 ------ telnet server 是否 enable?
│
├── 未 enable → 拒绝连接(服务进程没启动)
│
└── 已 enable → 服务进程响应,建立 Telnet 会话
很多初学者(甚至一些老手)会认为:既然我在接口上 service-manage telnet permit 了,就说明我想用 Telnet,设备应该自动帮我开启 telnet server enable。

为什么设备全局检查(telnet server enable)会在接口检查(service-manage)之后?


步骤 3:配置登录失败锁定策略(可选)
操作命令
bash
aaa
lock-authentication enable
lock-authentication failed-count 2
lock-authentication timeout 10
逻辑拆解
-
AAA 视图 :
aaa进入认证、授权、计费配置视图。 -
lock-authentication enable:开启登录失败锁定功能。针对所有通过 AAA 认证的登录方式(如 Telnet、SSH、Web)。 -
failed-count 2:连续失败 2 次后触发锁定(默认 3 次)。 -
timeout 10:锁定持续 10 分钟(默认 30 分钟)。
为什么需要这个配置?
-
防暴力破解:攻击者通过脚本不断尝试密码。锁定策略可以大大增加破解难度。
-
合规要求:等保 2.0 等安全标准要求配置登录失败处理功能。
注意事项
-
此配置仅对 AAA 认证方式 生效。如果 VTY 使用
authentication-mode password(单一密码),则不会触发锁定。 -
锁定的对象是 源 IP + 用户名(或源 IP + 密码模式下的 IP),防止误锁全局。
-
实际生产环境建议设置更严格的阈值(如失败 3 次锁定 30 分钟)。
AAA跟VTY
AAA 和 VTY 不是平级关系,而是"认证机制"与"接入通道"的关系。
我用一个小区门禁系统的比喻帮你彻底理清:
-
VTY :相当于小区的侧门。你通过哪个门进入(门本身有属性:允许刷卡还是刷脸)。
-
AAA :相当于门禁背后的认证中心。它负责核实你是谁、你有没有权限、你做了什么。
一句话总结:VTY 是"通道",AAA 是"通道背后的认证与授权机制"。
一、知识点背景

二、核心定义

三、底层逻辑拆解(VTY 与 AAA 如何协同工作)
1. 登录流程:用户通过 VTY 通道,AAA 做认证
bash
1. 管理员发起 Telnet → 防火墙的 VTY 0 通道接收连接。
2. VTY 检查自己的配置:
- protocol inbound telnet(允许 Telnet 吗?)
- authentication-mode aaa(认证方式是什么?)
3. 如果认证方式是 aaa,VTY 将认证请求"扔给"AAA 模块。
4. AAA 模块接管:
- 提示输入用户名/密码。
- 查询本地用户数据库(或 RADIUS 服务器)。
- 检查用户是否被锁定、密码是否正确。
- 返回认证结果(成功/失败)给 VTY。
5. VTY 根据 AAA 的结果:允许进入或拒绝。
步骤 4:配置 VTY 接口,允许 Telnet 并使用本地账号登录
操作命令
bash
user-interface vty 0 4
authentication-mode aaa
protocol inbound telnet
逻辑拆解
-
user-interface vty 0 4:虚拟终端通道,共 5 个(0,1,2,3,4),用于远程登录。同时最多允许 5 个 Telnet/SSH 会话。 -
authentication-mode aaa:认证方式改为 AAA(即使用本地用户数据库或 RADIUS 服务器)。如果不配,默认是password(单一密码)或none。 -
protocol inbound telnet:指定该 VTY 通道允许的入向协议。可选telnet、ssh、all。此处限定为telnet,防止误用 SSH(但生产环境应反过来)。
为什么要用 aaa 而不是 password?
-
password模式:所有登录者共用同一个密码,无法区分用户,无法单独锁定,无法审计谁做了什么。 -
aaa模式:可创建多个本地用户,分配不同权限,记录操作日志,支持失败锁定策略。
VTY 线路自身的协议准入控制。
直接结论 :protocol inbound telnet 是 VTY 线路(虚拟终端通道)的"门禁" ,它决定了这条 VTY 通道允许哪种远程登录协议进入。即使前面两层都放行了,如果 VTY 通道拒绝 Telnet 协议,你依然无法登录。
一、三层控制的分工与类比
| 层级 | 配置命令 | 作用 | 类比 |
|---|---|---|---|
| 第1层:接口级 | service-manage telnet permit |
控制该物理接口是否允许 Telnet 管理流量进入 | 公司大楼侧门是否开放给访客 |
| 第2层:全局服务 | telnet server enable |
控制设备上的 Telnet 服务进程是否启动 | 公司前台接待是否有人在岗 |
| 第3层:VTY 通道 | protocol inbound telnet |
控制某条 VTY 虚拟通道是否允许 Telnet 协议建立会话 | 公司内部的具体办公室门是否允许访客进入 |
关键理解:
-
前两层决定了"你能不能进大楼"。
-
第三层决定了"你进了大楼后,能不能进某个具体的办公室(VTY 通道)来办事"。
二、为什么 VTY 还要单独限制协议?


三、完整的三层检查顺序(报文视角)
当管理员发起 Telnet 请求时,防火墙的处理流程:
bash
1. 物理接口 G0/0/0 收到报文
↓
2. 检查 service-manage telnet permit ?(接口级)
- 未配置 → 丢弃
- 已配置 → 继续
↓
3. 检查全局 telnet server enable ?(服务级)
- 未开启 → 拒绝连接(或无响应)
- 已开启 → 继续
↓
4. 查找空闲的 VTY 通道(0-4 中找一个未使用的)
↓
5. 检查该 VTY 通道的 protocol inbound 是否允许 telnet?
- 不允许(例如配置了 protocol inbound ssh)→ 拒绝
- 允许 → 继续
↓
6. 检查 VTY 的 authentication-mode
- none → 直接进入
- password → 提示输入密码
- aaa → 进入 AAA 认证流程
↓
7. 认证通过 → 登录成功
注意 :protocol inbound 检查发生在 VTY 通道分配之后、认证之前。如果协议不匹配,根本不会提示你输入用户名密码。
四、为什么不把协议检查放在全局或接口层?
因为协议类型(Telnet vs SSH)是应用层 的概念。接口层只关心"这是不是管理流量",不区分具体协议;全局服务层虽然区分了 telnet server 和 ssh server,但那是独立的进程开关。而 VTY 通道是会话层的概念,它天然需要知道这个会话要用什么协议来传输数据。
设计哲学:每一层做自己该做的事。接口层管物理准入,服务层管进程是否启动,VTY 层管会话协议的匹配。这样各层职责清晰,也允许更灵活的组合(比如你可以在全局开启 Telnet 和 SSH,但只让 VTY 0-2 允许 SSH,VTY 3-4 允许 Telnet)。
五、配置示例:混合协议分配
bash
# 前 3 条 VTY 只允许 SSH
user-interface vty 0 2
protocol inbound ssh
authentication-mode aaa
# 后 2 条 VTY 只允许 Telnet
user-interface vty 3 4
protocol inbound telnet
authentication-mode password
set authentication password cipher TelnetOnly
这样:
-
SSH 客户端会占用 VTY 0-2。
-
Telnet 客户端会占用 VTY 3-4。
-
即使全局
telnet server enable和ssh server enable都开启了,协议也会被限制在指定的 VTY 通道上。
步骤 5:管理员账号添加 Telnet 登录功能
操作命令
bash
aaa
manager-user admin
service-type web terminal telnet
逻辑拆解
-
manager-user admin:进入名为admin的管理员用户配置视图。如果用户不存在,则会创建。 -
service-type:指定该管理员允许使用哪些服务登录。-
web:Web 界面(HTTPS) -
terminal:Console 口 -
telnet:Telnet 登录 -
ssh:SSH 登录
-
-
为什么需要配置
service-type telnet?即使 VTY 允许 Telnet,但 AAA 认证时还会检查用户是否具有
telnet服务权限。如果没有,认证会被拒绝。
完整的 Telnet 登录检查流程(4 层)
bash
【第1层:接口级】
G0/0/0 收到 Telnet 请求
↓
检查 service-manage telnet permit? → 否 → 丢弃
↓ 是
【第2层:全局服务级】
检查 telnet server enable? → 否 → 拒绝
↓ 是
【第3层:VTY 通道级】
找到空闲 VTY,检查 protocol inbound telnet? → 否 → 拒绝
↓ 是
检查 authentication-mode aaa → 触发 AAA 认证
↓
【第4层:AAA 用户级】
AAA 提示输入用户名/密码
↓
检查用户名/密码是否正确? → 否 → 认证失败
↓ 是
检查该用户的 service-type 是否包含 telnet? → 否 → 授权失败,拒绝登录
↓ 是
检查该用户的 privilege level / role(授权)→ 分配权限
↓
登录成功,进入 CLI
关键点 :service-type 检查发生在密码验证通过之后、权限分配之前 。如果用户密码正确但 service-type 不含 telnet,会收到类似 Authorization failed 或 Access denied 的提示。
| 层级 | 控制对象 | 作用 |
|---|---|---|
接口 service-manage |
所有管理流量 | 物理接口允许哪种管理协议进入 |
全局服务 telnet server enable |
所有 Telnet 流量 | 设备是否启动 Telnet 服务进程 |
VTY protocol inbound |
该 VTY 通道 | 该通道允许哪种协议建立会话 |
AAA service-type |
特定用户 | 该用户允许使用哪种服务登录 |
思考:为什么配置Telnet需要有四个开关?
场景一:为什么需要"接口级"开关?
需求:同一个设备,内网口允许 Telnet,外网口绝对禁止 Telnet
背景:防火墙有两个接口------GE0/0/1 连接内网(Trust),GE0/0/2 连接外网(Untrust)。你希望:
-
管理员从内网可以 Telnet 登录。
-
任何人从外网不得 Telnet 登录(即使他知道密码)。
如果只有全局、VTY、AAA,没有接口级开关:
-
全局
telnet server enable开启 → 所有接口都允许 Telnet。 -
你无法区分内网口和外网口。只能靠 ACL 限制源 IP,但外网口如果也允许 Telnet 流量进入,攻击者依然可以暴力尝试,消耗防火墙 CPU。
接口级开关的不可替代性:
-
service-manage telnet deny在硬件/驱动层直接丢弃报文,不消耗控制平面 CPU。 -
只有接口级开关能做到"物理隔离"不同端口的 Telnet 权限。
结论:没有接口级开关,你无法实现"内网开、外网关"这种最基本的安全隔离。
场景二:为什么需要"全局级"开关?
需求:紧急关闭所有 Telnet 服务,但保留 SSH 和业务
背景 :你收到安全通告,Telnet 协议存在严重漏洞(如 CVE-2020-101XX)。你需要立即、完全禁止任何 Telnet 连接,同时不影响正在进行的 SSH 会话和业务流量。
如果只有接口、VTY、AAA,没有全局级开关:
-
你需要登录每一台防火墙,找到每一个开启了
service-manage telnet permit的接口,执行undo service-manage telnet permit。 -
如果有 100 台防火墙,每台平均 4 个接口开了 Telnet,你要操作 400 个地方。紧急情况下极易遗漏。
-
更糟:如果你之前配置了
service-manage telnet permit acl,需要先删除 ACL 或修改 ACL,步骤更多。
全局级开关的不可替代性:
-
undo telnet server enable一条命令,瞬间关闭整个设备的 Telnet 服务进程。 -
无论接口如何配置,Telnet 都不再响应。这是最高效的应急停止手段。
结论:没有全局级开关,紧急安全响应将是一场灾难。
场景三:为什么需要"VTY 级"开关?
需求:限制 Telnet 并发会话数,防止 DoS 攻击
背景:你担心攻击者通过大量 Telnet 连接占满所有 VTY 通道,导致管理员无法通过 SSH 登录。
如果只有接口、全局、AAA,没有 VTY 级 protocol inbound 区分:
-
VTY 0-4 默认同时接受 Telnet 和 SSH。攻击者用 5 个 Telnet 连接占满 VTY 0-4,你的 SSH 就无法进来了。
-
你无法"预留"几条 VTY 专门给 SSH。
VTY 级开关的不可替代性:
user-interface vty 0 2
protocol inbound ssh
user-interface vty 3 4
protocol inbound telnet
-
这样,SSH 只能用 VTY 0-2(3 个并发),Telnet 只能用 VTY 3-4(2 个并发)。
-
攻击者最多占满 2 个 Telnet 通道,管理员仍可通过 SSH 使用剩余的 3 个通道登录。
结论:没有 VTY 级协议区分,你无法实现"资源预留"和"攻击面隔离"。
场景四:为什么需要"AAA 用户级"开关?
需求:同一个用户名,只允许通过 SSH 登录,不允许 Telnet
背景 :公司安全策略要求:管理员 admin 必须使用加密协议(SSH)远程管理,严禁使用明文 Telnet。但是 admin 同时需要从 Console 口(本地)登录进行紧急维护。
如果只有接口、全局、VTY,没有 AAA 的 service-type:
-
VTY 配置
authentication-mode aaa后,admin只要能通过密码验证,就可以从 Telnet 和 SSH 两种方式登录。 -
你无法禁止
admin使用 Telnet,因为 VTY 的protocol inbound是通道级的,不能针对不同用户区分。 -
你只能创建两个不同用户(如
admin-ssh和admin-telnet),但这样不便于统一管理。
AAA 用户级开关的不可替代性:
bash
aaa
manager-user admin
service-type ssh terminal # 允许 SSH 和 Console,但不允许 telnet
-
即使全局 Telnet 开启、接口允许、VTY 允许,
admin用 Telnet 登录时,AAA 会在授权阶段拒绝。 -
同时,
admin仍然可以通过 SSH 和 Console 正常登录。
结论 :没有 service-type,你无法做到"同一用户不同登录协议的最小权限控制"。
总结:四个场景,四个不可替代的开关
| 开关层级 | 解决的唯一问题 | 不可替代的理由 |
|---|---|---|
| 接口级 | 不同物理端口不同策略(内网开/外网关) | 硬件级丢弃,节省 CPU,实现端口隔离 |
| 全局级 | 紧急一键关闭所有 Telnet 服务 | 应急响应效率,避免逐个接口操作 |
| VTY 级 | 限制 Telnet 并发数,隔离协议资源 | 防止 DoS 占满通道,预留 SSH 通道 |
| AAA 级 | 同一用户禁止 Telnet 但允许 SSH | 用户级最小权限,满足合规要求 |
这四个场景是正交的,即任何一个场景的需求都无法用其他三个开关的组合来实现。因此,四个开关必须同时存在。
3.2 图形化管理
HTTPS管理实验



四、文件管理







文件管理试验







相关问题
问题1:Service-Manage(接口访问控制管理)的接口下面策略的优先级大于安全策略
知识点背景:为什么需要Service-Manage?(从0到1的必然)
1.1 安全策略的"死锁"困境
想象一下:一台全新的华为USG防火墙,刚从包装盒里拿出来。它上面划分了Trust和Untrust区域,默认安全策略是deny all(全部拒绝)。这是防火墙的安全基石。
现在,管理员需要登录这台防火墙进行配置。他怎么登录?
-
通过Web界面 :需要防火墙开启HTTPS服务,并且需要有一条安全策略允许
管理员所在区域(比如Trust) → Local(防火墙自身)的HTTPS流量。 -
问题来了 :要配置这条安全策略,管理员必须先登录到防火墙。但登录需要这条策略已经存在------先有鸡还是先有蛋?
这就是安全策略的"管理死锁"。如果完全依赖安全策略来控制对防火墙自身的管理访问,那么初始配置就变成了一个无法解开的环。
1.2 Local区域的特殊性
在华为防火墙的安全区域体系中,Local区域是特殊的:
-
所有发往防火墙自身的流量(SSH、HTTPS、SNMP、路由协议报文等),目的地都是Local区域。
-
所有从防火墙自身发出的流量(回应报文、主动发起的连接),源区域都是Local区域。
按照域间安全策略的默认规则:高优先级区域到低优先级区域默认允许(Local→其他),低优先级区域到高优先级区域默认拒绝(其他→Local)。Local优先级是100,最高。
所以,默认情况下,任何从Trust(优先级85)发往Local(优先级100)的管理流量,都会被安全策略直接丢弃 ,即使你写了一条permit策略也不行?不,如果你写了permit策略,它会覆盖默认行为。但关键点是:在没有写任何策略的情况下,默认是拒绝的。而初始配置时,你还没法写这条策略。
1.3 Service-Manage的诞生:独立的"管理通道"
为了解决这个死锁,华为在设计防火墙时,决定将"设备自身管理 "与"业务流量转发 "在数据转发平面上物理上分离处理。
-
业务流量:走完整的安全策略匹配、会话建立、内容安全检测流程。
-
管理流量 :在报文进入接口的第一时间,由一个独立的、轻量级的检查机制(Service-Manage)直接处理。这个机制不依赖安全策略、不依赖会话表、甚至不依赖区域配置是否完整。
核心目的:保证在任何情况下(即使安全策略配置错误、区域未划分、会话表满),管理员只要还有接口IP和物理连接,就能通过一个"后门"(但这个是安全的后门,可以单独控制)登录设备进行维护。
所以,Service-Manage不是安全策略的替代品,而是安全策略的"前置快速通道",专门用于设备自身管理。
核心定义(重新提炼)
Service-Manage 是华为防火墙在接口视图下提供的一个独立于安全策略体系 的、入方向报文预过滤 功能。它位于报文处理流水线的最前端(接口接收后、查找会话表/安全策略之前),仅用于控制发往设备自身(Local区域)的指定管理协议(HTTP/HTTPS/SSH/Telnet/SNMP/Ping)。其检查结果具有最高优先级------一旦拒绝,报文不会再进入后续任何处理流程。
关键词:独立于安全策略、处理流水线最前端、仅限管理协议、优先级最高。
底层逻辑拆解:为什么接口下的策略优先级大于安全策略?
要理解这个"优先级大于",不能从数值上理解(比如数字大优先),而是要从防火墙内部报文处理流程的先后顺序来理解。
2.1 标准报文处理流程(无Service-Manage)
一个数据包从接口进入防火墙,大致会经历以下阶段(简化版):
-
物理/链路层接收:校验MAC、VLAN等。
-
查找会话表:检查是否已有会话(状态检测核心)。
-
如果未命中会话:进行路由查找,确定出接口和下一跳。
-
安全策略匹配:根据源区域、目的区域、五元组等匹配策略规则。
-
创建会话:如果策略允许,创建会话表项。
-
转发/上送CPU:如果是发往设备自身(Local),则上送CPU处理(如SSH解密)。
问题:在这个流程中,如果安全策略拒绝,报文在第4步就被丢了。而管理员要配置安全策略,必须能先登录------死锁。
2.2 加入Service-Manage后的处理流程
华为防火墙在第1步之后、第2步之前 ,插入了一个新的检查点:Service-Manage检查。
bash
报文进入接口
↓
[物理/链路层接收]
↓
★ Service-Manage检查(接口视图配置)★ ← 这里是第一道闸门
↓ (检查通过)
查找会话表
↓ (未命中)
路由查找
↓
安全策略匹配(区域、策略)
↓
创建会话/上送CPU
关键点 :Service-Manage检查在会话表查找之前,更在安全策略匹配之前。
这意味着:
-
如果Service-Manage拒绝了该报文 (比如接口下没有配置
service-manage ssh permit),报文直接丢弃,后续的会话表、安全策略、路由统统看不到这个包。 -
如果Service-Manage允许了该报文,它才被放行进入后续的会话表和安全策略处理流程。
所以,"优先级大于"是指处理时序上的绝对优先:它先执行,执行结果直接决定后续流程是否被执行。安全策略连"看到"这个包的机会都没有,如果Service-Manage没放行。
2.3 为什么设计成这样?(三个根本原因)
原因一:解耦管理流与业务流,保证带外管理可行性
安全策略可能因为配置错误导致所有流量被阻断。如果管理流量也走安全策略,那管理员就会被锁在外面,只能通过Console口(物理线缆)恢复。但很多生产环境,防火墙可能部署在远端机房,Console口不可达。
Service-Manage作为一个独立于安全策略配置 的检查点,即使安全策略全错(比如把所有策略都删了),只要接口下还有service-manage ssh permit,管理员就能SSH进去修复。
原因二:性能考虑,避免管理流量占用会话表资源
管理流量(比如管理员的一次SSH登录)会创建会话表项。如果大量无效的管理探测攻击(比如扫描防火墙SSH端口)也创建会话,会浪费会话表资源。Service-Manage在会话表之前就丢包,这些攻击流量连会话表都看不到,直接被接口级别的ACL丢弃,高效且安全。
原因三:提供接口级别的"精细化管理粒度"
安全策略是基于区域 的。一个区域可能包含多个接口。如果我想允许从某个特定接口(比如专门的管理接口)进行SSH登录,但禁止从同区域的其他业务接口进行SSH登录,用安全策略很难实现(因为源区域相同)。而Service-Manage是接口级别的,可以做到"这个接口开SSH,那个接口不开",粒度更细。
华为设备落地(逻辑层面的落地)
在实际设备上,这个"优先级"体现在:
-
当你尝试从G1/0/1接口ping防火墙的该接口IP时,如果接口下没有
service-manage ping permit,你会立刻收到Request timeout。即使你在安全策略中写了一条permit ip source any destination any(完全放行),也依然不通。因为Service-Manage在第一关就丢包了。 -
当你配置了
service-manage ping permit,但安全策略拒绝了Trust → Local的ICMP,你会发现ping还是不通。这是因为Service-Manage放行后,报文进入了安全策略阶段,被安全策略拒绝了。
两者是"与"的关系 :必须Service-Manage允许 且 安全策略允许,管理流量才能最终到达设备CPU。
问题2:管理接口的路由跟业务接口的路由不在同一张路由表里

知识点背景:诞生原因与解决痛点
这背后是网络安全设计中"管理与业务分离"的核心原则。试想,如果防火墙的Web管理页面与员工上网走同一个IP地址和路由通道,会带来巨大风险:
-
暴露攻击面:黑客扫描到你的公网IP,很可能发现并攻击你的Web管理界面,风险极高。
-
干扰业务稳定性:一条错误的路由配置(如默认路由指向错误)可能导致整个网络瘫痪,同时防火墙也无法远程登录恢复。
-
违背审计原则:管理员本应从专属的管理网段登录,如果与普通员工共用网络,所有操作将混杂在一起,无法进行有效的审计与溯源。
华为防火墙通过将管理接口"关进"一个名为 default 的独立VPN实例 中,实现了从路由表到转发表的彻底隔离。这在华为官方文档中被称为"将管理平面与业务平面分离",是提升设备自身安全性的关键设计。
核心定义:VPN实例与default
-
VPN实例(VRF):你可以理解为在物理防火墙上虚拟出的多台独立路由器,每台都有自己专属的路由表、接口和协议进程,彼此"看不见"对方的路由。
-
defaultVPN实例 :这是华为防火墙内置的管理专用虚拟路由器 。在V500R001C50SPC100及之后版本中,防火墙的物理管理口(GigabitEthernet0/0/0)出厂时就被默认绑定到了名为default的VPN实例中。
因此,普通业务口的路由都存在于"全局路由表"中,而管理口的路由则存在于"default VPN实例的路由表"中。这就是你执行 display ip routing-table 看不到管理网段直连路由,必须加上 vpn-instance default 才能看到的根本原因。