OpenSSH为保障Client(客户端)与服务器端(Server)的安全通信提供了一整套的工具,这些工具允许用户为任何类型的Client与Server的通信创建安全通道,包括检查/发送电子邮件或Web浏览。
OpenSSH
在通过Internet登录到一个远程系统时,总会存在一种危险,即用户的口令如果以明文方式传输,就可能会被监视字节流的黑客中间截获并加以滥用。多数用户实际上都清楚这种风险,并通过使用所谓的"安全外壳"(secure shell)程序来减轻风险,这种"安全外壳"程序的设计目的是在用户通过互联网传输数字证书之前对证书进行加密。目前这类程序最流行、最通用的就是OpenSSH,这是一个OpenBSD的项目。
不过,许多OpenSSH用户并没有认识到,这个程序不仅允许用户加密用户的(远程登录)telnet会话,它还提供了一整套用以保障客户端/服务器通信安全的工具,而且允许用户为任何类型的C/S通信创建安全"通道",其中包含检查/发送电子邮件或Web浏览。使用这些通道可以极大改善系统的安全性,特别是机密性成为一个关键要素的时候。
本文将通过一个具体的例子向您展示如何通过这个OpenSSH来创建加密通道,用于检查一个POP3邮箱,从而使我们进一步理解并掌握OpenSSH的安全通道特性。
第一步:下载并安装OpenSSH
用户可从http://www.openssh.com/下载源代码,用户从多种平台的版本中选择所需要的版本。其文件已被数字化签名,从而可以避免损害用户的安全。本文例子使用的是OpenSSH 4.3。
一旦用户下载了程序包,将它解到一个临时目录并执行标准的"配置─生成─安装"循环:
shell> tar -xzvf openssh-4.3p2.tar.gzshell> cd openssh-4.3p2/shell> ./configureshell> makeshell> make install 第二步:生成主机密钥并启动OpenSSH进程 安装过程的最后一步就是生成一对主机密钥,即特定系统的唯一标识符。这些密钥,包含一个私有密钥和一个公有密钥,分别存储在诸如 /etc/ssh_host_key and /etc/ssh_host_key.pub,的文件中: shell> make install…Generating public/private rsa1 key pairYour identification has been saved in /etc/ssh_host_keyYour public key has been saved in /etc/ssh_host_key.pub…Generating public/private dsa key pairYour identification has been saved in /etc/ssh_host_dsa_keyYour public key has been saved in /etc/ssh_host_dsa_key.pub…Generating public/private rsa key pairYour identification has been saved in /etc/ssh_host_rsa_keyYour public key has been saved in /etc/ssh_host_rsa_key.pub 一旦密钥创建完成,通过执行"sshd"启动OpenSSH进程:(以超级用户身份): shell> /sbin/sshd 通过打开一个Telnet连接到22号端口确认服务正在运行: shell> telnet localhost 22Trying 127.0.0.1…Connected to localhost.Escape character is ‘^]’.SSH-1.99-OpenSSH_4.3 第三步:创建一个到用户的POP3服务器的安全通道 现在让我们假定用户的本地系统名为localbox,主管用户的目标POP3邮箱的主机名为remotebox。下一步就是在remotebox主机上的110端口(POP3连接的标准端口)与localbox计算机上的一个未用的端口之间创建一个加密的SSH通道。这个过程称为TCP转发,用OpenSSH完成这个操作是相当简单的,只需要运行如下的命令: shell> ssh -L 2110:localbox:110 remoteboxroot@localbox's password: **** 这个命令意思是说:将localbox上未用端口2110上的所有连接转发到remotebox上的POP3端口110上,并在通道上加密。此命令的结果是:所有到localbox上2110端口的连接企图都被自动加密,并被发送到remotebox上的110端口上。 现在如果用户在localbox上打开了telnet连接到端口2110,例如: shell> telnet localbox 2110Trying 127.0.0.1…Connected to localhost.Escape character is ‘^]’.+OK DPOP ready 用户的连接会被自动转发到remotebox上的110端口─POP3邮件服务,并且加上高质量的加密以确保任何人都无法"窃听"用户与远程服务器的数据通信。 在这里要注意两个重要的问题:如果你正使用一个特权端口,必须要有对转发端口的超级用户权限;此外,你不应试图 | | | | | |