admin管理员组

文章数量:1568418

2024年1月4日发(作者:)

RedhatLinux6.5-OpenSSH升级安装步骤

各位朋友,Redhat Linux最新发布了6.5版本,不过这个版本仍旧是使用的三年前的OpenSSH版本,而我们国家对网络安全越来越重视,电信级的现网系统,每月都进行安全扫描,你们是否同样遇到这个问题了?安全扫描会报OpenSSH有较高级别的漏洞,需要更新版本!这可是才发布两个月的新系统啊,Redhat应该对此做出解释!为什么不更新OpenSSH?

不过说归说,这Redhat不更新,我们也没办法,问题还是要处理。去网上找了半天,发现没有适合Redhat Linux 6.5使用的RPM包下载,只能下载到源代码版,需要去现网编译安装,我了个去!现网机器几十台,20多个省,这要累死某家么?并且现网的机器多数都没有安装gcc,没法编译,没办法,只好自己来制作RPM包了。

好了,废话不多说,如何制作RPM不多说了,制作过程中修改spec文件中的N处问题,也不提了,反正是做出RPM包来了。此包只适用于Redhat Linux 6.5,其他平台谨慎使用!

因为现网系统,升级可不是小事,并且现网的平台都是通过4A系统访问管理,4A平台连接主机只有SSH方式,一旦升级有问题,就再也无法连接主机了,必须去机房!所以必须先弄一个备份连接,那就只能先把Telnet弄起来吧。

具体如何弄Telnet,我就不想多说了,本文并不是Telnet的安装操作手册,并且还有可能涉及到主机防火墙的配置,所以如何起动Telnet,并且测试能够通过4A平台访问,这是自己的事情,也许还有可能你们的4A平台不支持Telnet,但支持其他方式(虽然这种情况很少见,不支持Telnet的4A平台我还没见过),你就需要使用其他方式来建一个备份连接方式,防止SSH升级有问题,无法再连接主机。

我的步骤是考虑到现网系统的特殊性的,并不是自己在家玩,自己在家玩,怎么玩都行!但现网系统可不能乱玩。

一、 在家里用一台测试机升级,试验。

a) 从现网备份SSH的相关系统配置,拿回来备用,主要是以下几个:

i. /etc/ssh下面的ssh_config,sshd_config 文件

ii. /etc/pam.d下面的sshd ssh-keycat

iii. /etc/sysconfig下面的sshd

b) 先删除旧版本,以免出现安装冲突

#rpm -qa|grep openssh

一般是有四个,然后一个个删除

c)

d)

e)

f)

g)

#rpm -e openssh --nodeps

#rpm -e openssh-server --nodeps

#rpm -e openssh-clients --nodeps

#rpm -e openssh-askpass –nodeps

安装新版本

#rpm -ivh openssh-6.6p1-1.x86_

#rpm -ivh openssh-clients-6.6p1-1.x86_

#rpm -ivh openssh-server-6.6p1-1.x86_

那个openssh-askpass,是用于图形界面下输入口令的,现网一般用不着,可装可不装。

从本机上找到第1步从现网备份的那几个文件,与备份的文件比较,找出现网修改的地方,主要是关注现网取消掉注释的语句,与本机的文件比较差异。然后修改本机上的文件,与现网配置匹配。

所有配置文件修改完成后,重启SSH服务,并检查启动结果是否正常

#service sshd restart

找另一台机器,使用SSH登录已升级的主机,看是否能够正常使用,一般情况下是没有问题的,有问题就要想办法解决,这主要可能都是配置引起的。

如果登录验证没问题,再输入ssh –V,检查版本号是否已经变成6.6。

如果以上测试没问题,下一步就是去现网操作了。

二、 现网操作

a) 使用Telnet登录到主机操作,不能用SSH了,因为要升级SSH。

