Linux下搭建SNAT,DNAT实验

无人久伴 提交于 2020-08-14 15:31:17

SNAT:局域网共享一个公网IP接入lnternel。

意义:

1、保护内网用户安全,能被外界扫描的只有防火墙这一台机器,这样就减少了被攻击的可能。

2、Ipv4地址匮乏,很多公司只有一个ipv4地址,但是却有几百个用户需要上网,这个时候就需要使用SNAT。

3、节约成本,公网地址需要付费,使用SNAT只需要一个公网ip就可以满足几百人同时上网。

DNAT:向internel发布内网服务器

意义:

在内网中有服务器,如果想让公网用户访问有有两种方法。

1.MASQUERADE(地址伪装)策略 --》适合与外网口动态获得ip地址的场景

一、SNAT

1.准备三台虚拟机,一台配置两块网卡,其中第二个网卡配置hostonly(仅主机)模式
网络配置


 

二、配置好ip,网关和dns服务器,router机器开启路由功能。

(1)route机器

在  /etc/sysconfig/network-script 下修改ens33配置      

刷新网卡

ifdown ens33
ifup ens33

  因为新配置的第二块网卡没有相应的配置文件,所以我们要手动去新建一个ifcfg-ens37   

刷新网卡

ifdown ens37
ifup ens37
#再查看ip地址 
ip add
#开启路由功能  --》成为路由器
#临时开启
echo 1 >/proc/sys/net/ipv4/ip_forward     1表示开启  0 关闭  默认是0

#永久生效的话,需要修改sysctl.conf:
vim /etc/sysctl.conf
# 添加
net.ipv4.ip_forward = 1

sysctl -p 
# 让内核重新读取/etc/sysctl.conf配置文件里的内容,开启路由功能
#net.ipv4.ip_forward = 1

三、配置snat策略,开启snat功能

# route机器上

#临时开启路由功能
echo  1 >/proc/sys/net/ipv4/ip_forward
#在iptables里添加一条snat的转发策略,让内网 192.168.82.0的网络从ens33接口出去,出去的时候将源ip地址转换为192.168.0.159
iptables -t nat  -A POSTROUTING  -s  192.168.82.0/24 -o ens33 -j SNAT --to-source 192.168.0.159

二、DNAT实验


一.内网准备一台 web和mysql服务器

mysql机器上安装数据库 mariadb或mysql

yum install nginx  mariadb mariadb-server

service mariadb start

授权一个可以远程连接的mariadb的账户

mysql -uroot -p
#回车键mariadb默认是不需要输入密码的

MariaDB [(none)]> grant all on *.* to 'wangsy'@'%' identified by '123456';
Query OK, 0 rows affected (0.001 sec)

二、在linux网关服务器上
        1.开启路由功能
        2.添加DNAT策略
脚本文件


#!/bin/bash

#清除原来的规则
iptables -F
iptables -t nat -F

#临时开启路由功能
echo 1 >/proc/sys/net/ipv4/ip_forward


#dnat策略-mysql

iptables -t nat -A PREROUTING  -i ens33 -d 192.168.0.159 -p tcp  --dport 3306  -j DNAT --to-destination 192.168.82.129

# dnat -web
iptables -t nat -A PREROUTING  -i ens33 -d 192.168.0.159 -p tcp  --dport 80  -j DNAT --to-destination 192.168.82.129

运行脚本。

三、验证

在sqlyog上能连接新建的用户就成功了

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!