IT技术互动交流平台

Openssh升级步骤及注意事项详解

作者:老徐_kevin  发布日期:2013-03-12 09:16:26

近期公司维护的一个项目中有部分内网中的服务器需要升级openssh(openssl)服务的软件,虽然openssh服务在一般生产环境中运用的功能不是很复杂,但是为了保证平滑升级还是有一些需要特别注意和谨慎操作的细节,下面就详细的分析一下吧。
查看当前的ssh服务版本

# ssh –V 
OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008

检测之前安装的包(openssl和openssh同时更新)

# rpm -qa | grep openssl  
openssl-0.9.8e-12.el5_4.6 
 
# rpm -qa | grep openssh 
openssh-4.3p2-41.el5 
openssh-server-4.3p2-41.el5 
openssh-clients-4.3p2-41.el5 
openssh-askpass-4.3p2-41.el5 
卸载openssh和openssl的rpm安装包
#rpm -e `rpm -qa | grep openssh` 
#rpm -e `rpm -qa | grep openssl` --nodeps
此时会把所有关于ssh服务的配置文件自动删除,但会自动生成配置文件备份/etc/ssh/ssd_config.rpmsave
源码安装openssh、openssl,为了避免zlib库文件版本过低,同时编译安装zlib库
# tar xzvf zlib-1.2.6.tar.gz 
# cd zlib-1.2.6 
# ./configure  --prefix=/usr/local/zlib 
#make  &&  make install 
 
# tar xzvf openssl-1.0.1.tar.gz 
# cd openssl-1.0.1 
#./config  --prefix=/usr/local/openssl  
# make &&  make install 
 
#tar xzvf openssh-5.9p1.tar.gz 
#cd  openssh-5.9p1 
#./configure --prefix=/usr/local/openssh --sysconfdir=/etc/ssh --with-pam --with-ssl-dir=/usr/local/openssl --with-md5-passwords --mandir=/usr/share/man --with-zlib=/usr/local/zlib 
# make && make install
出现:configure: error: PAM headers not found 错误,需要安装pam-devel的rpm包
# yum install  –y  pam-devel 

修改相关配置文件 

# cp -p contrib/redhat/sshd.init /etc/init.d/sshd 
# chmod u+x /etc/init.d/sshd 
# chkconfig --add sshd 
#cp /usr/src/openssh5.9p1/sshd_config  /etc/ssh/sshd_config 
# cp /usr/local/openssh/sbin/sshd  /usr/sbin/sshd 
# service sshd start       -----------断开连接!!! 
Starting sshd:                          [  OK  ] 
 
再次查看sshd服务的版本
#ssh -V 
OpenSSH_5.9p1, OpenSSL 1.0.1 14 Mar 2012
至此升级成功!
由于原服务是用rpm包安装的,现需要通过指定版本的源码包升级,虽然先卸载ssh的rpm包后,进程依旧驻留在内存中,保持连接不断开,但万一在升级过程中由于网络、电源等原因意外中断,则无法再通过ssh服务远程登录服务器,同时为了防止在安装软件后的某些错误配置造成原连接断开后无法启动ssh服务而不能远程登录服务器,所以建议在一般生产环境中需要远程升级openssh服务时,先开始telnet服务。

#yum install -y telnet 
#vim /etc/xinetd.d/telnet 
  
# default: on 
# description: The telnet server serves telnet sessions; it uses \ 
#       unencrypted username/password pairs for authentication. 
service telnet 

        flags           = REUSE
        socket_type     = stream
        wait            = no
        user            = root
        server          = /usr/sbin/in.telnetd 
        log_on_failure  += USERID 
        disable         = no               //默认为yes,修改disable = no
 
# service xinetd restart 
Stopping xinetd:                                            [  OK  ] 
Starting xinetd:                                            [  OK  ]
查看telnet端口验证服务是否开启

#netstat -tnlp | grep :23  
tcp       0      0 0.0.0.0:23       0.0.0.0:*       LISTEN    32450/xinetd 

注意:为了安全,telnet是不能以root直接登陆的,建议使用普通用户登录后再用su切换到root用户。 www.it165.net
如果必须要使用root登录,则可以按照以下步骤操作

vim /etc/securetty
##########增加如下内容########## 
console 
pts/1 
pts/2 
pts/3 
pts/4 
pts/5 
pts/6 
pts/7 
pts/8 
pts/9 
pts/10 
pts/11 
tty1 
tty2 
tty3 
tty4 
tty5 
tty6 
tty7 
tty8 
tty9 
tty10 
tty11 
#service xinetd restart 
Stopping xinetd:                                           [  OK  ] 
Starting xinetd:                                           [  OK  ] 

注意: 因为telnet属于明文传输且开放了23端口,所以在ssh服务升级成功后,为了保证系统安全性,务必关闭telnet服务!

 

Tag标签: Openssh   升级步骤  
  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规