SSH通过网关实现端口转发
相比较与之前在两台虚拟机上通过SSH端口转发实现安全通信,本次实验在两台虚拟机之间加入了网关。
一、实验环境:
三台linux虚拟机,vm1(172.16.1.2)属于vmnet1子网,vm2(172.16.2.2)属于vmnet2子网,gate作为网关,拥有两个虚拟网卡,非别属于vmnet1和vmnet2。
二、实验构想:
模拟现实网络中,外网的一台主机要和内网中的一台主机通信,假设内网的传输是安全的,为了加强外网的安全性,我们用ssh端口转发实现外网主机和网关之间的安全通信,网关再将数据包转发给内网目的主机。
本实验中,我们用vmnet1模拟外网,gate充当网关,vmnet2模拟内网。通过网关,我们建立vm2和vm1之间的安全端口转发,即vm2到gate实现加密传输,而gate到vm1由于是内网,我们假设其安全,不需要加密。
三、实验步骤:
1、局域网VLAN的建立:
1.1、为VMware添加一个子网VMnet2
操作如下:
Edit→Virtual Network settings →Host Virtual Adapters 添加一个子网 VMnet2→在Host Virtual Network Mapping设置VMnet2的IP为172.16.2.0
1.2、vm1(172.16.1.2)先不启动,clone一个vm2
操作如下:
VM→clone→create a full clone 设置虚拟机的名字为vm2以及路径
1.3、启动vm2,登录172.16.1.2,设置IP为172.16.2.2,netmask为255.255.255.0
# vi /etc/sysconfig/network (修改主机的名字为vm2,在vmware中也可以修改)
# vi /etc/sysconfig/network-scripts/ifcfg-eth0(修改ip为172.16.2.2)
# service network restart
设置vm2属于VMnet2,再重连putty
1.4、再clone一台名为gate的虚拟机
1.5、给gate添加一个以太网卡,eth0属于VMnet1,eth1属于VMnet2,启动gate,登录172.16.1.3,修改gate的IP地址
# cd /etc/sysconfig
# vi network (修改主机的名字为gate)
# cd
# netconfig -d eth0 --ip=172.16.1.4 --netmask=255.255.255.0
# netconfig -d eth1 --ip=172.16.2.4 --netmask=255.255.255.0
# service network restart
1.6、分别设置vm1和vm2的IP地址映射(实质就是给IP起一个别名)
vm1:
# cd /etc/sysconfig
# vi /etc/hosts
172.16.1.4 gate
172.16.2.3 vm2
vm2:
# cd /etc/sysconfig
# vi /etc/hosts
172.16.2.4 gate
172.16.1.3 vm1
1.7、启动vm1
1.8、gate开启转发
方法一:每次开机需要设置:
# cat /proc/sys/net/ipv4/ip_forward
# 0
# echo 1 > /proc/sys/net/ipv4/ip_forward
方法二:在配置文件中修改,不需要每次开机重置
#vi /etc/sysctl.conf(设置net.ipv4.ip_forward=1)
#vi sysctl -p
1.9、vm1添加到VMnet2的路由
# route add -net 172.16.2.0 netmask 255.255.255.0 gw gate
1.10、vm2添加到VMnet1的路由
# route add -net 172.16.1.0 netmask 255.255.255.0 gw gate
1.11、测试路由是否成功,VM1与VM2互ping,ping通即可
# ping vm2
# ping vm1
VLAN并不是本次试验的重点,但确实实验的基础。注意在将主机划分不同子网时,本来都是选择host-only模式,包括前两次实验,都是行得通的,但这次只有把不同子网的网卡在costom模式下选择对应的子网,才成功。
2、捕获数据包:
2.1、打开宿主机上的wireshark,选择vm1的网卡,并在过滤器中输入下列语句:
host 172.16.1.2 and not 172.16.1.1
解释:捕获主机172.16.1.2除了与172.16.1.1主机的数据包意外的所有数据包。为了作对比试验,本地主机会通过与网关的隧道进行一次pop3的连接,再直接进行一次与远程主机172.16.2.2的连接;同时,由于putty远程控制通过宿主机上的虚拟网卡进行数据转发,所以去除172.16.1.1的数据包
3、进行端口转发:
3.1、vmnet1模拟外网
在vm1(172.16.1.2)上建立通过gate到vm2的端口转发:
ssh -L 2000:172.16.2.2:110 172.16.1.3
3.2、命令格式:
ssh -L localport:serverhost:serverhostPort gatehost
localport 本地主机上所要转发的端口
ServerHost 内网vm2中所要连接的服务器主机
Serverport 内网vm2中所要连接服务的端口
Gatehost 转发功能的网关的ip
3.3、进行隧道连接:
由于在2.1中并没有选择ssh端口转发后台运行,所以需要另外启动一个172.16.1.2的putty终端。输入下列命令:
telnet localhost 2000
然后进行登录收取邮件
3.4、对比试验:
待以上各步执行完,在进行一次不适用端口转发的连接
telnet 172.16.2.2 110
在本地主机172.16.1.2上直接远程登录远程主机172.16.2.2,并连接邮局协议端口110
4、分析数据包:
4.1、前一部分通过隧道传输的数据都是使用SSH协议经过加密的,在后面直接用telnet登陆的,则是明文传输,用户名和口令以及邮件内容都是可见的。
总结:本实验基本达到了实验的目的,在模拟的外网环境vm1中实现了pop的安全通信。实验步骤与之前两台虚拟机下所进行telnet和pop端口转发的实验基本相同。
所有评论(0)