天天看點

基于SSH端口轉發透過網關實作安全通信

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端口轉發的實驗基本相同。

繼續閱讀