通过主机扫描发现系统存在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 ……………………
0.查看CentOS版本 1.cat /etc/issue 查看版本 2 . cat /etc/redhat-release 查看版本(推荐) 3.cat /proc/version 查看内核
*指令尽量手敲!避免粘贴复制带来的空格或者换行或者制表符等输入!手敲一定要再三确认是否正确!
安装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以上版本很可能没这个文件)
由于默认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连接是否成功,以后即可进行升级工作。
上传文件在下载好的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