HCIE-Security Day9:5个实验理解NAT Server_服务器

HCIE-Security Day9:5个实验理解NAT Server_ide_02

HCIE-Security Day9:5个实验理解NAT Server_ip地址_03


NAT Server与目的NAT的区别和联系

NAT Server是一种静态目的NAT技术,与基于策略的静态目的NAT一样,都可以用于解决私网IP与公网IP存在固定映射关系的场景,但是基于策略的目的NAT在一条策略中可以匹配多个地址段,且支持地址排除功能,配置更为灵活。NAT Server可以逐条配置地址转换关系,命令简单清晰。

两者还有如下区别

1、nat server 配置后创建静态server-map表项,destination-nat不创建

2、nat server 优先级高于destination-nat,首包到达防火墙后先进行nat server处理查server-map表,查不到server-map表的情况下,再进行destination-nat处理

3、nat server不配置no-reverse的情况下,双向都可以进行nat转换,destination-nat只能单向nat转换。

HCIE-Security Day9:5个实验理解NAT Server_ip地址_04

实验一:公网用户通过NAT Server访问内部服务器

需求和拓扑

某公司在网络边界处部署了FW作为安全网关。为了使私网Web服务器和FTP服务器能够对外提供服务,需要在FW上配置NAT Server功能。除了公网接口的IP地址外,公司还向ISP申请了一个IP地址(1.1.1.10)作为内网服务器对外提供服务的地址。网络环境如图1所示,其中Router是ISP提供的接入网关。

HCIE-Security Day9:5个实验理解NAT Server_服务器_05

操作步骤

1、配置接口地址,划分安全区域

2、配置路由

ip route-static 2.2.2.0 255.255.255.0 1.1.1.254

3、配置安全区域

security-policy
rule name 1
source-zone untrust
destination-zone dmz
source-address 2.2.2.0 mask 255.255.255.0
destination-address 10.2.0.0 mask 255.255.255.0
service ftp
service http
service icmp
action permit

4、配置nat server

nat server 0 protocol tcp global 1.1.1.10 ftp inside 10.2.0.7 ftp no-reverse
nat server 1 protocol tcp global 1.1.1.10 www inside 10.2.0.8 www no-reverse
nat server 2 protocol icmp global 1.1.1.10 inside 10.2.0.7 no-reverse

验证和分析

不做任何操作,直接检查fw的server-map

[f1]dis fire server-map 
2022-02-11 00:57:51.620
Current Total Server-map : 3
Type: Nat Server, ANY -> 1.1.1.10:80[10.2.0.8:80], Zone:---, protocol:tcp
Vpn: public -> public

Type: Nat Server, ANY -> 1.1.1.10[10.2.0.7], Zone:---, protocol:icmp
Vpn: public -> public

Type: Nat Server, ANY -> 1.1.1.10:21[10.2.0.7:21], Zone:---, protocol:tcp
Vpn: public -> public

在公网client上分别访问1.1.1.10提供的ftp和http服务后,检查fw的session table

[f1]dis fire sess table
2022-02-11 00:57:54.200
Current Total Sessions : 2
ftp VPN: public --> public 2.2.2.2:2049 +-> 1.1.1.10:21[10.2.0.7:21]
http VPN: public --> public 2.2.2.2:2051 --> 1.1.1.10:80[10.2.0.8:80]

在访问了ftp服务后,再检查一次server-map表项,发现多了一条aspf表项,说明ftp的数据通道也是由aspf动态建立的。

Type: ASPF,  2.2.2.2 -> 1.1.1.10:2049[10.2.0.7:2049],  Zone:---
Protocol: tcp(Appro: ftp-data), Left-Time:00:00:00
Vpn: public -> public

如果我们使用ftp主动模式,这条aspf的server-map表项是下面这样的。

Type: ASPF,  10.2.0.7[1.1.1.10] -> 2.2.2.2:2053,  Zone:---
Protocol: tcp(Appro: ftp-data), Left-Time:00:00:13
Vpn: public -> public

可见建立方向是不同的,相同点是始发方向都不会确定端口号,这当然没法做到像session table那样的精确和安全,但这毕竟只是临时通道,你可以理解成它是对多通道协议的妥协,但同时又何尝不是一种迂回和捷径呢?

我们如果和上一篇讲目的NAT的实验进行对比的话,很容易发现它的优点,配置简单,不需要再配置地址池和nat-policy,甚至我们还可以不去做no-reverse的限制,让私网设备主动去访问公网,但同时我们也发现它并不能做到目的nat那样的灵活应用,比如我们只有一个公网地址,就没有办法让公网用户同时ping通私网的不同设备,但是在目的nat中,我们就可以使用端口对地址的映射来解决(参考)。

谁更优秀呢?很难给你准确的答案啊,只能说具体场景具体判断吧。当然这也正是网工的魅力所在。

实验二:双出口环境下公网用户通过NAT Server访问内部服务器(双出口属于不同安全区域)

需求和拓扑

某公司在网络边界处部署了FW作为安全网关,通过两个ISP接入Internet。为了使私网FTP服务器能够对外提供服务,需要在FW上配置指定zone参数的NAT Server功能。除了公网接口的IP地址外,公司还向ISP1和ISP2分别申请了1.1.1.10和2.2.2.10作为内网服务器对外提供服务的地址。网络环境如图所示,其中Router是ISP1和ISP2提供的接入网关。

HCIE-Security Day9:5个实验理解NAT Server_ide_06

操作步骤

1、配置接口地址和安全区域

2、配置路由

ip route-static 1.1.2.0 255.255.255.0 1.1.1.254
ip route-static 1.1.3.0 255.255.255.0 2.2.2.254

3、配置安全策略

security-policy
rule name 1
source-zone untrust1
source-zone untrust2
destination-zone trust
destination-address 10.2.0.0 mask 255.255.255.0
service ftp
action permit

4、配置nat server

nat server 0 protocol tcp global 1.1.1.10 ftp inside 10.2.0.10 ftp no-reverse
nat server 1 protocol tcp global 2.2.2.10 ftp inside 10.2.0.10 ftp no-reverse

验证和分析

HCIE-Security Day9:5个实验理解NAT Server_ip地址_07

检查server-map表项

[f1]dis fire server-map 
2022-02-11 11:27:52.940
Current Total Server-map : 2
Type: Nat Server, ANY -> 2.2.2.10:21[10.2.0.10:21], Zone:---, protocol:tcp
Vpn: public -> public

Type: Nat Server, ANY -> 1.1.1.10:21[10.2.0.10:21], Zone:---, protocol:tcp
Vpn: public -> public

server-map表项的内容只有目的地址和端口转换前后的信息,不包括源地址和端口的信息。将表项翻译成文字就是:任意客户端向2.2.2.10:21发起访问时,报文的目的地址和端口就会被转换成10.2.0.10:21。

检查session table

[f1]dis fire sess table
2022-02-11 11:27:47.460
Current Total Sessions : 2
ftp VPN: public --> public 1.1.2.1:2049 +-> 1.1.1.10:21[10.2.0.10:21]
ftp VPN: public --> public 1.1.3.1:2049 +-> 2.2.2.10:21[10.2.0.10:21]

实验三:双出口环境下公网用户通过NAT Server访问内部服务器(双出口属于同一安全区域)

需求和拓扑

某公司在网络边界处部署了FW作为安全网关,通过两个ISP接入Internet。为了使私网FTP服务器能够对外提供服务,需要在FW上配置指定no-reverse参数的NAT Server功能。除了公网接口的IP地址外,公司还向ISP1和ISP2分别申请了1.1.1.10和2.2.2.10作为内网服务器对外提供服务的地址。

HCIE-Security Day9:5个实验理解NAT Server_服务器_08

操作步骤

1、配置接口地址和安全区域

2、配置路由

ip route-static 1.1.2.0 255.255.255.0 1.1.1.254
ip route-static 1.1.3.0 255.255.255.0 2.2.2.254

双出口环境中,还需要考虑两个ISP中的公网用户使用哪个公网地址访问私网服务器的问题。如果防火墙上只是配置了缺省路由,那么私网的回包就可能从错误的出接口发出,不能回到始发者。所以要配置明细路由,让防火墙严格按照公网地址选路,但是如果公网地址数量很大,配置起来工作量就很大,不太现实....

防火墙提供了源进源出功能,即:请求报文从哪条路径进入,响应报文就依然沿着同样的路径返回,而不用查路由表来确定出接口,保证了报文从同一个接口进出。

所以,这一步也可以不配置路由而是用源进源出配合默认网关搞定。

具体命令是

