服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Solaris - 给Solaris打补丁 保护系统安全

给Solaris打补丁 保护系统安全

2019-11-20 21:23Solaris教程网 Solaris

一、solaris 补丁 介绍 1.1补丁的种类及文件名 solaris的补丁分为两类,一类是Point补丁,另一类是Cluster补丁。 a)Point补丁程序: 这类补丁仅仅是针对某一问题或缺陷而发布的单个补丁程序,solaris7、solaris8、solairs9的Patch一般为*.zip文件

一、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;

23Arestrictedpatchisalreadyappliedtothepackage

24Anincompatiblepatchisapplied

25Arequiredpatchisnotapplied

26Theuserspecifiedbackoutdatacan'tbefound

27Therelativedirectorysuppliedcan'tbefound

28Apkginfofileiscorruptormissing

29BadpatchIDformat

30Dryrunfailure(s)

31Pathgivenfor-Coptionisinvalid

32MustberunningSolaris2.6orgreater

33Badformattedpatchfileorpatchfilenotfound

34Theappropriatekerneljumbopatchneedstobeinstalled

35Laterrevisionalreadyinstalled

延伸 · 阅读

精彩推荐