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
如有必要,可重新开启防火墙