Openssh漏洞升级修复(适用于CentOS 6.7和6.8和6.9以及7.2和7.4等)

通过主机扫描发现系统存在openssh漏洞,具体漏洞如下

OpenSSH sshd 安全漏洞(CVE-2015-8325)
OpenSSH 拒绝服务漏洞(CVE-2016-0778)
OpenSSH sshd 权限许可和访问控制漏洞(CVE-2015-5600)
OpenSSH sshd 安全漏洞(CVE-2016-6515)
OpenSSH 远程代码执行漏洞(CVE-2016-10009)
OpenSSH sshd 安全漏洞(CVE-2016-10010)
OpenSSH 安全漏洞(CVE2016-10009)
OpenSSH sshd 缓冲区错误漏洞(CVE-2016-10012)
OpenSSH J-PAKE授权问题漏洞(CVE-2010-4478)
OpenSSH‘hash_buffer’函数缓冲区溢出漏洞(CVE-2014-1692)
OpenSSH scp客户端安全漏洞(CVE-2018-20685)
OpenSSH 安全漏洞(CVE-2019-6109)
OpenSSH 安全漏洞(CVE-2019-6110)
OpenSSH 安全漏洞(CVE-2019-6111)
OpenSSH ……………………


升级注意事项 (一下所有的操作默认都是root或者管理员权限,如果遇到权限问题每个指令以及指令组合都要在前面加sudo)

  0.查看CentOS版本  1.cat /etc/issue 查看版本    2 . cat /etc/redhat-release 查看版本(推荐)  3.cat /proc/version  查看内核

    *指令尽量手敲!避免粘贴复制带来的空格或者换行或者制表符等输入!手敲一定要再三确认是否正确!

  1. 升级前对ssh文件进行备份 cp -r /etc/ssh /etc/ssh.old
  2. 升级过程未防止升级失败,需要先开启telnet服务,防止升级失败连接不上远程主机。
  3. 升级到openssh最新版本需要以下支持:
  • OpenSSL版本:目前OpenSSH8.0不支持OpenSSH1.1.x以上。否则编译的时候会报错。(openssl version 查看版本)
  • 没有openssl 直接yum install openssl
  • Zlib1.1.4或1.2.1.2或更高版本(rpm -q zlib  rpm -q zlib-devel查看版本,zlib和zlib-devel都需满足)
  • 没有zlib的话,直接yum install zlib 和 yum install zlib-devel
  • gcc:因为编译需要gcc (gcc –v 查看gcc版本) 没有gcc 直接 yum install gcc
  • openssl-devel:编译时需要(rpm -qa|grep openssl  需存在openssl-devel-xxx.x86_64)
  • 没有的话直接yum install openssl-devel
  • 进行升级是需要对以上内容进行验证。

安装telnet服务

yum list |grep telnet  

yum install telnet-server.x86_64

安装xinetd服务

yum list |grep xinetd

yum install xinetd.x86_64

CentOS 6系列版本修改telnet配置文件(CentOS 7 以及以上版本跳过这一步)

vi /etc/xinetd.d/telnet    (7以上版本很可能没这个文件)

Openssh漏洞升级修复(适用于CentOS 6.7和6.8和6.9以及7.2和7.4等)_第1张图片

由于默认centos不允许使用telnet登录,暂时修改为备份文件。 

sudo mv /etc/securetty  /etc/securetty.bak

运行telnet

service xinetd restart

CentOS 7系列版本通过下面四个指令 开启Telnet

systemctl enable telnet.socket  
systemctl start telnet.socket  
systemctl enable xinetd  
systemctl start xinetd


由于默认centos不允许使用telnet登录,暂时修改为备份文件。 

mv /etc/securetty  /etc/securetty.bak

尝试用linux连接使用telnet连接是否成功,以后即可进行升级工作。

升级openssh8.0

上传文件在下载好的openshh的文件在/usr/local/src 目录下(权限不足则放置在/home/目录下)

解压文件openssh-8.0p1.tar.gz

tar –zxvf  openssh-8.0p1.tar.gz

cd 到openssh-8.0文件夹下

进行编译:(记得权限不足的话加sudo)

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-privsep-path=/var/lib/sshd

编译出现以下问题

configure: error: no acceptable C compiler found in $PATH

问题解决:yum install gcc

configure: error: * zlib.h missing - please install first or check config.log *

或者configure: error: *** working libcrypto not found, check config.log

问题解决:yum install openssl openssl-devel -y 安装相关依赖包

修改一下文件权限(权限不足前加sudo,有时候第二个第三个无法执行无所谓,继续):

chmod 600 /etc/ssh/ssh_host_rsa_key

chmod 600 /etc/ssh/ssh_host_ecdsa_key

chmod 600 /etc/ssh/ssh_host_ed25519_key

编译后输入sudo make &&sudo make install

查看是否升级成功:ssh -V

注意:默认是22端口,但是不能root直接登录。如果想直接使用root登录执行以下命令

echo "PermitRootLogin yes"  >>  /etc/ssh/sshd_config

vi /etc/ssh/sshd_config 修改 ,将 #Port 22前面的“#“ 删除  ,改为Port 22

重启sshd    centOS5和6用这个service sshd restart 。centOS7和8用 systemctl restart sshd.service

利用linux连接工具连接测试是否能连接成功。

能用ssh连接后卸载telnet服务,听说telnet没有ssh安全  ,一定是能用ssh连接后卸载telnet服务!

这里很可能出现ssh openssh升级成功了但远程桌面(比如putty或者shell之类)没法登录的情况,只能通过本机ssh连接的情况。

比如Access denied之类 这种情况可能因为修改了ssh加密方式或者某些文件没有随之更改导致的

对于这种情况需要cat /etc/selinux/config  修改  SELINUX=enforcing为SELINUX=disabled

如果不想reboot还需设置setenforce 0

如果是能用Linux连接工具连接成功,先停用telnet服务 /etc/xinetd.d/telnet  stop

如果发现这一句不能用或者出现问题,直接跳过下面两个卸载

查看相关的telnet和xinetd版本

rpm -qa |grep telnet

卸载telnet服务端(根据版本自己手敲):rpm  –e  telnet-server-0.17-48.el6.x86_64

卸载xinetd(根据版本自己手敲):rpm  –e  telnet-server.x86_64(如果嫌麻烦也可不卸载)

如果是CentOS 6系列则vi /etc/xinetd.d/telnet,把之前修改的no再改回yes ,然后service xinetd restart

如果是CentOS 7系列则  systemctl stop telnet.socket   systemctl stop xinetd (权限不足别忘前加sudo)

将修改后的securetty的文件修改过来

mv  /etc/securetty.bak  /etc/securetty

 

你可能感兴趣的:(Linux,虚拟,问题)