一、SNAT
1、SNAT实验目的
公司内有2台机器,但是只有一个公网ip,利用SNAT技术实现2台私网地址都可以访问公网。

2、SNAT实验环境准备
①三台服务器:PC1客户端、PC2网关、PC3服务端。

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

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

④IP地址要求:PC1为192.168.30.11/24--网关为192.168.30.12、PC2网关的ens33网卡地址为192.168.30.12/24--网关为192.168.30.12、ens36为12.0.0.254/24--不需要网关、PC3为12.0.0.100/24--网关为12.0.0.254

3、实验拓扑

4、实验步骤

①首先关闭三台机器的防火墙和selinux

三台机器全部执行:
systemctl stop firewalld
setenforce 0

②配置PC3服务端,安装httpd服务修改网卡ip为12.0.0.100/24--网关为12.0.0.254,重启网卡。

PC3执行:
vim /etc/sysconfig/network-script/ifcfg-ens33
文本添加内容:
IPADDR=12.0.0.100
NETMASK=255.255.255.0
GATEWAY=12.0.0.254

③配置PC1客户端,修改网卡ip为192.168.30.11/24---网关192.168.30.12,重启网卡。

PC1执行:
vim /etc/sysconfig/network-script/ifcfg-ens33
文本添加内容:
IPADDR=192.168.30.11
NETMASK=255.255.255.0
GATEWAY=192.168.30.12

④配置PC2网关服务器,首先配置ens33和ens36网卡的ip地址。

PC2执行:
vim /etc/sysconfig/network-script/ifcfg-ens33
文本添加内容:
IPADDR=192.168.30.12
NETMASK=255.255.255.0
GATEWAY=192.168.30.12

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

⑤开启PC2网关服务器的路由转发功能,重启网卡。

vim /etc/sysctl.conf
添加内容:
net.ipv4.ip_forward=1

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

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

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

PC2执行:
iptables -t nat -A POSTROUTING -s 192.168.30.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、DNAT实验目的
为保护公司业务服务器安全,业务服务器在私网中,从公网访问的用户只能通过nat为业务服务器的私网网关地址才可访问。

2、DNAT实验环境准备
①三台服务器:PC1客户端、PC2网关、PC3服务端。

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

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

④IP地址要求:PC1为192.168.30.11/24--网关为192.168.30.12、PC2网关的ens33网卡地址为192.168.30.12/24--网关为192.168.30.12、ens36为12.0.0.254/24--不需要网关、PC3为12.0.0.100/24--网关为12.0.0.254

3、实验拓扑

备注:PC1客户方做业务服务器,PC3服务端做公网用户。

4、实验步骤
①首先给三台机器做一个SNAT,原因是做DNAT之后内网的PC1需要通过SNAT给公网的用户返回数据包。

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

③PC2网关服务器上配置DNAT规则。

PC2执行:
iptables -t nat -A PREROUTING -d 12.0.0.254 -i ens36 -p tcp --dport 80 -j DNAT --to 192.168.30.12
# 从ens36网卡进入的流量目的地址为12.0.0.254目的端口为80的tcp协议NAT处理为访问192.168.30.12
# -t nat 指定使用nat表
# -A PREROUINTG 添加在路由选择前数据进入链,在输入时直接判断。
# -d 指定目的ip
# -i 指定输出网卡为ens36时
# -p 指定协议为tcp协议

# --dport 指定目的端口为80
# -j 指定跳转到DNAT处理
# --to 指定DNAT nat到192.168.30.12这个地址

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

 

5、实验结果

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

