iptables防火墙之SNAT、DNAT策略及应用

目录

一、SNAT原理及应用

1.1 SNAT应用环境

1.2 SNAT原理

1.3 SNAT转换前提条件

1.4 实现方法

1.4.1 编写SNAT转换规则

1.4.2 路由转发开启方式

 SNAT转换

二、DNAT策略概述

2.1 DNAT策略的典型应用环境

2.2 DNAT策略的原理

2.3 DNAT策略的应用

2.4 实现方法

编写DNAT转换的规则

三、防火墙规则的备份和还原

3.1 导出(备份)所有表的规则

3.2 导入(还原)规则


一、SNAT原理及应用

1.1 SNAT应用环境

局域网主机共享单个公网IP地址接入Internet ( 私有IP不能在Internet中正常路由)

1.2 SNAT原理

修改数据包的源地址

1.3 SNAT转换前提条件

  1. 1.局域网各主机已正确设置IP地址、子网掩码、默认网关地止

    2.Linux网关开启IP路由转发

1.4 实现方法

1.4.1 编写SNAT转换规则

TROUTING(路由选择后再处理) -s 指定的网段 -o 指定出站的网卡 -j SNAT --to-source 指定的外网地址

1.4.2 路由转发开启方式

临时打开: 
echo 1 > /proc/sys/net/ ipv4/ip_ forward
或
sysctl -w net. ipv4.ip_ forward = 1

永久打开:

vim /etc/ sysctl. conf
net. ipv4.ip_ forward = 1      #将此行写入配置文件
sysctl -p      #读取修改后的配置

 SNAT转换

SNAT转换1: 固定的公网IP地址:
iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -0 ens36 -j SNAT --to 12.0.0.1
或
iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens36 -j SNAT --to-source 12.0.0.1-12.0.0.10               内网IP   出站外网网卡  
外网IP或地址池

SNAT转换2: 非固定的公网IP地址(共享动态IP地址):
iptables -t nat -A POSTROUTING -s 192.168.80.0/24 -o ens36 -j MASQUERADE

小知识扩展:

一个IP地址做SNAT转换, 一般可以让内网100到200 台主机实现上网。

二、DNAT策略概述

2.1 DNAT策略的典型应用环境

在Internet中发布位于企业局域网内的服务器

2.2 DNAT策略的原理

  • 目标地址转换
  • 修改数据包的目标地址

2.3 DNAT策略的应用

前提条件

  • 局域网的Web服务器能够访问Internet
  • 网关的外网IP地址有正确的DNS解析记录
  • Linux网关支持IP路由转发

2.4 实现方法

编写DNAT转换的规则

iptable -t nat -A PREROUTING(路由选择之前处理) -i ens33(指定的入站网卡) -d 外网接口的IP地址 -p tcp --dport 80(发布的服务端口) -j DNAT(控制类型) --to-destination Web主机的内网IP地址

-A 指定路由选择之前处理

-i 指定的入站网卡

-d 指定外网接口的IP地址

--dport 指定发布的服务端口

-j 指定控制类型

--to-destination 指定Web主机的内网IP地址

三、防火墙规则的备份和还原

3.1 导出(备份)所有表的规则

iptables-save > /opt/ipt.txt

3.2 导入(还原)规则

iptables-restore < /opt/ipt. txt

将iptables规则文件保存在/etc/sysconfig/iptables 中,iptables服务启动时会自动还原规则
iptables-save > /etc/ sysconfig/iptables
systemctl stop iptables    #停u止iptables服务会清空掉所有表的规则
systemctl start iptables    #启动iptables服务会自动还原/etc/ sysconfig/iptables中的规则
tcpdump tcp -i ens33 -t -S 0 -C 100 and dst port ! 22 and src net 192.168.1.0/24 -W ./target. cap

(1)tcp:"ip icmp arp rarp和tcp、udp、icmp这些选项等都要放到第一 -个参数的位置,用来过

滤数据报的类型

(2)-i ens33 : 只抓经过接口ens33的包

(3)-t : 不显示时间戳

(4)-s 0 : 抓取数据包时默认抓取长度为68字节。加上-s 0 后可以抓到完整的数据包

(5)-c 100 : 只抓取100个数据包

(6)dstport ! 22 : 不抓取目标端口是22的数据包

(7)src net 192.168.1.0/24 : 数据包的源网络地址为192.168.1.0/24

(8)-w ./target.cap : 保存成cap文件,方便用ethereal (即wireshark)分析


版权声明:本文为weixin_62466637原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。