iptables防火墙之SNAT与DNAT 您所在的位置:网站首页 snat和dnat的作用 iptables防火墙之SNAT与DNAT

iptables防火墙之SNAT与DNAT

2023-09-27 10:58| 来源: 网络整理| 查看: 265

目录

一、SNAT策略及应用

1.1 SNAT策略概述

1.1.1 SNAT 应用环境

1.1.2 SNAT 原理

1.1.3 SNAT 转换前提条件

1.2 开启SNAT的命令

1.2.1 临时打开

1.2.2 永久打开

1.3 SNAT转换1:固定的公网IP地址

1.3.1 配置网关服务器 (192.168.100.100/10.0.0.1)  19机器

1.3.2 Xshell 连接192.168.100.100

1.3.3 配置web服务器(外网)13机器

二、DNAT策略及应用

2.1 DNAT策略概述

2.2 DNAT 策略的应用

2.3 DNAT策略用法

2.3.1 前面网关服务器设置的两个网卡ens33和ens36不需要改动

2.3.2 设置win10网卡模式及IP

2.3.3  web服务器修改网卡ip​编辑

2.3.4 重启网卡​编辑

2.3.5 把从ens36进来的要访问web服务的数据包目的地址转换为192.168.100.118​编辑

2.3.6 修改网卡模式为VMnet1

2.3.7 访问10.0.0.1

 三、规则的导出、导入

3.1 规则的备份及还原

3.1.1 iptables-save 命令

3.1.2 iptables-restore 命令

3.2 使用 iptables 服务

3.2.1 自动启用防火墙规则

3.2.2 清空所有防火墙规则

总结

一、SNAT策略及应用 1.1 SNAT策略概述 1.1.1 SNAT 应用环境

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

1.1.2 SNAT 原理

(1)源地址转换

(2)修改数据包的源IP地址,通常被叫做源映射。

1.1.3 SNAT 转换前提条件

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

(2)Linux网关开启IP路由转发

Linux系统本身是没有转发功能,只有路由发送数据。

1.2 开启SNAT的命令 1.2.1 临时打开

echo 1 >/proc/sys/net/ipv4/ip_forward 或 sysctl -w net.ipv4.ip forward=1

1.2.2 永久打开

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

1.3 SNAT转换1:固定的公网IP地址

#配置SNAT策略,实现snat功能,将所有192.168.100.0这个网段的ip的源ip改为10.0.0.1 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j SNAT --to 10.0.0.1                                                            可换成单独IP    出站外网网卡                  外网IP 或 iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ens33 -j SNAT --to-source 10.0.0.1-10.0.0.10                                                             内网IP          出站外网网卡               外网IP或地址池

1.3.1 配置网关服务器 (192.168.100.100/10.0.0.1)  19机器

1. 添加两块网卡,定义为VMnet3 10.0.0.0网段   VMnet1为内网,VMnet3为外网

2.修改ens33网卡信息,注释网关和DNS,修改IP地址为192.168.100.100

3.修改ens36网卡信息,注释网关和DNS,修改IP地址为10.0.0.1

4.重启网卡

1.3.2 Xshell 连接192.168.100.100

设置永久打开SNAT       sysctl -p 读取修改后的配置

 清空规则  iptables -F

配置SNAT策略,实现snat功能,将所有192.168.100.0网段的ip的源ip改为10.0.0.1

1.3.3 配置web服务器(外网)13机器

注:查看是否安装httpd服务,如未安装,则先进行安装

编译安装httpd:

1.修改网卡模式为VMnet3

2. 修改ens33网卡

3.重启网卡

 4.开启httpd服务,关闭防火墙和增强

5.设置win10网卡模式及IP

修改网卡模式为VMnet1  

6.访问10.0.0.12

二、DNAT策略及应用

DNAT 是 Linux 防火墙的另一种地址转换操作,同样也是 iptables 命令中的一种数据包控制类型,其作用是根据指定条件修改数据包的目标IP地址和目标端口。

2.1 DNAT策略概述

DNAT 策略与 SNAT 非常相似,只不过应用方向相反

SNAT 用来修改源 IP 地址,而 DNAT 用来修改目标 IP 地址和目标端口;SNAT 只能用在 nat 表的 POSTROUTING 链中,而 DNAT 只能用在 nat 表的 PREROUTING 链和 OUTPUT链(或被其调用的链)中

在 Internet 环境中,企业所注册的网站域名必须对应合法的公网 IP 地址,在这种情况下,Internet 中的客户机将无法访问公司内网的服务器,除非在网关服务器中正确设置 DNAT 策略

