Centos6.5升级安装openssh7.7p1
2016年1月14日OpenSSH发布官方公告称, OpenSSH Client 5.4~7.1 版本中未公开说明的功能(Roaming)存在信息泄漏和缓冲区溢出漏洞,此漏洞可能导致您通过ssh等命令连接不可信服务器或被伪造服务器时,私钥等敏感信息会被恶意检索和利用,详情可参考:
-
OpenSSH 7.1p2 release(CVE-2016-0777 and CVE-2016-0778)
http://www.openssh.com/txt/release-7.1p2
http://www.openssh.com/security.html
-
Qualys Security Advisory - Roaming through the OpenSSH client.
http://www.openwall.com/lists/oss-security/2016/01/14/7
排查方法
在被检查的Linux系统机器上执行:
# ssh -v user@[server] 2>&1 | grep -i 'Roaming'
[server]为任一ssh开放的服务器。如输出信息显示,则本机的ssh client受影响:
debug1: Roaming not allowed by server
升级过程的参考
准备工作
因centos7自带的ssh版本较低,存在高危漏洞,故升级到最新版本(目前是7.7pl)。
注:升级ssh存在一定的危险性,一旦不成功可能无法通过远程连接到系统,因此在升级之前最好先安装vnc或者telnet等远程服务
查看下当前SSH版本:
# ssh -V
# rpm -qa | grep openssh
备份ssh配置
# mv /etc/ssh/ /lee/bak/ssh.bak
编译安装openssh
1、 解压安装包:
# tar -zxf openssh-7.7p1.tar.gz
2、编译
需要gcc编译器的
# ./configure --prefix=/usr --sysconfdir=/etc/ssh
如果报错:
configure: error: *** zlib.h missing - please install first or check config.log ***
需要安装zlib-devel
# yum install -y zlib-devel
如果报错:
configure: error: *** OpenSSL headers missing - please install first or check config.log ***
需要安装openssl-devel
# yum -y install openssl-devel
解决完报错后重新执行
# ./configure --prefix=/usr --sysconfdir=/etc/ssh
# make
需要测试:make完成后先不要make install,先卸载旧版的openssh
# rpm -e --nodeps `rpm -qa | grep openssh`
完成后执行make install:
# make install
查看下安装结果:
# ssh -V
至此编译安装完成。
配置sshd服务
复制启动文件到/etc/init.d/下并命名为sshd,加入开机启动
# cp contrib/redhat/sshd.init /etc/init.d/sshd
# chkconfig --add sshd
允许root使用ssh:
openssh7.5默认root用户是不能用ssh远程登录的,需要修改配置文件:
# vim /etc/ssh/sshd_config
找到#PermitRootLogin prohibit-password
项,去掉注释并把prohibit-password
改为yes
PermitRootLogin yes
重启ssh服务:
# service sshd restart
至此升级/安装完成。