在对操作系统进行定期漏洞扫描的过程中,碰到了openssh的高位漏洞问题,遂更新openssh,更新版本openssh-9.8p1。在查阅过程当中,也碰到了不少棘手的问题,遂写此篇记录之。
一、安装telent
为了防止openssh安装失败,导致服务器远程无法连接的问题,首先安装telent。
1.查看selinux的状态,必须为关闭状态
getenforce
2.查看防火墙的状态,必须为关闭状态
systemctl status firewalld
systemctl stop firewalld
3.安装telnet
yum install -y telnet
yum install -y telnet-server
4.重启服务
systemctl enable telnet.socket
systemctl start telnet.socket
5.检测端口
netstat -lntp|grep 23
测试登录:
telnet 127.0.0.1
6.切换到telnet方式登录,以后的操作都在telnet终端下操作,防止ssh连接意外中断造成升级失败
二、在线安装openssh
1.卸载旧版本的ssh
rpm -aq openssh
rpm -e --nodeps openssh-8.7p1-43.el9.x86_64
2.在线安装openssh
安装编译依赖
dnf install openssl-devel zlib-devel gcc gcc-c++ make autoconf pam-devel -y
cd /usr/local/src
下载源码
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.8p1.tar.gz
解压
tar -zvxf openssh-9.8p1.tar.gz
cd openssh-9.8p1
编译
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/lib64/openssl --with-zlib
make -j $(nproc)
3.安装之前需要注释部分不支持的算法
echo "CRYPTO_POLICY=" >> /etc/sysconfig/sshd
sed -i 's/^GSSAPIKexAlgorithms/#&/' /etc/crypto-policies/back-ends/openssh.config
sed -i 's/^GSSAPIKexAlgorithms/#&/' /etc/crypto-policies/back-ends/opensshserver.config
sed -i 's/^GSSAPIAuthentication/#&/' /etc/ssh/sshd_config.d/50-redhat.conf
sed -i 's/^GSSAPICleanupCredentials/#&/' /etc/ssh/sshd_config.d/50-redhat.conf
4.修改文件权限
chmod 0600 /etc/ssh/ssh_host_rsa_key
chmod 0600 /etc/ssh/ssh_host_ecdsa_key
chmod 0600 /etc/ssh/ssh_host_ed25519_key
5.安装
make install
6.重启
systemctl restart sshd
三、关闭telnet
systemctl disable telnet.socket
systemctl stop telnet.socket