WAF 的更新是一個比較容易出問題的地方,接下來我將一步步說明我們具體更新的操作
### 更新 openresty
#### 腳本更新
運行 ./openstar.sh 腳本;選擇 2 ,使用腳本自動更新;
更新完成后,還需要運行 8 ;
#### 手動更新
~~~bash
# 下載相關包 以 1.19.9.1
mkdir -p /opt/down/ && cd /opt/down
# 下載自己需要更新的 openresty 版本
wget https://openresty.org/download/openresty-1.19.9.1.tar.gz
# 安裝過,下面的可以不用下載了
# wget http://luarocks.org/releases/luarocks-3.2.1.tar.gz
# wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
# git clone --depth=1 https://github.com/leev/ngx_http_geoip2_module.git
# 解壓文件
tar -xvf openresty-1.19.9.1.tar.gz
# 編譯安裝
./configure --prefix=/opt/openresty/ \
--add-module=/opt/down/ngx_http_geoip2_module \
--add-module=/opt/down/ngx_cache_purge-2.3 \
--with-ld-opt='-ljemalloc' \
--with-debug \
--with-threads \
--without-luajit-gc64 \
--with-stream_realip_module \
--with-stream_ssl_module \
--with-stream_ssl_preread_module \
--with-http_realip_module \
--with-http_stub_status_module \
--with-http_slice_module \
--with-http_v2_module
gmake && gmake install
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
chown nobody:nobody -R /opt/openresty/
cd /opt/openresty/
chown root:nobody nginx/sbin/nginx
chmod 751 nginx/sbin/nginx
chmod u+s nginx/sbin/nginx
cat /etc/profile |grep "openresty" ||(echo "PATH=/opt/openresty/nginx/sbin:\$PATH" >> /etc/profile && source /etc/profile)
~~~
更新完成后,還需要運行 openstar.sh ;
選擇 8 ;
### 更新 openstar
#### 腳本更新
**說明:**我們更新 WAF ,對于的目錄 /opt/openresty/openstar/ 會備份老的到 /opt/openresty/openstar.bak/
運行 ./openstar.sh 腳本;選擇 4 ,使用腳本自動更新;接下來我們需要根據自己的實際情況選擇了;
0:保留 nginx.conf waf.conf waf規則(conf\_json/.\*)
解釋:就是把 /opt/openresty/openstar.bak/conf/nginx.conf waf.conf 和 /opt/openresty/openstar.bak/conf\_json/\* 復制到 /opt/openresty/openstar/ 對應目錄中
比如你原來修改了很多 nginx.conf waf.conf 的配置文件的東西,以及添加了很多自己的規則,省的在寫一次,我們就覆蓋復制過去就好了;
1:保留 waf規則(conf\_json/.\*)
解釋:就是把 /opt/openresty/openstar.bak/conf\_json/\* 復制到 /opt/openresty/openstar/ 對應目錄中 ;
比較你修改了很多規則;我們就覆蓋復制過去就好了;
2:保留 nginx.conf waf.conf
解釋:就是把 /opt/openresty/openstar.bak/conf/nginx.conf waf.conf 復制到 /opt/openresty/openstar/ 對應目錄中 ;
比如 nginx.conf 、waf.conf 配置文件你變動的比較多,我們就覆蓋復制過去就好了;
3:保留 \[base(s) admin\_Mod nginx\_Mod certs\_Mod (s)plugin\_Mod\].json info.lua
解釋:就是把 /opt/openresty/openstar.bak/conf\_json/base|admin\_Mod|nginx\_Mod|certs\_Mod|(s)plugin\_Mod.json 和 /opt/openresty/openstar.bak/api/v2/system/info.lua 復制到 /opt/openresty/openstar/ 對應目錄中 ;
base.json 文件存放了集群相關配置(cluster / Master ip 、redis 配置信息等);
admin\_Mod 存放了登陸后臺的用戶名、密碼;
nginx\_Mod 存放了添加的域名配置數據;
certs\_Mod 存放了添加的證書數據;
plugin\_Mod 存放了插件相關數據;
正常情況下我們選擇 3 即可;
更新完成后,還需要運行 8 ;
如果一些配置丟失,我們就到服務器上,將相關配置復制過去即可。
#### 手動更新
~~~bash
cd /opt/openresty/
git clone --depth=1 https://github.com/op-sec-team/releases-openstar-Enterprise
cp -Rf /opt/openresty/openstar /opt/openresty/openstar.bak
cp -Rf ./releases-openstar-Enterprise/openstar /opt/openresty/
cp -Rf ./releases-openstar-Enterprise/view-private /opt/openresty/nginx/html/
chown nobody:nobody -R /opt/openresty/openstar
chown nobody:nobody -R /opt/openresty/nginx/html/view-private
~~~
相關配置恢復(僅在 Master 服務器下操作即可)
~~~bash
# 恢復集群相關配置
cp -f /opt/openresty/openstar.bak/conf_json/base.json /opt/openresty/openstar/conf_json/
# 恢復登陸后臺的配置信息
cp -f /opt/openresty/openstar.bak/conf_json/admin_Mod.json /opt/openresty/openstar/conf_json/
# 恢復添加的域名配置信息
cp -f /opt/openresty/openstar.bak/conf_json/nginx_Mod.json /opt/openresty/openstar/conf_json/
cp -f /opt/openresty/openstar.bak/conf_json/certs_Mod.json /opt/openresty/openstar/conf_json/
# 基本上我們恢復這些數據就夠用了
# 其他的數據更具實際情況我們看是否需要恢復
~~~
執行 openstar.sh 運行 8 ;
- kcon 兵器譜
- 演示 1
- 演示 2
- 演示 3
- 演示 4
- 演示 5
- 前言
- 安裝
- 更新
- 登錄后臺
- 授權認證
- 集群配置
- 7層防護 -- 最佳實踐
- 匹配位置說明
- 匹配方式說明
- 規則匹配詳解
- 全局 - CDN規則
- 添加header頭配置
- 限速limit配置
- 緩存proxy_cache配置
- 清除緩存
- 全局 - 獲取真實IP配置
- 全局 - IP黑白名單
- 全局 - 域名方法配置(白名單)
- 全局 - 跳轉規則配置
- 全局 - 高級規則配置
- 全局 - 普通規則配置
- 全局 - 頻率規則配置
- 全局 - 內容替換規則
- 內容替換規則(插件使用)
- 全局 - 攔截信息配置
- 全局 - LOG規則配置
- 平臺配置
- 基本配置
- 高級配置
- 配置文件管理
- 4 層代理
- 轉發配置
- 插件管理
- 防護配置
- 網站管理
- 證書管理
- 域名管理
- 網站規則
- 插件管理
- 插件操作 --- 基本使用
- 插件操作 --- 手機號脫敏插件
- 歸檔
- 更新日志
- 視頻教程目錄