目录
NAT-Server只是目的NAT的一种简洁的配置方式,而且是静态映射,目的NAT其实跟源NAT一样是可以通过NAT策略的方式进行配置的,详细文章可以参考另一篇文章目的NAT(基于USG6000V)-CSDN博客
Nat-Server实验
地址映射
服务器使用一个PC机模拟,IP地址192.168.1.1,网关是192.168.1.254,在出口防火墙上映射的公网地址是2.2.2.2。
注:不建议把防火墙的出接口地址作为NAT-Server的公网IP地址,如果必须这样配置,那么就配置指定协议和端口的NAT Server,避免NAT Server与防火墙的Telnet、Web等管理协议有冲突。
实验配置
路由器配置
# 配置公网用户访问服务器公网地址的路由,下一跳发给防火墙
[Huawei]ip route-static 2.2.2.2 32 1.1.2.1
[Huawei]inter g0/0/0
[Huawei-GigabitEthernet0/0/0]ip add 1.1.2.2 24
[Huawei-GigabitEthernet0/0/0]q
[Huawei]inter g0/0/1
[Huawei-GigabitEthernet0/0/1]ip address 1.1.1.1 24
出口防火墙IP地址配置
# 配置防火墙默认路由,不然不知道如何返回响应报文
[USG6000V1]ip route-static 0.0.0.0 0 1.1.2.2
[USG6000V1]interface g1/0/0
[USG6000V1-GigabitEthernet1/0/0]ip address 1.1.2.1 24
[USG6000V1]interface g1/0/1
[USG6000V1-GigabitEthernet1/0/1]ip address 192.168.1.254 24
防火墙接口加入安全区域
[USG6000V1]firewall zone dmz
[USG6000V1-zone-dmz]add interface g1/0/1
[USG6000V1-zone-dmz]q
[USG6000V1]firewall zone untrust
[USG6000V1-zone-untrust]add interface g1/0/0
防火墙NAT-Server配置
no-reverse是不允许服务器使用公网地址上网,如果需要server主动访问外网,就取消no-reverse
unr-route是表示下发UNR,也就是黑洞路由的作用,防止路由环路的,当然也可以配置相关的静态路由ip route-static 2.2.2.2 32 NULL 0
yingshe是nat-server这个策略的名字
2.2.2.2是公网地址,192.168.1.1是内网服务器地址
[USG6000V1]nat server yingshe global 2.2.2.2 inside 192.168.1.1 no-reverse unr-route
安全策略配置
策略的目的地址应配置的是服务器的私网地址192.168.1.1,而不是服务器对外映射的公网地址
[USG6000V1] security-policy
[USG6000V1-policy-security]rule name visit_server
[USG6000V1-policy-security-rule-visit_server]source-zone untrust
[USG6000V1-policy-security-rule-visit_server]destination-zone dmz
[USG6000V1-policy-security-rule-visit_server]destination-address 192.168.1.1 32
[USG6000V1-policy-security-rule-visit_server]action permit
查看Server-map表
Server-map表是静态的,没有老化时间,并且配置完Nat Server就会自动生成Server-map表。如果没有配置no-reverse,还会生成另一条服务器使用公网地址上网的Server-map表。
[USG6000V1]display firewall server-map
2024-07-09 12:10:24.080
Current Total Server-map : 6
Type: Nat Server, ANY -> 2.2.2.2[192.168.1.1], Zone:---, protocol:---
Vpn: public -> public
抓包验证
外网用户1.1.1.2 Ping 服务器的映射地址2.2.2.2
防火墙GE1/0/0接口抓包 是1.1.1.2<----->2.2.2.2都是公网地址
防火墙GE1/0/1接口抓包 是1.1.1.2<----->192.168.1.1也就是目的地址转换成了私网地址,成功转换了地址
服务器端口映射
同一个公网地址可以根据不同端口对应不同的服务器
更改拓扑图为
实验配置
实验在上一个地址映射的基础上做。
NAT-Server配置修改
# 删除之前做的NAT-Server
[USG6000V1]undo nat server name yingshe
# 配置2.2.2.2的8080端口对应Web服务器的80端口
[USG6000V1]nat server Web protocol tcp global 2.2.2.2 8080 inside 192.168.1.1 80 unr-route
# 配置2.2.2.2的2121端口对应Ftp服务器的21端口
[USG6000V1]nat server Ftp protocol tcp global 2.2.2.2 2121 inside 192.168.1.2 21 unr-route
注:在这我使用的是8080这个端口映射内网服务器的80端口,但是一些地区的运营商会阻断新增的端口80、8000、8080业务,可能导致业务无法访问,所以8080在真实场景如果不行,建议换个别的端口号
unr-route就相当于黑洞路由
安全策略修改
增加一台服务器的IP地址192.168.1.2
[USG6000V1]security-policy
[USG6000V1-policy-security]rule name visit_server
[USG6000V1-policy-security-rule-visit_server]destination-address 192.168.1.2 32
注:因为取消了之前做的那个服务器映射,现在访问 2.2.2.2是不通的,只有访问2.2.2.2加上对应的端口号才可以
启动FTP服务器和Web服务器端口就是分别对应的21和80,这个地方的端口号因为防火墙映射的就是这两个端口,所以就不要改了
查看Server-map表
[USG6000V1]display firewall server-map
2024-07-09 12:06:23.890
Current Total Server-map : 4
Type: Nat Server, ANY -> 2.2.2.2:2121[192.168.1.2:21], Zone:---, protocol:tcp
Vpn: public -> publicType: Nat Server, ANY -> 2.2.2.2:8080[192.168.1.1:80], Zone:---, protocol:tcp
Vpn: public -> publicType: Nat Server Reverse, 192.168.1.1[2.2.2.2] -> ANY, Zone:---, protocol:tcp
Vpn: public -> public, counter: 1Type: Nat Server Reverse, 192.168.1.2[2.2.2.2] -> ANY, Zone:---, protocol:tcp
Vpn: public -> public, counter: 1
可以看出Server-map中明确标识了端口号,只有命中2121或者8080端口号才算命中了Server-map表,才可以转换目的地址向私网服务器转发。
下面两条是私网服务器可以使用公网的映射地址访问外网,因为我做Nat Server没有配置no-reverse,所以就会有这两条Server-map表项。
服务器登录测试
客户端访问FTP服务器2.2.2.2 端口号2121 测试成功
客户端访问Web服务器2.2.2.2 端口号8080 测试成功
抓包验证
FTP协议的
在防火墙两边抓包
防火墙NAT转换
结果很显然,端口2121转为了21端口 地址2.2.2.2转为了192.168.1.2
HTTP协议的
结果很显然,端口8080转为了80端口 地址2.2.2.2转为了192.168.1.2