**
**
Red-Hat 6.8版本
**
**
2.1 升级思路考虑到OpenSSH升级采用远程连接方式升级,为保证升级正常,将采telnet连接来进行升级操作,依次进行OpenSSH原配置文件备份、旧版本OpenSSH删除、安装新版本OpenSSH。
2.2 下载所需的安装包,
此次安装需要安装包如下telnet服务所需的安装包:
telnet-server-0.17-48.el6.x86_64.tar.gz
OpenSSH 升级所需安装包:
openssh-7.5p1.tar.gz
zlib-1.2.11.tar.gz
openssl-1.0.2l.tar.gz
openssl-devel所需安装包:
openssl-devel-1.0.1e-57.el6.x86_64.rpm
OpenSSH 还原所需安装包:
openssh-5.3p1.tar.gz
**
**
3.1 过sftp上传安装包rpm
openssh-7.5p1.tar.gz
zlib-1.2.11.tar.gz
openssl-1.0.2l.tar.gz
telnet-server-0.17-39.el5.x86_64.rpm
openssh-4.3p2-72.el5.x86_64.rpm
openssl-devel-1.0.1e-57.el6.x86_64.rpm
3.2 安装配置telnet
安装telnet-server的RPM包,确认telnet是否安装,telnet rpm已经安装此步骤跳过
# rpm -ivh telnet-server-0.17-39.el5.i386.rpm
# rpm -ql telnet-server
配置telnet,telnet的配置较较简单,直接修改其配置文件,让其启动即可,其配置文件位于/etc/xinetd.d/telnet,修改其内容如下:
# vim /etc/xinetd.d/telnet
disable = no 或采用命令修改方式,执行命令
#chkconfig telnet on
#chkconfig --list |grep telnet
启动telnet, telnet是一个属于xinetd的服务,重启xinetd服务即可完成对telnet的启动(需要注意,默认情况下,root不能远程telnet)。
# service xinetd restart
3.3 安装OpenSSH
GCC----安装OpenSSH需先安装其所依赖的zlib和OpenSSL服务。
3.3.1 源码编译zlib
# tar -xvzf zlib-1.2.11.tar.gz
# cd zlib-1.2.11
# ./configure --prefix=/usr/local/zlib ---安装路径
# make
注意 此处需要卸载当前的zlib(必须按照顺序的操作,lib64下涉及的模块丢失)
# rpm -e --nodeps zlib
# make install
# echo ‘/usr/local/zlib/lib’>>/etc/ld.so.conf # 共享库文件注册到系统
# ldconfig # 更新共享库cache
3.3.2 源码编译OpenSSL
备份当前的openssl
# mv /usr/lib64/openssl cat /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
以下两个库文件必须先备份,因系统内部部分工依赖此库,而新版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
安装openssl
# tar -xvzf openssl-1.0.2l.tar.gz
# cd openssl-1.0.2l
# ./config --prefix=/usr/local/openssl --shared zlib(注意需加入-shared参数)
# make
# make install
#ln -s /usr/local/openssl/bin/openssl /usr/sbin/openssl--------
#ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
# openssl version
# echo ‘/usr/local/openssl/lib’>>/etc/ld.so.conf
# ldconfig
考虑到后续的工作中需要用其他工具,先恢复之前备份的共享库
# cp /usr/lib64/libcrypto.so.10.old /usr/lib64/libcrypto.so.10
# cp /usr/lib64/libssl.so.10.old /usr/lib64/libssl.so.10 "/usr/local/openssl/ssl"
3.3.3 源码编译OpenSSH
如果没有openssl-devel,需要按照openssl-devel
# rpm -qa | grep openssl-devel 查看有没有安装
# rpm -ivh openssl-devel-1.0.1e-57.el6.x86_64.rpm
备份OpenSSH相关文件:
# mv /etc/ssh/ /etc/ssh_bak
# cp /etc/init.d/sshd /etc/init.d/sshd_bak
# cp /usr/sbin/sshd /usr/sbin/sshd_bak
卸载当前的版本:
# rpm -qa | grep openssh (ssh)
#rpm -e 版本--nodeps
安装前环境配置:
#install -v -m700 -d /var/lib/sshd
#chown -v root:sys /var/lib/sshd
#groupadd -g 51 sshd
#useradd -c ‘sshd PrivSep’-d /var/lib/sshd -g sshd -s /bin.flase -u 51 sshd
安装openssh:
# tar -xvzf openssh-7.5p1.tar.gz
# cd openssh-7.5p1
./configure --sysconfdir=/etc/ssh --with-zlib=/usr/local/zlib/ --with-ssl-dir=/usr/local/openssl/ssl
#make
#make install
#安装后环境配置:
#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.5p1
#install -v -m644 LICENCE OVERVIEW README* /usr/share/doc/openssh-7.5p1
#ssh -V # 验证:
启动SSH服务:
#echo ‘X11Forwarding yes’>>/etc/ssh/sshd_config
#echo ‘PermitRootLogin yes’>>/etc/ssh/sshd_config
#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
#service sshd restart #此时ssh会断,需要telnet登录服务器,普通用户登录再切到root用户
telnet 登录后界面
#service sshd restart #启动发现异常,需要相关启动配置文件拷贝到系统启动文件夹中
#find / -name sshd
#cp /usr/local/sbin/sshd /usr/sbin/sshd
#cp /usr/local/bin/ssh-keygen /usr/bin/cp /usr/local/bin/ssh /usr/bin/
3.4停止telnet服务
确保OpenSSH升级可用之后,为了保障系统的安全,建议将telnet删除,以免造成安全漏洞,删除telnet只需要将其对应的rpm包删除即可,如下:
# service xinetd stop
#rpm -e telnet-server
#rpm -qa | grep telnet-server
说明:此操作步骤借鉴了网上好多文章,经测试,可以正常安装