b) 登录现网主机后,按家里测试机上的步骤进行升级,因为现网系统的SSH配置基本都是相同的,所以之前已经做过备份,并且对比分析过配置数据,还生成了新的现网配置文件,所以现在就是把这些已经验证通过的新配置文件上传到主机一个特定目录,最好和安装包放一起吧,好找。

c) 现网系统升级后,使用4A平台通过SSH来登录进行验证,如果登录成功,恭喜,你已经过关了。

d) 如果有问题,那就比较复杂了,不过基本都是配置问题,再比对现网备份的配置找问题吧。

友情提供一下Telnet的方法吧:

打开telnet服务

//修改设置文件/etc/xinetd.d/telnet中disable字段改为no。

修改/etc/xinetd.d/krb5-telnet 中disable字段改为no。

启动服务 #service xinetd restart。

临时修改文件

因为不能直接root telnet登陆,所以需要修改一下文件,请将/etc/securetty文件改名保存,等我们确认升级完成SSH,停止Telnet的时候,再改回来。记住一定要改回来,不然又是一个大漏洞,通不过安全扫描的。执行mv /etc/securetty /etc/命令即可,这样就可以使用root 用户登录来完成升级操作。

关闭telnet服务

修改设置文件/etc/xinetd.d/telnet中disable字段改为yes。

启动服务 #service xinetd restart。

改回文件:mv /etc/ /etc/securetty

这里,提供我自己制作的RPM包,相信大家看到这才松口气吧,说了半天,其实这才是重点,安装方案老手早就知道了。

/s/1o6wObXK

百度网盘分享!里面有OpenSSH相关的内容,有需要的就下载吧。

----------------------------------------------------------------------------------------------------------

附录:sshd进程及其相关参数详细说明

sshd服务是OpenSSH的守护进程。此服务附带的工具程序可以取代rlogin和rsh,在两台会话的主机间通过非安全的Internet 建立起安全的加密连接。sshd监听来自客户端的连接请求,并在接收到请求时fork一个子进程;此子进程将负责处理密钥交换、加密、认证、命令执行及数据传输等。可以使用命令行选项或者配置文件来配置启动sshd,但命令行中指定的选项将优先于配置文件中的相同选项。

-4 强制sshd仅接收来自IPv4格式地址的请求;

-6 强制sshd仅接收来自IPv6格式地址的请求;

-b 指定ssh v1中服务器密钥的长度位数;

-D 此选项只是用来监视sshd的启动状态,在附加此选项时,sshd不会作为一个守护进程启动;

-d 此选项将启动调试模式;sshd服务的启动状态会在前台显示,并把详细的调试信息输出至日志文件;此时, sshd不会fork新的子进程,因此仅仅能接受一个连接请求。此先项主要用来调试sshd;

-e 输出错误信息到日志文件,不包括正常的调试信息;

-f 此选项后接指定的配置文件;默认为/etc/ssh/sshd_config;

-g 此选项后跟一个时间期限,默认单位是秒,用来为客户端认证期间提供一个可以等待的期限;如果客户端在此指定期限内认证错误,sshd将断开连接并退出;0表示无时间限制;

-h 此选项后跟一个主机密钥文件,用来指定一个sshd启动时读取的主机密钥文件;在以非root身份启动sshd时必须指定此选项(因为默认的key文件只有root具有读权限);ssh v1默认的key文件为/etc/ssh/ssh_host_key,sshd v2默认的key文件为etc/ssh/ssh_host_rsa_key以及/etc/ssh/ssh_host_dsa_key;可以为不同版本的协议及不同的密钥算法指定不同的key文件;

-i 此选项用来指定通过inetd守护进程启动sshd;sshd需要生成服务端密钥才能接受客户端的请求,这将需要大约10秒钟的时间,如果每个请求都重新生成一次密钥的话,客户端将不得不等待较长的时间,因此,默认情况下是不使用inet方式启动sshd的;如果使用较短长度的密钥,此选项将是一个颇富弹性的选择;

