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