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

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

查看当前的ssh服务版本

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

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

 
 
  1. # rpm -qa | grep openssl   
  2. openssl-0.9.8e-12.el5_4.6  
  3.  
  4. # rpm -qa | grep openssh  
  5. openssh-4.3p2-41.el5  
  6. openssh-server-4.3p2-41.el5  
  7. openssh-clients-4.3p2-41.el5  
  8. openssh-askpass-4.3p2-41.el5  

卸载openssh和openssl的rpm安装包

 
 
  1. #rpm -e `rpm -qa | grep openssh`  
  2. #rpm -e `rpm -qa | grep openssl` --nodeps 

此时会把所有关于ssh服务的配置文件自动删除,但会自动生成配置文件备份/etc/ssh/ssd_config.rpmsave

源码安装openssh、openssl,为了避免zlib库文件版本过低,同时编译安装zlib库

 
 
  1. # tar xzvf zlib-1.2.6.tar.gz  
  2. # cd zlib-1.2.6  
  3. # ./configure  --prefix=/usr/local/zlib  
  4. #make  &&  make install  
  5.  
  6. # tar xzvf openssl-1.0.1.tar.gz  
  7. # cd openssl-1.0.1  
  8. #./config  --prefix=/usr/local/openssl   
  9. # make &&  make install  
  10.  
  11. #tar xzvf openssh-5.9p1.tar.gz  
  12. #cd  openssh-5.9p1  
  13. #./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  
  14. # make && make install 

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

 
 
  1. # yum install  –y  pam-devel  
  2. 修改相关配置文件  
  3. # cp -p contrib/redhat/sshd.init /etc/init.d/sshd  
  4. # chmod u+x /etc/init.d/sshd  
  5. # chkconfig --add sshd  
  6. #cp /usr/src/openssh5.9p1/sshd_config  /etc/ssh/sshd_config  
  7. # cp /usr/local/openssh/sbin/sshd  /usr/sbin/sshd  
  8. # service sshd start       -----------断开连接!!!  
  9. Starting sshd:                          [  OK  ]  
  10.  

再次查看sshd服务的版本

 
 
  1. #ssh -V  
  2. OpenSSH_5.9p1, OpenSSL 1.0.1 14 Mar 2012 

至此升级成功!

由于原服务是用rpm包安装的,现需要通过指定版本的源码包升级,虽然先卸载ssh的rpm包后,进程依旧驻留在内存中,保持连接不断开,但万一在升级过程中由于网络、电源等原因意外中断,则无法再通过ssh服务远程登录服务器,同时为了防止在安装软件后的某些错误配置造成原连接断开后无法启动ssh服务而不能远程登录服务器,所以建议在一般生产环境中需要远程升级openssh服务时,先开始telnet服务。

 
 
  1. #yum install -y telnet  
  2. #vim /etc/xinetd.d/telnet  
  3.    
  4. # default: on  
  5. # description: The telnet server serves telnet sessions; it uses \  
  6. #       unencrypted username/password pairs for authentication.  
  7. service telnet  
  8. {  
  9.         flags           = REUSE 
  10.         socket_type     = stream 
  11.         wait            = no 
  12.         user            = root 
  13.         server          = /usr/sbin/in.telnetd  
  14.         log_on_failure  += USERID  
  15.         disable         = no //默认为yes,修改disable = no 
  16.   
  17. # service xinetd restart  
  18. Stopping xinetd:                                            [  OK  ]  
  19. Starting xinetd:                                            [  OK  ] 

查看telnet端口验证服务是否开启

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

注意:为了安全,telnet是不能以root直接登陆的,建议使用普通用户登录后再用su切换到root用户。

如果必须要使用root登录,则可以按照以下步骤操作

 
 
  1. vim /etc/securetty 
  2. ##########增加如下内容##########  
  3. console  
  4. pts/1  
  5. pts/2  
  6. pts/3  
  7. pts/4  
  8. pts/5  
  9. pts/6  
  10. pts/7  
  11. pts/8  
  12. pts/9  
  13. pts/10  
  14. pts/11  
  15. tty1  
  16. tty2  
  17. tty3  
  18. tty4  
  19. tty5  
  20. tty6  
  21. tty7  
  22. tty8  
  23. tty9  
  24. tty10  
  25. tty11  
  26. #service xinetd restart  
  27. Stopping xinetd:                                           [  OK  ]  
  28. Starting xinetd:                                           [  OK  ]  

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值