-k 此选项后跟一个时间期限,用来为ssh v1指定一个重新生成服务端key的时间间隔(默认为一个小时);如此频繁的生成密钥的目的在于不必存储密钥,因此,超过了一个小时后恢复通讯期间加密的数据几乎是不可能的,哪怕机器被攻入亦或被占据,这将在很大程度上提高了安全性;0表示不重新生成密钥;

-o 用来为配置文件指定一个新的可用选项;

-p 指定sshd服务监听的端口(默认是22),可以同时指定多个端口;如果使用此选项,则会忽略配置文件中指定的端口;

-q 安静模式,此种情况下将不会产生任何系统日志;正常情况下,服务启动、认证以及每一次终端登录都会被记录;

-t 测试模式,仅用来检查配置文件的正确性及密钥是否健壮;此选项多用在配置文件改动时;

六、sshd相关的文件详细说明

~/.hushlogin

如果配置文件中分别启用了PrintLastLog和PrintMotd选项,则此文件可以用来在屏幕显示前一次的登录时间以及/etc/motd的内容。但不会显示Banner选项指定的banner。

~/.rhosts

此文件主要用来实现主机间的认证。如果你的主机上有些用户的主目录位于NFS文件系统上,则必需把这个文件的权限置为全局可读,因为 sshd进程将以root的身份读取此文件。此外,此文件属主必须为相关用户,且其他任何用户均不能具有写权限。一般推荐的权限为600。

~/.ssh/authorized_keys

此文件存储的是用户的公钥,当其远程登录时可以用此公钥为其进行认证。公钥信息并非要求高度安全性的文件,但仍推荐将其权限置为700。如果此文件、~/.ssh目录或者此用户的主目录能被其他用户读取,则此文件将可能被其他非授权用户修改或置换。此种情况下,除非在主配置文件中把 StrictModes的值置为"no",否则sshd将不允许使用此文件。

~/.ssh/environment

如果此文件存在,将会在用户登录时读入用户的环境。它只能包含空行、以"#"开头的注释行以及形如“name=value”赋值行,推荐权限为600。默认情况下此功能是禁止的,可以通过PermitUserEnviroment选项开启。

~/.ssh/known_hosts

用户曾成功登入过的主机的host key都将存放于此文件,但不包括系统间已经互相成功认证的主机host key,只能让root和属主具有读写权限。

~/.ssh/rc

此文件用来在用户的主目录不能正常访问前初始化用户的登录环境,其权限应该为600。

/etc/

用于主机间的认证,只能让root用户可写。

/etc/nologin

如果这个文件存在,sshd将拒绝除root用户外的任何其他用户登录。在任何用户在尝试登录时,此文件都将被显示,但所有非root用户将被拒绝。此文件应该是全局可读的。

/etc/ssh/ssh_known_hosts

存入系统级别的互相认证时已知主机的host key。这个文件需要管理员手动配置,可以将已知主机的公钥存入于此文件。此文件只能为root或属主读写,但应该是全局可读的。

/etc/ssh/ssh_host_key

/etc/ssh/ssh_host_dsa_key

/etc/ssh/ssh_host_rsa_key

以上三个文件用来存放主机密钥的私钥部分,它们的属主只能为root用户,只能被root用户读取,不能为其他任何用户访问。如果其他用户可以读取此文件,则sshd将不能启动。

/etc/ssh/ssh_host_

/etc/ssh/ssh_host_dsa_

/etc/ssh/ssh_host_rsa_

以上三个文件用来存放主机密钥的公钥部分,它们应该是全局可读的,但只有root用户可写。它们分别对应相应的私钥文件。这些文件并没有什么实际用途,仅仅是用来为用户认证登录提供便利,因此常被copy至其它可信的主机中。可以使用ssh-keygen来生成这些文件。

/etc/ssh/sshd_config

sshd的主配置文件;

本文标签: 文件用户密钥现网用来