Centos7.x升级最新版本openSSL、SSH(已验证)

  • 时间:
  • 浏览:
  • 来源:互联网

文章目录

    • 1、背景介绍、注意事项
    • 2、环境信息
    • 3、升级步骤(先升级openssl, 后升级openssh)
    • 4、故障处理

1、背景介绍、注意事项

本来打算安装Python3\pip3\Ansibe,但是过程中有些问题,包括ssl报错,索性把ssh\ssl先升级再安装Ansible。

另外一般升级SSH、SSL主要是为了安全漏洞修复,但升级会导致一些相关问题也请注意,比如升级SSL后会导致NTP服务故障,升级前需关闭NTP服务等。另外:

  • 检查firewalld、selinux是否关闭。
  • 升级前一定要对ssh进行备份。
  • 确保升级失败可以通过带外或其它方式连接(可以多开一个ssh连接或telnets可用)
  • 先测试后生产原则进行升级。

2、环境信息

OS:  CentOS Linux release 7.9.2009 (Core)
SSH:  OpenSSH_7.4p1
SSL:  OpenSSL 1.0.2k-fips 26 Jan 2017

3、升级步骤(先升级openssl, 后升级openssh)

注意:ssh对ssl、zlib等是有依赖关系的,自行查找readme文档。

###准备工作
yum install -y wget perl gcc libselinux-devel pam-devel zlib-devel openssl-devel

cd /opt && wget https://www.openssl.org/source/openssl-1.1.1l.tar.gz
cd /opt && wget https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/openssh-8.7p1.tar.gz

cd /opt; tar -zxvf openssl-1.1.1l.tar.gz 
cd /opt; tar -zxvf openssh-8.7p1.tar.gz

###安装openssl 1.1.1l
cd /opt/openssl-1.1.1l && ./config --prefix=/usr/ --openssldir=/etc/ssl shared zlib && make -j4 && make install
openssl version -a

###备份ssh
mv /etc/ssh /etc/ssh.bak.`date +%Y%m%d`
cp /usr/bin/ssh /usr/bin/ssh.bak.`date +%Y%m%d`
cp /usr/sbin/sshd /usr/sbin/sshd.bak.`date +%Y%m%d`

###安装ssh8.7
cd /opt/openssh-8.7p1
./configure --prefix=/usr --sysconfdir=/etc/ssh --with-md5-passwords --with-pam \
--with-zlib --with-tcp-wrappers --with-ssl-dir=/etc/ssl --without-hardening  \
&& make -j4 && make install

###授权
chmod 600 /etc/ssh/ssh_host_rsa_key /etc/ssh/ssh_host_ecdsa_key /etc/ssh/ssh_host_ed25519_key

###复制配置文件
cd /opt/openssh-8.7p1
cp -a contrib/redhat/sshd.init  /etc/init.d/sshd
cp -a contrib/redhat/sshd.pam /etc/pam.d/sshd.pam
chmod u+x /etc/init.d/sshd
mv /usr/lib/systemd/system/sshd.service /usr/lib/systemd/system/sshd.service.bak.`date +%Y%m%d`

###修改ssh配置
echo "PermitRootLogin yes">>/etc/ssh/sshd_config
echo "UseDNS no">>/etc/ssh/sshd_config

###设置开机自启
chkconfig --add sshd
chkconfig sshd on

###重启ssh服务
systemctl daemon-reload
systemctl restart sshd

###验证
ssh -V

4、故障处理

问题: centos7升级ssh后,ssh连接不稳定,时断时续。service sshd status查看服务状态为activating(start),查看/var/log/message里不断提示sshd.service start failed
原因: /usr/lib/systemd/system/sshd.service 与 systemd不兼容
解决办法

cd /usr/lib/systemd/system 
mv sshd.service sshd.service.bak  
systemctl daemon-reload   

#重启前执行,检查下配置有没有问题
sshd -t 
#正常后重启
systemctl restart sshd

本文链接http://metronic.net.cn/metronic/show-53479.html