在linux中部署SNAT和DNAT以及堡垒机和内网发布nginxWEB服务器

1 部署环境

准备3台虚拟机,分别命名为
①堡垒机:centos7
②nginx服务器:centos8
③firewalld防火墙:centos7
软件为VMware workstation16

2 规划网络拓扑图

在这里插入图片描述

3 根据网络规划去配置ip地址

**3.1先确定真实机器网关地址,需要用该地址与外界联网**

通过打开网络和internet设置,在更改网络适配器选项,双击选中你真实上网的网卡 ,再点点击详细信息即可得到下图
在这里插入图片描述

**3.2部署firewalld防火墙机器**

在VMware workstation
在这里插入图片描述
其中网络适配器1选择选择桥接模式,网络适配器2选择仅主机模式。
下一步去配置两个网卡的ip地址网关等等。。
输入 ip add 获得如下图
在这里插入图片描述
首先配置ens33 (桥接模式)

cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33
###################
##将ifcfg-ens33里的内容配置如下
###################
TYPE="Ethernet"
BOOTPROTO="none"
NAME="ens33"
DEVICE="ens33"
ONBOOT="yes"
IPADDR=192.168.1.155#155为随定,只需要在192.168.1.0/24中即可
NETMASK=255.255.255.0
GATEWAY=192.168.1.1#此地址为第二幅图中获得的网关地址,用来和外界通信
DNS1=114.114.114.114
DMS2=8.8.8.8

再配置ens37 (仅主机模式)
在仅主机模式中我们需要知道在该模式中虚拟机处于什么网段,我们要查看win10中网络适配器的vmnet1网卡的信息,通过双击可得到如下图
在这里插入图片描述
在这里插入图片描述
由图可知,在仅主机模式下,内网网段为192.168.88.0/24,故将ens37的ip地址配置在该网段中

cd /etc/sysconfig/network-scripts/
vim ifcfg-ens37
###################
##将ifcfg-ens37里的内容配置如下
###################
TYPE="Ethernet"
BOOTPROTO="none"
NAME="ens37"
DEVICE="ens37"
ONBOOT="yes"
##该ip地址需要记住 后面配置服务器和堡垒机时
##需要将该ip设置为网关
IPADDR=192.168.88.254 #配置为仅主机模式中的网段下的IP地址
NETMASK=255.255.255.0

至此,firewalld防火墙机器的ip地址已经部署完毕,接下来部署SNAT和DNAT。
我们建立一个shell脚本,命名为iptable-snat_dnat.sh
若没有安装ipatables则yum下载一下

vim iptable-snat_dnat.sh
#################
##接下来为脚本内容##
#################
#!/bin/bash

#停止firewalld服务
service firewalld stop
#清除下iptables里的法则
iptables -t nat -F
iptables -F

#disabled selinux 
setenforce 0
sed -i '/^SELINUX=/ s/enforcing/disabled/' /etc/sysconfig/selinux 

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

#配置SNAT策略,实现SNAT功能,将所有内网中网段为 192.168.88.0 这个网段的数据报头部源ip修改为192.168.1.155 
iptables -t nat -A POSTROUTING -s 192.168.88.0/24 -o ens33 -j SNAT --to-source 192.168.1.155

#配置DNAT策略,实现DNAT功能,发布内网的WEB服务器192.168.88.80
iptables -t nat -A PREROUTING -d 192.168.1.155 -p tcp --dport 80 -i ens33 -j DNAT --to-destination 192.168.88.80

#配置DNAT策略,实现DNAT功能,部署内网的ssh堡垒机192.168.88.190
iptables -t nat -A PREROUTING -d 192.168.1.155 -p tcp --dport 2233 -i ens33 -j DNAT --to-destination 192.168.88.190:22

最后再执行该脚本和重启一下ens33和ens37网卡,代码如下

[root@localhost network-scripts]# bash iptable-snat_dnat.sh
[root@localhost network-scripts]# ifdown ifcfg-ens33
[root@localhost network-scripts]# ifup ifcfg-ens33
[root@localhost network-scripts]# ifdown ifcfg-ens37
[root@localhost network-scripts]# ifup ifcfg-ens37

至此部署firewalld防火墙机器完毕

**3.3部署nginx服务器虚拟机**

打开登陆nginx服务器虚拟机
若未安装nginx服务器,则再centos8环境下安装
输入 yum install nginx -y
再关闭防火墙 输入 service firewalld stop
最后启动nginx服务器 输入 service nginx start
至此nginx服务器安装启动完毕

我们再输入 ip add
结果如下图所示
在这里插入图片描述

再接下配至nginx服务器虚拟机的ens33网卡(选择仅主机模式)
代码如下

cd /etc/sysconfig/network-scripts/
vim ifcfg-ens33 
####################
##接下来为ens33中的内容
####################
BOOTPROTO="none"
NAME=ens33
DEVICE=ens33
##该ip地址在仅主机模式下的192.168.88.0/24网段中
IPADDR=192.168.88.80
NETMASK=255.255.255.0
##该网关地址为firewalld防火墙服务器中的ens37的ip地址
GATEWAY=192.168.88.254
DNS1=114.114.114.114
ONBOOT=yes
###################
##接下来为启动ens33网卡
#####################
ifdown ifcfg-ens33
ifup ifcfg-ens33

再来ping www.baidu.com ,如果成功则代表SNAT部署成功
在这里插入图片描述
再从win10中的浏览器中打开 192.168.1.155地址
在这里插入图片描述
若得到该图则代表DNAT和内网发布nginxWEB服务器成功!

**3.4部署堡垒机**

依旧将堡垒机网卡模式设置为仅主机模式
按照前面的方法修改堡垒机虚拟机中的ens33网卡内容
如下图所示

TYPE="Ethernet"
BOOTPROTO="none"
IPADDR=192.168.88.190
GATEWAY=192.168.88.254
NETMASK=255.255.255.0
DNS1=114.114.114.114
NAME="ens33"
DEVICE="ens33"
ONBOOT=yes

#####
在刷新网卡
ifdown ifcfg-ens33
ifup ifcfg-ens33


至此堡垒机ip地址配置完毕!
接下来登陆xshell6中去验证是否成功

在这里插入图片描述

观察下图中红线的ip地址,若结果如下图类似,则部署成功!
在这里插入图片描述

4 部署总结

在该次实践中,加深了对计算机网络的理解,使得我对计算机网络的认识不仅仅只是停留在课本中,增强了我的动手能力,也为接下来的linux容器学习奠定了一定的基础。

猜你喜欢

转载自blog.csdn.net/qq_41086909/article/details/113097012