RedHat Linux下升级 SSH 服务
当 Telenet 已经渐渐退出历史舞台后,SSH ( Security SHell ) 就成为几乎所有 Linux 操作系统的远程登录连接协议。但是,目前很多 Linux 发行版中集成的 SSH 软件版本都比较老,存在着一些漏洞和安全隐患,因而升级 SSH 服务软件修补漏洞提升系统安全成为 Linux 系统安全中非常重要的一个环节。下面就讲述一下如何升级 SSH 服务。
SSH 有许多标准,通常 Linux 中 ( Redhat, CentOS, SuSE 等 )使用的是开源版本的 OpenSSH,所以我们就是对 OpenSSH 进行升级。在升级 OpenSSH 之前,需要升级系统中的 OpenSSL (OpenSSL 可以为 OpenSSH 提供加密传输支持,是 OpenSSH 的一个中间件)版本和 Zlib (提供压缩传输支持)版本,以达到最好的安全性。
注意:在开始升级之前一定要确认系统中已经安装了 GCC 编译器!
注意:升级过程中不要重启sshd服务,否则会远程连接不上!!
一、升级 Zlib
1、下载最新版本 Zlib
Zlib 官方网站:http://www.zlib.net/
目前最新版本的 Zlib 是 zlib-1.2.3.tar.gz
# cd /usr/local/src
# wget -c http://www.zlib.net/zlib-1.2.3.tar.gz
2、编译安装 Zlib
# tar xzvf zlib-1.2.3.tar.gz
# cd zlib-1.2.3
# ./configure --prefix=/usr/local/zlib
# make
# make install
这样,就把 zlib 编译安装在 /usr/local/zilib 中了。
二、升级 OpenSSL
1、下载最新版本 OpenSSL
OpenSSL 的官方网站:http://www.openssl.org
目前最新版的 OpenSSL 是 openssl-0.9.8d
# cd /usr/local/src
# wget -c http://www.openssl.org/source/openssl-0.9.8d.tar.gz
2、编译安装 OpenSSL
# tar xzvf openssl-0.9.8d.tar.gz
# cd openssl-0.9.8d
# ./Configure --prefix=/usr/local/openssl
# make
# make test (这一步很重要哦!是进行 SSL 加密协议的完整测试,如果出现错误就要一定先找出哪里的原因,否则一味继续可能导致最终 SSH 不能使用,后果很严重哦!)
# make install
三、升级 OpenSSH
1、下载最新版本 OpenSSH
OpenSSH 的官方网站:http://www.openssh.com
目前最新版的 OpenSSH 是 openssh-4.5p1
# cd /usr/local/src
# wget -c
2、编译安装 OpenSSH
# tar xzvf openssh-4.5p1.tar.gz
# cd openssh-4.5p1
# ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/openssl --with-md5-passwords
(注意,如果 configure 时提示 PAM 有错误,那一般是因为系统中没有安装 pam-devel RPM 包,找到安装光盘,安装 pam-devel 就可以解决啦)
如果configure时出现configure: error: *** OpenSSL headers missing - please install first or check config.log ***
解决办法:安装openssl以及openssl-devel
# make
# make install
这样就完成了整个升级 SSH 的工作,在升级完成后,我们还需要修改一下 OpenSSH 的配置文件进一步提升安全性。
通过以上步骤完成的升级工作,OpenSSH 的配置文件在 /etc/ssh 下,其中 SSH Server 的配置文件是 sshd_config。
# vi /etc/ssh/sshd_config
找到:
CODE:
#Protocol 2,1修改为:
CODE:
Protocol 2这样就禁用了 ssh v1 协议,只使用更安全的 ssh v2 协议。
找到:
CODE:
X11Forwarding yes修改为:
CODE:
X11Forwarding no禁用 X11 转发。
修改后保存退出。
● 生成ssh服务管理脚本
进入ssh解压目录
#cd /contrib/redhat
#cp sshd.init /etc/init.d/sshd
#chmod +x /etc/init.d/sshd
#chkconfig –add sshd
最后,启动 SSH 服务使修改生效:
# /etc/init.d/sshd restart
重启后确认一下当前的 OpenSSH 和 OpenSSL 是否正确:
# ssh -v
如果看到了新的版本号就没问题啦!
***************************************************************************
升级方法2:
升级版本为:openssh-6.6p1
1、加载本地源(方法不描述了)
2、执行下列命令
yum install bash -y
yum install -y zlib zlib-devel openssl openssl-devel
tar -zxvf openssh-6.6p1.tar.gz -C /usr/local/src/
cd /usr/local/src/openssh-6.6p1/
cp /etc/init.d/sshd /etc/init.d/sshd.old
tar -cvf ssh.bak.tar /etc/ssh
yum install gcc -y
3、卸载老版本
rpm -qa|grep ssh
rpm -e openssh-server-5.3p1-81.el6.x86_64
rpm -e openssh-clients-5.3p1-81.el6.x86_64 --nodeps
rpm -qa|grep ssh
rpm -e openssh-askpass-5.3p1-81.el6.x86_64
rpm -e openssh-5.3p1-81.el6.x86_64
rpm -qa|grep ssh
4、开始升级
。/configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-md5-passwords
make && make install
mv /etc/init.d/sshd.old /etc/init.d/sshd
mkdir -p /var/empty/sshd/etc
/etc/init.d/sshd restart
chkconfig --add sshd
chkconfig sshd on
chkconfig --list|grep sshd
5、查看是否升级成功
ssh -V
OpenSSH_6.6p1, OpenSSL 1.0.0-fips 29 Mar 2010
以上就是Linux系统下怎么升级OpenSSH的介绍了,升级成功了旧版本的一些问题和故障自然就能得到修复了。