首先,请确保您的服务器是安全的。尽管流量在互联网上传输时是加密的,但如果有人拥有本地机器的 root 权限并使用像 ngrep 这样的程序来嗅探本地机器上的流量,那么流量仍然可能被嗅探到。例如,结合上面提到的 dsniff 程序,以下命令可以嗅探本地接口网络上的所有流量:ngrep -d lo。然而,服务器安全加固超出了本文档的范围。
在本示例中,我们将使用 POP(端口 110)、IMAP(端口 143)、SMTP(端口 25)、VNC(虚拟网络计算)(5901+)和 NTOP(默认端口 3000)服务。所有流量都将被转发到运行 ssh 服务器的远程主机上每个服务各自的端口。除非服务默认绑定到特定端口或手动配置,否则远程主机上监听的所有服务都会监听所有接口。为了展示通过 ssh 隧道传输技术的有效性,我们将只允许特定服务监听本地接口。
但是,您不必更改当前的安全配置。我们将使用 tcp_wrappers,它在 RedHat 7.0(以及以前的版本)中默认安装,来连接到网络服务。在/etc/hosts.deny文件中添加以下行
ALL : ALL |
在您的/etc/hosts.allow文件中添加以下行
sshd : ALL in.ftpd : 127.0.0.1 ipop3d : 127.0.0.1 imapd : 127.0.0.1 |
这将设置 sshd(ssh 服务器)以允许来自任何 IP 地址的连接。其他服务只允许来自本地接口的连接。您可以通过配置邮件客户端连接到远程 pop 或 imap 服务器,和/或 ftp 客户端连接到您的 ftp 服务器来验证这一点。现在您将无法连接。您还需要设置任何用户帐户以允许访问这些服务。(注意:上述设置仅在服务仅供内部使用,且远程用户需要访问内部服务以发送和接收电子邮件或传输文件时才有用。这些服务可以公开使用,并使用 ssh 和 MindTerm 进行加密。)如果 MindTerm 将通过 Web 用于创建隧道或使用安全复制 GUI 功能,则还需要在运行 SSH 的服务器上安装 Java 运行时环境 (JRE)。
唯一需要的客户端配置是确保为您的平台安装了 JRE。Windows 和 MacOS 8 及更高版本已经安装了 JRE。建议在 Windows 上安装 Sun 的 JRE。IBM 有一个 JRE 移植到各种平台的列表:http://www-105.ibm.com/developerworks/tools.nsf/dw/java-devkits-byname 以及 Sun 的:http://java.sun.com/cgi-bin/java-ports.cgi。 (您不需要包含调试器和编译器的整个 Java 包,只需要 Java 虚拟机来运行 Java 应用程序。)此外,对于接下来的教程,请将 MindTerm 存档(MindBright 或 ISNetwork 的实现存档)解压到c:\mindterm对于 Windows。