猿创征文|centos7升级openssh服务(再也不怕漏扫啦)

简介: 猿创征文|centos7升级openssh服务(再也不怕漏扫啦)

openssh服务是一个基础服务,这个干什么用的不用多说,为了安全(有些安全部门喜欢这个,经常扫一扫漏洞,然后说你的ssh有漏洞),因此,可能需要升级这个服务,话不多说,直接开干。

升级方式为源码编译安装,openssh的强依赖是openssl,而OpenSSL又是一个非常基础的服务,因此,两者都要升级。

一,

源码包下载

openssh下载地址:openssh-portable安装包下载_开源镜像站-阿里云 openssh计划安装的版本是8.6p

OpenSSL下载地址:/source/old/1.1.1/index.html OpenSSL计划安装的版本是1.1.1p

先安装OpenSSL

这个是sshd服务的一个强依赖,需要注意的是,仅仅是安装新版OpenSSL,lib库做一个动态链接,而旧版OpenSSL是不删除的哦。

yum group install 'Development Tools' -y
yum install -y zlib-devel openssl-devel pam-devel libselinux-devel zlib-devel gcc-c++ gcc
mv openssl-1.1.1p.tar.gz /opt/ && cd /opt
tar zxf openssl-1.1.1p.tar.gz
cd openssl-1.1.1p
#开始预编译
./config --prefix=/usr/local/openssl
#看看有么有错误,如果非零,要排错在重新来过,如果是零下一步。
###输出如下:
[root@EULER1 openssl-1.1.1q]# ./config --prefix=/usr/local/openssl
Operating system: x86_64-whatever-linux2
Configuring OpenSSL version 1.1.1q (0x1010111fL) for linux-x86_64
Using os-specific seed configuration
Creating configdata.pm
Creating Makefile
**********************************************************************
***                                                                ***
***   OpenSSL has been successfully configured                     ***
***                                                                ***
***   If you encounter a problem while building, please open an    ***
***   issue on GitHub <https://github.com/openssl/openssl/issues>  ***
***   and include the output from the following command:           ***
***                                                                ***
***       perl configdata.pm --dump                                ***
***                                                                ***
***   (If you are new to OpenSSL, you might want to consult the    ***
***   'Troubleshooting' section in the INSTALL file first)         ***
***                                                                ***
**********************************************************************
[root@EULER1 openssl-1.1.1q]# echo $?
echo $?
#make是正式编译,这一个步骤比较耗费时间,大概十来分钟
make
echo $?
#正式安装
make install && echo $?
#添加所缺函数库
echo "/usr/local/openssl/lib" >>/etc/ld.so.conf
#检查函数库
ldd /usr/local/openssl/bin/openssl
#使之生效
ldconfig  -v
#备份一哈
mv /usr/bin/openssl /usr/bin/openssl_old_bak
#强制链接一哈
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl

测试一哈:

ldd检查一定要这样才表示ssl正常哦

[root@slave1 openssl-1.1.1p]# ldd /usr/local/openssl/bin/openssl
  linux-vdso.so.1 =>  (0x00007ffc2b4db000)
  libssl.so.1.1 => /usr/local/openssl/lib/libssl.so.1.1 (0x00007fb11ab4d000)
  libcrypto.so.1.1 => /usr/local/openssl/lib/libcrypto.so.1.1 (0x00007fb11a663000)
  libdl.so.2 => /lib64/libdl.so.2 (0x00007fb11a45f000)
  libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fb11a243000)
  libc.so.6 => /lib64/libc.so.6 (0x00007fb119e80000)
  /lib64/ld-linux-x86-64.so.2 (0x00007fb11ade0000)
