企业网络出口部署与SSL-VPN远程接入

• 针对公司新办公区网络建设及员工居家办公需求,我负责主导网络出口的部署与远程接入方案。通过部署企业级防火墙划分安全域,配置源NAT策略实现内网终端稳定共享上网;利用NAT Server安全发布内网核心服务器,并配置严格的安全策略进行访问控制。同时,在防火墙部署SSL-VPN网关并分配独立虚拟地址池,下发网络扩展路由。项目顺利上线,保障了百余台终端的日常网络稳定,并让出差员工能随时安全加密地访问内网资源,大幅提升了跨域协作效率。!!!!加上ACL访问控制!!!!核心交换机设旁挂!!!!

针对公司频繁因私接路由器导致IP冲突断网,及核心网络曾发生静态路由环路的问
题,我负责内网优化与安全加固。在三层核心交换机集中部署VLAN、网关与
DHCP服务规范IP分配;利用“最长掩码匹配原则”配置NullO黑洞路由,从逻辑
上彻底切断了汇总路由引发的环路。在二层接入交换机全局开启DHCP Snooping
拦截非法网关,将终端接口设为STP边缘端口并开启BPDUGuard,物理阻断私接
交换设备。项目落地后,内网非法接入与环路故障率下降90%以上,极大降低了日
常排障压力。

交换机堆叠,链路聚合。服务器重新弄。防火墙双机热备

image-20260406105905212

画拓扑图

划分VLAN,配置IP地址

在核心交换机配置网关,并在各交换机上配置互联(trunk,access)

配置路由:核心交换机配置缺省路由。

防火墙基础配置:安全域,接口,NAT,安全策略,发布服务器

部署SSLVPN

回程路由

注意事项

项目需要划分VLAN进行隔离:

不同部门 → 不同 VLAN

服务器单独 VLAN(安全)

运维单独 VLAN(高权限隔离)

VLAN网关全部放核心交换机(统一三层网关)

核心交换机负责VLAN网关和VLAN间路由。

下层交换机为二层交换机,只负责接入+VLAN划分

核心交换机和下层交换机都要创建VLAN,否则识别不出来

PC只用配置IP,子网掩码,网关。不需要路由和VLAN配置

下层交换机也不需要写路由(二层交换机,不路由)

下层交换机接PC的口不需要配IP,交换机要配IP只在VLAN中配管理IP用来远程登录

拓扑里可以没有路由器,核心交换机(三层) → 防火墙 → 互联网,防火墙 = 路由器 + 安全设备

下层交换机与核心交换机之间两个接口不用配IP,只传VLAN。

例:interface GE0/0/1
port link-type trunk
port trunk allow-pass vlan 10 20 30

三层交换机做互联(做路由)时才配IP

核心交换机的VLAN IP写的是网关地址

在核心交换机而不是下层交换机上配DHCP,否则每个交换机都要配DHCP

企业更高级做法:

  • DHCP 放在服务器(比如 VLAN100)
  • 核心交换机做 DHCP Relay

画拓扑图

划分安全域,划分VLAN及网段,网关,链路IP(图中核心与防火墙间IP),路由(要标方向),标NAT,标SSL VPN,标DHCP及其他服务。

防火墙接Cloud的口为业务口而不是管理口,需要和cloud在同一个网段。管理口只用于登陆设备,不参与流量转发,不能做NAT。

要访问防火墙web界面时,电脑IP需要和防火墙管理口IP在同一网段。管理口要在trust或manage区。

需要让防火墙与cloud相连的接口为业务口,并且与我的vmnet8的IP在同一网段,让防火墙管理口在trust区并且与我电脑的host-only的IP地址在同一个网段。****

image-20260406145622330

将底部PC都设为DHCP自动获取(在核心交换机配置 )

image-20260406145557452

接入层交换机

1. 基础全局配置

