学习日志--防火墙ServerNat[FW01]nat server web01 global 12.1.1.201 inside 192.168.1.201 no-reverse

目录

一、Server-NAT基础功能

二、Server-NAT黑洞路由

三、Server-NAT安全区域(Zone)问题

四、Server-NAT端口转换问题

五、Server-NAT多对多转换问题

六、总结


在公网用户访问私网内的服务器的时候,通过NAT Server(服务器映射功能),可以实现外部网络用户通过公网地址访问私网内部服务器的需求,原理是将某个公网IP地址映射为服务器的私网IP地址。

NAT-Server是一种特殊的目的NAT,通过直接在防火墙创建Server-NAT规则,通过NAT-Server规则生成server-map表,在数据进入防火墙后匹配server-map表来实现服务器IP地址的转换,不是依靠传统的配置NAT-policy配置安全策略的方式来实现的。

一、Server-NAT基础功能

实验拓扑图

在进行实验之前将之前配置的安全策略删除掉之前配置的安全策略,将其删除
命令:[FW01-policy-nat]undo rule name dnat01删除完毕

实验,让192.168.1.201服务器对外提供公有地址12.1.1.201,进行Server-NAT的配置

实验配置
命令:[FW01]nat server web01 global 12.1.1.201 inside 192.168.1.201,配置Server-NAT的global模式公有地址是12.1.1.201映射为私有地址192.168.1.201

在创建了nat-servert之后就能生成防火墙server-map表生成的server-map中有两部分,上面部分是Nat Server,是由外到内,进行目的地址的转换,将目的地址12.1.1.201转换成192.168.1.201,没有配置区域,任何区域来的流量都可以匹配这条server-map表;下面部分是Nat Server Reverse,是由内到外,进行源地址的转换,将源地址192.168.1.201转换成12.1.1.201,没有配置区域,任何区域来的流量都可以匹配这条server-map表。

用外部的客户端,访问内部的服务器192.168.1.201,然后查看防火墙的会话表访问成功,查看防火墙会表生成防火墙五元素会话表,协议是tcp协议端口是80

在默认情况下通过servser-nat规则创建的server-map表是有两部分的,一部分是由外到内,一部分是由内到外,那是不是一定需要两部分呢 ?我们说只有匹配了server-map表才能生成防火墙的会话表,然后根据会话表流量才被允许通过,那是不是对于目的NAT来说,由外到内的server-map表是供请求的流量通过的,然后由内到外的server-map表是供回包的流量通过的?其实不是的,我们说在建立了server-map表之后,在流量匹配到server-map表之后会生成防火墙的五元素会话表,通过会话表可以允许流量的通过,然后回包的流量也是通过会话表来允许通过的,所以回包流量的通过和由内到外的server-map表是没有关系的,只不过由内到外的流量是给内部的服务器主动向外访问提供了机会,允许内部的流量向外主动访问。

查看现在的server-map表,有两条条目

用内网的服务器主动向外访问,证明由内向外的server-map表是给内部的服务器主动向外访问提供匹配条目的。

用192.168.1.201服务器访问外网的客户端200.1.1.1现在是没有访问成功。

在防火墙中,从trust安全区域向utrust的安全区域访问需要配置安全策略。如果是在路由器中,就不需要配置安全策略。查看防火墙的安全策略,只配置了从utrust到turst安全区域的安全策略,所以还需要配置从trust到utrust安全区域的安全策略。配置好的从trust到utrust安全区域的安全策略。

配置好安全策略之后,再次用内部的服务器访问外部的客户端这次就访问成功。所以说,在server-map中,两条匹配条目都是相当于一条安全策略,允许流量进行匹配,匹配成功之后生成防火墙五元素表供请求流量和回包流量通过。

如果现在的需求是,不需要内部的服务器主动对外访问,但是需要内部的服务器可以对外提供服务。

实验配置在配置server-nat的命令中添加配置no-reverse,不要逆向
配置报错说这个NAT已经存在,所以要修改策略需要删除之前配置的serverNAT然后重新配置
命令:[FW01]nat server web01 global 12.1.1.201 inside 192.168.1.201 no-reverse 

配置好后,查看防火墙的server-map表这次只剩下一条server-map表。

这个时候如果要从内主动向外访问就不允许了

二、Server-NAT黑洞路由

当运营商给分配的公有地址和内网出接口的IP地址不在一个网段的时候,在防火墙中查找不到分配的公网地址路由的时候就会出现黑洞路由,这个时候就需要在防火墙中配置默认路由,将数据转发到黑洞中去。

实验配置

先将之前配置的Server-NAT删除,配置和出接口IP地址不同的公网地址100.1.1.201
命令:[FW01]undo nat server name web01,删除之前的配置
命令:[FW01]nat server web01 global 100.1.1.201 inside 192.168.1.201 no-reverse,配置server-nat公网地址是100.1.1.201映射到私网地址192.168.1.201
命令:[FW01]ip route-static 100.1.1.201 32 null0,在防火墙中配置黑洞路由,将去往100.1.1.201的转发到黑洞接口NULL0中去查看路由表的信息,存在一条100.1.1.201的黑洞路由。

对黑洞路由的写法还有另外一种配置
命令:[FW01]undo ip route-static 100.1.1.201 32 null0,将之前配置的黑洞路由删除
命令:[FW01]nat server web01 global 100.1.1.201 inside 192.168.1.201 no-reverse unr-route,在配置server-nat的命令中加上unr-route,就会生成黑洞路由

在路由表中查看路由条目信息

