IT评测·应用市场-qidao123.com

标题: Linux OpenSSH最新版9.7p1升级操作详细教程 [打印本页]

作者: 何小豆儿在此    时间: 2024-7-19 03:48
标题: Linux OpenSSH最新版9.7p1升级操作详细教程
1.配景说明

openssh版本9.7p1之前的版本存在很多安全风险,等保验收不通过,需要升至最新的版本
2.升级目标

将openssh版本升至9.7p1
3.预备工作

3.1.环境评估

本次以测试服务器为例讲解,系统为Centos8.0 版本,升级前OpenSSH版本8.0p1,OpenSSL版本1.1.1k,案例仅供更新参考,其他系统及版本请自行测试。

3.2.备份现有配置

  1. cp -rf /etc/ssh /etc/ssh.bak
  2. cp -rf /usr/bin/openssl /usr/bin/openssl.bak
  3. cp -rf /etc/pam.d /etc/pam.d.bak
  4. cp -rf /usr/lib/systemd/system /system.bak
复制代码

3.3.TELNET安装配置

*特别留意:telnet必须安装且验证其他服务器可以通过telnet登录上去,否则升级完之后会出现root用户通过ssh登录不上去的环境,这是一个坑,请务必留意。
  1. #1.telnet安装
  2. yum install -y telnet telnet-server xinetd
  3. #2.启动telnet服务
  4. systemctl start xinetd && systemctl start telnet.socket
  5. #3.开放防火墙23端口
  6. firewall-cmd --zone=public --add-port=23/tcp --permanent
  7. #4.重新加载防火墙规则
  8. firewall-cmd --complete-reload
  9. #5.查询23端口放行情况
  10. firewall-cmd --query-port=23/tcp
  11. #6.开放telnet明文登录
  12. sed -i 's/^auth[[:space:]]\+required[[:space:]]\+pam_securetty.so/#&/' /etc/pam.d/remote
  13. #7.测试telnet登录
  14. telnet ip
  15. #8.加入开机启动
  16. systemctl enable telnet.socket
复制代码
备注:
执行步骤3时我这报了个“FirewallD is not running”的错误,体现防火墙未开启,正常开启防火墙,然后再执行步骤3即可(如果没步骤三没报错,直接执行步骤4即可)
  1. # 1.查看防火墙状态。Active为dead表示防火墙未开启
  2. systemctl status firewalld
  3. # 2.开启防火墙。执行命令没有任何提示,即开启成功
  4. systemctl start firewalld
  5. #3.查看防火墙状态。Active为显示running即已开启了
  6. systemctl status firewalld
  7. #4.如果需要关闭防火墙则运行
  8. systemctl stop firewalld
复制代码


4.升级步骤

4.1.依赖及编译环境安装

  1. yum install -y vim gcc gcc-c++ glibc make autoconf openssl openssl-devel pcre-devel pam-devel zlib-devel tcp_wrappers libedit-devel perl-IPC-Cmd wget tar lrzsz nano
复制代码


4.2.下载源码包

  1. cd /usr/local/src
  2. wget https://www.zlib.net/zlib-1.3.1.tar.gz
  3. wget https://www.openssl.org/source/openssl-3.2.1.tar.gz
  4. wget https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-9.7p1.tar.gz
复制代码

4.3.解压源码包

  1. cd /usr/local/src/
  2. tar -zxvf zlib-1.3.1.tar.gz
  3. tar -zxvf openssl-3.2.1.tar.gz
  4. tar -zxvf openssh-9.7p1.tar.gz
复制代码

4.4.安装Zlib

  1. #1.进入zlib-1.3.1目录
  2. cd /usr/local/src/zlib-1.3.1
  3. #2.配置
  4. ./configure --prefix=/usr/local/src/zlib
  5. #3.编译及安装(编译时间预计几分钟,视机器而定)
  6. make -j 4 && make test && make install
复制代码


