基于SSH端口转发透过网关实现安全通信

来源:互联网 发布:广西快三遗漏数据查询 编辑:程序博客网 时间:2024/06/05 06:20


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端口转发的实验基本相同。

1 0
原创粉丝点击