科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道如何利用OpenSSH为C/S通讯创建安全隧道

如何利用OpenSSH为C/S通讯创建安全隧道

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

OpenSSH为client-server安全通讯提供了一套工具,我们可以使用它为任何类型的客户——服务器通讯创建安全“隧道”。包括检测/发送电子邮件或Web浏览。

作者:ZDNet 软件频道 2007年6月18日

关键字: 邮件 POP3 操作系统 Windows

  • 评论
  • 分享微博
  • 分享邮件

OpenSSH为client-server安全通讯提供了一套工具,我们可以使用它为任何类型的客户——服务器通讯创建安全“隧道”。包括检测/发送电子邮件或Web浏览。

本文通过演示如何编程创建一个加密的隧道用于检查一个POP3邮箱来介绍OpenSSH的安全隧道功能。

OpenSSH

当通过因特网登录远程系统时,如果登录密码通过明文传输,总是存在被黑客通过监控字节流来解释和非法使用用户数据的风险。大多数用户都了解这个风险并通过使用所谓的“安全shell”程序减少风险。

“安全shell”程序是设计用来在通过因特网传输之前加密用户资料。应用最广泛的此类程序是OpenSSH——OpenBSD的一个项目。

然而,许多OpenSSH用户还没有认识到的是该程序不能用来加密telnet会话。它为client-server安全通讯提供了一套工具,我们可以使用它为任何类型的客户——服务器通讯创建安全“隧道”。

包括检测/发送电子邮件或Web浏览。使用这些隧道可以大大提高你的系统的安全性,尤其是在一个保密性key order-winner重要的环境中。

本文通过演示如何编程创建一个加密的隧道用于检查一个POP3邮箱来介绍OpenSSH的安全隧道功能。假设有一台配置好的*NIX系统访问一个远程POP3兼容的邮箱。

第一步:下载并安装OpenSSH

很明显,第一步是下载并安装OpenSSH。你可以从OpenSSH官方网站获得源代码,有应用于多种平台的不同软件包,其中的文件都是数字签名的以防止危害你的系统安全。本文使用OpenSSH v4.3。

下载了软件包之后,将它解压到一个临时目录中,执行标准的配置-生成-安装流程:

shell> tar -xzvf openssh-4.3p2.tar.gz
shell> cd openssh-4.3p2/
shell> ./configure
shell> make
shell> make install

第二步:产生主机密钥并开启OpenSSH守护进程

安装过程的最后一步是产生主机密钥对——你的专用系统的唯一标识。这些密钥一个是私钥一个是公钥分别存放在文件/etc/ssh_host_key和/etc/ssh_host_key.pub中。

shell> make install

产生rsal密钥对
你的标识符已经保存在/etc/ssh_host_key中

你的公钥已经保存在/etc/ssh_host_key.pub中

产生dsa密钥对
你的标识符已经保存在/etc/ssh_host_key中

你的公钥已经保存在/etc/ssh_host_key.pub中

产生rsa密钥对
你的标识符已经保存在/etc/ssh_host_key中

你的公钥已经保存在/etc/ssh_host_key.pub中

密钥生成以后,执行sshd可执行程序开启OpenSSH守护进程(以超级用户身份):

shell>/sbin/sshd

通过在22号端口上打开一个telnet连接验证服务是否已开启运行:

shell >telnet localhost 22

Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
SSH-1.99-OpenSSH_4.3 

第三步:为你的POP3服务器创建一个安全隧道

我们假定你的本地系统名为localbox,你的POP3邮箱服务器系统名的remotebox。那么这一步就是在localbox的一个未用端口和remotebox上的端口110(POP3 连接的标准端口)之间创建一个加密的SSH隧道。这个过程称为TCP前导,利用OpenSSH很容易实现,只要运行下面的命令:

shell> ssh -L 2110:localbox:110 remotebox
root@localbox's password: ****

这命令的意思是“将所有连接到localbox上未使用端口2110的连接前导到remotebox上的110端口,并在这个过程中加密传输。”执行该命令后,所有试图连接到localbox 2110端口的连接都被自动的加密并路由到remotebox 110端口。

假如现在你打开一个telnet连接到localbox的2110端口,如下:

shell> telnet localbox 2110
Trying 127.0.0.1…
Connected to localhost.
Escape character is ‘^]’.
+OK DPOP ready

你的连接将自动前导到remotebox的端口110——POP3 邮件服务,并使用高级加密来确保无人可以“偷听”来回传送的字节流。

两个需要说明的重要方面是:如果你使用了一个特权端口,那么你必须拥有超级用户权限才可以使用这种方式。同时,不能使用已经使用的端口号。

第四步:更改你的POP3客户端设置

在安全隧道工作后,你需要将这个改变告知你的邮件客户端。在建立隧道前,你的邮件客户端可能直接连接到remotebox以获取邮件,这是一种不安全的连接,你的邮件密码以为加密的方式沿着线路传输。你的客户端的设置可能如下所示:

Server: remotebox
Port: 110
User: john
Password: guessme

建立隧道后,你的邮件客户端应该重新设置直接连接到本地系统的端口2110,利用OpoenSSH将连接前导到远程服务器并在此过程中加密传输数据。你的新的设置可能如下所示:

Server: localbox
Port: 2110
User: john
Password: guessme

就这么简单,现在你的邮件客户端和邮件服务器端就建立了一个安全隧道,从而你的密码和数据就不会存在被其人见到的危险。很显然,这只是一个例子,你还可以设置OpenSSH来加密SMTP,FTP,IRC或任何其它的client-server连接,甚至可以创建加密隧道通过防火墙。自己试着设置一下,了解详细信息请看OpenSSH手册。开心的应用吧!

责任编辑:德东

查看本文国际来源

 

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章