15.1. OpenSSH

在我们的配置中,我们配置了 OpenSSH 以支持 tcp-wrappers;inetd 超级服务器,以提高这个已经很安全的程序的安全性,并避免始终在服务器后台运行其守护进程。这样,程序只会在客户端连接到达时运行,并将它们重定向到 TCP-WRAPPERS 守护进程,以便在允许连接进入服务器之前进行身份验证和授权。

OpenSSH 是 SSH1 的免费替代品和改进版本,所有受专利保护的算法都已移除到外部库中,所有已知的安全漏洞都已修复,重新引入了新功能以及许多其他的清理工作。建议您使用 OpenSSH 免费且修复了安全漏洞,而不是 SSH1 免费、有漏洞且老旧 或最初免费但现在已获得商业许可的 SSH2。对于使用 Datafellows 公司 SSH2 的用户,我们将在本书中提供这两个版本,首先从 OpenSSH 开始,因为它是新的 SSH 程序,我们建议每个人都必须在未来迁移到它。

这些安装说明假设

这些是您可以从 OpenSSH 首页下载的软件包:http://www.openssh.com 并确保下载:openssh-1.2.3.tar.gz 截至撰写本文时

在安装 OpenSSH 之前,您需要注意一些先决条件,因为它要求 zlib-devel 软件包(其中包含开发使用 zlib 压缩和解压缩库的程序所需的头文件和库)已安装在您的系统上。如果不是这种情况,您必须从 Red Hat Linux 6.1 或 6.2 CD-ROM 安装它。要验证 zlib-devel 软件包是否已安装在您的 Linux 系统上,请使用以下命令
         [root@deep] /#rpm -qi zlib-devel
         

package zlib-devel is not installed

要在您的 Linux 系统上安装 zlib-devel 软件包,请使用以下命令
         [root@deep] /#mount /dev/cdrom /mnt/cdrom/
         [root@deep] /#cd /mnt/cdrom/RedHat/RPMS/
         [root@deep ]/RPMS#rpm -Uvh zlib-devel-version.i386.rpm
         

gd ##################################################

         [root@deep ]/RPMS#rpm -Uvh gd-devel-version.i386.rpm
         

zlib-devel ##################################################

         [root@deep ]/RPMS# cd /; umount /mnt/cdrom/
         

Important: OpenSSL(它启用对 SSL 功能的支持)必须已安装在您的系统上,才能使用 OpenSSH 软件。有关 OpenSSL 服务器的更多信息,请参阅本书中的相关章节。即使您不需要使用 OpenSSL 软件来创建或保存加密密钥文件,但重要的是要注意,OpenSSH 程序需要其库文件才能在您的系统上正常工作。

您需要解压缩和解包 Tarball,但最好在安装 OpenSSH 之前和之后分别列出系统上的文件列表,然后使用 diff 命令比较它们,以找出它将哪些文件放置在何处。只需运行 find/* > OpenSSH1之前,以及 find/* > OpenSSH2在您安装软件之后,并使用 diffOpenSSH1 OpenSSH2 > OpenSSH-Installed以获取更改列表。

要编译,解压缩 tarballtar.gz
         [root@deep] /#cp openssh-version.tar.gz /var/tmp
         [root@deep] /#cd /var/tmp
         [root@deep ]/tmp#tar xzpf openssh-version.tar.gz
         

您需要编译和优化

  1. 移动到新的 OpenSSH 目录并在您的终端上键入以下命令
             CC="egcs" \
             CFLAGS="-O9 -funroll-loops -ffast-math -malign-double -mcpu=pentiumpro -march=pentiumpro -fomit-frame-pointer -fno-exceptions" \
             ./configure \
             --prefix=/usr \
             --sysconfdir=/etc/ssh \
             --with-tcp-wrappers \
             --with-ipv4-default \
             --with-ssl-dir=/usr/include/openssl
             
    这告诉 OpenSSH 为此特定的硬件设置进行设置,包括

    - 编译时链接 libwrap 并启用 TCP Wrappers/etc/hosts.allow|deny支持。
    - 禁用 Linux/glibc-2.1.2 下名称解析中的长延迟,以改善连接时间。
    - 指定 OpenSSH 程序工作所需的 OpenSSL 库的位置。

  2. 现在,我们必须在服务器上编译和安装 OpenSSH
             [root@deep ]/openssh-1.2.3#make
             [root@deep ]/openssh-1.2.3#make install
             [root@deep ]/openssh-1.2.3#make host-key
             [root@deep ]/openssh-1.2.3#install -m644 contrib/redhat/sshd.pam /etc/pam.d/sshd
             

    make

    命令会将所有源文件编译成可执行二进制文件,

    make install

    会将二进制文件和任何支持文件安装到适当的位置。

    make host-key

    命令将生成主机密钥。

    install

    命令将安装 Red Hat Linux 的 PAM 支持,它现在比流行的商业 ssh-1.2.x 软件包更强大。

  3. 请稍后进行清理
             [root@deep] /#cd /var/tmp
             [root@deep ]/tmp#rm -rf openssh-version/ openssh-version.tar.gz
             
    上面使用的 rm 命令将删除我们用于编译和安装 OpenSSH 的所有源文件。它还将从/var/tmp目录中删除 OpenSSH 压缩存档。