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