ThinkPHP V5.0.5漏洞_从openssh漏洞修复谈linux启动逻辑

73b8f1b7510f0e1c92b6a0a4e071296e.png

人有病得治,系统有补丁也要打。Linux redhat6.5系统自带的openssh版本为5.3p1,含有很多漏洞信息,基于安全要求需要升级到最新版本,官网已经发布到8.0版本了,为此整理了此文。包含知识点:openssh升级、linux启动过程。

升级前主要漏洞信息有:

OpenSSH do_setup_env函数权限提升漏洞(CVE-2015-8325)

OpenSSH auth_password函数拒绝服务漏洞(CVE-2016-6515)

OpenSSH 远程代码执行漏洞(CVE-2016-10009)

Openssh MaxAuthTries限制绕过漏洞(CVE-2015-5600)

OpenSSH 安全漏洞(CVE-2016-1908)

OpenSSH J-PAKE授权问题漏洞(CVE-2010-4478)

OpenSSH 安全限制绕过漏洞(CVE-2016-10012)

OpenSSH do_setup_env函数权限提升漏洞(CVE-2015-8325)

OpenSSH auth_password函数拒绝服务漏洞(CVE-2016-6515)

OpenSSH 远程代码执行漏洞(CVE-2016-10009)

Openssh MaxAuthTries限制绕过漏洞(CVE-2015-5600)

OpenSSH 安全漏洞(CVE-2016-1908)

OpenSSH J-PAKE授权问题漏洞(CVE-2010-4478)

OpenSSH 安全限制绕过漏洞(CVE-2016-10012)

OpenSSH do_setup_env函数权限提升漏洞(CVE-2015-8325)

OpenSSH auth_password函数拒绝服务漏洞(CVE-2016-6515)

OpenSSH 远程代码执行漏洞(CVE-2016-10009)

Openssh MaxAuthTries限制绕过漏洞(CVE-2015-5600)

OpenSSH 安全漏洞(CVE-2016-1908)

OpenSSH J-PAKE授权问题漏洞(CVE-2010-4478)

OpenSSH 安全限制绕过漏洞(CVE-2016-10012)

OpenSSH do_setup_env函数权限提升漏洞(CVE-2015-8325)

OpenSSH auth_password函数拒绝服务漏洞(CVE-2016-6515)

OpenSSH 远程代码执行漏洞(CVE-2016-10009)

Openssh MaxAuthTries限制绕过漏洞(CVE-2015-5600)

OpenSSH 安全漏洞(CVE-2016-1908)

OpenSSH J-PAKE授权问题漏洞(CVE-2010-4478)

OpenSSH 安全限制绕过漏洞(CVE-2016-10012)

Openssh升级思路

在升级前回顾下openssh,这里直接引用下百度百科里的解释,OpenSSH 是 SSH (Secure SHell)协议的免费开源实现。SSH协议族可以用来进行远程控制,或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。

说到底无非是一个远程连接,很多网上的升级教程都会建议安装telnet以免升级失败,无法连接了。其实我们服务器一般是虚拟机或者有kvm来管理,没必要做这一步。

我们知道linux里面很多软件是有相互依赖关系的,在上一篇文章中就提到了如何处理这种依赖安装,我们的系统环境是Redhat Enterprise6.5(Santiago),直接用yum安装依赖包就可以了。

而由于linux系统版本多样,所以这里采用源码编译安装来处理。

完整升级步骤

1.官网下载源代码openssh-8.0p1.tar.gz,上传到服务器解压:

#tar–zxvf openssh-8.0p1.tar.gz

2.备份ssh原有的配置文件

#tar zcvf /etc/ssh.tar.gz  /etc/ssh

3.卸载原来的sshd服务(也可以不卸载)

#yum remove openssh

4.安装openssh编译所需要的依赖包

#yum  install -y gcc libstdc++-devel gcc-c++zlib-devel keyutils-libs-devel libcom_err-devel libsepol-devel pkgconfiglibsepol libselinux-devel krb5-devel openssl-devel

5.编译安装

#cd openssh-8.0p1

6.启动文件修改(路径不要配错了,否则连接会有问题)

