Linux Centos7 OpenSSH版本低导致的安全漏洞 升级OpenSSH和OpenSSl来修复漏洞

Linux Centos7 OpenSSH版本低导致的安全漏洞 升级OpenSSH和OpenSSl来修复漏洞

      由于最近公司项目需要重新部署到服务器,检查出的安全漏洞,其中 一项就是Openssh版本低过低所以导致的远程执行漏洞,如下:

          

于是我就要进升级版本填补漏洞,首先

1、查看OpenSSH版本,在服务器输入以下命令:

命令:ssh -V

得到:

2、确认系统是否已经确认安装gcc编译器:

命令:gcc -v

得到:

如果没安装的同学可以参考:

https://www.imooc.com/article/17780?block_id=tuijian_wz%20yum%20-y%20install%20gcc%20gcc-c++%20kernel-devel%20//

3.升级Zlib

下载最新版本的Zlib:Zlib 官方网站:http://www.zlib.net/

目前最新版本的 Zlib 是 zlib-1.2.11.tar.gz

进入你的下载文件夹下载:

命令:cd /usr/local/src
命令:wget -c http://www.zlib.net/zlib-1.2.11.tar.gz

得到:

编译安装Zlib:

解压命令: tar xzvf zlib-1.2.11.tar.gz
命令:cd zlib-1.2.11/
编译:./configure --prefix=/usr/local/zlib
安装:make install


现在zlib 编译安装在 /usr/local/zilib中了

4.升级openssl:

确认是否安装了SSI和查看版本:

命令:openssl version -a 或者 openssl version

目前能与Openssh配合的版本就是1.02版本

命令:cd /usr/local/src
命令:sudo wget http://www.openssl.org/source/openssl-1.0.2j.tar.gz
命令:sudo tar zxf openssl-1.0.2j.tar.gz
命令:cd openssl-1.0.2j
命令:sudo ./config --prefix=/usr/local/openssl
命令:sudo make
命令:sudo make install

备注:/usr/bin/openssl为旧的Openssl文件,进行下一步之前记得备份一下

执行以下命令进行更换旧版的Openssl:

重命名原来的openssl命令:sudo mv /usr/bin/openssl /usr/bin/openssl.bak
将安装好的openssl 的openssl命令软连到/usr/bin/openssl: 
命令:sudo ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
切换到root权限:sudo bash
在/etc/ld.so.conf文件中写入openssl库文件的搜索路径: echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
使修改后的/etc/ld.so.conf生效:ldconfig -v
查看版本:openssl version

参考来至:http://www.cnblogs.com/dinglin1/p/9047818.html

至此,Openssl升级完毕

5、关闭selinux 

命令:sudo vim /etc/sysconfig/selinux

修改 SELINUX=disabled,输入:wq 保存退出

6、安装telnet并开起来,防止意外导致ssh无法连接

1、检测telnet-server的rpm包是否安装:

命令:rpm -qa telnet-server 

如没有输出就要安装,安装命令:

命令:sudo yum install telnet-server

然后发现没有安装包的错误:

只能通过下载安装包来,提供telnet的rpm包下载网址:https://pkgs.org/download/telnet-server。我下载的 telnet-server-0.17-64.el7.x86_64.rpm版本。下载安装命令:

命令:cd download
命令:wget http://mirror.centos.org/centos/7/os/x86_64/Packages/telnet-server-0.17-64.el7.x86_64.rpm
命令:sudo yum install 	telnet-server-0.17-64.el7.x86_64.rpm
命令:rpm -qa telnet-server 
命令:telnet-server-0.17-64.el7.x86_64.rpm
命令:rpm -qa telnet-server
 

1、检测xinetd 的rpm包是否安装:

命令:rpm -qa xinetd

如没有输出就要安装,安装命令:

命令:sudo yum install xinetd

然后发现又是没有安装包的错误:

只能通过下载安装包来,我下载的是telnet-server-0.17-64.el7.x86_64.rpm版本。下载安装命令:

​
命令:wget http://mirror.centos.org/centos/7/os/x86_64/Packages/xinetd-2.3.15-13.el7.x86_64.rpm
命令:sudo yum install xinetd-2.3.15-13.el7.x86_64.rpm

​

安装完成后,将xinetd服务和telnet加入开机自启动:

命令:sudo systemctl enable xinetd.service
命令:sudo systemctl enable telnet.socket

最后,启动以上两个服务即可:

由于telnet服务也是由xinetd守护的,所以安装完telnet-server,要启动telnet服务就必须重新启动xinetd 。

命令:sudo systemctl start telnet.socket
命令:sudo systemctl start xinetd

参考来至:https://www.cnblogs.com/lixuwu/p/6102444.html

默认情况下,系统是不允许root用户telnet远程登录的。如果要使用root用户直接登录,需设置如下内容:

echo  'pts/0'  >>/etc/securetty
echo 'pts/1' >>/etc/securetty

以上命令需要root权限才能执行,最后才重启服务

重启服务:service  xinetd  restart

而且还开通相对应的23端口,这里我就不多说了,因为我们公司端口是统一管理的,接下来在你计算机上打开telnet客户端:

然后测试打开cmd.exe看看能不能登录,telnet+IP,回车:

登录成功,接下来我们就可以安心地升级openSSH

7、升级openSSH

备份旧ssh配置文件夹 /etc/ssh :


sudo cp -rf /etc/ssh /etc/ssh.bak

下载openSSH安装包:

命令:cd download(这是我自己的下载文件夹)

命令:sudo wget http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-7.4p1.tar.gz

提供个下载地址:http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/

接下来就是解压安装OpenSSH:

命令:sudo tar -zxvf openssh-7.4p1.tar.gz
命令:cd openssh-7.4p1
命令:sudo ./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-zlib --with-md5-passwords --with-tcp-wrappers

发现是缺各种Open-devel依赖包,然后去网上下载rpm安装包,发现出现各种问题,搞了好久,贼烦,就是不对应版本,浪费了一天多时间,又是重新安装openssl什么的,发现并没有用,得安装一个Openssl-fips,安装以后又出现什么缺pam-devel包的错误,然后还是一样唉,怀疑是不是镜像源,怎么啥安装包都没有,都得下载,于是去更换镜像源,发现镜像源名字改了,所以服务器不能识别了,改为原来的名字:

命令:cd /etc/yum.repos.d
命令:sudo mv /etc/yum.repos.d/CentOS-Base.repo.backup  /etc/yum.repos.d/CentOS-Base.repo

现在发现可以各种yum install 各种依赖包了。。。。说多了都是泪了,开发兼职运维的泪 

接着安装两个依赖包:

命令:sudo yum install openssl-devel
命令:sudo yum install pam-devel

然后重新编译:

安装命令:sudo make 或者 sudo make install

到这里我的会出现说Key的权限过于open,所以我改成600了:

命令:cd /etc/ssh/

命令:chmod 600 ssh_host_ecdsa_key

命令:chmod 600 ssh_host_rsa_key

命令:chmod 600 ssh_host_ed25519_key

复制配置

命令:sudo cp -p sshd_config /etc/ssh/sshd_config
查看版本:ssh -V

配置允许root使用ssh:

命令:sudo vim /etc/ssh/sshd_config

取消注释 PasswordAuthentication yes

重启ssh服务:

命令:sudo service sshd restart

如果重启不了就重启服务器,再重启,至此Openssh升级完毕

猜你喜欢

转载自blog.csdn.net/qq_38000902/article/details/80969769