欢迎光临
我们一直在努力

如何使用SSH的Port Forwarding加密不安全的服务

建站超值云服务器,限时71元/月

作者:吴阿亭(http://www.linuxforum.net)

一。简介:

大多数人知道ssh是用来替代r命令集,是用于加密的远程登录,文件传输,甚至加密的
ftp(ssh2内置), 因此ssh成为使用极广的服务之一,不仅如此,ssh还有另一项非常有
用的功能,就是它的端口转发隧道功能,利用此功能,让一些不安全的服务象pop3,
smtp,ftp,ldap等等通过ssh的加密隧道传输,然后,既然这些服务本身是不安全的,
密码和内容是明文传送的,现在其它中间媒介也没无监听了。

二。图示:

ssh的加密隧道保护的只是中间传输的安全性,使得任何通常的嗅探工具软件无法获取发
送内容。如下图:
假设客户机和服务器都运行linux,且以pop3为例。

     c (pop3 server: s)              s
  _______                         ________                
  |     |                         |      |
  |     |________pop3___________ >|      |
  |_____|                         |______|
            (图一:正常的pop3)

(图一:正常的pop3)

     c (pop3 server:c)               s (pop3 client: s)
  _______                         ________                
  |     |                         |      |
  |     |——–ssh连接———>|      |
  |_____|                         |______|
  
  
(图二:ssh隧道后的pop3)

如图一: 正常的pop3连接是客户c向服务器s进行连接,c的设置是pop3服务器为s。
如图二: 用ssh隧道的话,客户c设置pop3服务器为自己(localhost),然后设置ssh加密
隧道
,如果设置在同样的端口110听取c的请求,则对c来说,pop3服务器是自己本身,端口也
是110 对s来说,看到的pop3请求地址不是来自c,而也是自己本身,因为有了ssh隧道。

三。ssh隧道设置

1. 首先必须在c和s上安装ssh,确保ssh首先能工作。
2. 我们用简单的一个命令如下:

# ssh -c -p -f sshaccount@s -l 110:s:110 sleep 7200

解释如下:
-c 使用压缩功能,是可选的,加快速度。

-p 用一个非特权端口进行出去的连接。

-f 一旦ssh完成认证并建立port forwarding,则转入后台运行。

sshaccount 客户c在服务器s上的ssh连接帐号

-l 110:s:110 转发c对本地端口110的连接到远程服务器s的110端口。
也可以用高端端口(普通用户使用,因为普通用户不能在低于1024的端口上建立ssh隧道)
如果用高端端口,如:-l 1110:s:110,这样任何用户都可建立这种加密隧道。

sleep 7200 一般用于script,必须给一个命令,我们给一个sleep等待空 命令,这里为
2小时,你可以
设为更长用于保持整个连接过程, 如 sleep 100000000 。

四。检验

设置后你就可以在客户c上用 # telnet localhost 110 命令而连到 s 上收取email,
而整个过程也被加密。

五。其它常见问题:

1. 每次启动该命令时需要输入密码以验证ssh连接,你也可以用rsa键对的方法自动化
ssh连接。
看文章荟萃中的另一篇文章《如何在两台linux服务器之间用rsa键对的方法ssh/scp不需
密码》

2. 如果你希望上面的命令永远保持运行状态,你可以用如下的scripts.
#!/bin/sh
while [ 1 ] ; do
ssh -c -p -f sshaccount@s -l 110:s:110 sleep 7200
sleep 1
done

3. 你可以在一个命令中用多个l 参数 ,如 -l 1110:s:110 -l 225:s:25 -l
389:s:389

4. 一些windows客户端软件,象netscape mail,不能改变pop3端口号,被强迫到110,
则你只能指定110

5. linux下的fetchmail常用来自动接收邮件,可在.fetchmailrc中利用
preconnect参数预连接 ,指定上面的命令行。

6. 如果客户端是windows, 则可用tera term pro,参考
http://www.phys.washington.edu/computing/winftpssh.html 

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 如何使用SSH的Port Forwarding加密不安全的服务
分享到: 更多 (0)