[FW] interface GigabitEthernet 1/0/1
redirect-reverse next-hop 1.1.1.254
gateway 1.1.1.254
[FW] interface GigabitEthernet 1/0/2
redirect-reverse next-hop 2.2.2.254
gateway 2.2.2.254

3、配置安全策略

security-policy
rule name 1
source-zone untrust
destination-zone trust
destination-address 10.2.0.0 mask 255.255.255.0
service ftp
action permit

4、配置nat server

nat server 0 protocol tcp global 1.1.1.10 ftp inside 10.2.0.10 ftp no-reverse
nat server 1 protocol tcp global 2.2.2.10 ftp inside 10.2.0.10 ftp no-reverse

注意这里一定要加no-reverse。不配的话都没有办法敲下命令。

nat server 0 protocol tcp global 1.1.1.10 ftp inside 10.2.0.10 ftp 
nat server 1 protocol tcp global 2.2.2.10 ftp inside 10.2.0.10 ftp
Error:Incomplete command found at '^' position.

验证和分析

为什么要加no-reverse呢?我们可以分析以下,如果可以不加no-reverse,就可以生成反向的server-map表项,这个表项一定是目的地址和端口转换前后都是any的。具体应该是这样的。

Type: Nat Server Reverse,  10.2.0.10[1.1.1.10] -> ANY,  Zone:---,  protocol:tcp
Vpn: public -> public, counter: 1
Type: Nat Server Reverse, 10.2.0.10[2.2.2.10] -> ANY, Zone:---, protocol:tcp
Vpn: public -> public, counter: 1

第一条吧报文的源地址由10.2.0.10转换为1.1.1.10,另一条把报文的源地址由10.2.0.10转换为2.2.2.10,除此之外,两条表项是完全一样的。那作为防火墙,如果这样的报文来了,我该怎么处理呢?我凌乱了。

所以一定要加上no-reverse,这样就不会生成反向的server-map表,也不会出现上面的问题了。

那如果我们非得实现私网服务器主动访问公网的需求呢?比如我们想知道公网的client在线否,那我们只有在nat server的基础上再做源nat了。

做源nat的话稍微有点麻烦。首先得做trust到untrust的安全策略。

security-policy
rule name 2
source-zone trust
destination-zone untrust
source-address 10.2.0.10 mask 255.255.255.255
service icmp
action permit

其次得配置源nat地址池,因为我们只有两个公网地址,所以只好复用他们了。不过逻辑上还是讲得通,因为nat server时也是使用它们做私网server的公网地址嘛。

nat address-group 1 0
mode pat
section 0 1.1.1.10
nat address-group 2 0
mode pat
section 0 2.2.2.10

最后做源nat策略,注意要根据两个地址池做两个策略哦。(哎,确实麻烦了)

nat-policy
rule name 1
source-zone trust
destination-zone untrust
source-address 10.2.0.10 mask 255.255.255.255
destination-address 1.1.2.1 mask 255.255.255.255
action source-nat address-group 1
rule name 2
source-zone trust
destination-zone untrust
source-address 10.2.0.10 mask 255.255.255.255
destination-address 1.1.3.1 mask 255.255.255.255
action source-nat address-group 2

实验四:双出口环境下不同ISP的公网用户通过同一个公网IP地址访问内部服务器(源进源出)

需求和拓扑

某公司在网络边界处部署了FW作为安全网关,通过两个ISP接入Internet。公司内网的FTP服务器只向ISP1申请了一个公网IP地址(1.1.1.10)对外提供服务,ISP1和ISP2的外网用户都通过ISP1的这个公网地址访问FTP服务器。

HCIE-Security Day9:5个实验理解NAT Server_ip地址_09

操作步骤

1、配置接口地址和安全区域

2、配置源进源出和默认网关

interface GigabitEthernet1/0/1
ip address 1.1.1.1 255.255.255.0
gateway 1.1.1.254
redirect-reverse next-hop 1.1.1.254
interface GigabitEthernet1/0/2
ip address 2.2.2.2 255.255.255.0
gateway 2.2.2.254
redirect-reverse next-hop 2.2.2.254

3、配置安全策略

security-policy
rule name 1
destination-zone trust
destination-address 10.2.0.0 mask 255.255.255.0
service ftp
action permit

4、配置nat server

nat server 0 protocol tcp global 1.1.1.10 ftp inside 10.2.0.10 ftp no-reverse

