这期内容当中小编将会给大家带来有关Linux操作系统如何升级openssh,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
导语
Redhat企业级系统的6.9版自带SSH版本为OpenSSH_5.3p1, 基于审计和安全性需求,建议将其升级到最新的OpenSSH版本,当前官网最新版本为7.4p1. 本文档将详细介绍OpenSSH升级的完整步骤。需要说明的是,升级过程中虽然涉及zlib、openssl和openssh的卸载,但是并不会导致当前的ssh远程连接会话断开,因此是可以将整个升级过程写成自动化脚本以进行自动批量部署的。
步骤
1
、准备工作
1.1
、下载相关软件包
OpenSSH需要依赖ZLIB和OpenSSL,因此需要从官网下载三者的源码包。需要注意的是:OpenSSH最新版7.4p1依赖的OpenSSL版本为1.0.2k,而不是其最新版1.1.0e(使用此版会升级失败),ZLIB可以使用最新版1.2.11,同时redhat6.9自带的zlib版本为1.2.3,也可不进行升级(
建议zlib还是使用原有版本1.2.3,升级正常且不会有其他各种小问题
)。 三者源码下载地址:http://www.zlib.net/http://www.openssl.org/http://www.openssh.org/
1.2
、查看系统当前软件版本
# rpm -q zlib# openssl version# ssh -V
1.3
、配置本地yum源
因安装相关工具和编译源码需要先安装部分软件包,因此需要先配置好本地yum源(如有远程yum源更好),配置方法如下:
A
、将操作系统镜像上传到服务器中,进行挂载
# mount -o loop /soft/iso/OEL6.9.iso /yum #此处挂载目录可自行指定如果需要在系统启动时自动挂载,可以把上面这个命令加入/etc/rc.d/rc.local文件中
B
、配置yum源文件
# cd /etc/yum.repos.d# rm -f * #删除当前所有yum源文件# gedit local.repo #加入如下内容[Redhat6.9]n开发云主机域名ame=rhel6.9baseurl=file:///yumenabled=1gpgcheck=0
1.4
、安装编译所需工具包
# yum -y install gcc pam-devel
zlib-devel
活动:慈云数据爆款香港服务器,CTG+CN2高速带宽、快速稳定、平均延迟10+ms 速度快,免备案,每月仅需19元!! 点击查看
1.5
关闭iptable和selinux(注意,必须关闭,否则升级后重启操作系统后不能使用xftp和secureCRT)
service iptables
stop #关闭防火墙chkconfig iptables
off #设置防火墙开机不启动chkconfig xinetd on
#设置telnet服务开机启动getenforce
#查看selinux状态
setenforce 0
#设置selinux为关闭
为防止OpenSSH升级后通过远程终端无法连接机器,建议将其关闭,方法如下:vi /etc/selinux/config
将SELINUX=enforcing修改为SELINUX=disabled
2
、正式升级
2.1
、升级OpenSSL
官方升级文档:http://www.linuxfromscratch.org/blfs/view/cvs/postlfs/openssl.html
A
、备份当前openssl
# find / -name openssl/usr/lib64/openssl/usr/bin/openssl/etc/pki/ca-trust/extracted/openssl# mv /usr/lib64/openssl /usr/lib64/openssl.old# mv /usr/bin/openssl /usr/bin/openssl.old# mv /etc/pki/ca-trust/extracted/openssl /etc/pki/ca-trust/extracted/openssl.old如下两个库文件必须先备份,因系统内部分工具(如yum、wget等)依赖此库,而新版OpenSSL不包含这两个库# cp
/usr/lib64/libcrypto.so.10 /usr/lib64/libcrypto.so.10.old# cp
/usr/lib64/libssl.so.10 /usr/lib64/libssl.so.10.old
B
、卸载当前openssl
# rpm -qa | grep opensslopenssl-1.0.1e-42.el6.x86_64# rpm -e –nodeps
openssl-1.0.1e-42.el6.x86_64# rpm -qa | grep openssl
或者直接执行此命令:rpm -qa |grep openssl|xargs -i rpm -e –nodeps
{}
C
、解压openssl_1.0.2k源码并编译安装
# tar -zxvf openssl-1.0.2k.tar.gz# cd openssl-1.0.2k# ./config –prefix=/usr
–openssldir=/etc/ssl –shared zlib #必须加上–shared,否则编译时会找不到新安装的openssl的库而报错# make# make test #必须执行这一步结果为pass才能继续,否则即使安装完成,ssh也无法使用# make install# openssl version -a #查看是否升级成功
D
、恢复共享库
由于OpenSSL_1.0.2k不提供libcrypto.so.10和libssl.so.10这两个库,而yum、wget等工具又依赖此库,因此需要将先前备份的这两个库进行恢复,其他的可视情况考虑是否恢复。
(如果没有安装最新的zlib这个步骤可以跳过)
# mv /usr/lib64/libcrypto.so.10.old /usr/lib64/libcrypto.so.10# mv /usr/lib64/libssl.so.10.old /usr/lib64/libssl.so.10
2.2
、升级OpenSSH
官方升级文档:http://www.linuxfromscratch.org/blfs/view/svn/postlfs/openssh.html
A
、备份当前openssh
# mv /etc/ssh /etc/ssh.old
B
、卸载当前openssh
# rpm -qa | grep openssh开发云主机域名openssh-clients-5.3p1-111.el6.x86_64openssh-server-5.3p1-111.el6.x86_64openssh-5.3p1-111.el6.x86_64openssh-askpass-5.3p1-111.el6.x86_64# rpm -e –nodeps
openssh-5.3p1-111.el6.x86_64# rpm -e –nodeps
openssh-server-5.3p1-111.el6.x86_64# rpm -e –nodeps openssh-clients-5.3p1-111.el6.x86_64# rpm -e –nodeps
openssh-askpass-5.3p1-111.el6.x86_64# rpm -qa | grep openssh
或者直接执行此命令:
rpm -qa
|grep openssh|xargs -i rpm -e –nodeps {}
C
、openssh安装前环境配置
# install -v -m700 -d /var/lib/sshd# chown -v root:sys /var/lib/sshd# groupadd -g 50 sshd# useradd -c ‘sshd PrivSep’ -d /var/lib/sshd -g sshd -s
/bin/false -u 50 sshd
D
、解压openssh_7.4p1源码并编译安装
# tar -zxvf openssh-7.4p1.tar.gz# cd openssh-7.4p开发云主机域名1# ./configure –prefix=/usr –sysconfdir=/etc/ssh –with-md5-passwords –with-pam –with-zlib –with-openssl-includes=/usr
–with-privsep-path=/var/lib/sshd# make# make install
E
、openssh安装后环境配置(本步骤目前看可以直接跳过,没有影响)
# 在openssh编译目录执行如下命令
# install -v -m 755 contrib/ssh-copy-id /usr/bin# install -v -m 644 contrib/ssh-copy-id.1 /usr/share/man/man1# install -v -m 755 -d
/usr/share/doc/openssh-7.4p1# install -v -m 644 INSTALL LICENCE OVERVIEW README*
/usr/share/doc/openssh-7.4p1
# ssh -V #验证是否升级成功
F
、启用OpenSSH服务
# 在openssh编译目录执行如下目录
# mv /etc/init.d/sshd /etc/init.d/sshd.old# cp -p contrib/redhat/sshd.init
/etc/init.d/sshd# chmod +x /etc/init.d/sshd备份配置文件# mv /etc/ssh/ssh_config /etc/ssh/ssh_config_old# mv /etc/ssh/sshd_config /etc/ssh/sshd_config_old# cp ssh_config /etc/ssh/ssh_config# cp sshd_config /etc/ssh/sshd_config修改配置文件# gedit /etc/ssh/sshd_config加入以下内容PermitRootLogin yes设置和启动sshd服务# chkconfig –add sshd# chkconfig sshd on# chkconfig –list sshd# service sshd restart
注意:如果升级操作一直是在ssh远程会话中进行的,上述sshd服务重启命令可能导致会话断开并无法使用ssh再行登入(即ssh未能成功重启),此时需要通过telnet登入再执行sshd服务重启命令。
3
、善后工作
新开启远程终端以ssh [ip]登录系统,确认一切正常升级成功后,只需关闭telnet服务以保证系统安全性即可。# mv /etc/securetty.old
/etc/securetty# chkconfig xinetd off# service xinetd stop如有必要,可重新开启防火墙# service iptables start# chkconfig iptables on如需还原之前的ssh配置信息,可直接删除升级后的配置信息,恢复备份。# rm -rf /etc/ssh# mv /etc/ssh.old /etc/ssh上述就是小编为大家分享的Linux操作系统如何升级openssh了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注开发云行业资讯频道。
本文从转载,原作者保留一切权利,若侵权请联系删除。
《Linux操作系统如何升级openssh》来自互联网同行内容,若有侵权,请联系我们删除!
还没有评论,来说两句吧...