目录
- 一、SNAT策略及应用
- 1.1 SNAT策略概述
- 1.2 SNAT的典型应用环境
- 1.3 SNAT策略的工作原理
- 1.3.1 未作SNAT转换时的情况
- 1.3.2 进行SNAT转换后的情况(私网转公网)
- 二、DNAT策略及应用
- 2.1 DNAT策略概述
- 2.2 DNAT的典型应用环境
- 2.3 DNAT策略的工作原理
- 2.3.1 进行DNAT转换后的情况(公网转私网)
- 2.4 DNAT策略的应用
- 三、规则的备份及还原
- 3.1保存防火墙规则
- 3.2备份防火墙规则
- 3.3 导入(还原)规则
- 3.4 清空所有防火墙规则
- 3.5 设置具体的iptables规则
- 四、实验
- 4.1 Windows客户机设置
- 4.2 web服务器设置
- 4.3 防火墙设置
- 4.3.1 配置网卡
- 4.3.2 关闭防火墙,开启路由转发
- 4.3.3 设置DNAT和SNAT地址映射
- 4.4 实验结果验证
一、SNAT策略及应用
1.1 SNAT策略概述
- SNAT策略的典型应用环境
- 局域网主机共享单个公网IP地址接入Internet
- SNAT策略的原理
- 源地址转换,Source Network Address Translation
- 修改数据包的源地址
1.2 SNAT的典型应用环境
- 局域网共享上网
1.3 SNAT策略的工作原理
1.3.1 未作SNAT转换时的情况
因为私网地址是不可以直接访问公网的,如果不做转换,路由那边会形成黑洞抹杀数据
1.3.2 进行SNAT转换后的情况(私网转公网)
首先局域网PC机向Web服务器发送服务请求,源ip为192.168.1.234,目标ip为58.63.236.45,因为SNAT策略,网关服务器在数据进行路由选择后处理数据包,然后将私网的源地址转换成公网的地址,访问公网Web服务器
二、DNAT策略及应用
2.1 DNAT策略概述
- DNAT策略的典型应用环境
- 在Internet中发布位于企业局域网内的服务器
- DNAT策略的原理
- 目标地址转换,Destination Network Address Translation
- 修改数据包的目标地址
2.2 DNAT的典型应用环境
- 在Internet中发布内网服务器
2.3 DNAT策略的工作原理
2.3.1 进行DNAT转换后的情况(公网转私网)
客户机源地址:173.96.97.98 目标地址:218.29.30.31 向内网的Web服务器发出服务请求,因为DNAT策略,网关服务器在进行路由选择前处理数据包,将客户机数据的目标218.29.30.31换成192.168.1.6,这样就能访问私网服务器了
2.4 DNAT策略的应用
- 前提条件
- 局域网的Web服务器能够访问Internet
- 网关的外网IP地址有正确的DNS解析记录
- Linux网关支持IP路由转发
- 实现方法示例:
[root@localhost ~]# iptables -t nat -A PREROUTING -i ens33-d 218.29.30.31-p tcp --dport 80 -j DNAT --to-destination 192.168.1.6
- 发布时修改目标端口
- 在DNAT规则中以“IP:Port”的形式指定目标地址
[root@localhost~]# iptables -t nat -A PREROUTING -i ens33-d 218.29.30.31-p tcp --dport 2346 -j DNAT --to-destination 192.168.1.6:22
三、规则的备份及还原
3.1保存防火墙规则
- iptables-save
- 由于iptables-save 命令只是把规则内容输出到屏幕上,因此当需要保存为固定的文件时,还需结合重定向输出的操作以完成备份。
3.2备份防火墙规则
- iptables-save > /opt/iprules_all.txt
- 将iptables规则保存到opt目录里iprules_all.txt
3.3 导入(还原)规则
- iptables-restore < /opt/iprules_all.txt
- 将保存了规则的文本导入到iptables里面
3.4 清空所有防火墙规则
- 停用iptables服务即可一次清空所有表的规则
systemctl stop iptables
systemctl status iptables
3.5 设置具体的iptables规则
- 清理已有的规则
- 为了避免已有的防火墙规则造成干扰,通常会预先安排一个“清理”操作,删除所有表中用户自定义的链,清空所有链内的规则
$IPT -t filter -X //删除各表中自定义的链
$IPT -t filter -F //清空各表中已有的规
四、实验
4.1 Windows客户机设置
4.2 web服务器设置
- 网卡为NAT模式,安装httpd服务
[root@localhost ~]# yum install httpd -y
[root@localhost ~]# systemctl start httpd
- 修改为仅主机模式
- 编辑网卡,设置IP地址
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
...省略内容
BOOTPROTO="static" '//将dhcp修改为static'
...省略内容,末尾添加下面内容
IPADDR=192.168.10.10
NETMASK=255.255.255.0
GATEWAY=192.168.10.1
[root@localhost ~]# systemctl restart network
[root@localhost ~]# ifconfig
- 清空防火墙规则
[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -t nat -F
4.3 防火墙设置
4.3.1 配置网卡
- 添加一张网卡,两张网卡都改为仅主机模式
- 修改网卡IP地址
[root@firewall ~]# cd /etc/sysconfig/network-scripts/
[root@firewall network-scripts]# cp ifcfg-ens33 ifcfg-ens36
[root@firewall network-scripts]# vim ifcfg-ens33
...省略内容
BOOTPROTO="static" '//将dhcp修改为static'
...省略内容。添加以下内容
IPADDR=192.168.10.1
NETMASK=255.255.255.0
[root@firewall network-scripts]# vim ifcfg-ens36
...省略内容
BOOTPROTO="static" '//将dhcp修改为static'
...省略内容
NAME="ens36" '//将ens33修改为ens36'
'//删除UUID'
DEVICE="ens36" '//将ens33修改为ens36'
'//添加以下内容'
IPADDR=12.0.0.1
NETMASK=255.255.255.0
[root@firewall network-scripts]# systemctl restart network
[root@firewall network-scripts]# ifconfig
4.3.2 关闭防火墙,开启路由转发
[root@firewall network-scripts]# iptables -F '//清空防火墙规则'
[root@firewall network-scripts]# iptables -t nat -F '//清空DNAT和SNAT规则'
[root@firewall network-scripts]# vim /etc/sysctl.conf
..省略内容,末行添加下段内容
net.ipv4.ip_forward=1 '//开启路由转发功能'
[root@firewall network-scripts]# sysctl -p '//刷新sysctl.conf配置'
net.ipv4.ip_forward = 1
4.3.3 设置DNAT和SNAT地址映射
[root@firewall ~]# iptables -t nat -I PREROUTING -d 12.0.0.1 -p tcp --dport 80 -i ens36 -j DNAT --to-destination 192.168.10.10
[root@firewall ~]# iptables -t nat -I POSTROUTING -s 192.168.10.10/24 -o ens36 -j SNAT --to-source 12.0.0.1
4.4 实验结果验证
- 客户端访问
- web服务器查看日志访问记录
[root@localhost httpd]# cd /var/log/httpd
[root@localhost httpd]# cat access_log