网站地图的使用,网站建设这个职业,制作手工灯笼,天津网站建设行业新闻#x1f468;#x1f393;博主简介 #x1f3c5;CSDN博客专家 #x1f3c5;云计算领域优质创作者 #x1f3c5;华为云开发者社区专家博主 #x1f3c5;阿里云开发者社区专家博主 #x1f48a;交流社区#xff1a;运维交流社区 欢迎大家的加入#xff01… 博主简介 CSDN博客专家 云计算领域优质创作者 华为云开发者社区专家博主 阿里云开发者社区专家博主 交流社区运维交流社区 欢迎大家的加入 希望大家多多支持我们一起进步 如果文章对你有帮助的话欢迎 点赞 评论 收藏 ⭐️ 加关注 文章目录 文章声明漏洞描述前述安装一些必要的命令需要用到的Centos 服务器升级OpenSSH到9.6p11、安装依赖2、编译安装openssl3、查看、备份并卸载原有OpenSSH4、下载OpenSSH二进制包5、解压并编译安装OpenSSH6、授权7、复制配置文件8、修改配置允许root用户远程登录9、启用sshd生成服务配置文件并重启服务10、验证升级是否成功 可能遇到的问题及解决方式问题一问题二问题三问题四 参考文献相关专栏相关文章 文章声明 文章声明此文基于实操撰写 生产环境 ssh -V查看版本是OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017 问题关键字OpenSSH 升级, OpenSSH 更新, OpenSSH 漏洞修复 漏洞信息OpenSSH 命令注入漏洞(CVE-2023-51385) 漏洞描述
OpenSSH命令注入漏洞CVE-2023-51385详细描述 该漏洞与配置文件ssh_config有关攻击者可以修改配置文件中的ProxyCommand、LocalCommand、Match exec相关命令通过%h、%u或类似的扩展标记引用主机名或用户名在建立SSH连接时注入恶意shell字符进行命令注入攻击。 影响范围 OpenSSH 9.6 前述 OpenSSHOpenBSD Secure Shell是OpenBSD计划组的一套用于安全访问远程计算机的连接工具。该工具是SSH协议的开源实现支持对所有的传输进行加密可有效阻止窃听、连接劫持以及其他网络级的攻击。 OpenSSH 8.9版本至9.3之前版本存在安全漏洞该漏洞源于将智能卡密钥添加到ssh-agent会导致忽略每次转发的目标约束。 注此操作步骤同样适用于Red Hat系所有 9.x 服务器系统。 注意事项 在升级之前建议打开多个SSH终端连接并安装telnet服务器确保在SSH服务器升级异常时可以通过telnet服务器远程连接进行紧急问题修复处理。 因为最开始需要直接卸载openssh卸载完之后就连不上了如有问题不好解决所以建议多开几个SSH终端连接。 在升级前一定要备份原有的配置文件以防出现意外情况。 安装一些必要的命令需要用到的
安装一些必要的命令需要用到的
yum install wget gcc openssl-devel pam-devel rpm-build zlib-devel -y如果没有外网可以选择在有网络的服务器上下载rpm安装包yum离线下载安装包可参考Centos7 yum如何下载离线安装包详解
或者是使用我提供的离线包openssh7.4p1 升级到 openssh9.6p1 所需的离线包
网盘下载 链接 https://pan.baidu.com/s/1eLN1mIZc2yW2KEMa03HCLQ?pwdopen 提取码open
命令解析 1.1 OpenSSLOpenSSH 使用了 OpenSSL 的加密库。因此在更新 OpenSSH 之前需要先更新 OpenSSL 的版本。1.2 PAMOpenSSH 使用了Pluggable Authentication Modules (PAM)因此需要安装 PAM 相关的库文件。1.3 ZlibOpenSSH 使用了 Zlib 库进行数据压缩。因此需要安装 Zlib 的库文件。1.4 GCC 和 GOpenSSH 的编译需要 GCC 和 G 编译器。 Centos 服务器升级OpenSSH到9.6p1
1、安装依赖
安装一些必要的命令需要用到的
2、编译安装openssl
2.1 官网下载安装包openssl官网 wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1t.tar.gz或者是使用我提供的离线包openssh7.4p1 升级到 openssh9.6p1 所需的离线包
网盘下载 链接 https://pan.baidu.com/s/1eLN1mIZc2yW2KEMa03HCLQ?pwdopen 提取码open 如果遇到以下问题后面加上--no-check-certificate wget https://www.openssl.org/source/old/1.1.1/openssl-1.1.1t.tar.gz --no-check-certificate2.2 解压并放到/usr/local/目录
tar xf openssl-1.1.1t.tar.gz -C /usr/local2.3 编译安装openssl
# 进入openssl目录
cd /usr/local/openssl-1.1.1t# 编译安装openssl
./config shared --prefix/usr/local/openssl
make -j 4
make install2.4 为openssl做软连接
echo /usr/local/openssl/lib/ /etc/ld.so.conf
# 加载配置文件
ldconfig
# 备份以前的openssl
mv /usr/bin/openssl /usr/bin/openssl.old
# 软连接如果提示软连接已存在记得备份软连接然后在执行下面再次软连接要不然会出问题会导致root目录看不了磁盘看不了sftp连接不上
ln -sv /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1软连接如果提示软连接已存在记得备份软连接然后在执行上面再次进行软连接要不然会出问题会导致root目录看不了磁盘看不了sftp连接不上等等一系列问题
2.5 查看openssl版本
openssl version -a3、查看、备份并卸载原有OpenSSH 确保终端一直连接 断开远程连接就不能用了 # 查看当前安装包
[rootlocalhost ~]# rpm -qa | grep openssh
openssh-clients-7.4p1-21.el7.x86_64
openssh-7.4p1-21.el7.x86_64
openssh-server-7.4p1-21.el7.x86_64# 查看当前OpenSSH版本Centos7 默认使用OpenSSH_7.4p1
[rootlocalhost ~]# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips 26 Jan 2017# 备份现有的SSH
[rootlocalhost ~]# mv /etc/ssh/ /etc/ssh.bak
[rootlocalhost ~]# mv /usr/bin/ssh /usr/bin/ssh.bak
[rootlocalhost ~]# mv /usr/sbin/sshd /usr/sbin/sshd.bak# 如果您是第一次升级备份/etc/init.d/sshd时会不存在不影响后续操作
[rootlocalhost ~]# mv /etc/init.d/sshd /etc/init.d/sshd.bak
mv: 无法获取/etc/init.d/sshd 的文件状态(stat): No such file or directory# 卸载现有OpenSSH
rpm -e --nodeps $(rpm -qa |grep openssh)确保已经卸载成功没有返回则卸载成功
rpm -qa | grep openssh4、下载OpenSSH二进制包
openssh官网下载官网
wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.6p1.tar.gz或者是使用我提供的离线包openssh7.4p1 升级到 openssh9.6p1 所需的离线包
网盘下载 链接 https://pan.baidu.com/s/1eLN1mIZc2yW2KEMa03HCLQ?pwdopen 提取码open
5、解压并编译安装OpenSSH
# 将下载的openssh安装包移动到/usr/local下
[rootlocalhost ~]# mv openssh-9.6p1.tar.gz /usr/local/# 进入/usr/local/目录解压openssh9.3
[rootlocalhost ~]# cd /usr/local/
[rootlocalhost local]# tar xf openssh-9.6p1.tar.gz# 进入openssh目录
[rootlocalhost local]# cd openssh-9.6p1# 编译安装
[rootlocalhost openssh-9.6p1]# CCFLAGS-I/usr/local/include \
LDFLAGS-L/usr/local/lib64 \
./configure \
--sysconfdir/etc/ssh \
--with-zlib \
--with-ssl-dir/usr/local/openssl[rootlocalhost openssh-9.6p1]# make -j 4
[rootlocalhost openssh-9.6p1]# make install6、授权
[rootlocalhost openssh-9.6p1]# chmod 600 /etc/ssh/*7、复制配置文件
[rootlocalhost openssh-9.6p1]# cp -rf /usr/local/sbin/sshd /usr/sbin/sshd
[rootlocalhost openssh-9.6p1]# cp -rf /usr/local/bin/ssh /usr/bin/ssh
[rootlocalhost openssh-9.6p1]# cp -rf /usr/local/bin/ssh-keygen /usr/bin/ssh-keygen
[rootlocalhost openssh-9.6p1]# cp -ar /usr/local/openssh-9.6p1/contrib/redhat/sshd.init /etc/init.d/sshd
[rootlocalhost openssh-9.6p1]# cp -ar /usr/local/openssh-9.6p1/contrib/redhat/sshd.pam /etc/pam.d/sshd.pam8、修改配置允许root用户远程登录
# 修改配置允许root用户远程登录允许使用密码登录允许root远程登录开启端口赋予/etc/init.d/sshd权限
cat /etc/ssh/sshd_configEOF
PermitRootLogin yes
X11Forwarding yes
PasswordAuthentication yes
KexAlgorithms diffie-hellman-group1-sha1,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1,diffie-hellman-group-exchange-sha256,ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521,diffie-hellman-group1-sha1,curve25519-sha256libssh.org
EOF[rootlocalhost openssh-9.6p1]# sed -i s/^#Port/Port/g /etc/ssh/sshd_config
[rootlocalhost openssh-9.6p1]# chmod 755 /etc/init.d/sshd9、启用sshd生成服务配置文件并重启服务
# 启用sshd生成服务配置文件
[rootlocalhost openssh-9.6p1]# systemctl enable sshd
sshd.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig sshd on# 重启服务
[rootlocalhost openssh-9.6p1]# systemctl restart sshd
# 查看服务状态
[rootlocalhost openssh-9.6p1]# systemctl status sshd10、验证升级是否成功
[rootlocalhost ~]# ssh -V
OpenSSH_9.6p1, OpenSSL 1.1.1t 7 Feb 2023可能遇到的问题及解决方式
问题一
编译如果有此报错可能是你没安装gcc…需要的命令返回最上面 安装一些必要的命令需要用到的安装完再次编译就可以了。 问题二
编译时报错信息
checking for cc... cc
checking whether the C compiler works... no
configure: error: in /usr/local/openssh-9.6p1:
configure: error: C compiler cannot create executables
See config.log for more detailsgcc问题如果gcc是5.4将gcc降级为4.8.5我遇到的问题就是因为gcc的版本为5.4将gcc版本降为4.8.5即可。
问题三
编译时报错信息
checking for openssl/opensslv.h... yes
checking OpenSSL header version... 009070e0 (OpenSSL 0.9.7n-dev xx XXX xxxx)
checking for OpenSSL_version... no
checking for OpenSSL_version_num... no
checking OpenSSL library version... configure: error: OpenSSL 1.0.1 required (have 009070e0 (OpenSSL 0.9.7n-dev xx XXX xxxx))这个报错是说版本要必须大于等于1.0.1但是ssh -V我看的时候是1.0.2可能还是因为版本太低了我就升级了一个openssl版本为1.1.1就可以了。安装openssl可参考编译安装openssl
问题四
升级OpenSSH后SFTP无法连接问题
1.修改配置
vim /etc/ssh/sshd_config#override default of no subsystems
#Subsystem sftp /usr/local/openssh/libexec/sftp-server改成下面这句
Subsystem sftp internal-sftp2.重启sshd服务
systemctl restart sshd再试一下就可以了。
参考文献
[1] 国家信息安全漏洞库http://www.cnnvd.org.cn/[2] 腾讯安全https://s.tencent.com/research/bsafe/[3] Centos7 yum如何下载离线安装包详解https://liucy.blog.csdn.net/article/details/125780172?spm1001.2014.3001.5502
相关专栏
专栏标题专栏链接《OpenSSH 系列》https://blog.csdn.net/liu_chen_yang/category_12463139.html《Linux从入门到精通》https://blog.csdn.net/liu_chen_yang/category_10887074.html《Linux服务器安全》https://blog.csdn.net/liu_chen_yang/category_12390514.html
相关文章
文章标题文章链接【Linux】 OpenSSH_7.4p1 升级到 OpenSSH_8.7p1亲测无问题建议收藏https://liucy.blog.csdn.net/article/details/130484944【Linux】 OpenSSH_7.4p1 升级到 OpenSSH_9.3p1亲测无问题建议收藏https://liucy.blog.csdn.net/article/details/131398113【Linux】 OpenSSH_7.4p1 升级到 OpenSSH_9.3p2亲测无问题建议收藏https://liucy.blog.csdn.net/article/details/133460612【Linux】 OpenSSH_7.4p1 升级到 OpenSSH_9.4p1亲测无问题建议收藏https://liucy.blog.csdn.net/article/details/133697104【Linux】 OpenSSH_7.4p1 升级到 OpenSSH_9.6p1亲测无问题建议收藏https://liucy.blog.csdn.net/article/details/136536352【Linux】 OpenSSH_9.3p1 升级到 OpenSSH_9.3p2亲测无问题建议收藏https://liucy.blog.csdn.net/article/details/133460539【Linux】 OpenSSH_9.3p1 升级到 OpenSSH_9.5p1亲测无问题建议收藏https://liucy.blog.csdn.net/article/details/134717718【Linux】 OpenSSH_9.3p1 升级到 OpenSSH_9.6p1亲测无问题建议收藏https://liucy.blog.csdn.net/article/details/136327961【Linux】 OpenSSH_9.3p2 升级到 OpenSSH_9.4p1亲测无问题建议收藏https://liucy.blog.csdn.net/article/details/133682882