4.5.安装OpenSSL

  1. #1.进入openssl-3.2.1目录
  2. cd /usr/local/src/openssl-3.2.1
  3. #2.配置
  4. ./config --prefix=/usr/local/src/openssl
  5. #3.编译及安装(编译时间预计几分钟,视机器而定)
  6. make -j 4 && make install
  7. #4.配置
  8. mv /usr/bin/openssl /usr/bin/oldopenssl
  9. ln -s /usr/local/src/openssl/bin/openssl /usr/bin/openssl
  10. ln -s /usr/local/src/openssl/lib64/libssl.so.3 /usr/lib64/libssl.so.3
  11. ln -s /usr/local/src/openssl/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3
  12. #5.更新动态库
  13. echo "/usr/local/src/openssl/lib64" >> /etc/ld.so.conf
  14. ldconfig
  15. #6.查看更新后的版本
  16. openssl version -v
复制代码


4.6.安装OpenSSH

4.6.1.老版本OpenSSH卸载

  1. #1.卸载openssh8.0p1
  2. yum remove -y openssh
  3. #2.清理残余文件
  4. rm -rf /etc/ssh/*
复制代码

4.6.2.OpenSSH安装

  1. #1.进入openssh-9.7p1目录
  2. cd /usr/local/src/openssh-9.7p1
  3. #2.配置
  4. ./configure --prefix=/usr/local/src/ssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/src/openssl --with-zlib=/usr/local/src/zlib
  5. #3.编译及安装
  6. make -j 4 && make install
  7. #4.查看目录版本
  8. /usr/local/src/ssh/bin/ssh -V
  9. #5.复制新ssh文件
  10. cp -rf /usr/local/src/openssh-9.7p1/contrib/redhat/sshd.init /etc/init.d/sshd
  11. cp -rf /usr/local/src/openssh-9.7p1/contrib/redhat/sshd.pam /etc/pam.d/sshd
  12. cp -rf /usr/local/src/ssh/sbin/sshd /usr/sbin/sshd
  13. cp -rf /usr/local/src/ssh/bin/ssh /usr/bin/ssh
  14. cp -rf /usr/local/src/ssh/bin/ssh-keygen /usr/bin/ssh-keygen
  15. #6.允许root登录
  16. echo 'PermitRootLogin yes' >> /etc/ssh/sshd_config
  17. echo 'PasswordAuthentication yes' >> /etc/ssh/sshd_config
  18. #重启sshd服务
  19. /etc/init.d/sshd restart
  20. #查看服务运行状态
  21. /etc/init.d/sshd status
  22. #添加开机启动
  23. chkconfig --add sshd
  24. #查看升级后ssh版本
  25. ssh -V
复制代码




4.6.3.验证SSH服务

  1. #任意终端工具测试验证(例如windows)
  2. ssh root@服务器IP
复制代码
可以看到OpenSSH已升级至9.7p1版本 OpenSSL已升级至3.2.1版本,
4.6.4.备份的配置还原

  1. #备份还原
  2. cp -rf /etc/ssh.bak /etc/ssh
  3. cp -rf /usr/bin/openssl.bak /usr/bin/openssl
  4. cp -rf /etc/pam.d.bak /etc/pam.d
  5. cp -rf /system.bak /usr/lib/systemd/system
  6. #重启sshd服务
  7. cd /usr/local/src/openssh-9.7p1
  8. /etc/init.d/sshd restart
  9. /etc/init.d/sshd status
复制代码

4.6.5.关闭及卸载telnet服务

备注:很多服务器都是长途操作无法现场,安装telnet目的是防止SSH升级失败造成无法登录环境,telnet安全性不好,最后需关闭或卸载服务。(没有特殊要求也可以不卸载)
  1. #关闭和卸载telnet
  2. #1.查看是否安装telnet
  3. rpm -qa | grep telnet
  4. #2.如果系统安装了Telnet服务会显示出相关的包名。接着,输入以下命令来停止并禁用Telnet服务
  5. systemctl stop telnet.socket
  6. systemctl disable telnet.socket
  7. #3.输入以下命令来卸载Telnet服务
  8. yum remove telnet-server telnet
复制代码

至此升级全部完成!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com (https://dis.qidao123.com/) Powered by Discuz! X3.4