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