Linux系统安全:SNAT和DNAT的实现的更多相关文章

  1. 经验分享:Linux 双网卡SNAT和DNAT映射本地端口出外网

    A 机器 网卡1  公网IP网卡2  内网 B 机器网卡1 内网 如果想把公网端口P1 映射为内网B机器端口P2 iptables -t nat -A PREROUTING -d [A公网地址] -p ...

  2. 详解Linux下iptables中的DNAT与SNAT设置(转)

    详解Linux下iptables中的DNAT与SNAT设置 这篇文章主要介绍了Linux下iptables中的DNAT与SNAT设置,是Linux网络配置中的基础知识,需要的朋友可以参考下   原文连 ...

  3. 10.Linux防火墙iptables之SNAT与DNAT

    Linux防火墙iptables之SNAT与DNAT 目录 Linux防火墙iptables之SNAT与DNAT SNAT策略及应用 SNAT策略概述 SNAT策略典型应用环境 SNAT策略原理 SN ...

  4. iptables snat 和dnat说明

    iptables中的snat和dnat是非常有用的,感觉他们二个比较特别,所以单独拿出来说一下. dnat是用来做目的网络地址转换的,就是重写包的目的IP地址.如果一个包被匹配了,那么和它属于同一个流 ...

  5. centos Linux系统日常管理2 tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课

    centos  Linux系统日常管理2  tcpdump,tshark,selinux,strings命令, iptables ,crontab,TCP,UDP,ICMP,FTP网络知识 第十五节课 ...

  6. Linux系统下安装Redis和Redis集群配置

    Linux系统下安装Redis和Redis集群配置 一. 下载.安装.配置环境: 1.1.>官网下载地址: https://redis.io/download (本人下载的是3.2.8版本:re ...

  7. Linux 笔记 - 第十三章 Linux 系统日常管理之(二)Linux 防火墙和任务计划

    博客地址:http://www.moonxy.com 一.前言 Linux 下的的防火墙功能是非常丰富的,作为 Linux 系统工程师有必要了解一下.防火墙一般分为硬件防火墙和软件防火墙.但是,不管是 ...

  8. 【Linux】 经典Linux系统工程师面试题(转载)

    1.如何将本地80端口的请求转发到8080端口,当前主机IP为192.168.16.1,其中本地网卡eth0: 答: # iptables -t nat -A PREROUTING -d 192.16 ...

  9. Linux 系统常用管理命令(精简笔记)

    Linux是一套免费使用和自由传播的类Unix操作系统,下面的笔记是我从鸟菜中摘抄出来的重要命令,并进行了一定的排版,摒弃了一些用不到的乱七八糟的命令,目的是在生产环境中能够快速的定位并查询需要命令的 ...

  10. Linux系统安全需要注意的一些问题

    写在前面:当你部署一台服务器,第一步不应该是部署应用,安全是才是首要任务 如果某一天当你登录服务器发现 /bin/bash –i,python -c 'import pty; pty.spawn(&q ...

随机推荐

  1. DOM的操作(增删改查)

    操作DOM的核心就是增删改查 目录 一.节点创建型API 1.1 createElement 1.2 createTextNode 1.3 cloneNode 1.4 createDocumentFr ...

  2. Vue导出模板、使用前端js办法导出表格数据、导入表格前端读取表格数据、导入表格发送后端读取数据

    以下是几种用的较多的函数方法,可以参考使用. // 導出1 myExport() { // post請求文件寫法1 const url = 'http://XXXX/XXXX/XXXX/XXXX' c ...

  3. C-04\IDE基础知识和分支,循环语句

    一.浮点数特性及比较方法 浮点数在多参数传参的时候默认是会进行精度转换,由float转换到double,浮点数是一个近视值,不能进行直接等于比较,一般可以用区间法比较但是会存在精度丢失的问题. 浮点数 ...

  4. WPF 使用动画绘制一个点赞大拇指

    效果图 好久没有写wpf了. 最近看到飞书的点赞动画非常有意思,决定试试,虽然不及飞书那样的绚丽,但是练手还是可以的,希望自己的手艺还在! 那么如何写一个这样的动画呢? 首先需要刨析这个动画的构成: ...

  5. 亲测有效! TG Pro 实时温度工具 V2.7.6 for mac 破解版

    亲测有效! TG Pro 实时温度工具 V2.7.6 for mac 破解版 TG Pro (Temperature Gauge Pro) 是一款专业显示你的Mac实时温度的软件,可以在系统内的菜单栏 ...

  6. 毕设进度更新(真的不知道自己做到哪- - 备忘录性质)+3.19是mavan配置的常见问题

    3.19 maven的配置 我也不知道我的cmd 输入mvn complie就是报错 也没办法下载 奇了怪了 检查了setting文件也没得- - 然后也没办法像老师一样直接导入tomcat的包 但是 ...

  7. 如何快速搭建 Maven私服Nexus【实践可行版】

    搭建私服Nexus Nexus 一般用来搭建位于组织或公司内部的 Maven 私服,代理所有的仓库(包括中央仓库),用户通过它就可以获取和管理所有所需的 Maven 构件. Nexus 开源版具有以下 ...

  8. ubuntu16.04安装ROS+cartographer

    使用张明明大神修改编译版 注意:中间出过很多错误,大部分是开源包eigen,protobuf的版本与该SLAM不匹配. 之前装了eigen的,删掉.protobuf我装的是3.6.1 1.安装依赖性: ...

  9. NoSQL(简介、历史)

    NoSQL 为什么使用NoSQL 1.单机MySQL的网站 APP----->DAL------>MySQL 90年代:一个基本的网站访问量一般不会很大,单个数据库完全足够. 那个时候,更 ...

  10. Zstack使用经验系列1-安装的网络配置

    https://www.zstack.io/help/product_manuals/maintenance_manual/4.html 在官网上从这里有详细的安装,读者可以从上面链接开始起步装起来. ...