OpenSSH安全漏洞修复升级9.5版本
一、前言
系统版本:linux CentOS-7 ssh版本默认OpenSSH7.4左右,低版本是有漏洞的而且是高危漏洞;以下是将ssh版本升级到9.5的过程
二、安装包
2.1、准备相关安装包
#查看ssh版本
ssh -V
#进入源码存放目录
cd /usr/local/src/
#下载openssh9.5的安装包
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.5p1.tar.gz
#下载ssl
wget https://www.openssl.org/source/openssl-3.2.0.tar.gz --no-check-certificate
#下载zlib
wget https://www.zlib.net/zlib-1.3.tar.gz
可以去zlib资源下载网站 Index of /fossilshttps://www.zlib.net/fossils/Index of /fossils
2.2、安装zlib
cd /usr/local/src/
#解压文件
tar zxvf zlib-1.3.tar.gz
cd zlib-1.3
#安装前置依赖
yum install gcc gcc-c++ make -y
#编译安装zlib
./configure --prefix=/usr/local/zlib
make && make install
2.3、安装openssl
cd /usr/local/src/
#解压文件
tar zxvf openssl-3.2.0.tar.gz
cd openssl-3.2.0
#安装相应的前置依赖
yum install -y perl-CPAN perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
#--prefix指定编译到的目录,"shared"作用是生成动态链接库(即.so库)
./config --prefix=/usr/local/ssl --shared
#编译安装ssl,这个安装过程很长大概有10分钟左右
make && make install(安装时间有点长哟·)
#路径写入etc/ld.so.conf
echo '/usr/local/ssl/lib64' >> /etc/ld.so.conf
2.4、备份并卸载老版本OpenSSH
#备份ssh配置文件
cp -p /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
cp -p /usr/sbin/sshd /usr/sbin/sshd.bak
cp -p /usr/bin/ssh /usr/bin/ssh.bak
cp -p /usr/bin/ssh-keygen /usr/bin/ssh-keygen.bak
cp -p /etc/ssh/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub.bak
#停止ssh服务
systemctl stop sshd
#备份ssh文件
cp -r /etc/ssh /etc/ssh.old
#查询原有ssh包并卸载
rpm -qa | grep openssh
openssh-clients-7.4p1-21.el7.x86_64
openssh-server-7.4p1-21.el7.x86_64
openssh-7.4p1-21.el7.x86_64
#根据查询结果,卸载原有OpenSSH包
yum remove openssh-7.4p1-21.el7.x86_64
#再次查看已经没有了
rpm -qa | grep openssh
2.5、升级OpenSSH
cd /usr/local/src/
#解压
tar zxvf openssh-9.5p1.tar.gz
cd openssh-9.5p1
#编译安装openssh 指明zlib路径和ssl路径
./configure --prefix=/usr/local/openssh --with-zlib=/usr/local/zlib --with-ssl-dir=/usr/local/ssl
make && make install
#ssh允许root登录、需要密码进行验证
echo 'PermitRootLogin yes' >>/usr/local/openssh/etc/sshd_config
echo 'PubkeyAuthentication yes' >>/usr/local/openssh/etc/sshd_config
echo 'PasswordAuthentication yes' >>/usr/local/openssh/etc/sshd_config
#将编译安装的新配置文件 拷贝到原路径下
cp /usr/local/openssh/etc/sshd_config /etc/ssh/sshd_config
cp /usr/local/openssh/sbin/sshd /usr/sbin/sshd
cp /usr/local/openssh/bin/ssh /usr/bin/ssh
cp /usr/local/openssh/bin/ssh-keygen /usr/bin/ssh-keygen
cp /usr/local/openssh/etc/ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub
#拷贝启动脚本
cp -p contrib/redhat/sshd.init /etc/init.d/sshd
#给sshd添加可执行权限
chmod +x /etc/init.d/sshd
#设置开机自启
systemctl enable sshd
#重新启动sshd服务
systemctl restart sshd
#查看sshd服务状态
systemctl status sshd
#查看ssh版本是否升级成功,可以查看到已经是9.5版本了
ssh -V
OpenSSH_9.5p1, OpenSSL 3.2.0 23 Nov 2023
三、验证

四、常用命令
4.1、防火墙命令
#端口添加
firewall-cmd --zone=public --add-port=22/tcp --permanent
#停止防火墙
systemctl stop firewalld.service
#启动防火墙
systemctl start firewalld.service
#白名单端口
firewall-cmd --zone=public --list-ports
#重新加载防火墙端口
firewall-cmd --reload
4.2、端口查询命令
#端口进程查询
netstat -nltp | grep 端口
#杀进程
kill -9 pid
4.3、ssh服务常用命令
#重启sshd服务
systemctl restart sshd
#启动sshd服务
systemctl start sshd
#停止sshd服务
systemctl stop sshd
浙公网安备 33010602011771号