将安装源程序目录下的/openssh-8.0p1/contrib/redhat/sshd.init  复制到 /etc/init.d/sshd

修改启动文件:

# vi/etc/init.d/sshd   #修改sshd文件

7.修改配置文件

#vi /usr/local/etc/sshd_config     #配置sshd_config文件

8.启动sshd服务(如果有问题,可以到kvm或者虚拟机直连检查配置文件是否路径有问题)

#service sshd start

9.验证

#ssh-V

如果以上均正常执行,则会看到版本已经升级为OpenSSH_8.0p1了。

10.开机自动运行

#chkconfig sshd on

或者在/etc/rc.d/rc.local文件中增加 /etc/init.d/sshd start 命令,要记得开启rc.local的执行权限chmod +x/etc/rc.d/rc.local

Linux启动过程

一款优秀的软件不会让你抓破脑袋的,openssh就是这样优秀,升级过程按照如上十步执行还是比较简单舒心的,网上类似教程也多。升级过程中的关键知识点我们一起来温故一下:

  • yum安装依赖

  • /etc/init.d/sshd的启动过程

  • 服务开机自启动

这里我们讨论下linux下服务开机启动原理。本次升级中的主要就是执行文件sshd,在前面升级步骤6中将其放到了/etc/init.d目录下,这个目录其实是链接到/etc/rc.d/init.d的,也就是说真正作用是在/etc/rc.d/init.d,而/etc/init.d下面的文件相当于windows系统里面的桌面快捷方式。

进入/etc/rc.d目录,里面有init.d目录以及很多rcX.d这样的目录,在rcX.d里面有很多S和D开头的文件,其中也包括我们本次升级的sshd文件。/etc/rc.d/init.d这个目录下的脚本就类似与windows中的注册表,在系统启动的时候执行。

29ddba41180b4c9903e3bf6f7312dc0b.png

运行级别

而这里Init进程是系统启动之后的第一个用户进程,所以它的pid(进程编号)始终为1。init进程上来首先做的事是去读取/etc/目录下inittab文件中initdefault id值,这个值称为运行级别(run-level)。它决定了系统启动之后运行于什么级别。运行级别决定了系统启动的绝大部分行为和目的。这个级别从0到6 ,具有不同的功能。不同的运行级定义如下,前面升级步骤10里面增加的chkconfig sshd on其实就是在2345开启了启动任务,5也就是窗口带界面的方式。

ee93562ddba664e4ab53c328089a55b9.png

而rc.d下的子目录rc0.d,rc1.d ….. rc6.d,都是到init.d目录的一部分脚本链接。每个级别要执行哪些服务就在相对应的目录下,比如级别5要启动的服务就都放在rc5.d下,同样放在这个rc5.d下的也都是一些链接文件,链接到init.d中相对应的文件,而真正执行都是要到/etc/rc.d/init.d里的脚本去找。

系统启动步骤

在升级的第10步里面的rc.local则是系统预留给用户的可以添加自定义执行的文件,完全是操作习惯的问题,有点像windows系统的开机启动目录。综上,从开机到登录,便可以梳理出如下几步了:

第一步:通过/boot/vm进行启动 vmlinuz(内核引导)

第二步:init /etc/inittab (进入哪个级别,命令行还是窗口模式等)

第三步:启动相应的脚本,并且打开终端(启动哪些服务)

.sysinit

第四步:启动login登录界面 login (登录授权)

第五步:在用户登录的时候执行sh脚本的顺序(一些环境变量),每次登录的时候都会完全执行的:

/etc/profile.d/file

题外话

到这基本了解了linux的启动过程和openssh升级了吧。系统有漏洞不及时打补丁修复可能被黑客攻击,真的不能抱有侥幸心理,中勒索病毒概率还是蛮大的。系统如此,人更甚!人如果有短板也需及时充电,沈大师还抽空读书呢

a833c35bf8cd2aa860f18c922eda93eb.png

 参考链接:

[1].Openssh官网下载:https://openbsd.hk/pub/OpenBSD/OpenSSH/portable/

[2].Linux启动过程:https://www.runoob.com/linux/linux-system-boot.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值