一般在NAT-Server的配置中都会加上unr-route,来自动生成黑洞路由。

配置好黑洞路由之后,用外网的客户端主动访问内网的服务器访问成功。

三、Server-NAT安全区域(Zone)问题

在之前进行server-nat配置的时候,没有进行安全区域的配置,导致任何区域来的流量都可以匹配server-map表。

如果需要对区域限制,可以这样进行配置。

先将之前的配置删除
命令:[FW01]undo nat server name web01

实验配置
命令:[FW01]nat server web01 zone trust global 100.1.1.201 inside 192.168.1.201 no-rev
erse unr-route ,配置server-nat区域是trust,global是进行地址对地址的转换,公有地址100.1.1.201映射为私有地址192.168.1.201,关闭server逆向,打开黑洞路由
global是只进行地址对地址的转换,protocol是进行端口对端口的转换。

配置好后,查看防火墙的server-map表在Zone区域变成了trust的安全区域

然后现在用外网的客户端访问内网的服务器这个时候,外部的客户端是访问失败的,原因是配置的安全策略是要从trust的安全区域来的,但是外部主动访问内部是从untrust的安全区域来的流量,不会匹配server-map表,不匹配就不会生成会话表,就不允许流量通过,所以要想外部可以主动访问内部服务器,就需要将策略的安全区域配置成utrust的区域,这样从外部来的流量才会匹配server-map表,才能生成会话表,允许流量通过。
命令:[FW01]nat server web01 zone untrust global 100.1.1.201 inside 192.168.1.201 no-r
everse unr-route ,将安全区域改为untrust的安全区域

配置好后用外网的客户端访问内网的服务器
访问成功,然后查看防火墙的会话表

四、Server-NAT端口转换问题

命令:[FW01]undo nat server name web01,删除之前的server-nat配置

server-nat配置有四个功能,global配置只进行端口转换,protocol配置只进行协议端口和地址的转换,vpn-instance这个在后面会学习到,zone对安全区域进行配置,允许从哪个安全区域来的流量进行匹配。

对端口进行配置
命令:[FW01]nat server web01 zone untrust protocol tcp global 100.1.1.201 8080 inside 19
2.168.1.201 80 no-reverse unr-route ,配置server-nat名字是web01,配置的区域是untrust,匹配协议是tcp协议,公网地址100.1.1.201外部端口8080映射到内部地址192.168.1.201内部端口80,关闭逆向,开启黑洞路由

配置好后,查看防火墙的server-map表​​​​​​​匹配协议是tcp协议,公有地址100.1.1.201公有端口8080转换为内部地址192.168.1.201内部端口80。

用外部的客户端访问内部的服务器访问成功。

五、Server-NAT多对多转换问题

先将之前的配置删除
命令:[FW01]undo nat server name web01

现在的需求是要开启两台内部的服务器,让他给外部提供访问服务。

实验配置
命令:[FW01]nat server web01 zone untrust  global 12.1.1.201 12.1.1.202 inside 192.168
.1.201 192.168.1.202 no-reverse  unr-route

配置好后,查看server-map表生成两条server-map表,但是没有逆向表,是一个地址映射一个地址。12.1.1.201映射192.168.1.201;12.1.1.202映射192.168.1.202。配置过程是多对多,但是本质上是一对一,所以在配置过程中,就需要保证公有地址的数量和私有地址的数量是一致的。

如果公有地址的数量和私有地址的数量不一致会怎么样
命令:[FW01]undo nat server name web01,删除之前的配置
命令:[FW01]nat server zone  untrust global 12.1.1.201 12.1.1.202 inside 192.168.1.201
 192.168.1.203 no-reverse unr-route ,配置公有地址是12.1.1.201到12.1.1.202有两个公有地址,配置私有地址192.168.1.201到192.168.1.203有三个私有地址,公有地址的私有地址的数量不一致当不一致的时候,会报错,输入Y将会强制进行配置。

配置后查看server-map表错误配置已经强制配置成公有地址数量和私有地址数量一致的server-nat配置。

配置好后,去访问内部的服务器访问成功,同时成功建立会话表。

也可以进行多对多的地址-端口转换问题
命令:[FW01]undo nat server name 0,删除之前的策略配置,因为之前没有进行名字的配置,系统默认为0

多对多地址-端口配置
命令:[FW01]nat server web01 zone untrust protocol  tcp global 12.1.1.201 12.1.1.202 8
080 inside 192.168.1.201 192.168.1.202 80 no-reverse unr-route 

注意配置多对多地址端口问题的时候,只能配置一个端口,就是所有的公有地址都使用同一个端口,所有的私有地址都使用同一个端口。例如配置中的公有地址12.1.1.201和12.1.1.202都使用同一个外部地址8080,私有地址192.168.1.201和192.168.1.202都使用同一个内部端口80。

配置好后查看server-map表

公有地址12.1.1.201公有端口8080映射到私有地址192.168.1.201内部端口80;共有地址12.1.1.202公有端口8080映射到内部地址192.168.1.202内部端口80。符合我们需求的配置。

然后用客户端访问服务器访问成功。

查看防火墙的会话表
公有地址都是使用同一个端口8080,私有地址都是使用同一个端口80

六、总结

实际上server-nat的整个过程就是,通过配置nat-server规则,就会生成server-mat表,在流量进来的时候会匹配server-map表,然后匹配成功生成防火墙的五元素会话表,根据会话表来确定流量的放行还是截至。

Server-NAT黑洞路由的配置,可以直接配置黑洞接口NULL0,也可以直接配置unr-router,自动生成黑洞路由。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值