给Solaris打补丁 保护系统安全

2023-12-04 0 597

一、solaris补丁介绍

1.1补丁的种类及文件
solaris的补丁分为两类,一类是Point补丁,另一类是Cluster补丁。

a)Point补丁程序:
这类补丁仅仅是针对某一问题或缺陷而发布的单个补丁程序,solaris7、solaris8、solairs9的Patch一般为*.zip文件solaris2.6一般为.tar.Z或.tar.gz文件,它有如下编号方式:
patchbasecode-revisionnum(如110668-04)
前面部分是这个补丁的主版本号(basecode),后面部分是此补丁的修订号。两者合起来构成此补丁的Patch-ID。如上例编号为110668-04的补丁,110668为主版本号,04是修订号。此补丁是在110668-03的基础上做了新的修复。有一点需要指出,补丁版本号为110668的一系列补丁都是针对/usr/sbin/in.telnetd这一文件的不同问题的修复,110668-04发布以后,sun将不再提供110668-04以前的补丁,如110668-03等。

b)Cluster补丁程序:
cluster补丁仅仅是一系列point补丁的重新包装,并带有自动安装程序。Cluster补丁的命名方式如下:
version_Recommended
如:9_x86_Recommended.zip是针对Solaris9forX86的补丁集。
8_Recommended.zip是针对Solaris8forSparc的补丁集。
每个Cluster补丁都对应一个CLUSTER_README文件,详细描述了该Cluster包含的补丁,以及安装的方法或注意事项。

1.2关于补丁的其他信息
sun公司对每一版本的solaris都维护了一份PatchReports,该PatchReports包含了对应版本solaris所有补丁的描述。PatchReports每月更新两次,可以从如下地址得到:
http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access&nav=patchpage

另外sun还维护了一份SunAlertPatchReport,该文档按产品分类,并且随时更新。从这里可以找到所有sun产品的更新文档及相应补丁,当然也包括的solaris的SunAlert文档、PatchID、简要说明等。SunAlertPatchReport从这里可以得到:
http://sunsolve.sun.com/pub-cgi/show.pl?target=sunalert_patches
相应的solaris部分可从如下链接得到:
http://sunsolve.sun.com/pub-cgi/show.pl?target=sunalert_patches#Solaris
表格按时间排序,从Category表格中可以知道此问题属于安全缺陷修复还是应用优化。

二、补丁的下载
Cluster补丁可以从如下网址下载:
http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access&nav=patchpage
同样可以使用FTP协议下载,在sunsolve.sun.com的/pacthroot/clusters可以找到所有的Cluster补丁。下载后为一个*_Recommended.zip文件。该压缩文件包含一份CLUSTER_README文件,建议安装前阅读此文件。
Point补丁由于其分散性不易下载与管理,可以使用SunAlertPatchReport或PatchReports来查看补丁情况,这两份文档相应的PatchID及对应下载地址。另外sun网站提供的PatchFinder功能也可以使我们在知道PatchID的情况下很方便的找到该补丁,连接如下:
http://sunsolve.sun.com/pub-cgi/show.pl?target=patches/patch-access&nav=patchpage
同样,利用ftp协议从sunsolve.sun.com的/patchroot/all_unsigned目录下也可以下载指定Patch。
Sun公司建议所有下载的补丁都放到/var/tmp目录下(这也是通常的做法),如此将不会导致补丁安装时出现的任何permission/ownership的问题。

三、solaris补丁的安装和删除

3.1/var/sadm/patch目录
在/var/sadm/patch目录下,记录了已安装的补丁。
如:#ls/var/sadm/patch
107558-05107594-04107630-01107663-01107683-01
107696-01107817-01107582-01107612-06107640-03
建议不要对此目录做任何修改,此目录被破坏后将不能安装或删除任何补丁。

3.2管理solaris补丁
Solaris提供了两个命令来管理补丁,patchadd和patchrm。这两个命令是在Solaris2.6版本开始提供的,在2.6以前的版本中,每个补丁包中都提供了一个installpatch程序和一个backoutpatch程序来完成补丁的安装和卸载。
patchadd用来安装解压缩后的补丁程序。patchadd通过调用pkgadd命令来安装补丁。安装补丁前,我们需要将补丁解压到/var/tmp下安装。安装补丁如下命令:
#cd/var/tmp
#patchadd110668-04
Checkinginstalledpatches…
Verifyingsufficientfilesystemcapacity(dryrunmethod)
Installingpatchpackages…

如果当前目录下有110668-04目录,patchadd将安装此补丁。补丁安装后,系统会备份原文件,以便在以后删除此补丁。如果使用patchadd-d选项安装补丁,系统将不备份源文件,这意味着你将不能在以后删除此补丁。使用patchadd-p选项可以检验已安装的patch,例如:
#patchadd-p
Patch:106793-01Obsoletes:Requires:Incompatibles:
Packages:SUNWhea