5、r1/r2/r3配静态路由

//R1
ip route-static 1.1.10.0 255.255.255.0 1.1.1.1
ip route-static 3.3.3.3 255.255.255.255 13.1.1.3
//R2
ip route-static 1.1.1.10 255.255.255.255 2.2.2.2
ip route-static 3.3.3.3 255.255.255.255 23.1.1.3
//R3形成负载
ip route-static 1.1.1.10 255.255.255.255 13.1.1.1
ip route-static 1.1.1.10 255.255.255.255 23.1.1.2

验证和分析

登录后检查fw的session table和server-map

[f1]dis fire server-map 
2022-02-11 14:28:29.730
Current Total Server-map : 2
Type: ASPF, 3.3.3.3 -> 1.1.1.10:2050[10.2.0.10:2050], Zone:---
Protocol: tcp(Appro: ftp-data), Left-Time:00:00:12
Vpn: public -> public

Type: Nat Server, ANY -> 1.1.1.10:21[10.2.0.10:21], Zone:---, protocol:tcp
Vpn: public -> public

[f1]dis fire sess table
2022-02-11 14:28:31.090
Current Total Sessions : 3
ftp-data VPN: public --> public 3.3.3.3:2052 --> 1.1.1.10:2050[10.2.0.10:2050
]
ftp VPN: public --> public 3.3.3.3:2049 +-> 1.1.1.10:21[10.2.0.10:21]
ftp VPN: public --> public 3.3.3.3:2051 +-> 1.1.1.10:21[10.2.0.10:21]
[f1]

实验五:私网用户使用公网地址访问内部服务器

需求和拓扑

某公司在网络边界处部署了FW作为安全网关。为了使私网Web服务器和FTP服务器能够对外提供服务,需要在FW上配置NAT Server功能。另外,和两台服务器同在一个安全区域,并且IP地址同在一个网段的PC D也需要访问这两台服务器。由于公司希望PC D可以使用公网地址访问内部服务器,因此还需要在FW上配置源NAT功能。

除了公网接口的IP地址外,公司还向ISP申请了两个公网IP地址,其中1.1.1.10作为内网服务器对外提供服务的地址,1.1.1.11作为PC D地址转换后的公网地址。网络环境如图1所示,其中Router是ISP提供的接入网关。

HCIE-Security Day9:5个实验理解NAT Server_服务器_10

操作步骤

1、配置接口地址和安全区域

2、不需要配置路由

3、不需要配置安全策略

4、配置nat server

nat server 0 protocol tcp global 1.1.1.10 ftp inside 10.2.0.8 ftp no-reverse
nat server 1 protocol tcp global 1.1.1.10 8080 inside 10.2.0.7 www no-reverse

5、配置源NAT和地址池

nat address-group 1 0
mode pat
section 0 1.1.1.11 1.1.1.11
nat-policy
rule name 1
source-zone trust
destination-zone trust
source-address 10.2.0.6 mask 255.255.255.255
service ftp
service http
action source-nat address-group 1

验证和分析

[f1]dis fire sess table
2022-02-11 14:42:22.520
Current Total Sessions : 2
ftp-data VPN: public --> public 10.2.0.6:2050[1.1.1.11:2050] --> 1.1.1.10:204
9[10.2.0.8:2049]
ftp VPN: public --> public 10.2.0.6:2049[1.1.1.11:2048] +-> 1.1.1.10:21[10.2.
0.8:21]
http VPN: public --> public 10.2.0.6:2060[1.1.1.11:2049] --> 1.1.1.10:8080[10
.2.0.7:80]

[f1]dis fire server-map
2022-02-11 14:42:27.110
Current Total Server-map : 3
Type: ASPF, 10.2.0.6[1.1.1.11] -> 1.1.1.10:2049[10.2.0.8:2049], Zone:---
Protocol: tcp(Appro: ftp-data), Left-Time:00:00:03
Vpn: public -> public

Type: Nat Server, ANY -> 1.1.1.10:8080[10.2.0.7:80], Zone:---, protocol:tcp
Vpn: public -> public

Type: Nat Server, ANY -> 1.1.1.10:21[10.2.0.8:21], Zone:---, protocol:tcp
Vpn: public -> public

以上实验拓扑和完整配置已打包,关注并回复nat server获得。

HCIE-Security Day9:5个实验理解NAT Server_服务器_11