CentOS6.8 升级OpenSSH到最新版

〇、烦人的漏洞检测

  •  OpenSSH 'schnorr.c'远程内存破坏漏洞(CVE-2014-1692) 
  •  OpenSSH do_setup_env函数权限提升漏洞(CVE-2015-8325) 
  •  OpenSSH auth_password函数拒绝服务漏洞(CVE-2016-6515) 
  •  OpenSSH 安全漏洞(CVE-2016-1908) 
  •  OpenSSH 远程代码执行漏洞(CVE-2016-10009) 
  •  Openssh MaxAuthTries限制绕过漏洞(CVE-2015-5600) 
  •  OpenSSH J-PAKE授权问题漏洞(CVE-2010-4478) 
  •  OpenSSH 命令注入漏洞(CVE-2020-15778) 
  •  OpenSSH多个拒绝服务漏洞(CVE-2016-10708) 
  •  OpenSSH 安全限制绕过漏洞(CVE-2016-10012) 
  •  OpenSSH SSH守护进程安全漏洞(CVE-2016-6210) 
  •  OpenSSH 用户枚举漏洞(CVE-2018-15473)【原理扫描】 
  •  SSH 服务支持弱加密算法【原理漏洞】 
  •  OpenSSH glob表达式拒绝服务漏洞(CVE-2010-4755) 
  •  OpenSSH默认服务器配置拒绝服务漏洞(CVE-2010-5107) 
  •  Portable OpenSSH 'ssh-keysign'本地未授权访问漏洞 
  •  OpenSSH 权限许可和访问控制漏洞(CVE-2014-2532) 
  •  OpenSSH verify_host_key函数 SSHFP DNS RR 检查绕过漏洞(CVE-2014-2653) 
  •  OpenSSH 安全漏洞(CVE-2017-15906) 
  •  OpenSSH sshd mm_answer_pam_free_ctx释放后重利用漏洞(CVE-2015-6564) 
  •  OpenSSH 'x11_open_helper()'函数安全限制绕过漏洞(CVE-2015-5352) 
  •  OpenSSH <=7.2p1 xauth命令注入漏洞(CVE-2016-3115) 
  •  OpenSSH 远程权限提升漏洞(CVE-2016-10010) 

登录服务器

 ssh -V

查看版本。

一、为服务器添加备用连接方式,避免因为ssh升级失败导致无法远程管理

安装telnet客户端和服务端

yum install telnet-server telnet

编辑/etc/xinetd.d/telnet文件,将disable 改为no

vim /etc/xinetd.d/telnet

启动telnet-server服务,并设置开机自启

service xinetd restart
chkconfig telnet on

在其它机器上测试可以连接

telnet 192.168.1.2

如果连接不上配置:

1、关闭防火墙及selinux

2、查看/var/log/secure 提示

3、vim /etc/pam.d/login   注释:auth [user_unknown=ignore success=ok ignore=ignore default=bad] pam_securetty.so

4、vi /etc/securetty  末尾添加:

pts/0
pts/1
pts/2
pts/3
pts/4
pts/5

然后再重启 xinetd 服务。

二、升级OpenSSH版本

备份sshd 

which sshd
/usr/sbin/sshd

cd /usr/sbin/
co sshd sshd.bak

 安装必要编译软件

yum install -y gcc openssl-devel pam-devel rpm-build pam-devel

下载最新版openssh

wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-8.6p1.tar.gz

解压,编译,安装

tar zxvf openssh-8.6p1.tar.gz && cd openssh-8.6p1

./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords --with-tcp-wrappers

echo $? 返回0表示成功执行成功,返回1或其他数字表示执行失败

make && make install

service sshd restart

service sshd status

ssh -V

版本号已改变

 将/etc/ssh/sshd_config 和 /etc/ssh/ssh_config 里面关于:GSSAPI开头的都注释掉,否则总有不识别提示。

三、隐藏OpenSSH版本号

正常情况telnet 22号端口会返回OpenSSH版本号,如下。

[root@ct6 ~]# telnet 192.168.1.2 22
Trying 192.168.1.2... Connected to 192.168.1.2. Escape character is '^]'. SSH-2.0-OpenSSH_5.3

测试了网上给的替换版本号的方法  sed -i 's/OpenSSh_8.6/XXXX/g' sshd

最后执行sshd -V 出错,最好不要这种替

Segmentation fault 

四、卸载telnet-server

service xinetd stop
yum remove telnet-server
yum remove xinetd
原文地址:https://www.cnblogs.com/dwj192/p/15045439.html