北京天翼安全加固
OpenSSH升级方案
[亚信科技(中国)有限公司]
2014/8/20
1
1
OpenSSH升级准备
1.1 升级思路
考虑到OpenSSH升级采用远程连接方式升级,为保证升级正常,将采telnet 连接来进行升级操作,依次进行OpenSSH原配置文件备份、旧版本OpenSSH删除、安装新版本OpenSSH。
1.2 升级所需要的安装包
不同的环境需要不同的安装包,此次安装需要安装包如下
telnet服务所需的安装包:
telnet-server-0.17-39.el5.x86_64.rpm
OpenSSH 升级所需安装包:
openssh-6.5p1.tar.gz
zlib-1.2.8.tar.gz
openssl-1.0.1h.tar.gz
OpenSSH 还原所需安装包:
openssh-4.3p2-72.el5.x86_64.rpm
1.3 升级流程
1、上传安装包到服务器上
2、安装telnet服务,并使其运行正常;
3、使用telnet远程连接服务器,正常后端口SSH连接;
4、备份OpenSSH配置文件
5、卸载OpenSSH 4.3版本
6、安装OpenSSH 6.5 版本,并测试正常
7、卸载telnet服务,删除安装包及备份文件
2升级实施步骤
2.1升级主要步骤和时间
2.2上传安装包
通过sftp上传安装包rpm
openssh-6.5p1.tar.gz
zlib-1.2.8.tar.gz
openssl-1.0.1h.tar.gz
telnet-server-0.17-39.el5.x86_64.rpm
openssh-4.3p2-72.el5.x86_64.rpm
2.3安装配置telnet
2.3.1安装telnet-server的RPM包
确认telnet是否安装,telnet rpm已经安装此步骤跳过
# rpm -ivh telnet-server-0.17-39.el5.i386.rpm
# rpm -ql telnet-server
2.3.2配置telnet
telnet的配置较较简单,直接修改其配置文件,让其启动即可,其配置文件位于/etc/xinetd.d/telnet,修改其内容如下:
# vim /etc/xinetd.d/telnet
disable = no
或采用命令修改方式,执行命令
#chkconfig telnet on
#chkconfig --list |grep telnet
2.3.3启动telnet
telnet是一个属于xinetd的服务,重启xinetd服务即可完成对telnet的启动。
# service xinetd restart
并使用非root账户登录测试
2.4备份OpenSSH的配置文件
备份OpenSSH相关文件:
# cp -r /etc/ssh/ /etc/ssh_bak
# cp /etc/init.d/sshd /etc/init.d/sshd_bak
# cp /usr/sbin/sshd /usr/sbin/sshd_bak
2.5删除OpenSSH
完成配置备份后,将原有的OpenSSH的rpm包删除,执行命令
1、确认OpenSSH需删除的RPM包
# rpm -qa |grep ssh
2、使用rpm的方式删除:
# rpm -e openssh openssh-clients openssh-server openssh-askpass --nodeps 2.6安装OpenSSH
安装OpenSSH需先安装其所依赖的zlib和OpenSSL服务。
2.6.1源码编译zlib
# tar -xvzf zlib-1.2.8.tar.gz
# cd zlib-1.2.8
# ./configure --prefix=/usr/local/zlib
# make
# make install
2.6.2源码编译OpenSSL
# tar -xvzf openssl-1.0.1h.tar.gz
# cd openssl-1.0.1h
# ./config --prefix=/usr/local/openssl
# make
# make install
2.6.3源码编译OpenSSH
# tar -xvzf openssh-6.5p1.tar.gz
# cd openssh-6.5p1
# ./configure \
> --sysconfdir=/etc/ssh \
> --with-zlib=/usr/local/zlib/ \
> --with-ssl-dir=/usr/local/openssl
#make
#make install
2.7 OpenSSH服务管理
2.7.1启动OpenSSH
使用/usr/local/sbin/sshd命令启动SSH服务,可以使用-d参数调试SSH,使用-f参数指定OpenSSH配置文件的所在路径,如下:
# /usr/local/sbin/sshd –d
确认无误之后,再启动OpenSSH服务:
# /usr/local/sbin/sshd -f /etc/ssh/sshd_config
2.7.2开机管理OpenSSH
恢复使用service和chkconfig命令对ssh远程连接服务进行管理,到源码
包目录下的/contrib/redhat中拷贝sshd.init脚本到/etc/init.d,更名为sshd,最后根据安装路径更正这个sshd配置,如下:
# cp openssh-6.4p1/contrib/redhat/sshd.init /etc/init.d/sshd
# vi /etc/init.d/sshd
SSHD=/usr/local/sbin/sshd
/usr/local/bin/ssh-keygen –A
# chkconfig sshd on
# chkconfig --list sshd
# service sshd restart
2.7.3重启主机
#reboot
2.8 OpenSSH版本验证
# /usr/local/bin/ssh -V
2.9停止telnet服务
确保OpenSSH升级可用之后,为了保障系统的安全,建议将telnet删除,以免造成安全漏洞,删除telnet只需要将其对应的rpm包删除即可,如下:# service xinetd stop
3失败回退
3.1备份目录回退
# service sshd stop
# cd /etc
# rm -rf ssh
# cp -r/etc/ssh_bak /etc/ssh/
# cd /etc/init.d
# rm sshd
# cp /etc/init.d/sshd_bak /etc/init.d/sshd
# cd /usr/sbin/
# rm sshd
# cp /usr/sbin/sshd_bak /usr/sbin/sshd
3.2安装rpm包
#rpm -ivh openssh-4.3p2-72.el5.x86_64.rpm
启动服务
#service sshd start
4相关联系人名单