轉至:https://segmentfault.com/a/1190000019059894
背景
2019年04月17日,Oracle發布新季度安全公告。該安全公告披露WebLogic服務器存在多個高危漏洞,影響多個版本多個WebLogic組件。這次我們以本次事件為例,講解如何給WebLogic(11g/12c)服務器打補丁。
本次漏洞受影響的包括三個Oracle WebLogic Server版本,分別是:
- 10.3.6.0.0
- 12.1.3.0.0
- 12.2.1.3.0
補丁下載
點擊進入補丁下載頁面,你需要提前注冊好oracle賬號才能下載。
該頁面內容較多,比較不容易找到需要的補丁,有個小技巧,按 Ctrl+F
進行關鍵字搜索,搜索 weblogic
看到有鏈接的地方點擊進入,可以直接跳轉到補丁下載地址,如圖:
以下是我們整理好的補丁的下載地址,你也可以直接點擊下載:
補丁安裝 - 10.3.6.0.0
10.3.6.0.0是通過 PSUs (patch set updates)工具對補丁進行安裝。
1. 關閉服務器
登陸console控制台,將所有server包括admin server關閉
2. 備份中間件目錄(重要)
安裝補丁前請務必備份好中間件目錄(是中間件目錄不是domain),以便修復過程發生意外可以恢復。假設我們的中間件目錄為/u01/app/Oracle/Middleware
$ cd /u01/app/Oracle/Middleware
$ cp -rf Middleware Middleware_bak20190423
備份時間較長,可以先去喝杯咖啡,備份完成后繼續以下步驟。
3. 上傳補丁,准備環境
將下載好的補丁,通過ftp等工具將補丁文件 p29204678_1036_Generic.zip
上傳至 {MW_HOME}/utils/bsu/cache_dir目錄下並解壓,cache_dir 目錄如果沒有需要手動創建。如果之前有上傳過補丁,則先將之前的補丁刪除后再上傳。
-rw-r--r-- 1 oracle oinstall 101146211 Apr 19 17:09 p29204678_1036_Generic.zip
-rw-r--r-- 1 oracle oinstall 136403408 Feb 4 04:30 patch-catalog_26516.xml
-rw-r--r-- 1 oracle oinstall 136403408 Apr 19 18:25 patch-catalog.xml
-rw-rw-r-- 1 oracle oinstall 61197 Apr 15 17:56 README.txt
-rw-r--r-- 1 oracle oinstall 93124490 Feb 4 04:30 U5I2.jar
4、修改bsu.sh配置
為了避免補丁安裝過程中內存不足,建議對bsu.sh進行修改,將默認的內存最小值從256m修改為1024m;最大值從513m修改為2048m
#!/bin/sh
JAVA_HOME="/u01/java/jrockit-jdk1.6.0_33-R28.2.4-4.1.0"
MEM_ARGS="-Xms1024m -Xmx2048m"
"$JAVA_HOME/bin/java" ${MEM_ARGS} -jar patch-client.jar $*
5. 補丁安裝
在bsu文件目錄/u01/app/Oracle/Middleware/utils/bsu下,執行下面命令(兩個路徑需要按實際服務器環境上的home路徑替代):
$ cd /u01/app/Oracle/Middleware/utils/bsu
$ ./bsu.sh -install -patch_download_dir={MW_HOME}/utils/bsu/cache_dir -patchlist={PATCH_ID} -prod_dir={WEBLOGIC_HOME}
- {PATCH_ID}:補丁id,可以在README.txt中找到,本次補丁PATCH_ID=U5I2
- {WEBLOGIC_HOME}:weblogic目錄,在Middleware目錄下,如(/u01/app/Oracle/Middleware/wlserver_10.3)
6. 驗證補丁是否安裝成功
補丁安裝成功以后,重啟所有server,如果補丁安裝成功,在weblogic server的啟動日志中,可以看到以下版本信息。
7. 補丁卸載
在安裝補丁的過程中,如果碰到本次補丁和之前安裝的補丁沖突,需要先卸載之前的補丁,再安裝新的補丁,卸載命令:
$ cd /u01/app/Oracle/Middleware/utils/bsu
$ ./bsu.sh -remove -verbose -patchlist=U5I2 -prod_dir=/u01/app/Oracle/Middleware/wlserver_10.3
補丁安裝 - 12.2.1.3.0
weblogic從 12 版本開始,使用OPatch工具進行補丁安裝。
1、OPatch升級
12.2.1.3.0版本補丁需要使用OPatch的版本為 13.9.4.0.0 ,可通過 {ORACLE_HOME}/OPatch/opatch -version 命令查看當前 OPatch版本,如果版本不夠則需要升級版本。
將該版本OPatch壓縮包下載后會解壓出 opatch_generic.jar ,將其上傳至 {ORACLE_HOME} 目錄,刪除已有的 {ORACLE_HOME}/OPatch/ 目錄(先備份),再執行下列命令,生成新的 {ORACLE_HOME}/OPatch/ 目錄
java -jar opatch_generic.jar -silent oracle_home={ORACLE_HOME}
2. 關閉服務器
登陸console控制台,將所有server包括admin server關閉
3. 備份中間件目錄(重要)
安裝補丁前請務必備份好中間件目錄(是中間件目錄不是domain),以便修復過程發生意外可以恢復。假設我們的中間件目錄為/u01/app/Oracle/Middleware
$ cd /u01/app/Oracle/Middleware
$ cp -rf Middleware Middleware_bak20190423
備份時間較長,可以先去喝杯咖啡,備份完成后繼續以下步驟。
4、上傳補丁,准備環境
OPatch在服務器上的安裝路徑為 {ORACLE_HOME}/OPatch/(例如 /u01/Middleware/Oracle_Home/OPatch/)
通過ftp等工具將下載好的補丁文件 p29016089_122130_Generic.zip
上傳至 {ORACLE_HOME}/PATCH_TOP/目錄下並解壓(如:/u01/Middleware/Oracle_Home/PATCH_TOP),PATCH_TOP目錄如果沒有需要手動創建。如果之前有上傳過補丁,則先將之前的補丁刪除后再上傳。
drwxr-xr-x. 4 oracle oinstall 67 Mar 6 03:24 29016089
-rw-r--r--. 1 oracle oinstall 39435868 Apr 22 10:06 p29016089_122130_Generic.zip
5、補丁安裝
進入到上一步驟中解壓的補丁編碼目錄中,執行安裝補丁的命令
$ cd {ORACLE_HOME}/PATCH_TOP/29016089/
$ sh {ORACLE_HOME}/OPatch/opatch apply
執行該腳本后,如果有提示輸入Y/N則全部輸入Y,控制台輸出 OPatch succeeded
后表示補丁安裝成功。
6、重啟服務器
補丁安裝成功以后,重啟所有server。
7、卸載
如果想要卸載補丁,進入補丁目錄下,執行 rollback 卸載命令
$ cd {ORACLE_HOME}/PATCH_TOP/29016089/
$ sh {ORACLE_HOME}/OPatch/opatch rollback -id 29016089
#29016089是補丁編號(PATCH_ID)
補丁安裝 - 12.1.3.0.0
12.1.3.0.0版本補丁的安裝方式和12.2.1.3.0一樣,只是替換一下補丁,都通過OPatch來安裝補丁。