在开始业务配置前,先完成设备的“身份认证”:

  • 修改设备名:sysname Access_SW1,方便后期维护。

  • 管理 IP: 给交换机配置一个管理 VLAN(通常是 VLAN 1)或专门的带外管理口 IP,方便你坐在办公室 SSH 远程登录。配置一条缺省路由指向网关。

    vlan 300
    interface Vlanif 300
    ip address 172.16.30.1 24
    qu
    ip route-static 0.0.0.0 0 172.16.30.254

  • 登录安全: 开启 Stelnet (SSH)Telnet,设置 aaa 用户名和密码。

    stelnet server enable#开启SSH服务
    rsa local-key-pair create#生成密钥
    user-interface vty 0 4#同时允许五个人在线
    authentication-mode aaa#认证模式设为用户名密码
    protocol inbound ssh#允许ssh登录
    qu

    aaa#aaa是华为设备管理用户的“管家”
    local-user admin password cipher admin@123

    #设置用户名admin和加密密码admin@123

    local-user admin service-type ssh

    #允许此用户使用ssh

    local-user admin privilege level 15

    #设置最高权限(0-15,15是管理级)

    qu

2. 接口业务配置(核心步骤)

这是让终端设备上网的关键:

  • **创建业务 VLAN:**需要创建“经过”这台交换机的业务 VLAN 和管理 VLAN。

    vlan 10

  • 配置 Access 端口:

    • 将连接 PC 的端口设置为 port link-type access
    • 将端口加入对应 VLAN:port default vlan 10
  • 配置 Trunk 上行口:

    • 将连接核心交换机的端口设置为 port link-type trunk

    • 关键: 必须放行业务 VLAN 流量:`port trunk allow-pass vlan 10 。

      interface GigabitEthernet 0/0/1
      port link-type trunk
      vlan 10
      interface GigabitEthernet 0/0/2
      qu
      interface GigabitEthernet0/0/3
      port link-type access

      qu

3. 链路高可用(如果存在多链路)

  • Eth-Trunk(链路聚合): 如果你的接入交换机和核心之间连了两根线,需要配置链路聚合以增加带宽并实现冗余备份。

  • STP(生成树协议): 确保开启 STP(华为默认开启),并建议配置 边缘端口(Edge Port)

    小技巧: 将连接 PC 的接口设为边缘端口,可以让 PC 连上瞬间就进入转发状态,不需要等待 30 秒的收敛时间。

4. 接入安全配置(真实项目常做)

在真实场景中,为了防止别人乱插设备,通常会配:

  • 端口安全(Port Security): 绑定 MAC 地址,防止私接小路由器。
  • DHCP Snooping: 防止有人在下面私自接一个路由器导致其他 PC 领到错误的 IP 地址(防止“伪 DHCP 服务器”)。
  • 防环路检测: 开启 loopback-detection,防止办公室内部由于网线乱插导致的小范围广播风暴。

真实项目会批量设置端口,预留未来,以后新加入PC就不用再配置一遍接入安全。

接入交换机24个口,一个接了上层核心交换机,剩下的全部批量设置。

  1. 创建并进入一个临时端口组,选中 2 到 24 号口

[Access_SW1] port-group group-member GigabitEthernet 0/0/2 to GigabitEthernet 0/0/24

  1. 基础接入配置

[Access_SW1-port-group] port link-type access
[Access_SW1-port-group] port default vlan 10 # 假设这些口都属于 VLAN 10

  1. 开启 STP 边缘端口(插线即连通,防震荡)

[Access_SW1-port-group] stp edged-port enable

  1. 开启 DHCP Snooping(防私接路由器)

[Access_SW1-port-group] dhcp snooping enable

  1. 开启 Loopback-detection(防本地环路)

[Access_SW1-port-group] loopback-detect enable
[Access_SW1-port-group] loopback-detect action shutdown # 发现环路直接关掉端口

  1. 开启端口安全(限制 MAC 地址)

[Access_SW1-port-group] port-security enable
[Access_SW1-port-group] port-security max-mac-num 1 # 每个口只准接一台设备
[Access_SW1-port-group] port-security protect-action restrict # 违规时丢弃报文并上报日志

  1. 退出组配置

[Access_SW1-port-group] quit

接入层交换机完整配置脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
system-view
sysname access_sw3

vlan 30
vlan 300
description Management_Network
interface GigabitEthernet 0/0/1
port link-type trunk
port trunk allow-pass vlan 300
qu

interface Vlanif 300
ip address 172.16.30.3 24
qu
ip route-static 0.0.0.0 0 172.16.30.254

stelnet server enable
rsa local-key-pair create


user-interface vty 0 4
authentication-mode aaa
protocol inbound ssh
aaa
local-user admin password cipher admin@123
local-user admin service-type ssh
local-user admin privilege level 15
qu

dhcp enable
dhcp snooping enable


port-group group-member GigabitEthernet 0/0/2 to GigabitEthernet 0/0/24
port link-type access
port default vlan 30
stp edged-port enable
dhcp snooping enable
loopback-detect enable
loopback-detect action shutdown
port-security enable
port-security max-mac-num 1
port-security protect-action restrict
quit

quit
save
y


interface GigabitEthernet 0/0/1
port link-type trunk
port trunk allow-pass vlan 10 300 #trunk口必须放行10和300
dhcp snooping trusted # 必须:信任来自核心的DHCP报文
quit

undo ip route-static 0.0.0.0 0 172.16.30.254
interface Vlanif 300
ip address 172.16.200.1 24
qu
ip route-static 0.0.0.0 0 172.16.200.254

终极版整理好脚本(以 SW3 为例)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
system-view
sysname Access_SW3

# 1. VLAN与基础管理

vlan batch 30 300
interface Vlanif 300
ip address 172.16.200.3 24 # 注意:每台交换机这个IP要唯一,比如SW1用.1,SW2用.2
quit
ip route-static 0.0.0.0 0.0.0.0 172.16.200.254

# 2. 核心链路与DHCP安全

dhcp enable
dhcp snooping enable
interface GigabitEthernet 0/0/1
port link-type trunk
port trunk allow-pass vlan 30 300
dhcp snooping trusted
quit

# 3. SSH远程管理

stelnet server enable

# rsa local-key-pair create <-- 建议这一步手动执行,输入2048

aaa
local-user admin password cipher admin@123
local-user admin service-type ssh
local-user admin privilege level 15
quit
user-interface vty 0 4
authentication-mode aaa
protocol inbound ssh
quit

# 4. 批量业务端口安全

port-group group-member GigabitEthernet 0/0/2 to GigabitEthernet 0/0/24
port link-type access
port default vlan 30
stp edged-port enable
dhcp snooping enable
loopback-detect enable
loopback-detect action shutdown
port-security enable
port-security max-mac-num 1
port-security protect-action restrict
quit

二层交换机配缺省路由,下一跳应为交换机网关。

配置核心交换机

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
vlan 100
description server
qu
vlan 200
description yunwei
qu
vlan 300
description manage_sw
qu
vlan 10
description yewu
qu
vlan 20
description yewu
qu
vlan 30
description yewu
qu

1
2
3
# 开启生成树并设置核心为根桥(防止二层环路震荡) 
stp mode mstp
stp root primary

配置网关

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
  # 业务网段网关
interface Vlanif 10
ip address 172.16.10.254 24
qu
interface Vlanif 20
ip address 172.16.20.254 24
qu
interface Vlanif 30
ip address 172.16.30.254 24
qu


# 服务器区与运维区网关
interface Vlanif 100
ip address 172.16.100.254 24
qu
interface Vlanif 200
ip address 172.16.222.254 24
qu

# 设备管理网段网关
interface Vlanif 300
ip address 172.16.200.254 24
quit

3. 配置 DHCP 地址池(让 PC 自动获取 IP)

核心交换机作为 DHCP Server,必须开启全局功能并关联接口。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
dhcp enable
#创建地址池
ip pool pool_vlan30
network 172.16.30.0 mask 255.255.255.0
gateway-list 172.16.30.254
dns-list 223.5.5.5 8.8.8.8
quit

ip pool pool_vlan20
network 172.16.20.0 mask 255.255.255.0
gateway-list 172.16.20.254
dns-list 223.5.5.5 8.8.8.8
quit

ip pool pool_vlan10
network 172.16.10.0 mask 255.255.255.0
gateway-list 172.16.10.254
dns-list 223.5.5.5 8.8.8.8
quit

ip pool pool_vlan200
network 172.16.222.0 mask 255.255.255.0
gateway-list 172.16.222.254
dns-list 223.5.5.5 8.8.8.8
quit
# 将地址池应用到接口(非常重要,每个VLANIF都要操作)

interface Vlanif 10
dhcp select global
qu
interface Vlanif 20
dhcp select global
qu
interface Vlanif 30
dhcp select global
qu
interface Vlanif 200
dhcp select global
qu

# 管理网段通常建议手动配静态IP,不一定要开DHCP

4. 物理接口配置(下联接入层)

核心的 G0/0/5、G0/0/6、G0/0/7、 G0/0/8分别连接四台接入交换机。

1
2
3
4
5
6
7
port-group group-member GigabitEthernet 0/0/5 to GigabitEthernet 0/0/8
port link-type trunk

# 放行所有业务VLAN和管理VLAN

port trunk allow-pass vlan 10 20 30 100 200 300
quit
1
2
3
4
5
6
7
8
9
[Core_SW] interface GigabitEthernet 0/0/6
[Core_SW-GigabitEthernet0/0/6] port trunk allow-pass vlan 20 300
[Core_SW-GigabitEthernet0/0/6] quit

[Core_SW] interface GigabitEthernet 0/0/7
[Core_SW-GigabitEthernet0/0/7] port trunk allow-pass vlan 30 300
[Core_SW-GigabitEthernet0/0/7] quit


核心交换机下联接口需要放行vlan100,否则服务器返回的数据无法到达。

如果服务器是直连核心: 核心的物理口会配置成 access vlan 100,确实不经过 Trunk。

但在你的拓扑图中: 服务器区通常由专门的服务器接入交换机组成。如果你那 4 个接口(G0/0/5-8)中,有任何一个连接的是下层的交换机,且该交换机下挂了服务器,那么这个 Trunk 口就必须承载 VLAN 100。

为了保险: 在核心交换机连接所有接入层交换机的 Trunk 链路上放行所有业务 VLAN(10/20/30/100)是最稳妥的做法。

运维区建议做“静态绑定”: 运维 PC 通常需要访问服务器、登录防火墙、管理交换机。如果 IP 经常变动,你可能需要在防火墙上反复修改权限策略。

建议: 在核心交换机的 DHCP 地址池里,根据 PC 的 MAC 地址做 Static-bind,确保你那台运维电脑永远拿到的都是同一个 IP(比如 172.16.200.100)。

核心与防火墙之间也需要单独划分vlan。

5. 出口路由配置(对接防火墙)

假设核心 G0/0/4连接防火墙,互联地址为 10.10.10.1/30。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
interface Vlanif 800
ip address 10.10.10.1 30 # 核心端IP
quit

interface GigabitEthernet 0/0/4
port link-type access
port default vlan 800
quit

# 缺省路由:所有访问外网的流量都丢给防火墙

ip route-static 0.0.0.0 0.0.0.0 10.10.10.2
#黑洞路由,防三层环
ip route-static 172.16.0.0 255.255.0.0 NULL 0

建议: 按照惯例,通常防火墙(出口设备)用 .1交换机.2。如果你现在这样写也可以,但等会儿配置防火墙接口时,记得把防火墙内口配成 10.10.10.2

远程管理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# --- 6. 远程管理配置 (SSH) ---

stelnet server enable

# rsa local-key-pair create (此处需手动确认输入2048)

aaa
local-user admin password cipher admin@123
local-user admin service-type ssh
local-user admin privilege level 15
quit

user-interface vty 0 4
authentication-mode aaa
protocol inbound ssh
quit

quit
save
y
y

在华为设备中,即便你定义了全局地址池(ip pool),如果不把这个池子绑定到对应的三层接口(Vlanif)上,核心交换机在收到来自该 VLAN 的 DHCP 请求时,是不知道该用哪个地址池来回应的。

请按照以下步骤补全配置,VLAN 20 和 VLAN 30 都需要补上

补全核心交换机(Core_SW)配置

请在核心交换机上执行以下命令:

1
2
3
4
5
6
7
8
9
10
11
system-view

# 关联 VLAN 20 的地址池
interface Vlanif 20
dhcp select global
quit

# 关联 VLAN 30 的地址池
interface Vlanif 30
dhcp select global
quit

如何实现“运维能访问,其他不能访问”?

这是本项目的核心安全需求。由于你的网关全在核心交换机上,如果不加限制,VLAN 10/20/30 默认都能 Ping 通管理 IP。你需要通过 ACL(访问控制列表) 来实现隔离。

1
2
3
4
5
6
7
8
9
10
11
12
# 1. 定义 ACL,只允许运维网段访问设备管理端口(通常是22端口或所有端口)

acl 3000
rule 5 permit ip source 172.16.222.0 0.0.0.255 destination 172.16.200.0 0.0.0.255
rule 10 deny ip destination 172.16.200.0 0.0.0.255 # 拒绝其他所有网段访问管理网
quit

# 2. 将 ACL 应用在 VTY 远程登录线路上(最直接的做法)

user-interface vty 0 4
acl 3000 inbound
quit
  • 管理面完全隔离:
    • VLAN 10/20/30 的 PC:即使它们知道交换机的管理 IP(172.16.200.x),当它们尝试通过 SSH 或 Telnet 登录时,请求会在进入交换机虚拟终端(VTY)的一瞬间被 rule 10 拦截。它们会看到“Connection refused”或超时。
    • 运维区 PC (VLAN 200):只有 IP 地址处于 172.16.222.0/24 段的电脑,才能成功弹出用户名和密码输入框。
  • 注意: 这段代码只限制了“远程管理登录”。如果 VLAN 10 的 PC 去 Ping 交换机的管理 IP,通常还是能 Ping 通的(因为 Ping 走的是 ICMP 协议,不一定触发 VTY 线路的检查),但它们无法控制设备。

“PC 不能访问运维区电脑”:现实需要做!!!!

现实情况中的三层防护架构:

  1. 管理层面控制(你已经做的): 利用 ACL 限制谁能通过 SSH/Web 登录设备。

  2. 流量访问控制(你还需要做的): 禁止普通业务网段主动访问运维网段。通常在核心交换机的业务接口上配置 ACL,或者在防火墙上配置策略。

    • 策略逻辑: 允许 运维区 -> 业务区(方便运维排查故障);拒绝 业务区 -> 运维区(防止逆向攻击)。
  3. 单向访问限制: 利用防火墙的状态检测功能,只允许运维区 PC 发起连接。

    核心交换机上

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 定义一个新的 ACL,限制业务网段去往运维网段

acl name Stop_To_OM advance
rule 5 deny ip source 172.16.10.0 0.0.0.255 destination 172.16.222.0 0.0.0.255
rule 10 deny ip source 172.16.20.0 0.0.0.255 destination 172.16.222.0 0.0.0.255
rule 15 deny ip source 172.16.30.0 0.0.0.255 destination 172.16.222.0 0.0.0.255
rule 20 permit ip # 其他流量放行
quit

# 在对应的业务接口(Vlanif)入方向应用,或在物理口应用

interface Vlanif 10
traffic-filter inbound acl name Stop_To_OM
interface Vlanif 20
traffic-filter inbound acl name Stop_To_OM
interface Vlanif 30
traffic-filter inbound acl name Stop_To_OM

traffic-filter这个命令在ensp交换机中没有。

防火墙配置

. 开启防火墙的管理权限(CLI 操作)

在进入 Web 之前,你得先在命令行给管理口“开门”。通常防火墙的 GigabitEthernet 0/0/0 默认就是管理口。

1
2
3
4
5
interface GigabitEthernet 0/0/0
undo shutdown
ip address 192.168.146. 24 # 设置一个与你电脑网卡同网段的IP
service-manage all permit # 允许所有协议访问(实验环境推荐,生产环境只开# # https/ssh)
quit

管理口到底连哪个设备?

结论:在 eNSP 实验中,管理口(G0/0/0)通常只连接 Cloud

  • 物理逻辑: 现实中,管理口通常接在专用的管理交换机上。但在实验环境里,为了让你能用宿主机的浏览器配置防火墙,管理口必须接 Cloud
  • 业务逻辑: 业务口(如 GE 1/0/0)负责让你内网的 PC 上网,而管理口只负责让你登录防火墙的 Web 界面。
  • 关键点: 确实不需要连核心交换机,除非你想通过内网 PC 去管理防火墙。

2. 网段对应关系(重要!)

你的理解基本正确,具体的逻辑如下:

链路位置 接口示例 要求
核心交换机 ↔ 防火墙 GE 0/0/4 ↔ GE 0/0/0 (业务) 必须在同一网段(如 10.10.10.0/30)。
防火墙 (业务口) ↔ 外网 GE 1/0/0 ↔ Cloud 必须与你用于上网的虚拟网卡(VMnet8)在同一网段。
防火墙 (管理口) ↔ 宿主机 G 0/0/0 (管理) ↔ Cloud 必须与你用于管理的虚拟网卡(VMnet1)在同一网段。

以下是进入 Web 界面后的标准操作步骤:


1. 完善接口与安全域配置 (Network -> Interface / Zone)

虽然你可能在 CLI 做了基础配置,但在 Web 界面中需要确认并细化:

  • 管理口 (G0/0/0):确认属于 Trust 域,检查 Service Management 是否开启了 HTTPS 和 Ping。
  • 内网互联口 (GE 0/0/0):确认 IP 为 10.10.10.2/30,将其加入 Trust 域。
  • 外网出口口 (GE 1/0/0):确认 IP 处于 VMnet8 网段(如 192.168.60.3),将其加入 Untrust 域。
  • 服务器区口 (DMZ):如果你在拓扑中将服务器单独接入防火墙,需将其划入 DMZ 域。

image-20260415111426920

2. 配置静态路由 (Network -> Route -> Static Route)

确保防火墙知道数据包的去向:

  • 新建默认路由:目的 0.0.0.0/0,下一跳指向 VMnet8 的网关(通常是 .1.2),用于上网。
  • 新建回程路由:目的 172.16.0.0/16,下一跳指向核心交换机的互联 IP 10.10.10.1。如果没有这条路由,内网流量能发给防火墙,但防火墙不知道怎么回包。

image-20260415112251209

3. 配置源 NAT 策略 (Policy -> NAT Policy)

让内网私有 IP 能够访问互联网:

  • 源地址:添加内网业务网段 172.16.0.0/16
  • 转换方式:选择 Easy IP地址池转换
  • 出接口:选择连接外网的 GE 1/0/0

image-20260415131810168

4. 配置安全策略 (Policy -> Security Policy)

这是最关键的一步,华为防火墙默认拒绝所有跨域流量

  • Trust -> Untrust:允许内网员工访问互联网。
  • Trust -> Local:如果你需要从内网 PC 访问防火墙 Web 界面,需配置此策略。
  • Untrust -> DMZ (可选):如果做了 NAT Server 发布服务器,需要放行外网对服务器 IP 的特定端口访问。

image-20260415131830589

配置目的NAT

image-20260415155307068

5. 部署 SSL-VPN (Object -> User -> VPN)

这是你项目需求中的重点:

  • 创建虚拟地址池:例如 10.1.2.0/24,分配给远程办公员工。
  • 配置用户/组:创建用于 VPN 登录的用户名和密码。
  • 网络扩展路由:下发 172.16.0.0/16 路由,让员工拨入后能访问内网。
  • 安全策略:务必添加一条 SSLVPN -> Trust 的放行策略。

配置服务器

设vlan

给vlan设ip

开启stelnet服务

vty