openssh升级教程

openssh低版本存在许多漏洞

OpenSSH J-PAKE授权问题漏洞(CVE-2010-4478)
OpenSSH do_setup_env函数权限提升漏洞(CVE-2015-8325)
OpenSSH auth_password函数拒绝服务漏洞(CVE-2016-6515)
OpenSSH 'schnorr.c'远程内存破坏漏洞(CVE-2014-1692)
OpenSSH 远程代码执行漏洞(CVE-2016-10009)
Openssh MaxAuthTries限制绕过漏洞(CVE-2015-5600)
OpenSSH 安全限制绕过漏洞(CVE-2016-10012)
Portable OpenSSH GSSAPI远程代码执行漏洞(CVE-2006-5051)
OpenSSH sshd Privilege Separation Monitor 未明漏洞 
OpenSSH 安全漏洞(CVE-2016-1908)
OpenSSH <=7.2p1 xauth命令注入漏洞(CVE-2016-3115)
OpenSSH 远程权限提升漏洞(CVE-2016-10010)
Debian OpenSSH SELinux 特权升级漏洞(CVE-2008-3234)
OpenSSH X连接会话劫持漏洞
OpenSSH sshd mm_answer_pam_free_ctx释放后重利用漏洞(CVE-2015-6564)
Portable OpenSSH 'ssh-keysign'本地未授权访问漏洞
可移植OpenSSH GSSAPI认证终止信息泄露漏洞(CVE-2006-5052)
OpenSSH glob表达式拒绝服务漏洞(CVE-2010-4755)
OpenSSH DynamicForward 非故意的的GatewayPorts激活漏洞(CVE-2005-2797)
OpenSSH S/Key 远程信息泄露漏洞(CVE-2007-2243)
OpenSSH 'x11_open_helper()'函数安全限制绕过漏洞(CVE-2015-5352)
OpenSSH 用户枚举漏洞(CVE-2018-15473)【原理扫描】
OpenSSH默认服务器配置拒绝服务漏洞(CVE-2010-5107)
OpenSSH sshd monitor组件欺骗漏洞(CVE-2015-6563)
OpenSSH 本地信息泄露漏洞(CVE-2016-10011)
OpenSSH X11UseLocalhost X11转发会话劫持漏洞(CVE-2008-3259)
OpenSSH auth_parse_options函数信任管理漏洞(CVE-2012-0814)
OpenSSH 信息泄露漏洞(CVE-2011-4327)
SSH版本信息可被获取
OpenSSH CBC模式信息泄露漏洞(CVE-2008-5161)【原理扫描】
OpenSSH 'ssh_gssapi_parse_ename()'函数拒绝服务漏洞
探测到SSH服务器支持的算法

作为运维的你,需要懂得openssh的升级方法
升级openssh到openssh-8.0p1版本
查看升级前的版本

ssh –V
openssl version

cat /etc/issue
安装telnet-server以及xinetd 防止升级之后ssh无法管控主机

yum install xinetd telnet-server –y

如下我测试的时候没有/etc/xinetd.d/telnet文件,所以没处理。

vim /etc/xinetd.d/telnet
disable = yes改为disable = no

vim /etc/securetty末尾追加,注意单词,不要写错了,/etc目录还有一个很相像的目录security

pts/0
pts/1
pts/2
pts/3
……

开启xinetd服务

Service xinetd start

尝试telnet登录
安装依赖包

yum install  -y gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel  pam-devel
yum install  -y pam* zlib*

下载安装包

wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.0p1.tar.gz 
wget https://ftp.openssl.org/source/openssl-1.0.2r.tar.gz

安装openssl

tar xfz openssl-1.0.2r.tar.gz

备份下面2个文件或目录

mv /usr/bin/openssl /usr/bin/openssl_bak
mv /usr/include/openssl /usr/include/openssl_bak

进行编译安装

cd openssl-1.0.2r/
./config shared && make && make install

以上命令执行完毕,echo $?查看下最后的make install是否有报错,0表示没有问题
下面2个文件或者目录做软链接

ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/ssl/include/openssl /usr/include/openssl

命令行执行下面2个命令加载新配置

echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
/sbin/ldconfig

查看确认版本。没问题

openssl version

安装openssh

tar xfz openssh-8.0p1.tar.gz
rm -rf /etc/ssh/*     怕的话可以先备份,我实验的时候删除了
./configure --prefix=/usr/ --sysconfdir=/etc/ssh  --with-openssl-includes=/usr/local/ssl/include \
 --with-ssl-dir=/usr/local/ssl   --with-zlib   --with-md5-passwords   --with-pam  && make && make install

以上命令执行完毕,echo $?查看下最后的make install是否有报错,0表示没有问题

修改配置文件最终为如下内容,其他的不要动

[root@linux-node3 ~]# grep "^PermitRootLogin"  /etc/ssh/sshd_config
PermitRootLogin yes
[root@linux-node3 ~]# grep  "UseDNS"  /etc/ssh/sshd_config
UseDNS no

从原先的解压的包中拷贝一些文件到目标位置

cp -a contrib/redhat/sshd.init /etc/init.d/sshd
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
chmod +x /etc/init.d/sshd
chkconfig --add sshd
systemctl enable sshd
chkconfig sshd on
service sshd restart

测试版本

ssh –V

如果不是生产机器。可以试着重启机器测试下登录sshd是否正常。我这边测试都没问题
测试没问题后可以把telnet服务关闭了

service xinetd stop

你可能感兴趣的:(linux)