具体需求 这几天生产环境服务器又进行了安全扫描,每次都会报一下漏洞错误。虽然只有一个高危问题,但是每次看到ssh远程漏洞都很烧脑 “主要是里面坑太多了”,闲话就不说了,今天我们来看看从redhat7.4 的openssh7.4、7.6、8.1离线网的环境中升级到openssh8.4p1吧!! 漏洞以及环境问题 OpenSSH 命令注入漏洞(CVE-2020-15778) 报的远程漏洞问题,因为Linux服务器都在公司内部,不能连接公网。 需要注意 为了防止升级失败,可以在升级之前安装telnet服务,通过Telnet连接服务器进行升级。如果大家觉得麻烦或者冒险一下安装telnet这步骤可以省略。 1、安装telnet,防止ssh升级失败导致链接失败 下载地址:telnet-server-0.17-64.el7.x86_64、telnet-0.17-64.el7.x86_64、xinetd-2.3.15-14.el7.x86_64 下载依赖openssl、zlib、openssh 下载安装文件:openssh8.4需要的 openssl-1.1.1g, openssh-8.4p1,zlib-1.2.11 解压升级包
tar -zxvf Zlib-1.2.11.tar.gz
编译安装zlib
cd zlib-1.2.11 ./configure --prefix=/usr/local/zlib make && make install
编译安装openssl cd openssl-1.1.1g ./config --prefix=/usr/local/ssl -d shared make && make install echo '/usr/local/ssl/lib' >> /etc/ld.so.conf ldconfig -v
安装openssh
1 cd openssh-8.4p1 2 ./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl 3 make && make install sshd_config文件修改 5 echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config 6 echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config 7 echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config
备份原有文件,并将新的配置复制到指定目录
1 mv /etc/ssh/sshd_config /etc/ssh/sshd_config.bak 2 cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config 3 mv /usr/sbin/sshd /usr/sbin/sshd.bak 4 cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd 5 mv /usr/bin/ssh /usr/bin/ssh.bak 6 cp /usr/local/openssh/bin/ssh /usr/bin/ssh 7 mv /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak 8 cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen 9 mv /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak 10 cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub 启动sshd systemctl restart sshd.service 报错问题以及解决方案 如果sshd服务器无法启动,可以试试以下方法: 先停掉sshd服务,将systemctl原服务器删除,使用安装包里自带的sshd.init,复制到/etc/init.d/sshd,重启即可
systemctl stop sshd.service rm -rf /lib/systemd/system/sshd.service systemctl daemon-reload cp /opt/openssh8.4/openssh-8.4p1/contrib/redhat/sshd.init /etc/init.d/sshd /etc/init.d/sshd restart systemctl status sshd systemctl daemon-reload
以上文件存放路径我放到根目录 /opt/下面了,可以按你自己解压文件路径即可。 添加开机启动 chkconfig --add sshd
chkconfig --list sshd
最后上一张图查看ssh启动状态 systemctl status sshd
这一步ssh服务器已安装完成。 如果遇到xshell 和SecureCRT 提示: Key exchange failed. 请大家把 Xshell 和CRT 升级到更高版本吧! 到此,完成了openssh 7.6升级到 8.4版本已完成,希望对大家有所帮助。
|
|