linux 升级openssh详细教程

1.系统环境


2.记录过程

1:找一台没有系统的机器 操作一遍。记录过程,

2:系统机器打补丁之前,最好 备份 系统和数据库到 移动硬盘。 

3:开始打补丁过程

打补丁过程

步骤一:先安装telnet ,防止 打补丁失败。

下载 : telnet-server-0.17-48.el6.x86_64.rpm      telnet-0.17-48.el6.x86_64.rpm    

下载地址:http://vault.centos.org/6.3/os/x86_64/packages      

步骤二:备份原有的openssh

步骤三:安装openssh的依赖(zlib,openssl)

zlib-1.2.11.tar.gz  

官方下载地址: http://www.zlib.net/

https://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz 

openssl-1.0.2o.tar.gz  

官方下载地址:https://github.com/openssl/openssl/releases

 [https://www.openssl.org/source/](https://www.openssl.org/source/)

wget https://github.com/openssl/openssl/archive/OpenSSL_1_0_2q.tar.gz

openssh-7.7p1.tar.gz   

官方下载地址: https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/

步骤四:make安装


3.安装

3.1 telnet安装过程

下载地址 :http://vault.centos.org/6.3/os/x86_64/Packages/    #6.3表示系统版本号

telnet-server-0.17-48.el6.x86_64.rpm

telnet-0.17-48.el6.x86_64.rpm

xinetd-2.3.14-39.el6_4.x86_64.rpm

执行如下:

查看telnet server是否安装

rpm -qa | grep telnet

步骤一:rpm -ivh telnet-0.17-48.el6.x86_64.rpm

步骤二:rpm -ivh xinetd-2.3.14-39.el6_4.x86_64.rpm

步骤三:rpm -ivh telnet-server-0.17-48.el6.x86_64.rpm

步骤四:service xinetd start

步骤五:netstat -tnl |grep 23 (如果无输出说明未正常启动,则步骤六;否则整个安装过程完成

步骤六:修改/etc/xinetd.d/telnet 文件,将disable=yes修改为disable=no

步骤七:service xinetd restart

步骤八:查看telnet server是否安装

rpm -qa | grep telnet

步骤九,开启外网访问端口

Linux 开启允许外网访问端口

LINUX通过下面的命令可以开启允许对外访问的网络端口:

/sbin/iptables -I INPUT -p tcp --dport 23 -j ACCEPT #开启23端口

/etc/rc.d/init.d/iptables save #保存配置

/etc/rc.d/init.d/iptables restart #重启服务

查看端口是否已经开放

/etc/init.d/iptables status



telnet 127.0.0.1 能正常登录即成功


3.2 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 | grepopenssl

openssl-1.0.1e-42.el6.x86_64


rpm -e --nodeps openssl-1.0.1e-42.el6.x86_64

rpm -qa | grepopenssl

C、解压openssl_1.0.2k源码并编译安装

tar-zxvf openssl-1.0.2q.tar.gz

cdcd openssl-OpenSSL_1_0_2q

./config --prefix=/usr --openssldir=/etc/ssl --shared zlib #必须加上--shared,否则编译时会找不到新安装的openssl的库而报错

make

maketest #必须执行这一步结果为pass才能继续,否则即使安装完成,ssh也无法使用

make install

opensslversion -a                  #查看是否升级成功


D、恢复共享库

 由于OpenSSL_1.0.2k不提供libcrypto.so.10和libssl.so.10这两个库,而yum、wget等工具又依赖此库,因此需要将先前备份的这两个库进行恢复,其他的可视情况考虑是否恢复。

mv  /usr/lib64/libcrypto.so.10.old  /usr/lib64/libcrypto.so.10

mv /usr/lib64/libssl.so.10.old /usr/lib64/libssl.so.10



3.3 zlib安装过程

 A、解压zlib_1.2.11源码并编译

tar -zxvf zlib-1.2.11.tar.gz

cd zlib-1.2.11

./configure --prefix=/usr

make


B、卸载当前zlib


A 注意:此步骤必须在步骤A执行完毕后再执行,否则先卸载zlib后,/lib64/目录下的zlib相关库文件会被删除,步骤A编译zlib会失败。(补救措施:从其他相同系统的服务器上复制/lib64、/usr/lib和/usr/lib64目录下的libcrypto.so.10、libssl.so.10、libz.so.1、libz.so.1.2.3四个文件到相应目录即可。可通过whereis、locate或find命令找到这些文件的位置)

rpm-e --nodeps zlib

 C、安装之前编译好的zlib

在zlib编译目录执行如下命令

make install

D、共享库注册

 zlib安装完成后,会在/usr/lib目录中生产zlib相关库文件,需要将这些共享库文件注册到系统中。

echo '/usr/lib' >> /etc/ld.so.conf

ldconfig                    #更新共享库cache

或者采用如下方式也可:

ln-s  /usr/lib/libz.so.1 libz.so.1.2.11

ln-s  /usr/lib/libz.so libz.so.1.2.11

ln-s  /usr/lib/libz.so.1 /lib/libz.so.1

ldconfig



3.4 Pam-devel安装过程

查看pam版本

rpm –qa | grep pam

出现:configure: error: PAM headers not found 错误,需要安装pam-devel的rpm包

wget http://vault.centos.org/6.5/os/x86_64/Packages/pam-devel-1.1.1-17.el6.x86_64.rpm

rpm -ivh pam-devel-1.1.1-17.el6.x86_64.rpm --test

rpm -ivh pam-devel-1.1.1-17.el6.x86_64.rpm


3.5 openssh安装过程

https://www.cnblogs.com/xshrim/p/6472679.html

查看系统当前软件版本

# rpm-q zlib

# opensslversion

# ssh-V


升级OpenSSH

官方升级文档:http://www.linuxfromscratch.org/blfs/view/svn/postlfs/openssh.html


备份当前openssh

# mv /etc/ssh /etc/ssh.old


卸载当前openssh


# rpm -qa | grep openssh

openssh-clients-5.3p1-111.el6.x86_64

openssh-server-5.3p1-111.el6.x86_64

openssh-5.3p1-111.el6.x86_64

openssh-askpass-5.3p1-111.el6.x86_64


执行以下命令

rpm -e --nodeps openssh-5.3p1-94.el6.x86_64

 rpm -e --nodeps openssh-server-5.3p1-94.el6.x86_64

 rpm -e --nodeps openssh-clients-5.3p1-94.el6.x86_64

 rpm -e --nodeps openssh-askpass-5.3p1-94.el6.x86_64

 rpm -qa | grep openssh


执行以下命令

tar -zxvf openssh-7.7p1.tar.gz

cd openssh-7.7p1

./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



openssh安装后环境配置

# 在openssh编译目录执行如下命令

#install-v -m755    contrib/ssh-copy-id/usr/bin

# install-v -m644    contrib/ssh-copy-id.1 /usr/share/man/man1

# install -v -m755 -d /usr/share/doc/openssh-7.7p1

# install-v -m644    INSTALL LICENCE OVERVIEW README* /usr/share/doc/openssh-7.7p1

#

ssh-V              #验证是否升级成功


启用OpenSSH服务

# 在openssh编译目录执行如下目录

#echo 'X11Forwarding yes' >> /etc/ssh/sshd_config

# echo "PermitRootLogin yes" >> /etc/ssh/sshd_config   #允许root用户通过ssh登录

# cp-p contrib/redhat/sshd.init /etc/init.d/sshd

# chmod+x /etc/init.d/sshd

# chkconfig  --add  sshd

# chkconfig  sshd  on

# chkconfig  --list  sshd

# servicesshd restart

注意:如果升级操作一直是在ssh远程会话中进行的,上述sshd服务重启命令可能导致会话断开并无法使用ssh再行登入(即ssh未能成功重启),此时需要通过telnet登入再执行sshd服务重启命令。

openssh善后工作

 新开启远程终端以ssh [ip]登录系统,确认一切正常升级成功后,只需关闭telnet服务以保证系统安全性即可。

# mv/etc/securetty.old /etc/securetty

# chkconfig  xinetd off

# servicexinetd stop

 如有必要,可重新开启防火墙

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。