使用 DNAT 策略的效果如下:当 Internet 中的客户机提交的 HTTP 请求到达企业的网关服务器时,网关首先判断数据包的目标地址和目标端口,若发现该数据包需要访问本机的 80 端口,则将其目标 IP 地址修改为内网中真正的网站服务器的 IP 地址,然后才发送给内部的网站服务器

上述 DNAT 转换地址的过程,网关服务器会根据之前建立的 DNAT 映射,修改返回的 HTTP 应答数据包的源 IP 地址,最后再返回给 Internet 中的客户机,Internet 中的客户机并不知道企业网站服务器的真实局域网地址,中间的转换完全由网关主机完成。

2.2 DNAT 策略的应用

DNAT 的典型应用是在 Internet 中发布企业内部的服务器,处理数据包的切入时机是在路由选择之前(PREROUTING)进行。 关键操作是将访问网关外网接口 IP 地址(公有地址)的数据包的目标地址修改为实际提供服务的内部服务器的 IP 地址(私有地址) 使用 iptables 命令设置 DNAT 策略时,需要结合 “- -to-destination IP地址” 选项来指定内部服务器的 IP 地址

2.3 DNAT策略用法

DNAT转换:发布内网的Web服务

2.3.1 前面网关服务器设置的两个网卡ens33和ens36不需要改动 2.3.2 设置win10网卡模式及IP

设置win10网卡模式及IP

2.3.3  web服务器修改网卡ip 2.3.4 重启网卡 2.3.5 把从ens36进来的要访问web服务的数据包目的地址转换为192.168.100.118 2.3.6 修改网卡模式为VMnet1

2.3.7 访问10.0.0.1

 三、规则的导出、导入

在 Linux 系统中, iptables 为我们提供了批量备份与恢复规则的命令,也提供了标准的系统服务以便开启、关闭防火墙功能。

3.1 规则的备份及还原

防火墙规则的批量备份、还原用到两个命令,即 iptables-save 和 iptables-restore,分别用来保存(Save)和恢复(Restore)。

3.1.1 iptables-save 命令

iptables-save 命令用来批量导出 Linux 防火墙规则,直接执行 iptables-save save 命令时,将显示出当前启用的所有规则

iptables-save 在 iptables-save 命令的输出信息中,以“#”号开头的内容表示注释,“*表名”表示所在的表,”:链名 默认策略”表示相应的链及默认策略,具体的规则部分省略了命令名“iptables”,后面的“COMMIT”表示提交前面的规则设置由于 iptables-save 命令只是把规则内容输出到屏幕上,因此当需要保存为固定的文件时,还应该结合重定向输出的操作以完成备份

例如,若要将当前已设置的所有防火墙规则备份为opt/ipt.txt 文件,可以执行以下操作:

iptables-save > /opt/ipt.txt #备份所有表的规则 3.1.2 iptables-restore 命令 iptables-restore命令用来批量导入Linux 防火墙规则,如果已经使用 iptables-save 命令导出备份文件,则恢复规则的过程在一瞬间就能完成。与 iptables–save 命令相对的 iptables-restore 命令也应结合重定向输入来指定备份文件的位置 iptables-restore < /opt/ipt.txt #从备份文件恢复规则 3.2 使用 iptables 服务

通过名为 iptables 的系统服务,可以快速启用、清空防火墙规则,iptables 服务使用的规则文件位于 /etc/sysconfig/iptables 文件中,配置格式与 iptables-save 命令输出的一致。

3.2.1 自动启用防火墙规则

在服务器中调试好各种iptables规则后,使用 iptables-save 备份为默认的规则配置文件位于etc/sysconfig/iptables,然后就可以通过 iptables 服务来调用

例如,保存当前的防火墙规则,并设置在每次开机后根据已保存的规则内容自动进行重建,可以执行下面的操作

iptables-save > /etc/sysconfig/iptables 3.2.2 清空所有防火墙规则 在调试各种防火墙规则的过程中,为了排除其他规则的干扰,有时候需要清空某些表的规则。当需要一次清空所有表的规则时,停用 iptables 服务是最快捷的方法,也是最彻底的方法。 #将iptables规则文件保存在/etc/sysconfig/iptables中,iptables服务启动时会自动还原规则 iptables-save > /etc/sysconfig/iptables systemctl stop iptables #停止iptables服务会清空掉所有表的规则 systemctl start iptables #启动iptables服务会自动还原/etc/sysconfig/iptables中的规则 总结 一个IP地址做SNAT转换,一般可以让内网100到200 台主机实现上网主机型防火墙主要使用INPUT、OUTPUT链,设置规则时一般要详细的指定到端口网络型防火墙主要使用FORWARD链,设置规则时很少去指定到端口,一般指定到IP地址或者到网段即可



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有