一、实验准备
三台VMware虚拟机分别充当防火墙服务器、web服务器、跳板机,以及Xshell远程链接方便操作。
二、开始实验
1、配置各台虚拟机的网卡类型、IP地址、网关、子网掩码、DNS服务器
这一部分的操作与NAT实验相同,具体操作可以参考NAT简单实验。
网卡配置如下:
给防火墙服务器配置两块网卡:内网卡(直接连接web服务器和跳板机的网卡)配置为hostonly模式对内网进行隔离;外网卡配置为桥接模式
给web服务器配置一块网卡:hostonly模式(只能与内网机器通信)
给跳板机配置一块网卡:hostonly模式(只能与内网机器通信)
IP地址、网关、子网掩码、DNS服务器配置如下:
防火墙服务器:内网卡:
,注意与自己的VMnet1网段一致
外网卡:
,外网卡是桥接模式与真实机器同一网段且相同网关
web服务器:
,这部分也是hostonly模式,注意与VMnet1网卡网段一致(我这里是192.168.211.0网段)。网关填的是防火墙服务器的内网口IP地址,因为我们需要防火墙服务器帮忙转发数据。
跳板机:
,这部分要注意的与web服务器一样,只是要考虑不能与web服务器IP地址冲突。
2、关闭防火墙和修改selinux状态
我们需要输入systemctl stop firewalld关闭防火墙(临时关闭),setenforce 0不限制进程访问文件(临时修改)
3、配置iptables规则和tcp wrappers
为了保障整个内网的安全性和web服务器的安全,我们需要对访问进行控制,让web服务器只能通过跳板机远程连接。同时远程办公时,为了连接到web服务器,我们需要借助跳板机,但是跳板机也是处于内网中,所以一般公司还会设置VPN虚拟出一条专用链路连接到防火墙服务器,然后通过防火墙服务器转发到跳板机,跳板机映射到web服务器。
防火墙服务器的iptalbes规则:防火墙服务器,需要沟通内外网络,让互联网用户可以访问到web服务器的服务,同时也要让内网用户可以访问到互联网,所以这里就需要用到NAT规则。这里我们编写了一个脚本来实现功能,脚本内容如下。
加载iptables规则时候,先清空nat表上的规则;当访问外网卡的80端口时,转接到web服务器的80端口,确保互联网上的用户可以访问web服务;模拟远程办公时,开放2200端口,当访问2200端口时,转接到跳板机的22端口ssh远程连接跳板机。
web服务器的tcp wrappers配置:
为了Xshell不断开,我们需要开放真实机器的ssh权限;为了保证只有跳板机可以ssh到web服务器,开放跳板机的ssh权限,且在跳板机的root用户和web服务器的root用户之间建立免密通道。
tcp wrappers权限设置:
vim /etc/hosts.allow(配置白名单,允许ssh的)
vim /etc/hosts.deny(配置黑名单,不允许ssh的):其他机器都不可以ssh
跳板机的免密通道建立:
在跳板机root与web服务器root之间建立免密通道:
生成公钥私钥,输入ssh-keygen,在/root/.ssh目录下生成id_rsa(私钥)、id_rsa.pub(公钥);
上传公钥到web服务器上,建立免密通道,输入ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.211.3,到这里免密通道就建立成功了。
三、验证实验
我们的整体配置完成之后,下面我们开始验证跳板机的作用是否完成,用户是否可以正常访问web服务器的服务,内网用户是否可以访问互联网。
用户是否可以正常访问web服务器的服务:在浏览器地址栏输入防火墙服务器的外网卡IP地址,看看是否可以访问到我们的网页。
出现这个就表示是成功的。
内网用户是否可以访问互联网:使用跳板机ping www.baidu.com查看是否可以ping通,可以就待变内网用户可以正常访问互联网。
跳板机的作用是否完成:我们这次使用真实机器的命令行窗口进行验证。
首先,ssh到防火墙服务器的2200端口,这是我们前面设计开放的端口用于连接到跳板机的22号端口。输入:ssh -p 2200 root@防火墙服务器外网卡的IP地址
可以看到我们通过这个端口直接ssh连接到了跳板机,接下来我们就可以通过跳板机来ssh到web服务器进行管理和控制web服务器。输入:ssh -p 22 root@192.168.211.3,因为我们之前建立了免密通道,所以我们可以之间连接到web服务器。
出现这个结果就代表实验成功了。
四、实验总结
通过这个实验,我们能更清楚地了解跳板机的原理和使用,对于网络的认识也能够加深。深刻体会到远程办公的实现,利于理论向实践的实现。