Skip to content

防火墙NAT

image-20231031164721842

源NAT

  • NAT No-PAT(No-Port Address Translation,非端口地址转换)是一种 只转换地址,不转换端口,实现私网地址与公网地址一对一的地址转换方式,产生server-map表。
    • 静态nat:只能一对一,一台主机对应一条公网地址,并没有起到节省公网ip的作用

    • 动态nat:使用公有地址池,并以先到先得的原则分配这些地址。当数据会话结束后,释放地址回地址池。

bash
nat address-group nat
 mode no-pat local      #local就是流量受安全策略控制
 section 1.1.1.1
nat-policy
 rule name SNAT
 source-zone trust
 destination-zone untrust
 source-address 10.1.1.0 mask 255.255.255.0
 action source-nat address-group nat
  • NAPT/PAT:(Network Address and Port Translation,网络地址端口转换)是一种 同时转换地址和端口,实现多个私网地址共用一个或多个公网地址的地址转换方式,不会产生server-map
bash
nat address-group nat
 mode pat
 section 1.1.1.1
nat-policy
 rule name SNAT
 source-zone trust
 destination-zone untrust
 source-address 10.1.1.0 mask 255.255.255.0
 action source-nat address-group nat
  • Easy IP :Easy IP是一种特殊的NAPT,Easy IP使用出接口的公网IP地址作为NAT转换后的地址。
bash
nat-policy
 rule name SNAT
 source-zone trust
 destination-zone untrust
 source-address 10.1.1.0 mask 255.255.255.0
 action source-nat easy-ip

目的Nat

nat server

NAT Server:是一种特殊的静态目的NAT,NAT Server将发往私网服务器的报文中的公网地址转换为与之对应的私网地址

bash
nat server HTTP_Server protocol tcp global 200.1.1.11 80 inside 10.1.1.12 80

当NAT公网地址和出接口不在一个网段的时候,可能会导致数据在出口防火墙和运营商路由器之间成环,必须配置黑洞路由

当NAT公网地址和出接口在一个网段的时候,可能会导致防火墙产生大量的p,建议配置黑洞路由

当NAT公网地址和出接口一致的时候,不需要配置黑洞路由,不会产生大量arp,也不会导致数据成环

静态目的nat

静态目的NAT是一种转换报文目的IP地址的方式,转换前后的地址存在一种固定的映射关系

  • 公网地址 与 私网地址 一对一映射
bash
#配置目的nat地址池
destination-nat address-group server 0
 section 10.1.1.1 10.1.1.2
nat-policy
 rule name server
  source-zone untrust
  destination-address range 1.1.1.1 1.1.1.2
  service http
  service https
  action destination-nat static address-to-address address-group yage
  • 公网端口 与 私网端口 一对一映射
bash
destination-nat address-group server 0
 section 10.1.1.1 10.1.1.1
nat-policy
 rule name server
  source-zone untrust
  destination-address 1.1.1.1 32
  service protocol tcp destination-port 80 443
  action destination-nat static port-to-port address-group yage 80 443
  • 公网端口 与 私网地址 一对一映射
    • 访问公网地址不同端口 映射 不同私网地址相同端口
bash
destination-nat address-group server 0
 section 10.1.1.1 10.1.1.2
nat-policy
 rule name server
  source-zone untrust
  destination-address 1.1.1.1 32
  service protocol tcp destination-port 80 443
  action destination-nat static port-to-address address-group yage 80
  • 公网地址 与 私网端口 一对一映射
    • 访问不同公网地址 映射 相同私网地址不同端口
bash
destination-nat address-group server 0
 section 10.1.1.1 10.1.1.1
nat-policy
 rule name server
  source-zone untrust
  destination-address 1.1.1.1 1.1.1.2
  service protocol tcp destination-port 80
  action destination-nat static address-to-port address-group yage 80 to 81

动态目的nat

转换前后没有固定的映射,一般用于对流量的重定向

比如原本去往114.114.114.114的dns解析,重定向到8.8.8.8

bash
nat-policy
 rule name DNS
  source0zone trust
  source-address 10.1.1.1 32
  destination-address 114.114.114.114 32
  service protocol udp destination-port 53
  action source-nat easy-ip
  action destination-nat address 8.8.8.8

双向nat

场景一:内网服务器不需要上网,不配置网关,为了能正常对外提供服务,需要防火墙做双向NAT

image-20231027223428562

bash
nat address-group add_group1               #源地址池
 mode pat
 section 192.168.1.100
 route enable    #开启黑洞路由
destination-nat address-group add_group2   #目的地址池
 section 192.168.1.2
nat-policy
 rule name policy_nat1
  source-zone untrust
  destination-address 1.1.1.10
  service http
  service ftp
  action source-nat address-group add_group1
  action destination-nat static address-to-address address-group add_group2
ip route-static 1.1.1.1 32 null0  #黑洞路由防止环路
firewall detect ftp               #开启ftp协议的nat ALG功能

场景二:内网主机通过公网IP地址访问内网服务器,为了让TCP三次握手成功建立,需要访问做双向NAT

host通过公网地址访问,tcp第一个包syn发给FW,FW nat转换目的地址发给server,server和host在一个网段,直接发给host syn+ack,存在流量异步问题,导致不能访问。

image-20231027224916505

bash
nat server protocol tcp global 1.1.1.1 80 inside 10.1.1.100 80
nat-policy
 rule name easy
  source-zone trust
  destination-zon trust
  source-address 192.168.1.0 24
  action source-nat easy-ip