政府类项目上线,必然绕不开等保;什么?什么是等保?这里就不做解释了,先去百度看看吧;直入主题,测评中心扫描服务器漏洞时,扫出来了openSSH的‘安全漏洞’、‘远程代码执行漏洞’等等–>据了解,这是由于版本太低导致的。
知道了原因,我们就开始升级吧!说是说升级,其实就是重新安装高版本openSSH(比如我选择的是openssh-7.9p1.tar.gz,原本是6.6)。
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 ……………………
*指令尽量手敲!避免粘贴复制带来的空格或者换行或者制表符等输入!手敲一定要再三确认是否正确!
升级前对ssh文件进行备份 cp -r /etc/ssh /etc/ssh.old
升级过程未防止升级失败,需要先开启telnet服务,防止升级失败连接不上远程主机。
升级到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
进行升级是需要对以上内容进行验证。
yum list |grep telnet
yum install telnet-server.x86_64
yum list |grep xinetd
yum install xinetd.x86_64
vi /etc/xinetd.d/telnet
(7以上版本很可能没这个文件)
##### 由于默认centos不允许使用telnet登录,暂时修改为备份文件。
sudo mv /etc/securetty /etc/securetty.bak
运行telnet
service xinetd restart
systemctl enable telnet.socket
systemctl start telnet.socket
systemctl enable xinetd
systemctl start xinetd
由于默认centos不允许使用telnet登录,暂时修改为备份文件。
mv /etc/securetty /etc/securetty.bak
tar –zxvf openssh-8.0p1.tar.gz
cd openssh-8.0p1
./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
centOS5和6用这个
service sshd restart
centOS7和8用
systemctl restart sshd.service
能用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
通过漏洞扫描工具检测OpenSSH < 4.9“ForceCommand”指令绕过(CVE-2008-1657)、OpenSSH 用户名枚举漏洞(CVE-2018-15473),现要求修复该漏洞。
首先分享个免费实用的网站:https://crpm.cn/ 是一个RPM包搜索网站。
但是为什么要使用RPM包搜索网站呢?因为在Linux系统下安装工具和应用需要使用RPM包安装,使用RPM包搜索网站可以方便找到你需要RPM包。
而且不用登录就可以直接下载,没有各种限制。
它还里面还有各种系统的mirror源地址。并且提供了openssh最新的RPM包,方便升级openssh最新版本,解决openssh安全漏洞问题。
一个网站多个功能,特别的方便好用,并且支持中英文。
(1)首先下载 telnet-client (或 telnet) 客户端软件包,这里我们下载 telnet-0.17-66.el7.x86_64.rpm
版本:
下载地址:http://www.rpmfind.net/linux/rpm2html/search.php?query=telnet
(2)接着下载真正的 Telnet server 软件包,这里我们下载 telnet-server-0.17-66.el7.x86_64.rpm
版本:
下载地址:http://www.rpmfind.net/linux/rpm2html/search.php?query=telnet-server(x86-64)
(3)由于 telnet-server 服务启动依赖 xinetd 服务,最后还要下载 xinetd 安装包,这里我们下载 xinetd-2.3.15-14.el7.x86_64.rpm
版本:
下载地址:http://www.rpmfind.net/linux/rpm2html/search.php?query=xinetd
(2)首先执行如下命令安装 xinetd:
rpm -ivh xinetd-2.3.14-40.el6.x86_64.rpm
(3)接着执行如下命令安装客户端:
rpm -ivh telnet-0.17-64.el7.x86_64.rpm
(4)最后执行如下命令安装服务端:
rpm -ivh telnet-server-0.17-64.el7.x86_64.rpm
(5)安装后可以执行如下命令查看是否安装成功:
rpm -qa | grep telnet
rpm -qa | grep xinetd
(1)telnet 服务默认是不开启的,编辑 telnet 配置文件:
vi /etc/xinetd.d/telnet
(2)将文件中 disable = yes 修改为 disable = no(如果 telnet文件不存在也没关系,我们直接创建,文件内容如下):
service telnet
{
flags = REUSE
socket_type = stream
wait = no
user = root
server =/usr/sbin/in.telnetd
log_on_failure += USERID
disable = no
}
(3)执行如下命令启动 telnet 依赖的 xinetd 服务:
systemctl start xinetd
(4)接着执行如下命令查看 xinetd 是否启动:
ps -ef |grep xinetd
Centos6系统
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-8.8p1-1.el6.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-askpass-8.8p1-1.el6.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-askpass-gnome-8.8p1-1.el6.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-clients-8.8p1-1.el6.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-server-8.8p1-1.el6.x86_64.rpm
Centos7系统
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-8.8p1-1.el7.centos.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-askpass-8.8p1-1.el7.centos.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-askpass-gnome-8.8p1-1.el7.centos.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-clients-8.8p1-1.el7.centos.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-server-8.8p1-1.el7.centos.x86_64.rpm
Centos8系统
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-8.8p1-1.el8.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-clients-8.8p1-1.el8.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-server-8.8p1-1.el8.x86_64.rpm
http://mirrors.crpm.cn/openssh/x86_64/Packages/update-ssh.sh
3.3查看版本(Centos7系统为例)
3.4下载升级包(也可以上crpm.cn搜索rpm包)
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-8.8p1-1.el7.centos.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-askpass-8.8p1-1.el7.centos.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-askpass-gnome-8.8p1-1.el7.centos.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-clients-8.8p1-1.el7.centos.x86_64.rpm
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/openssh-server-8.8p1-1.el7.centos.x86_64.rpm
小编这里是内网升级所以下载好后手动上传的
wget http://mirrors.crpm.cn/openssh/x86_64/Packages/update-ssh.sh
bash update-ssh.sh
Baimai
Openssh漏洞升级修复(适用于CentOS 6.7和6.8和6.9以及7.2和7.4等)
公众号:释然IT杂谈
微信号:ShiRan_IT
功能介绍:
本公众号专注于分享网络工程(思科、华为),系统运维(Linux)、以及安全等方面学习资源,以及相关技术文章、学习视频和学习书籍等。期待您的加入~~~关注回复“724”可领取免费学习资料(含有书籍)。
Linux升级Openssh版本