升级OpenSSH7.2p1到OpenSSH7.6P1,升级openssl

原因

  • OpenSSH 远程权限提高漏洞(CVE-2016-10010)
  • OpenSSH do_setup_env函数权限提高漏洞(CVE-2015-8325)
  • OpenSSH auth_password函数拒绝服务漏洞(CVE-2016-6515)
  • OpenSSH 容许屡次 KEXINIT 致使拒绝服务漏洞(CVE-2016-8858)
  • OpenSSH 远程代码执行漏洞(CVE-2016-10009)
  • OpenSSH 本地信息泄露漏洞(CVE-2016-10011)
  • OpenSSH 安全限制绕过漏洞(CVE-2016-10012)
  • OpenSSL SSLv2协议”Drown”漏洞(CVE-2016-0800)
  • OpenSSL “SSL-Death-Alert” 拒绝服务漏洞(CVE-2016-8610)

一、开通Telnet

Yum安装telnet-server 及 telnet服务便可nginx

yum install -y telnet-server* telnetweb

启用telnet服务安全

vi /etc/xinetd.d/telnetssh

将其中的 disable 字段的yes 改成nosvg

> mv /etc/securetty /etc/securetty.old #此做用是容许root用户经过telnet登陆,网上也有其它办法能够实现,也能够不修改,使用其它用户登陆后再 su - root函数

> service xinetd restart #经过重启xinetd重启telnet服务测试

> chkconfig xinetd on #使xinetd服务开机自启动,避免升级过和中意外致使没法登入系统rest

最后咱们须要测试一下telnet服务是否正常启动。code

二、升级OpenSSL

注:openssh7.6p1依赖的openssl的版本为>1.0.1e 而且 < 1.1.0。咱们当前安装的是1.0.2hserver

上传openssl-1.0.2h.tar.gz到/usr/local/src/
> tar zxvf openssl-1.0.2h.tar.gz #解压
> cd openssl-1.0.2h
> ./config shared zlib #必定要加上shared 参数,要不在安装openssh的时候就没法找到
> make
> make install
备份原来的openssl
> mv /usr/bin/openssl /usr/bin/openssl.bak
> mv /usr/include/openssl /usr/include/openssl.bak
由于源码安装默认安装的位置是 /usr/local/ssl 须要将建立软连接到系统位置
> ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
> ln -s /usr/local/ssl/include/openssl /usr/include/openssl
将openssl 的lib 库添加到系统
> echo "/usr/local/ssl/lib/" >> /etc/ld.so.conf
> ldconfig #使新添加的lib 被系统找到
查看openssl版本
> openssl version -a

至此opensll 已经成功升级到1.0.2h

三、升级OpenSSH

到目前为上发如今的openssh的漏洞都是openssh7.4之前的版本。咱们当前升级的是openssh7.6p1

上传openssh-7.6p1.tar.gz 到 /usr/local/src/
> tar zxvf openssh-7.6p1.tar.gz #解压
> cd openssh-7.6p1
> ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam --with-zlib --without-openssl-header-check --with-ssl-dir=/usr/local/ssl --with-privsep-path=/var/lib/sshd #须要指定openssl的安装路径
> make
> make install
> echo 'X11Forwarding yes' >> /etc/ssh/ssh_config #容许SSH的X转发
> echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config #设置SSH容许root用户登陆
> cp -p contrib/redhat/sshd.init /etc/init.d/sshd #复制SSH的启动脚本
> chmod +x /etc/init.d/sshd #添加执行权限
> chkconfig --add sshd #添加到系统服务
> chkconfig sshd on #开启sshd的开机运行
> service sshd restart #重启SSHD,重启时有可能会断开ssh的链接,因此重启前必定要确认telnet能够连通,若是不能确保,出问题你只能去机房喽。
至此openssh的升级算是完成
> ssh -V #可查看当前SSH的版本。

四、升级Nginx

升级openssl后依赖原来版本openssl的Nginx会没法使用,须要从新配置一下Nginx。

五、关闭Telnet 及善后

> chkconfig xinetd off #关闭xinetd的开机启动
> service xinetd stop #关闭xinetd服务