总结-OpenSSH升级-RedHat.doc_第1页
总结-OpenSSH升级-RedHat.doc_第2页
总结-OpenSSH升级-RedHat.doc_第3页
总结-OpenSSH升级-RedHat.doc_第4页
总结-OpenSSH升级-RedHat.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

OpenSSH升级-RedHat1 概述从2014年6月4号接到任务,要对5台服务器进行加固,6月12号完成加固,加固过程中OpenSSH升级方面出现问题,故整理此文档以作知识储备。本次加固的5台服务器均自带默认的RPM4.3版本的OpenSSH,但OpenSSH的RPM包最高为4.3版本,而源码以达到6.6版本。为升级成功,需卸载RPM版本的OpenSSH,进行源码安装,并选择6.X版本的OpenSSH,本次加固升级选择6.5版本。PS:在linux软件安装方式中存在RPM安装和源码安装两种2 OpenSSH升级2.1 OpenSSH概述OpenSSH是实现SSH协议的开源免费软件,大多数Linux发行版本都采用了该软件实现SSH的远程连接,SSH是Secure Shell的缩写,即远程安全壳,旨在为远程连接提供一个安全的加密通道。SSH相类似的协议有telnet,相比于SSH,telnet采用的是明文方式传输,具有一定的不安全性,而且容易被中间人攻击,所以telnet使用较少。而SSH使用加密的方式传输,具有加密传输、防止中间人攻击、安全等特点。2.2 OpenSSH升级准备2.2.1 升级思路考虑到本次OpenSSH升级采用远程升级的方式,为保证升级正常,将采用另一种远程连接方式telnet来进行升级操作,依次进行OpenSSH原配置文件备份、旧版本OpenSSH删除、安装新版本OpenSSH。2.2.2 升级所需要的安装包不同的环境需要不同的安装包,此次安装需要安装包如下telnet服务所需的安装包:telnet-server-0.17-39.el5.i386.rpmOpenSSH 升级所需安装包:openssh-6.5p1.tar.gz (官网地址:)zlib-1.2.8.tar.gz(用于SSH压缩功能,官网地址是:/)openssl-1.0.1h.tar.gz(提供加密传输所需的功能,官网地址:)OpenSSH 还原所需安装包:openssh-4.3p2-72.el5.i386.rpm2.2.3 升级流程1、 上传安装包到服务器上2、 安装telnet服务,并使其运行正常;3、 使用telnet远程连接服务器,正常后端口SSH连接;4、 备份OpenSSH配置文件5、 卸载OpenSSH 4.3版本6、 安装OpenSSH 6.5 版本,并测试正常7、 卸载telnet服务,删除安装包及备份文件3 升级实施步骤3.1 上传安装包本次升级采用securecrt远程管理工具对服务器进行远程连接,使用工具自带的sftp功能上传上述安装包至/root目录下,步骤及相关命令如下:3.1.1 打开sftp标签页使用sftp功能,在左图红色方框处右键,在出现的菜单中选择“连接SFTP标签页”,出现右图。 3.1.2 上传文件1、 设置安装包所在路径sftp lcd E:/2、 上传telnet服务rpm安装包sftp put telnet-server-0.17-39.el5.i386.rpmUploading telnet-server-0.17-39.el5.i386.rpm to /root/telnet-server-0.17-39.el5.i386.rpm 100% 35KB 35KB/s 00:00:00 E:/telnet-server-0.17-39.el5.i386.rpm: 36035 bytes transferred in 0 seconds (35 KB/s)3、 上传zlib源码安装包sftp put zlib-1.2.8.tar.gzUploading zlib-1.2.8.tar.gz to /root/zlib-1.2.8.tar.gz 100% 557KB 557KB/s 00:00:00 E:/zlib-1.2.8.tar.gz: 571091 bytes transferred in 0 seconds (557 KB/s)4、 上传OpenSSL源码安装包sftp put openssl-1.0.1h.tar.gzUploading openssl-1.0.1h.tar.gz to /root/openssl-1.0.1h.tar.gz 100% 4370KB 4370KB/s 00:00:00 E:/openssl-1.0.1h.tar.gz: 4475692 bytes transferred in 0 seconds (4370 KB/s)5、 上传新版OpenSSH源码安装包sftp put openssh-6.5p1.tar.gz Uploading openssh-6.5p1.tar.gz to /root/openssh-6.5p1.tar.gz 100% 1262KB 1262KB/s 00:00:00 E:/openssh-6.5p1.tar.gz: 1293187 bytes transferred in 0 seconds (1262 KB/s)6、 上传旧版OpenSSH RPM安装包sftp put openssh-4.3p2-72.el5.i386.rpmUploading openssh-4.3p2-72.el5.i386.rpm to /root/openssh-4.3p2-72.el5.i386.rpm 100% 288KB 288KB/s 00:00:00 E:/openssh-4.3p2-72.el5.i386.rpm: 295350 bytes transferred in 0 seconds (288 KB/s)3.2 安装配置telnet3.2.1 安装telnet-server的RPM包# rpm -ivh telnet-server-0.17-39.el5.i386.rpm#安装telnetwarning: telnet-server-0.17-39.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 37017186Preparing. # 100% 1:telnet-server # 100%# rpm -ql telnet-server#查看telnet-server包的安装情况/etc/xinetd.d/telnet/usr/sbin/in.telnetd/usr/share/man/man5/.5.gz/usr/share/man/man8/in.telnetd.8.gz/usr/share/man/man8/telnetd.8.gz3.2.2 配置telnettelnet的配置较较简单,直接修改其配置文件,让其启动即可,其配置文件位于/etc/xinetd.d/telnet,修改其内容如下:# vim /etc/xinetd.d/telnet service telnet flags = REUSE socket_type = stream wait = no user = root server = /usr/sbin/in.telnetd log_on_failure += USERID disable = no#修改为no表示启动,默认yes表示关闭或采用命令修改方式,执行命令#chkconfig telnet on #此命令执行后完成上述修改3.2.3 启动telnettelnet是一个属于xinetd的服务,重启xinetd服务即可完成对telnet的启动。# service xinetd restartStopping xinetd: OK Starting xinetd: OK 3.2.4 本地测试telnet服务默认不支持root账户登录,要先新建账户,升级时切换到root账户进行操作。新建一个账户test,密码123,执行命令rootlocalhost # useradd testrootlocalhost # passwd testChanging password for user test.New UNIX password: #输入test账户的密码BAD PASSWORD: it is WAY too shortRetype new UNIX password: #重复输入test账户密码passwd: all authentication tokens updated successfully. #完成test账户建立telnet默认采用的端口是TCP的23号端口,校验端口是否正常,正常则配置成功,不正常则配置失败,如下:# telnet #若本地连接正常,网络无法连接,则查看防火墙是否放行telnetPS:防火墙设置,执行命令setup,选择“Firewall configuration”选项进入防火墙,选择“Customize”选项进入防火墙设置,在telnet选项中按空格使其被放行,然后一路OK退出。3.2.5 连接telnet在SecureCRT中新建telnet连接服务器,并切换root权限,后续的升级操作都是在telnet中完成的。login: testPassword: Last login: Tue Jun 17 01:42:12 from localhosttestlocalhost $ su root #切换到root账户Password: rootlocalhost test# cd#回到root目录 3.3 备份OpenSSH的配置文件升级之前,校验下当前OpenSSH的版本,可以使用ssh命令校验,当前系统的版本是4.3p2版,同时会显示OpenSSL的版本,如下:# ssh V #校验当前系统OpenSSH的版本OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008备份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 #备份启动关联文件3.4 删除OpenSSH完成配置备份后,将原有的OpenSSH的rpm包删除,执行命令1、 确认OpenSSH需删除的RPM包 # rpm -qa |grep sshopenssh-server-4.3p2-36.el5openssh-askpass-4.3p2-36.el5openssh-4.3p2-36.el5openssh-clients-4.3p2-36.el52、 使用rpm的方式删除:# rpm -e openssh openssh-clients openssh-server openssh-askpass nodeps3.5 安装OpenSSH安装OpenSSH需先安装其所依赖的zlib和OpenSSL服务。3.5.1 源码编译zlib# tar -xvzf zlib-1.2.8.tar.gz #解压缩# cd zlib-1.2.8zlib-1.2.8# ./configure -prefix=/usr/local/zlib #检查配置zlib-1.2.8# make#编译zlib-1.2.8# make install#编译安装3.5.2 源码编译OpenSSL# tar -xvzf openssl-1.0.1h.tar.gz#解压缩# cd openssl-1.0.1h#进入目录openssl-1.0.1h# ./config -prefix=/usr/local/openssl#检查配置openssl-1.0.1h# make#编译openssl-1.0.1h# make install#编译安装3.5.3 源码编译OpenSSH# tar -xvzf openssh-6.5p1.tar.gz#解压缩# cd openssh-6.5p1#进入目录openssh-6.5p1# ./configure #检查配置 -sysconfdir=/etc/ssh -with-zlib=/usr/local/zlib/ -with-ssl-dir=/usr/local/opensslopenssh-6.5p1#make #编译openssh-6.5p1#make install#编译安装安装完成之后,OpenSSH释放文件的情况如下:范畴路径例子客户端命令/usr/local/binssh、ssh-add、ssh-agent、scp等服务器守护进程/usr/local/sbinsshd其他额外命令/usr/local/libexecsftp-server、ssh-pkcs11-helper配置文件和公钥/etc/sshsshd_config、ssh_host_*帮助文档/usr/local/openssh/shareshare/man1,man5,man83.6 OpenSSH服务管理3.6.1 启动OpenSSH使用/usr/local/sbin/sshd命令启动SSH服务,可以使用-d参数调试SSH,使用-f参数指定OpenSSH配置文件的所在路径,如下:# /usr/local/sbin/sshd d#调试OpenSSHdebug1: sshd version OpenSSH_6.5, OpenSSL 1.0.1h 5 Jun 2014debug1: key_parse_private2: missing begin markerdebug1: read PEM private key done: type RSAdebug1: private host key: #0 type 1 RSAdebug1: key_parse_private2: missing begin markerdebug1: read PEM private key done: type DSAdebug1: private host key: #1 type 2 DSAdebug1: key_parse_private2: missing begin markerdebug1: read PEM private key done: type ECDSAdebug1: private host key: #2 type 3 ECDSAdebug1: private host key: #3 type 4 ED25519debug1: rexec_argv0=/usr/local/sbin/sshddebug1: rexec_argv1=-dSet /proc/self/oom_adj from 0 to -17debug1: Bind to port 22 on :.Bind to port 22 on : failed: Address already in use.debug1: Bind to port 22 on .Bind to port 22 on failed: Address already in use.确认无误之后,再启动OpenSSH服务:# /usr/local/sbin/sshd -f /etc/ssh/sshd_config3.6.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/sshdSSHD=/usr/local/sbin/sshd#默认为SSHD=/usr/sbin/sshdstart() # Create keys if necessary /usr/local/bin/ssh-keygen A#默认为/usr/bin/ssh-keygen A# chkconfig sshd on#开机启动设置# chkconfig -list sshd sshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off# service sshd restartStopping sshd: OK Starting sshd: OK 3.7 OpenSSH版本验证# /usr/local/bin/ssh -VOpenSSH_6.5p1, OpenSSL 1.0.1h 5 Jun 2014 3.8 删除telnet确保OpenSSH升级可用之后,为了保障系统的安全,建议将telnet删除,以免造成安全漏洞,删除telnet只需要将其对应的rpm包删除即可,如下:# rpm -e telnet-server nodeps#删除telnet-server包warning: /etc/xinetd.d/telnet saved as /etc/xinetd.d/telnet.rpmsave# service xinetd restart#重启xinetd服务Stopping xinetd: OK Starting xinetd: OK 4 遇到的问题4.1 配置OpenSSH时出现缺少OpenSSL library在完成OpenSSL配置后#vi Makefile 修改 gcc下面的参数,添加-fPIC 之后正常安装OpenSSL在安装OpenSSH之前,进行如下操作#setenforce 0#vi /etc/selinux

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论