[ 安全运维 ] OpenSSH版本内网脚本升级
0x00.前言:
最近做漏扫时,扫描出Linux系统的一些漏洞问题,其中有一个漏洞是关于OpenSSH低版本出现的一些漏洞,需要对这些使用低版本OpenSSH的服务器进行软件升级,由于这些存在问题的Linux机器无法连接外网,需要在内网升级,并且需要操作的服务器数量多,最为关键的是客户需要一个超级简单的升级方案(拿网上的教程发过去就得挨P)。为了方便,我就找到最新版本OpenSSH 8.0p1安装包,自己写了个升级脚本,大大的简化了客户升级的难度。
0x01.检查版本信息
使用命令: ssh -V
这里需要升级的版本为低于OpenSSH 8.0p1,可以看到这里的版本已经很老了,在网上可以查找到此OpenSSH版本的相关漏洞。

0x02.准备升级包
最新版本OpenSSH 8.0p1下载地址:
https://www.openssh.com/openbsd.html
脚本内容:(这里使用的是红帽下的命令,同样适用于Cent OS,其他linux版本自行更改相关命令)
#!/bin/sh
oldversion=`ssh -V 2>&1`
echo "开始执行 OpenSSH 版本升级脚本"
echo -e "当前OpenSSH版本为: \033[31m $oldversion \033[0m"
echo "正在解压安装OpenSSH 8.0p1源代码......"
{
tar -zxf openssh-8.0p1.tar.gz
} &>> install.log
echo "备份原版OpenSSH......"
{
mv /etc/ssh/ ./ssh.bak
} &>> install.log
echo "安装编译所需依赖,耗时较长,请耐心等待......"
{
yum -y install gcc zlib-devel openssl-devel
} &>> install.log
echo "配置并编译OpenSSH......"
{
cd openssh-8.0p1/
./configure --prefix=/usr --sysconfdir=/etc/ssh
make
} &>> install.log
echo "卸载旧版OpenSSH......"
{
rpm -e --nodeps `rpm -qa | grep openssh`
} &>> install.log
echo "开始安装......"
{
make install
chmod 0600 /etc/ssh/ssh_host_rsa_key
chmod 0600 /etc/ssh/ssh_host_ecdsa_key
chmod 0600 /etc/ssh/ssh_host_ed25519_key
make install
} &>> install.log
newversion=`ssh -V 2>&1`
echo "开始执行 OpenSSH 版本升级脚本"
echo -e "安装完成,当前SSH版本为: \033[32m $newversion \033[0m"
echo "配置权限及启动项......"
{
cp contrib/redhat/sshd.init /etc/init.d/sshd
chkconfig --add sshd
脚本保存为sshfix.sh
然后将脚本和升级包放在同一文件夹下,压缩后发送给客户。
0x03.安装使用步骤
注意因升级需要先卸载SSH,建议此操作在telnet或直接在服务器上操作。
解压并执行脚本
tar xvf OpenSSH_update.tar

进入升级包解压后目录下,对需要运行的脚本附加执行权限,并执行脚本。
使用的命令:
cd OpenSSH_update Chmod +x sshfix.sh ./sshfix.sh

0x04.安装升级成功
脚本会提示当前SSH版本为OpenSSH 8.0p1

浙公网安备 33010602011771号