2019年04月17日,Oracle發佈新季度安全公告。該安全公告披露WebLogic服務器存在多個高危漏洞,影響多個版本多個WebLogic組件。此次咱們以本次事件爲例,講解如何給WebLogic(11g/12c)服務器打補丁。java
本次漏洞受影響的包括三個Oracle WebLogic Server版本,分別是:web
點擊進入補丁下載頁面,你須要提早註冊好oracle帳號才能下載。安全
該頁面內容較多,比較不容易找到須要的補丁,有個小技巧,按 Ctrl+F
進行關鍵字搜索,搜索 weblogic
看到有連接的地方點擊進入,能夠直接跳轉到補丁下載地址,如圖:bash
如下是咱們整理好的補丁的下載地址,你也能夠直接點擊下載:服務器
10.3.6.0.0是經過 PSUs (patch set updates)工具對補丁進行安裝。oracle
登錄console控制檯,將全部server包括admin server關閉app
安裝補丁前請務必備份好中間件目錄(是中間件目錄不是domain),以便修復過程發生意外能夠恢復。假設咱們的中間件目錄爲/u01/app/Oracle/Middleware
dom
$ cd /u01/app/Oracle/Middleware $ cp -rf Middleware Middleware_bak20190423
備份時間較長,能夠先去喝杯咖啡,備份完成後繼續如下步驟。工具
將下載好的補丁,經過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
爲了不補丁安裝過程當中內存不足,建議對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 $*
在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}
補丁安裝成功之後,重啓全部server,若是補丁安裝成功,在weblogic server的啓動日誌中,能夠看到如下版本信息。
在安裝補丁的過程當中,若是碰到本次補丁和以前安裝的補丁衝突,須要先卸載以前的補丁,再安裝新的補丁,卸載命令:
$ cd /u01/app/Oracle/Middleware/utils/bsu $ ./bsu.sh -remove -verbose -patchlist=U5I2 -prod_dir=/u01/app/Oracle/Middleware/wlserver_10.3
weblogic從 12 版本開始,使用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}
登錄console控制檯,將全部server包括admin server關閉
安裝補丁前請務必備份好中間件目錄(是中間件目錄不是domain),以便修復過程發生意外能夠恢復。假設咱們的中間件目錄爲/u01/app/Oracle/Middleware
$ cd /u01/app/Oracle/Middleware $ cp -rf Middleware Middleware_bak20190423
備份時間較長,能夠先去喝杯咖啡,備份完成後繼續如下步驟。
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
進入到上一步驟中解壓的補丁編碼目錄中,執行安裝補丁的命令
$ cd {ORACLE_HOME}/PATCH_TOP/29016089/ $ sh {ORACLE_HOME}/OPatch/opatch apply
執行該腳本後,若是有提示輸入Y/N則所有輸入Y,控制檯輸出 OPatch succeeded
後表示補丁安裝成功。
補丁安裝成功之後,重啓全部server。
若是想要卸載補丁,進入補丁目錄下,執行 rollback 卸載命令
$ cd {ORACLE_HOME}/PATCH_TOP/29016089/ $ sh {ORACLE_HOME}/OPatch/opatch rollback -id 29016089 #29016089是補丁編號(PATCH_ID)
12.1.3.0.0版本補丁的安裝方式和12.2.1.3.0同樣,只是替換一下補丁,都經過OPatch來安裝補丁。