您的位置:首页 > 其它

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

2014-10-20 09:46 155 查看



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端口转发的实验基本相同。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: