Linux OpenSSH-9.0p1最新版升级步骤详细(附脚本)
一、OpenSSH 介绍
OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。
二、为什么要升级?
由于OpenSSH低版本中存在高危漏洞,导致安全技术漏洞扫描报告中提示高危漏洞,所以本人把十几台云服务器全部升级,做了以下笔记,供大家一起指导使用。注意:升级前一定要给服务器做个快照,防止升级失败恢复。
三、开始升级
1.开启 telnet 服务,临时关闭防火墙
由于一般登录方式为ssh,所以需要安装其他登录方式,比如Telnet服务,也可以防止升级失败。文章来源:https://www.toymoban.com/news/detail-525763.html
#安装telnet
yum install xinetd telnet-server telnet -y
#备份文件securetty
mv /etc/securetty.bak
#配置telnet登录的终端类型,增加一些pts终端
pts=$'pts/0\npts/1\npts/2\npts/3' && echo "$pts" >> /etc/securetty
#开启服务
systemctl start telnet.socket
service xinetd start
#关闭防火墙(或者开启23端口)
systemctl stop firewalld.service
systemctl disable firewalld.service
2.下载所有需要的包
将前三个工具包上传到/usr/local目录,以下是下载地址和安装脚本文章来源地址https://www.toymoban.com/news/detail-525763.html
1. ## ssl ##
https://www.openssl.org/source/openssl-3.0.5.tar.gz
2. ## ssh ##
https://mirrors.aliyun.com/pub/OpenBSD/OpenSSH/portable/openssh-9.0p1.tar.gz
3. ## zlib ##
http://zlib.net/zlib-1.2.12.tar.gz
4. ## 其他工具 ##
yum install -y perl-CPAN
yum -y install pam-devel
5. ## perl-CPAN ##
yum install distro-sync rpm-build zlib-devel openssl-devel gcc perl-devel pam-devel xmkmf libXt-devel gtk2-devel make -y
6. ## perl-CPAN ##
perl -MCPAN -e shell
7. ## install IPC/Cmd.pm ##
install IPC/Cmd.pm
8. ## ##
配置zlib
1. ## 解压 ##
tar -xvf zlib-1.2.12.tar.gz
2. ## 进入目录 ##
cd zlib-1.2.12
3. ## 编译前环境配置 ##
./configure
4. ## make编译 ##
make
5. ## make install编译安装 ##
make install
配置openSSL
1. ## 解压 ##
tar -xvf openssl-3.0.5.tar.gz
2. ## 进入目录 ##
cd openssl-3.0.5
3. ## 编译前环境配置 ##
./config --prefix=/usr/local/openssl
./config -t
4. ## make编译 ##
make
5. ## make install编译安装 ##
make install
6. ## 检查函数库 ##
ldd /usr/local/openssl/bin/openssl
7. ## 添加所缺函数库 ##
echo "/usr/local/openssl/lib" >>/etc/ld.so.conf
8. ## 更新函数库 ##
ldconfig -v
9. ## 将旧版本openssl移除 ##
mv /usr/bin/openssl /usr/bin/openssl_old_bak
10. ## 将新版本openssl软链接到/usr/bin/目录下 ##
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
11. ## 将libssl.so.3软链接到/usr/bin/目录下 ##
ln -sf /usr/local/openssl/lib64/libssl.so.3 /usr/lib/libssl.so.3
12. ## 将libcrypto.so3软链接到/usr/bin/目录下 ##
ln -sf /usr/local/openssl/lib64/libcrypto.so.3 /usr/lib/libcrypto.so.3
13. ## 查看openssl所在路径 ##
which openssl
14. ## 检查版本 ##
openssl version -a
配置openSSH
1. ## 解压 ##
tar -xvf openssh-9.0p1.tar.gz
2. ## 进入目录 ##
cd openssh-9.0p1
3. ## 备份旧版本 ##
mv /etc/ssh /etc/ssh_bak
4. ## 编译前环境配置 ##
./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
5. ## make编译 ##
make
6. ## make install编译安装 ##
make install
7. ## 修改/etc/ssh/sshd_config配置,允许root用户SSH登录,因为openssh-8.2p1配置中无此选项 ##
echo "PermitRootLogin yes" >> /etc/ssh/sshd_config
8. ## 备份旧版本sshd ##
mv /usr/sbin/sshd /usr/sbin/sshd_bak
9. ## 拷贝新版本sshd到/usr/sbin/ ##
cp -arf /usr/local/openssh/sbin/sshd /usr/sbin/sshd
10. ## 卸载原有openssh ##
for i in $(rpm -qa |grep openssh);do rpm -e $i --nodeps ;done
11. ## 卸载后openssh配置文件会变成rpmsave后缀,还原到原来目录下 ##
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
12. ## 替换新版本openssh相关命令 ##
cp -arf /usr/local/openssh/bin/* /usr/bin/
cp -arf /usr/local/openssh/sbin/sshd /usr/sbin/sshd
13. ## 拷贝启动脚本 ##
cp /opt/openssh-9.0p1/contrib/redhat/sshd.init /etc/init.d/sshd
14. ## 给启动脚本添加执行权限 ##
chmod +x /etc/init.d/sshd
15. ## 拷贝sshd.pam ##
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
16. ## 重启sshd服务并设为开机自启动 ##
systemctl daemon-reload
service sshd restart
chkconfig --add sshd
chkconfig --level 2345 sshd on
chkconfig --list
到了这里,关于centos7.6云服务器安全高危漏洞之Openssh的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!