Centos7/Redhat7升级OpenSSL和OpenSSH

系统默认安装的OpenSSL和OpenSSH版本低,导致各种安全漏洞。于是将OpenSSL升级至3.5.0版本,将OpenSSH升级至9.9p1版本。升级后如图所示:

首先下载包

1.打开Telnet防止升级失败无法远程服务器

2.升级OpenSSL

2.1解压openssl,并切换至包目录

tar xf openssl-3.5.0.tar.gz
cd openssl-3.5.0

2.2安装编译所需依赖

yum install perl-IPC-Cmd perl-Data-Dumper gcc gcc-c++ perl perl-devel -y

2.3预编译命令

./Configure --prefix=/usr/local/openssl/

2.4编译和编译安装命令

make && make install

2.5备份旧的OpenSSL,链接新OpenSSL的库文件

mv /usr/bin/openssl{,.bak}

ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl 
ln -s /usr/local/openssl/include/openssl /usr/include/openssl

2.6检查OpenSSL,看看依赖是否正常

ldd  /usr/bin/openssl

若有缺失项,如图所示:

则配置动态链接库:在/etc/ld.so.conf这个文件末尾添加如下两行。也可执行下面的命令。

echo "/usr/local/openssl/lib/" > /etc/ld.so.conf.d/openssl.conf
echo "/usr/local/openssl/lib64/" > /etc/ld.so.conf.d/openssl.conf

激活路径

ldconfig -v

再次检查如图所示:可以看到前面缺失的库已经装载到内存了,OpenSSL可以使用了

检查OpenSSL的版本,确认升级成功

openssl version

3.升级OpenSSH

3.1停止OpenSSH服务,并备份

停止

systemctl stop sshd

备份

mv /etc/ssh /etc/ssh.bak
mv /usr/sbin/sshd /usr/sbin/sshd.bak
mv /usr/bin/ssh /usr/bin/ssh.bak

3.2卸载原有openssh

rpm -qa | grep openssh
rpm -e openssh-clients-7.4p1-16.el7.x86_64 --nodeps
rpm -e openssh-server-7.4p1-16.el7.x86_64
rpm -e openssh-7.4p1-16.el7.x86_64
rpm -e openssh-debuginfo-7.4p1-16.el7.x86_64

也可以试试yum卸载:yum remove openssh
检查

rpm -qa | grep openssh

3.3安装所需工具

yum install -y pcre-devel  perl perl-Test-Simple zlib zlib-devel 

3.4编译安装openssh

tar -zxf openssh-9.9p1.tar.gz 
cd openssh-9.9p1/
./configure --prefix=/usr/local/openssh --with-ssl-dir=/usr/local/openssl --with-zlib
make -j 4
make install

3.5取消原有sshd启动方式并配置新版sshd.service

ls /usr/lib/systemd/system/ssh*
rm -f /usr/lib/systemd/system/ssh*
cp contrib/redhat/sshd.init /etc/init.d/sshd

3.6修改配置文件

vim /usr/local/openssh/etc/sshd_config
PermitRootLogin yes
PubkeyAuthentication yes

3.7复制sshd相关文件到新目录

mkdir /etc/ssh
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

3.8启动sshd服务并设置开机启动

systemctl daemon-reload
systemctl start sshd && systemctl enable sshd

3.9检查OpenSSL是否安装成功

ssh -V
posted @ 2025-05-12 17:39  是卡卡罗特啊  阅读(660)  评论(0)    收藏  举报