同样,solaris提供了另一命令来查看已安装的patch:
#showrev-p
Patch:106793-01Obsoletes:Requires:Incompatibles:
Packages:SUNWhea

patchrm如果因为某种情况你想卸载某一补丁,你可以使用patchrm命令来完成。此命令通过调用pkgadd来恢复安装补丁前的文件备份来卸载补丁。使用Patch-ID作为patchrm的参数就可以卸载补丁:
#patchrm106793-01
Checkinginstalledpackagesandpatches…
Backingoutpatch106793-01…
Patch106793-01hasbeenbackedout.
这里需要说明一下,在如下三种情况下,补丁将不能卸载:
1).在安装patch时,用patchadd-d命令指定patchadd不备份被更新的文件。这样安装的patch无法删除。
2).另一patch需要此patch,即存在dependence(关联性),如一定要删掉该patch,先删掉另一patch。
3).要删的patch已被另一更新的patch废弃了。如安装110668-04补丁后,如果以前安装过110668-03,则110668-03将被110668-04废弃,110668-03将无法删除。

3.3Cluster补丁的安装
Cluster补丁为单个补丁的集合,下载解压后,可以通过执行./install_Cluster脚本来完成补丁集的安装。执行./install_Cluster后,脚本将检查当前目录下的patch_order文件,此文件标明了Patch的安装顺序,./install_Cluster将按照patch_order文件给出的顺序来安装patch。如果没有patch_order文件,则假定当前目录下所有以1开始的目录名均为需要安装的补丁目录,并且假定这些目录的名称次序作为安装Patch的次序。因此你可以通过修改patch_order文件来决定安装或不安装某Patch。

3.4安装Patch时的注意事项
由于在安装Patch时需要更新文件,故此Solaris官方推荐在安装补丁时进入单用户模式安装。在某些重要服务器上可能带来不便,因此你完全可以在多用户模式下通过停止相关服务进程来完成Patch的安装。
Sun推出的Patch并不是每个都一定要安装的,因此需要在安装patch前仔细阅读README来确定是否需要安装此补丁。另外,某些补丁具有依赖性,需要先安装另一补丁才能完成此补丁的安装,这些都会在README中标明。总之,安装补丁之前强烈建议你阅读相应的README(每个Patch都提供单独的README文件)。

3.5安装PATCH过程中出现的问题
在安装补丁的过程中,经常出现一些错误提示。例如:
Installationof123456-11failed.Returncode2
通过Returncode我们可以知道错误类型。需要注意的是,Returncode2说明此补丁已被安装,Returncode8说明此补丁要修复的软件没有被系统安装。因此,2和8是完全可以被忽略的错误提示。下表说明了各个Returncode对应的错误类型。
ExitcodeMeaning
0Noerror
1Usageerror
2Attempttoapplyapatchthat\’salreadybeenapplied
3EffectiveUIDisnotroot
4Attempttosaveoriginalfilesfailed
5pkgaddfailed
6Patchisobsoleted
7Invalidpackagedirectory
8Attemptingtopatchapackagethatisnotinstalled
9Cannotaccess/usr/sbin/pkgadd(clientproblem)
10Packagevalidationerrors
11Erroraddingpatchtoroottemplate
12Patchscriptterminatedduetosignal
13Symboliclinkincludedinpatch
14NOTUSED
15Theprepatchscripthadareturncodeotherthan0.17Mismatchofthe-doptionbetweenapreviouspatchinstallandthecurrentone.
18Notenoughspaceinthefilesystemsthataretargetsofthepatch.
19$SOFTINFO/INST_RELEASEfilenotfound
20Adirectinstancepatchwasrequiredbutnotfound
21Therequiredpatcheshavenotbeeninstalledonthemanager
22Aprogressiveinstancepatchwasrequiredbutnotfound<tr>;
23Arestrictedpatchisalreadyappliedtothepackage
24Anincompatiblepatchisapplied
25Arequiredpatchisnotapplied
26Theuserspecifiedbackoutdatacan\’tbefound
27Therelativedirectorysuppliedcan\’tbefound
28Apkginfofileiscorruptormissing
29BadpatchIDformat
30Dryrunfailure(s)
31Pathgivenfor-Coptionisinvalid
32MustberunningSolaris2.6orgreater
33Badformattedpatchfileorpatchfilenotfound
34Theappropriatekerneljumbopatchneedstobeinstalled
35Laterrevisionalreadyinstalled

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 Solaris 给Solaris打补丁 保护系统安全 https://www.u-9.cn/system/solaris/85109.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务