SSH转发及安全隧道的简单实现
2007-06-07 kenthy#qingdaonews.com
############################################
系统环境:Redhat Linux 9.0 [ 2.4.20.8 ]
软件版本:
openssh-3.5p1-6
openssh-server-3.5p1-6
openssh-askpass-3.5p1-6
openssh-clients-3.5p1-6
openssh-askpass-gnome-3.5p1-6
目标功能:
1、本地转发:在B机上对A机上的pop3服务通信进行加密
Server A:
192.168.1.1/24
用户:jerry
Server B:
192.168.1.2/24
用户: mikky
不使用加密[直接访问]: telnet 192.168.1.1 110
经安全传输[加密访问]: telnet 192.168.1.2 1234
2、安全隧道:跨越Internet连接两个内网主机,此例中要求实现C机能访问A机的网站服务
网络拓扑: Client A ---> |Gateway|--->===Internet===--->Server B<---===Internet===<---[Gateway]<---[Client C]
Client A:
192.168.10.10 /24
开启httpd服务
Server B:
20.0.0.1/24
Client C:
192.168.20.20/24
环境说明:
A、C分别为两个异地内部网络的主机;
B为具有公网地址的主机;
A、C均能正常使用B主机的sshd服务
A、C无法直接互相访问[因为是私网地址]
############################################################
一、安装
各机器上ssh服务端/客户端软件包都安装。各软件均使用RH9光盘中自带的rpm包,[步骤略]
二、本地转发
1、Server A //配置及启用pop3、sshd服务,开放用户jerry,详细步骤略
2、Server B
# su - mikky
$ ssh -fg -L 1234:localhost:110 sleep 86400
[注:]
1> 以上语句将在B机本地打开1234端口,并将访问本地1100端口的数据转发至A机的110端口,期间的数据传输经ssh加密
2> -f 和 sleep 86400的作用:ssh验证成功后转入后台,监听24小时后自动退出,若需要长期提供服务,可修改时间
3> -g 的作用:指对全局global有效,允许其它主机访问本机1234端口。即监听0.0.0.0:1234,不加-g时仅监听127.0.0.1:1234
2> 若要在B机开放1024以下端口,需要具有B机本地root权限
3、结果测试
访问B机 192.168.1.2的1234端口即可使用A机 192.168.1.1的pop3服务,使用pop3收信用户密码验证
# telnet 192.168.1.2 1234
三、安全隧道
方案1:
在A机上设置B->A远程转发,在C机上设置C->B本地转发即可
B机需开启sshd服务,开放用户tom、jerry
基本步骤:
1、Client A //配置及启用httpd,默认80端口,详细步骤略
# ssh -fg -R 7777:localhost:80 sleep 7200 //将对远程B机7777端口的访问转发至本机80端口
2、Client C
# ssh -fg -L 8000:localhost:7777 sleep 7200 //将对本机8000端口的访问转发至远程B机的7777端
口
3、Server B //配置及启用sshd,详细步骤略
4、结果测试
在C机上访问本机 ,即可访问到A机 的web服务
方案2: [仅作参考,若A、B、C均为公网IP地址方可使用,可以B机主导设置作为中间跳板]
在B机上设置C->B远程转发,再设置B->A本地转发即可
A、C机上需开启sshd服务,分别开放用户为aimy、coco
基本步骤:
1、Client A、C //详细步骤略
2、Server B
# chkconfig --level 2345 sshd on
# /etc/init.d/sshd start
# ssh -fg -R 8000:localhost:7777 sleep 7200
# ssh -fg -L 7777:localhost:80 sleep 7200
# netstat -an | grep 7777
3、结果测试
在C机上访问,即可访问到的web服务
阅读(1916) | 评论(0) | 转发(0) |