Linux系统安全②SNAT与DNAT

目录

一.SNAT

1.定义

2.实验环境准备

(1)三台服务器:PC1客户端、PC2网关、PC3服务端。

(2)硬件要求:PC1和PC3均只需一块网卡、PC2需要2块网卡

(3)网络模式要求:PC1为NAT模式、PC2中作为PC1网关的网卡为NAT模式、作为PC3网关的网卡为仅主机

(4)IP地址要求:

①PC1为192.168.227.101/24--网关为192.168.227.102

②PC2网关的ens33网卡地址为192.168.227.102/24--网关为192.168.227.102、ens36为12.0.0.254/24--不需要网关

③PC3为12.0.0.100/24--网关为12.0.0.254

3.实验拓扑

4.实验步骤

(1)关闭防火墙安装HTTP

(2)配置PC3服务端

(3)配置PC1客户端

(4)配置PC2网关服务器

(5)开启PC2网关服务器路由转发

(6)检测PC1、PC2、PC3三台机器之间是否互通(使用虚拟机做实验默认是互通的,是由于处在同一环境中,生产环境内网和外网没有SNAT的情况下是不通的)

(7)在PC1上curl 服务端ip,然后在服务端实时查看/var/log/httpd/access_log日志。可查看到源ip为PC1的ip,所以是未经过NAT的,生产环境中不可能直接curl通

(8)在PC2中添加防火墙规则使得来源于192.168.30.0/24网段的所有从ens36网卡流出数据的ip全部NAT为12.0.0.254。然后再使用PC1去curl 服务端并在服务端实时查看日志。

5.结论

二.DNAT

1.定义

2.DNAT实验环境准备

(1)三台服务器:PC1客户端、PC2网关、PC3服务端。

(2)硬件要求:PC1和PC3均只需一块网卡、PC2需要2块网卡

(3)网络模式要求:PC1为NAT模式、PC2中作为PC1网关的网卡为NAT模式、作为PC3网关的网卡为仅主机模式、PC3为仅主机模式。

(4)IP地址要求:

①PC1为192.168.227.101/24--网关为192.168.227.102

②PC2网关的ens33网卡地址为192.168.227.102/24--网关为192.168.227.102、ens36为12.0.0.254/24--不需要网关

③PC3为12.0.0.100/24--网关为12.0.0.254

3.实验拓扑

4.实验

(1)首先给三台机器做一个SNAT,原因是做DNAT之后内网的PC1需要通过SNAT给公网的用户返回数据包

(2)在内网PC1上安装一个httpd服务并开启,作为内网的业务服务器

(3)PC2网关服务器上配置DNAT规则

(4)实时查看PC1的/var/log/httpdd/access_log日志,使用PC3公网地址直接curl 内网的PC1,可以看到日志中源地址。

5.结论


一.SNAT

1.定义

利用SNAT技术实现2台私网地址都可以访问公网

2.实验环境准备

(1)三台服务器:PC1客户端、PC2网关、PC3服务端。
(2)硬件要求:PC1和PC3均只需一块网卡、PC2需要2块网卡
(3)网络模式要求:PC1为NAT模式、PC2中作为PC1网关的网卡为NAT模式、作为PC3网关的网卡为仅主机
(4)IP地址要求:
①PC1为192.168.227.101/24--网关为192.168.227.102
②PC2网关的ens33网卡地址为192.168.227.102/24--网关为192.168.227.102、ens36为12.0.0.254/24--不需要网关
③PC3为12.0.0.100/24--网关为12.0.0.254

3.实验拓扑

4.实验步骤

(1)关闭防火墙安装HTTP
三台机器全部执行:
systemctl stop firewalld
setenforce 0
yum install httpd -y
(2)配置PC3服务端
PC3执行:
vim /etc/sysconfig/network-script/ifcfg-ens33
文本添加内容:
IPADDR=12.0.0.100
NETMASK=255.255.255.0
GATEWAY=12.0.0.254
(3)配置PC1客户端
PC1执行:
vim /etc/sysconfig/network-script/ifcfg-ens33
文本添加内容:
IPADDR=192.168.227.101
NETMASK=255.255.255.0
GATEWAY=192.168.227.102
(4)配置PC2网关服务器
PC2执行:
vim /etc/sysconfig/network-script/ifcfg-ens33
文本添加内容:
IPADDR=192.168.227.102
NETMASK=255.255.255.0
GATEWAY=192.168.227.102
 
cp /etc/sysconfig/network-script/ifcfg-ens33  /etc/sysconfig/network-script/ifcfg-ens36
#复制ens33配置文件给ens36网卡,新增网卡不会有配置文件
ens36配置文件修改:将UUID此行删除,修改ip和网关
IPADDR=12.0.0.254
NETMASK=255.255.255.0
GATEWAY=12.0.0.254
(5)开启PC2网关服务器路由转发
vim /etc/sysctl.conf
添加内容:
net.ipv4.ip_forward=1
(6)检测PC1、PC2、PC3三台机器之间是否互通(使用虚拟机做实验默认是互通的,是由于处在同一环境中,生产环境内网和外网没有SNAT的情况下是不通的)
(7)在PC1上curl 服务端ip,然后在服务端实时查看/var/log/httpd/access_log日志。可查看到源ip为PC1的ip,所以是未经过NAT的,生产环境中不可能直接curl通
(8)在PC2中添加防火墙规则使得来源于192.168.30.0/24网段的所有从ens36网卡流出数据的ip全部NAT为12.0.0.254。然后再使用PC1去curl 服务端并在服务端实时查看日志。
PC2执行:
iptables -t nat  -A POSTROUTING -s 192.168.227.0/24 -o ens36 -j SNAT --to 12.0.0.254
# -t nat 指定使用nat表
# -A POSTROUTING 添加在数据流出链,原因为在输出时添加只需要添加一次。
# -s 指定源ip
# -o 指定输出网卡为ens36时
# -j 指定跳转到SNAT处理
# --to 指定SNAT nat为12.0.0.254这个地址

5.结论

不经过nat的地址为pc1自己的地址,使用虚拟机环境才会出现这种情况,生成环境是不通的。

经过nat之后的地址是公司的公网ip地址,由网关服务器iptables规则SNAT实现。

二.DNAT

1.定义

从公网访问的用户只能通过nat为业务服务器的私网网关地址才可访问。

2.DNAT实验环境准备

(1)三台服务器:PC1客户端、PC2网关、PC3服务端。
(2)硬件要求:PC1和PC3均只需一块网卡、PC2需要2块网卡
(3)网络模式要求:PC1为NAT模式、PC2中作为PC1网关的网卡为NAT模式、作为PC3网关的网卡为仅主机模式、PC3为仅主机模式。
(4)IP地址要求:
①PC1为192.168.227.101/24--网关为192.168.227.102
②PC2网关的ens33网卡地址为192.168.227.102/24--网关为192.168.227.102、ens36为12.0.0.254/24--不需要网关
③PC3为12.0.0.100/24--网关为12.0.0.254

3.实验拓扑

4.实验

(1)首先给三台机器做一个SNAT,原因是做DNAT之后内网的PC1需要通过SNAT给公网的用户返回数据包
(2)在内网PC1上安装一个httpd服务并开启,作为内网的业务服务器
(3)PC2网关服务器上配置DNAT规则
PC2执行:
iptables -t nat  -A PREROUTING -d 12.0.0.254 -i ens36 -p tcp  --dport 80 -j DNAT --to 192.168.227.101
# 从ens36网卡进入的流量目的地址为12.0.0.254目的端口为80的tcp协议NAT处理为访问192.168.227.102
# -t nat 指定使用nat表
# -A PREROUINTG 添加在路由选择前数据进入链,在输入时直接判断。
# -d 指定目的ip
# -i 指定输出网卡为ens36时
# -p 指定协议为tcp协议
# --dport 指定目的端口为80
# -j 指定跳转到DNAT处理
# --to 指定DNAT nat到192.168.227.101这个地址
(4)实时查看PC1的/var/log/httpdd/access_log日志,使用PC3公网地址直接curl 内网的PC1,可以看到日志中源地址。

5.结论

经过DNAT之后的用户访问公网的网关即会跳转到内网的PC1内网的httpd服务中。PC1内网日志会显示访问的源公网ip。

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值