[root@master bin]# openssl version -a
OpenSSL 1.1.1p  21 Jun 2022
built on: Wed Aug 31 13:09:52 2022 UTC
platform: linux-x86_64
options:  bn(64,64) rc4(16x,int) des(int) idea(int) blowfish(ptr) 
compiler: gcc -fPIC -pthread -m64 -Wa,--noexecstack -Wall -O3 -DOPENSSL_USE_NODELETE -DL_ENDIAN -DOPENSSL_PIC -DOPENSSL_CPUID_OBJ -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DKECCAK1600_ASM -DRC4_ASM -DMD5_ASM -DAESNI_ASM -DVPAES_ASM -DGHASH_ASM -DECP_NISTZ256_ASM -DX25519_ASM -DPOLY1305_ASM -DNDEBUG
OPENSSLDIR: "/usr/local/openssl/ssl"
ENGINESDIR: "/usr/local/openssl/lib/engines-1.1"

解释一哈为什么不删除旧版本的OpenSSL:因为,现在仅仅是让一会要安装的ssh能找到这个新安装的OpenSSL就可以了,旧版还是有用处的,并且这个只是强依赖不是服务,没有安全方面的问题。

三,

安装新版sshd

前面安装OpenSSL已经把编译环境安装好了,因此,直接开始安装就可以了:

mv openssh-8.6p1.tar.gz /opt && cd /opt
tar zxf openssh-8.6p1.tar.gz
cd openssh-8.6p1
mv /etc/ssh /etc/ssh_bak
#这里指定了ssl,固定了安装路径,还是预编译,这一步比较耗费时间,大概3分钟
./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/openssl --with-md5-passwords --mandir=/usr/share/man --with-zlib=/usr/local/zlib --without-hardening
echo $?
#编译安装,这一步也比较耗费时间。大概3分钟
make && make install
echo $?
#旧版备份
mv /usr/sbin/sshd /usr/sbin/sshd_bak
mv /etc/sysconfig/sshd /opt
mv  /usr/lib/systemd/system/sshd.service  /opt
#新版放入环境变量
cp -arf /usr/local/openssh/sbin/sshd /usr/sbin/sshd
#彻底删除旧版
for i in $(rpm -qa |grep openssh);do rpm -e $i --nodeps ;done
#恢复删除旧版后,跟随删除的配置文件
mv /etc/ssh/sshd_config.rpmsave /etc/ssh/sshd_config
mv /etc/ssh/ssh_config.rpmsave /etc/ssh/ssh_config
mv /etc/ssh/moduli.rpmsave /etc/ssh/moduli
#新版可执行程序放入环境变量
cp -arf /usr/local/openssh/bin/* /usr/bin/
cp -arf /usr/local/openssh/sbin/sshd /usr/sbin/sshd
#启动脚本
cp /opt/openssh-8.6p1/contrib/redhat/sshd.init /etc/init.d/sshd
chmod +x /etc/init.d/sshd
cp -a /opt/openssh-8.6p1/contrib/redhat/sshd.pam /etc/pam.d/
systemctl daemon-reload
service sshd restart
chkconfig --add sshd
chkconfig --level 2345 sshd on
chkconfig --list

查看一哈版本号,完美升级:

[root@master bin]# ssh -V
OpenSSH_8.6p1, OpenSSL 1.1.1p  21 Jun 2022

需要说明一哈,这个ssh升级是将原有的旧版完全清除的哦。

此时有一个新的问题出现了,比如,我升级的这个服务器主机名称是master,IP地址是192.168.217.16,在另一个主机名称为slave1,IP地址是192.168.217.17的服务器上ssh连接master,报错了:

[root@slave1 ~]# ssh master
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@       WARNING: POSSIBLE DNS SPOOFING DETECTED!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
The ECDSA host key for master has changed,
and the key for the corresponding IP address 192.168.217.16
is unchanged. This could either mean that
DNS SPOOFING is happening or the IP address for the host
and its host key have changed at the same time.
Offending key for IP in /root/.ssh/known_hosts:7
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:mPvQ5bgLEFPP0OMZFFJK7Sq+zgzXmm/63vWDTur9QWY.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /root/.ssh/known_hosts:4
ECDSA host key for master has changed and you have requested strict checking.
Host key verification failed.

这么一大串并没什么,说了很多,总结一句话就是原来有做免密,现在因为sshd升级了,需要更新一哈原来的密钥,怎么更新呢?

在slave1这个服务器上执行清除密钥命令就可以了:

[root@slave1 ~]# ssh-keygen -R master
# Host master found: line 4
/root/.ssh/known_hosts updated.
Original contents retained as /root/.ssh/known_hosts.old

现在在ssh连接就没太多的问题了:

[root@slave1 ~]# ssh master
The authenticity of host 'master (192.168.217.16)' can't be established.
ECDSA key fingerprint is SHA256:mPvQ5bgLEFPP0OMZFFJK7Sq+zgzXmm/63vWDTur9QWY.
ECDSA key fingerprint is MD5:67:b8:a0:bf:44:b1:28:d4:16:59:7b:8a:e3:9e:77:43.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'master' (ECDSA) to the list of known hosts.
Last login: Wed Aug 31 18:57:17 2022 from 192.168.217.1

最后多说一句,如果需要root用户能够登录ssh,那么,需要在配置文件中开启

echo "PermitRootLogin yes">>/etc/ssh/sshd_config
service sshd restart

scp 等等相关命令也是可以正常使用的,本次升级opessh成功啦。




可能会出现的问题:

xshell5连接原服务器报错,如下图

这个时候就不用太犟了,xshell一般升级到6或者7都可以解决的,必须升级。

目录
相关文章
|
7月前
|
Linux 网络安全 数据安全/隐私保护
centos开启samba服务
通过以上步骤,您已成功在CentOS系统上安装、配置并启动了Samba服务,并且可以通过Windows或Linux客户端访问共享目录。Samba为跨平台文件共享提供了强大的支持,配置灵活且易于管理。无论是简单的家庭网络共享还是企业级文件服务器,Samba都能胜任。通过合理的配置和访问控制,您可以确保文件共享的安全性和便利性。
535 74
|
6月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
435 25
|
12月前
|
Linux 网络安全 Apache
CentOS 7.2配置Apache服务httpd(上)
CentOS 7.2配置Apache服务httpd(上)
702 1
|
中间件 Linux vr&ar
Centos7升级Glibc
Centos7升级Glibc
1567 6
|
Linux 数据安全/隐私保护 Perl
CentOS7中升级OpenSSL详细教程
这篇文章提供了在CentOS 7系统中升级OpenSSL到3.2版本的详细步骤,包括备份现有配置、安装依赖、下载安装新版本以及验证安装结果。
2602 3
|
7月前
|
存储 Linux 网络安全
如何从CentOS7升级到8?CentOS8最新安装教程
从CentOS 7升级到8只需三步:清理系统、更换软件包及存储库、安装新内核与发布版本。首先确保系统最新并清理冗余包,接着替换基础系统包为CentOS 8版本,最后通过DNF工具完成内核更新与系统同步。整个过程需在终端执行,建议升级前备份VPS快照以防数据丢失。此方法可避免重装系统导致的数据清除问题,实现平滑升级。
955 6
|
7月前
|
中间件 Linux vr&ar
Centos7升级Glibc
centos7升级glic问题
1477 0
|
12月前
|
Linux 编译器 测试技术
【C++】CentOS环境搭建-快速升级G++版本
通过上述任一方法,您都可以在CentOS环境中高效地升级G++至所需的最新版本,进而利用C++的新特性,提升开发效率和代码质量。
552 64
|
12月前
|
Linux 编译器 测试技术
【C++】CentOS环境搭建-快速升级G++版本
通过上述任一方法,您都可以在CentOS环境中高效地升级G++至所需的最新版本,进而利用C++的新特性,提升开发效率和代码质量。
668 63
|
10月前
|
运维 监控 安全
CentOS 7系统 OpenSSH和OpenSSL版本升级指南
本文详细介绍如何在CentOS 7系统上升级OpenSSH和OpenSSL至最新稳定版本(OpenSSH 9.6p1和OpenSSL 1.1.1w),解决多个已知安全漏洞(如CVE-2023-51767等)。涵盖环境说明、现存漏洞、升级准备、具体步骤及故障排查,确保服务器安全。建议先在测试环境验证,再应用于生产环境。
2942 7