隧道 被设计用于远端客户端和本地(可通过inetd启动)或远端服务器间的ssl加密封装。它可以用于为inetd进程增加ssl功能,像pop2(译注:厄,pop2这个服务还有人用么?),pop3和imap服务而不必改变程序代码。隧道使用openssl库用于加密,因此它支持任何被编译进库的加密算法。简而言之,隧道可以使任何一个不安全的端口变得安全加密。
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuAjew0GOxBjdwATahhDMwAzMxcDMyEzLclTMvwVMwQTMwIzLc1WdixWYvwFduVWboNWY0RXYvwVY0FGZvwVZt5CevJWcu42Y4VnbpxWLuR2Lc9CX6MHc0RHaiojIsJye.png)
在本篇中,我会描述如何通过ssl水稻封装ssh。这个步骤非常简单。你需要在你的客户端pc和远程pc都已经安装运行了sshd。
我正在使用下面提到的两个系统。
远程系统:
客户端(本地) 系统:
<a target="_blank"></a>
让我们在远程debian 7服务器上安装stunnel包。
现在让我们像下面那样创建一个ssl证书。
示例输出:
你会被询问若干个问题如国家、州、公司细节等。
现在我们需要配置stunnel来将 443(https)隧道到22(ssh)。这可以通过在/etc/stunnel/目录下创建stunnel.conf文件来实现:
并加入下面的行:
上面的几行说明了stunnel在哪里寻找证书文件和哪里接收和转发ssh链接。在本例中,stunnel会接收来自443端口的流量并会转发给22端口。
保存并关闭文件。
现在让我们启用stunnel服务。要这么做,编辑文件 /etc/default/stunnel4:
改变行从 enabled = 0 到 1。
接着使用命令启用stunnel服务:
用这个命令安装stunnel:
我们需要远程系统上相同的证书文件(stunnel.pem)。复制远程系统上的 stunnel.pem文件到我们本地系统中并在相同的位置保存(也就是 /etc/stunnel)。
在 /etc/stunnel/目录下创建新的文件stunnel.conf:
加入下面的行:
保存并关闭文件。这里的192.168.1.200是我们的远程系统ip。
现在让我们启用stunnel服务。要这么做,编辑文件/etc/default/stunnel4:
改变行从 enabled = 0 到 1.
现在这样已经很好了,你可以使用命令连接到你的远程机器上了:
或者你可以简单地使用下面的命令:
现在你可以用ssh连接到你的远程机器上了,但是所有的流量通过ssl隧道。
原文发布时间为:2014-01-19
本文来自云栖社区合作伙伴“linux中国”