概述
许多网络程序,如telnet、rsh、rlogin或rexec,用明文(plain text)传送口令和秘密的信息,所以就可利用任何连接到网络上的计算机监听这些程序和服务器之间的通信并获取口令和秘密信息。现在,telnet程序对于日常的管理工作是必不可少的,但是它又是不安全的,那么用什么来替代它呢?OpenSSH就是那些过时的、不安全的远程登录程序,如:telnet、 rlogin、rsh、rdist或rcp的替代品。
在OpenSSH的README文件中提到:ssh(Secure Shell)程序可以通过网络登录到远程主机并执行命令。它提供了很强的安全验证可以在不安全的网络中进行安全的通信。
我们把OpenSSH配置成支持TCP-Wrappers(inetd超级服务器),这样能够进一步地提高安全性而且也没有必要把OpenSSH作为守护进程(daemon)在后台运行。当客户端的程序提出连接请求的时候,TCP-Wrappers守护进程就会在把连接重定向到OpenSSH之前,对连接请求进行验证和授权。OpenSSH是自由软件而且使用不受专利保护的加密算法。因此,我建议你使用OpenSSH(免费而且修正了一些bug),而不使用 SSH1(免费但是有bug)和SSH2(现在使用商用的许可协议)。
注意事项
下面所有的命令都是Unix兼容的命令。
源路径都为“/var/tmp”(当然在实际情况中也可以用其它路径)。
安装在RedHat Linux 6.1和6.2下测试通过。
要用“root”用户进行安装。
OpenSSH的版本是1.2.3。
软件包的来源
OpenSSH的主页:http://violet.ibs.com.au/openssh/。
下载:openssh-1.2.3.tar.gz。
准备工作
编译OpenSSH需要zlib-devel软件包,这个软件包包括头文件和函数库。编译使用zlib的压缩和解压函数的程序,就要事先安装这个软件包。可以用RedHat 6.1或6.2的光盘安装。
l 用下面的命令验证一下在系统中是否已经安装了zlib-devel软件包:
[root@deep /]# rpm -qi zlib-devel
l 用下面命令在系统中安装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/
在使用OpenSSH之前,还必须安装OpenSSL。因为就算你不使用OpenSSL创建或保存加密文件,OpenSSH需要用OpenSSL的库文件才能正常运行。
安装软件包需要注意的问题
最好在编译前和编译后都做一张系统中所有文件的列表,然后用“diff”命令去比较它们,找出其中的差别并知道到底把软件安装在哪里。只要简单地在编译之前运行一下命令“find /* >OpenSSH1”,在编译和安装完软件之后运行命令“find /* > OpenSSH2”,最后用命令“diff OpenSSH1 OpenSSH2 > OpenSSH-Installed”找出变化。
编译和安装
把软件包(tar.gz)解压:
[root@deep /]# cp openssh-version.tar.gz /var/tmp
[root@deep /]# cd /var/tmp
[root@deep tmp]# tar xzpf openssh-version.tar.gz
编译和优化
第一步
转到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:
l 链接上libwrap函数库并且加上对TCP Wrappers的支持
l 禁止Linux/glibc-2.1.2中域名解析的延时,缩短建立连接的时间
l 设置OpenSSL函数库的路径,这样OpenSSH才能正常运行
第二步
现在,编译和安装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
at/sshd.pam /etc/pam.d/sshd
“make”命令把源文件编译成可执行的二进制文件,“make install”把二进制文件和配置文件安装在合适的目录下。“make host-key”生成主机密匙,“install”命令在RedHat Linux上安装对OpenSSH的PAM支持。
清除不必要的文件
用下面的命令删除不必要的文件:
[root@deep /]# cd /var/tmp
[root@deep tmp]# rm -rf openssh-version/ openssh-version.tar.gz
“rm”命令删除所有编译和安装OpenSSH所需要的源程序,并且把OpenSSH软件的压缩包删除掉