下一页 上一页 目录

2. 基本技术

这项技术依赖于 ssh 的一个基本特性:端口转发

这个主题有很多变体,这取决于您期望的邮件设置。它们都要求 ssh,可以从 http://www.ssh.fi/ 及其镜像站点获取。RPM 包可以在 ftp://ftp.replay.com/pub/crypto/ 获取,Debian 包可以在 ftp://non-us.debian.org/debian-non-US/ (以及它们各自的镜像站点) 获取。

2.1 设置端口转发

要启动端口转发,请运行以下命令

ssh -C -f popserver -L 11110:popserver:110 sleep 5

让我们仔细看看这个命令

ssh

ssh 二进制文件本身,完成所有工作的神奇程序。

-C

这启用了数据流的压缩。它是可选的,但通常很有用,特别是对于拨号用户。

-f

一旦 ssh 完成身份验证并建立端口转发,就 fork 到后台,以便可以运行其他程序。由于我们只使用 ssh 的端口转发功能,因此我们不需要附加到它的 tty。

popserver

我们要连接的 POP 服务器。

-L 11110:popserver:110

将本地端口 11110 转发到远程服务器 popserver 上的端口 110。我们使用一个较高的本地端口 (11110),以便任何用户都可以创建转发。

sleep 5

在 ssh 将自身 fork 到后台后,它会运行一个命令。我们使用 sleep 是为了让连接保持足够长的时间,以便我们的邮件客户端可以建立与服务器的连接。5 秒通常足以完成此操作。

您可以根据需要使用 ssh 的大多数其他选项。一个常见的设置可能是用户名,因为它在 POP 服务器上可能不同。

需要在远程服务器 popserver 上运行 sshd。但是,您不需要在那里拥有活动的 shell 帐户。打印消息“You cannot telnet here”所需的时间足以建立连接。

2.2 测试

一旦您弄清楚了运行以建立端口转发的详细命令,您就可以尝试一下。例如

$ ssh -C -f msingh@popserver -L 11110:popserver:110 sleep 1000

popserver 是旧的 POP 服务器。我在本地机器上的用户名是 manish,所以我需要显式指定用户名 msingh。(如果您的本地和远程用户名相同,则 msingh@ 部分是不必要的。)

然后它打印

msingh@popserver's password:

然后我输入我的 POP 密码(您可能具有不同的 shell 和 POP 密码,因此请使用您的 shell 密码)。现在我们完成了!所以我们可以尝试

$ telnet localhost 11110

这应该打印出类似这样的内容

QUALCOMM POP v3.33 ready.

哇呼!它工作了!数据通过网络加密发送,因此唯一的明文是在我的本地计算机和 POP 服务器的回环接口上。


下一页 上一页 目录