华为防火墙有三种工作模式
① 路由模式
② 透明模式
③ 混合模式
华为防火墙有五种区域
① Local区域:通常定义防火墙本身,优先级为100,防火墙除了转发大的流量外,自己也有收发流量,如控制流量、动态路由协议等,这些报文通常是从Local区域发送的,安全等级最高。
② trust区域:主要用于连接公司内部网络,优先级为85,安全等级较高
③ DMZ:非军事化区域,优先级为50,是介于军事管事区和公共区域之间的一个区域,安全等级中
④ untrust区域:外部区域,优先级为5,安全等级低
⑤ 自定义区域:用户自定义区域,默认最多16个区域,默认没有优先级,用户自定义优先级
默认情况下,华为防火墙拒绝任何区域之间的流量,如需放行指定流量,需要管理员设置策略
inbound:数据由等级低的区域流向等级高的区域,如untrust(优先级5)区域流向trust(优先级85)区域
outbound:数据由等级高的区域流向等级低的区域,如DMZ(优先级50)区域流向untrust(优先级5)
防火墙流量控制是根据优先级来的,规则为:流量从高到低直接放行,从低到高需要设置规则
① NAT no-PAT
类似思科的动态转化,多对多,只转换IP地址,不转换端口,不能节约公网IP地址,实际应用场景较少,主要适用于需要上网的用户较少,而公网IP地址相对充裕的场景
② NAPT(网络地址端口转换)
类似思科的PAT,NATP即转换报文的源地址,又转换源端口,转换后地址不能是外网接口IP地址,属于多对多或者多对一的转换,可以节省公网IP地址,使用场景较多
③ Easy-IP (出接口地址)
因其转换方式非常简单,所以也被称为Easy-IP、和NAPT一样,即转换源IP地址,又转换源端口。区别是出接口地址方式转换后的地址只能是NAT设备外网接口所配置的IP地址,属于多对一转换,可以节约IP地址
NAT Server
静态一对一发布,主要用于内部服务器需要对internet提供服务时使用
Smart NAT(只能转换)
与源IP地址、源端口和协议类型有关的一种转换,将源IP地址和源端口转换为固定公网IP地址和端口,能解决一些特殊应用在普遍NAT种无法实现的问题
三元组NAT
与源地址、源端口和协议类型有关的一种转换,将源IP地址和源端口转换为固定公网IP地址和端口,能解决一些特殊应用在普遍NAT中无法实现的问题,主要应用外部访问局域网的一些P2P应用
解决方法:
配置黑洞路由,将internet主动访问映射出来的地址的流量指定到空接口null0中
ip route-static 100.2.2.10 32 NULL 0
会话表记录的是连接信息,包括连接状态
server-map表记录的不是当前的连接信息,而是通过分析当前连接的报文后得到的信息,该信息用来解决接下来的数据流通过防火墙的问题。可以将Server-map表的作用理解为通过未雨绸缪解决将来的问题
如像FTP这种的多端口协议,在从一开始的三次握手,到最后完成数据的传输,其过程中,可能端口会发生改变等问题
server-map正好可以解决这种问题
然而在NAT中也需要这个server-map表,就是在有数据流量通过NAT的方式穿越防火墙时,serve-map表会记录其源地址和转换后地址的对应关系,从而使后续流量可以不用查看NAT策略
直接匹配到server-map表,从而实现高效的NAT转换,若用户通过互联网访问转换后的地址时,也可以匹配到server-map表,从而高效的将数据转发到内网真实主机(必须保证安全策略允许通过)
server-map表不用手动配置,是自动生成的,在NAT中,不是所有的表都可以生成server-map表的,可见下表:
当防火墙上配置某些NAT后,在防火墙上会生成Server-map,默认生成两个Server-map条目,分别是正向条目和反向条目
正向条目:携带端口信息,用来使internet用户访问内网中的服务器时直接通过server-map表来进行目标地址转换
反向条目:不携带端口信息,且目标地址是任意的,用来使服务器可以访问internet
从运行原理来看,主动模式和被动模式不同点如下:
主动模式传送数据时是“服务器”连接到“客户端”的端口
被动模式传送数据是“客户端” 连接到 “服务端” 的端口
主动模式需要客户端必须开放端口给服务器,很多客户端都是在防火墙内,开放端口给FTP服务器访问比较困难
被动模式只需要服务器端开放端口给客户端连接就可以了
此实验IP地址配置过程省略,各IP地址已表在拓扑图中
分别在FTP、WEB服务器中配置文件根目录,设置文件在该目录中,便于client登录查询
在两个文件夹中随便创建空文件以便后续查看
[R1]ip route-static 100.2.2.8 29 100.1.1.2
Username:admin #华为防火墙默认用户名为admin
Password: #输入初始密码:Admin@123
The password needs to be changed. Change now? [Y/N]: y
Please enter old password: #输入初始密码
Please enter new password: #输出自定义的新密码,例如huawei@123
Please confirm new password: #重新输入新密码
Info: Your password has been changed. Save the change to survive a reboot. ************************************************************************** Copyright (C) 2014-2018 Huawei Technologies Co., Ltd. ** All rights reserved. ** Without the owner's prior written consent, ** no decompiling or reverse-engineering shall be allowed. **************************************************************************
② 划分接口所属区域:
将内网区接口加入trust区域
将外网接口加入到untrust区域
将两台服务器加入到dmz区域
#将连接PC的接口加入到trust区域
[USG6000V1]firewall zone trust
[USG6000V1-zone-trust]add in g1/0/4
[USG6000V1-zone-trust]add in g1/0/3
[USG6000V1-zone-trust]add in g1/0/2
[USG6000V1-zone-trust]q
#将连接服务器的接口加入dmz区域
[USG6000V1]firewall zone dmz
[USG6000V1-zone-dmz]add in g1/0/1
[USG6000V1-zone-dmz]q
#将连接外网的接口加入到untrust区域
[USG6000V1]firewall zone untrust
[USG6000V1-zone-untrust]add in g1/0/0
[USG6000V1]ip route-static 0.0.0.0 0.0.0.0 100.1.1.1
注:easy-ip类型的NAT不会产生server-map
#定义安全策略
[USG6000V1]security-policy
#新建安全策略(easy)
[USG6000V1-policy-security]rule name easy
#源区域--trust
[USG6000V1-policy-security-rule-easy]source-zone trust
#目的区域--untrust
[USG6000V1-policy-security-rule-easy]destination-zone untrust
#动作---允许放行
[USG6000V1-policy-security-rule-easy]action permit
[USG6000V1-policy-security-rule-easy]q
[USG6000V1-policy-security]q
#定义NAT策略
[USG6000V1]nat-policy
#定义NAT策略名(easypolicy)
[USG6000V1-policy-nat]rule name easypolicy
#源地址为192.168.3.0 24网段
[USG6000V1-policy-nat-rule-easypolicy]source-address 192.168.3.0 24
#定义源区域--trust
[USG6000V1-policy-nat-rule-easypolicy]source-zone trust
#定义目标区域--untrust
[USG6000V1-policy-nat-rule-easypolicy]destination-zone untrust
#开启NAT转换,类型为easy-ip
[USG6000V1-policy-nat-rule-easypolicy]action source-nat easy-ip
[USG6000V1-policy-nat-rule-easypolicy]q
[USG6000V1-policy-nat]q
#定义NAT组(地址池)组名为natp
[USG6000V1]nat address-group napt
#定义组中的ip地址(可配置范围,例如:100.2.2.12 100.2.2.20)
[USG6000V1-address-group-napt]section 0 100.2.2.12
#模式为pat(pat:端口、地址转换都可以做)
[USG6000V1-address-group-napt]mode pat
[USG6000V1-address-group-napt]q
#定义NAT策略
[USG6000V1]nat-policy
#定义NAT策略名(napt)
[USG6000V1-policy-nat]rule name napt
#定义需要转换的源地址
[USG6000V1-policy-nat-rule-napt]source-address 192.168.2.0 24
#定义源区域--trust
[USG6000V1-policy-nat-rule-napt]source-zone trust
#定义目标区域--untrust
[USG6000V1-policy-nat-rule-napt]destination-zone untrust
#关联nat地址组(池)napt
[USG6000V1-policy-nat-rule-napt]action source-nat address-group napt
配置黑洞路由
针对NAPT类型需要配置黑洞路由,地址为nat组中定义的(公网)地址组的IP地址
[USG6000V1] ip route-static 100.2.2.12 32 NULL 0
#定义nat地址组(池),组名为natnopat
[USG6000V1]nat address-group natnopat
#定义地址池中的IP段
[USG6000V1-address-group-natnopat]section 0 100.2.2.10 100.2.2.11
#配置模式为本地no-pat模式(会形成Server-map)
[USG6000V1-address-group-natnopat]mode no-pat local
[USG6000V1-address-group-natnopat]q
#定义NAT策略
[USG6000V1]nat-policy
#定义NAT策略名(nopat)
[USG6000V1-policy-nat]rule name nopat
#定义需要转换的源地址
[USG6000V1-policy-nat-rule-nopat]source-address 192.168.1.0 24
#定义源区域--trust
[USG6000V1-policy-nat-rule-nopat]source-zone trust
#定义目标区域--untrust
[USG6000V1-policy-nat-rule-nopat]destination-zone untrust
#关联nat地址组(池)natnopat
[USG6000V1-policy-nat-rule-nopat]action source-nat address-group natnopat
[USG6000V1-policy-nat-rule-nopat]q
[USG6000V1-policy-nat]q
配置黑洞路由
针对no pat类型需要配置黑洞路由,地址为natnopat组中定义的(公网)地址组的成员
[USG6000V1]ip route-static 100.2.2.10 32 NULL 0
[USG6000V1]ip route-static 100.2.2.11 32 NULL 0
#定义安全策略
[USG6000V1]security-policy
#定义安全策略名为 todmz
[USG6000V1-policy-security]rule name todmz
#源区域--untrust
[USG6000V1-policy-security-rule-todmz]source-zone untrust
#目标区域--dmz
[USG6000V1-policy-security-rule-todmz]destination-zone dmz
#定义目标地址段为 192.168.0.0 24
[USG6000V1-policy-security-rule-todmz]destination-address 192.168.0.0 24
#定义ftp服务、http服务
[USG6000V1-policy-security-rule-todmz]service ftp
[USG6000V1-policy-security-rule-todmz]service http
#允许通行
[USG6000V1-policy-security-rule-todmz]action permit
#(全局适用)端口映射,使用ftp协议访问100.2.2.9 21端口时,访问的是内网192.168.0.2 21 端口的设备
[USG6000V1]nat server ftp protocol tcp global 100.2.2.9 21 inside 192.168.0.2 21
(全局适用)端口映射,使用http协议访问100.2.2.9 80端口时,访问的是内网192.168.0.3 80 端口的设备
[USG6000V1]nat server http protocol tcp global 100.2.2.9 80 inside 192.168.0.3 80
#查看会话表
[USG6000V1]dis firewall session table
2020-02-25 08:30:08.800
Current Total Sessions : 4
ftp VPN: public --> public 200.1.1.2:2058 +-> 100.2.2.9:21[192.168.0.2:21]
ftp VPN: public --> public 200.1.1.2:2060 +-> 100.2.2.9:21[192.168.0.2:21]
ftp VPN: public --> public 200.1.1.2:2056 +-> 100.2.2.9:21[192.168.0.2:21]
ftp VPN: public --> public 200.1.1.2:2053 +-> 100.2.2.9:21[192.168.0.2:21]
#查看server-map表
[USG6000V1]dis firewall server-map
2020-02-25 10:36:06.470
Current Total Server-map : 4
Type: Nat Server, ANY -> 100.2.2.9:80[192.168.0.3:80], Zone:---, protocol:tc
p
Vpn: public -> public
Type: Nat Server, ANY -> 100.2.2.9:21[192.168.0.2:21], Zone:---, protocol:tc
p
Vpn: public -> public
Type: Nat Server Reverse, 192.168.0.2[100.2.2.9] -> ANY, Zone:---, protocol:
tcp
Vpn: public -> public, counter: 1
Type: Nat Server Reverse, 192.168.0.3[100.2.2.9] -> ANY, Zone:---, protocol:
tcp
Vpn: public -> public, counter: 1
注:由于老化时间,有可能会导致会话表清空
② 分别在技术部、行政部、财务部 ping client服务器
③ 在client 中访问两台服务器