您好,歡迎來到分類目錄網!本站專注網站分類收錄,打造方便快捷的好站大全,分享精品網站導航展示,是深受廣大網友喜愛與支持的網站收錄與提交入口!
廣告聯系QQ:158925126當前位置:分類目錄網 » 站長資訊 » 網絡安全 » 文章詳細 訂閱RssFeed

云鎖Nginx過濾模塊開源,自定義自己的防火墻

來源:本站原創 瀏覽:842次 時間:2019-01-07

云安全解決方案【云鎖】Nginx模塊開源,幫助用戶適配更多的Nginx版本。秉承著讓安全變得更簡單的宗旨,讓動手能力強的小伙伴親自打造適合自己的Nginx環境。

開源_副本.png

除了采用內核加固技術來增強服務器自身對抗惡意代碼和黑客攻擊的策略外,云鎖通過在web中間件部署安全模塊的方式來對抗網絡攻擊,通過安全模塊的filter過濾功能,云鎖能高效過濾惡意流量和黑客攻擊,強力對抗CC、SQL注入、上傳一句木馬等網絡攻擊。

一般情況下,當用戶安裝云鎖的時候,云鎖會自動適配nginx版本,使用我們已經預編譯好的包含云鎖模塊的 nginx備份并替換掉您當前系統中使用的nginx。卸載時,會將系統原始nginx文件替換回來。因此,云鎖可保護使用nginx搭建的網站,開創了這個領域的先河。

此文檔假設您曾經編譯過nginx或tengine源代碼,如果您之前沒有經驗,請參考:http://nginx.org/en/docs/configure.html


如何編譯云鎖nginx模塊,步驟如下:

1. 為避免意外情況發生, 請先將系統當前使用中的nginx進行備份(包括相關的網站配置文件) 

2. wget https://codeload.github.com/yunsuo-open/nginx-plugin/zip/master -O nginx-plugin-master.zip 

3. unzip nginx-plugin-master.zip

4. cd nginx-plugin-master 

5. pwd 獲取當前云鎖插件源碼所在目錄的全路徑 (假設為:/home/nginx-plugin-master,實際情況以pwd輸出為準)

6. 如果您的環境是tengine,可以跳過這一步。對于nginx版本,由于其不支持post過濾,所以需要修改nginx源碼目錄下src/http/ngx_http_upstream.c 文件 步驟如下:

a. 查找 static void ngx_http_upstream_init_request(ngx_http_request_t *r)函數,在其 所在行上方添加:int ngx_http_yunsuo_post_in_handler(ngx_http_request_t *r);

b. 在ngx_http_upstream_init_request函數開頭,變量聲明后,添加:

    if(ngx_http_yunsuo_post_in_handler(r))

    {

        return;

    }

什么?沒看懂?好吧,以nginx-1.0.11為例:


修改前源碼:

static void

    ngx_http_upstream_init_request(ngx_http_request_t *r)

    {

        ngx_str_t                      *host;

        ngx_uint_t                      i;

        ngx_resolver_ctx_t             *ctx, temp;

        ngx_http_cleanup_t             *cln;

        ngx_http_upstream_t            *u;

        ngx_http_core_loc_conf_t       *clcf;

        ngx_http_upstream_srv_conf_t   *uscf, **uscfp;

        ngx_http_upstream_main_conf_t  *umcf;

        if (r->aio) {

            return;

        }

        u = r->upstream;

        ......

    }

修改后源碼:

static void

    ngx_http_upstream_init_request(ngx_http_request_t *r)

    {

        ngx_str_t                      *host;

        ngx_uint_t                      i;

        ngx_resolver_ctx_t             *ctx, temp;

        ngx_http_cleanup_t             *cln;

        ngx_http_upstream_t            *u;

        ngx_http_core_loc_conf_t       *clcf;

        ngx_http_upstream_srv_conf_t   *uscf, **uscfp;

        ngx_http_upstream_main_conf_t  *umcf;

        if (r->aio) {

            return;

        }

        u = r->upstream;

        ......

    }

7. 云鎖的nginx插件模塊是標準的nginx模塊,所以您在編譯nginx過程中,configure時只要添加額外參數 --add-module=/home/nginx-plugin-master(注意:/home/nginx-plugin-master為示例,實際路徑以步驟5中pwd命令為準) 即可讓nginx支持云鎖的功能,示例如下: 

假設您之前configure時的命令如下:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module \
--with-http_ssl_module --with-http_gzip_static_module \
--add-module=../ngx_cache_purge-1.3

 現在的configure時的命令如下:

./configure --prefix=/usr/local/nginx --with-http_stub_status_module \
--with-http_ssl_module --with-http_gzip_static_module \
--add-module=../ngx_cache_purge-1.3
--add-module=/home/nginx-plugin-master

8. 編譯 nginx (注意:如果原本已經有 nginx, 只執行 make 即可,make install 會覆蓋掉你的 nginx.conf)

9. 將系統當前使用中的nginx二進制文件替換為剛剛編譯好的包含了云鎖模塊的nginx文件即可


讓云鎖識別您自己編譯的nginx,步驟如下:

1. 安裝云鎖,如果您已經安裝了云鎖,可跳過此步驟。如果還沒有,請到http://www.yunsuo.com.cn/ht/software/ 下載并安裝云鎖

2. cd /usr/local/yunsuo_agent/nginx/ 

3.  ./configure_compiled_nginx nginx_install_path (nginx_install_path為nginx的安裝路徑,即configure時 --prefix=path 如果未指定過路徑, 那么默認為/usr/local/nginx)

FAQ


1. 什么情況下我需要自己編譯云鎖的nginx模塊? 

(a)當您的nginx使用了第三方或者自己開發的模塊的時候,需要編譯云鎖的nginx模塊。您可以通過nginx -V命令查看輸出的 信息里是否包含了 --add-module= 的字樣 (例如:--add-module=../ngx_cache_purge-1.3 說明使用了ngx_cache_purge-1.3第三方 模塊)

(b)當使用tengine的時候,需要編譯云鎖的nginx模塊 c.當您發現當前使用的nginx版本比我們自動安裝的版本高的時候,可以自己編譯云鎖的nginx模塊

(c)當您發現當前使用的nginx版本比我們自動安裝的版本高的時候,可以自己編譯云鎖的nginx模塊


2. 如果我把云鎖卸載了,nginx需要重新編譯嗎?

不需要,云鎖的nginx模塊會判斷云鎖是否安裝,如果不安裝則不生效。當然您也可以替換回之前的nginx

3. 我應該先安裝云鎖,還是先編譯nginx?

都可以,沒有先后順序關系

4. 怎樣單獨卸載 nginx 插件?

有如下三種方式可以實現卸載插件:

(a)現有版本 nginx 默認不支持從客戶端卸載,如果想支持從客戶端卸載, 需要手動將 系統原有的 nginx 重命名為 nginx.bak,  并將之替換 /usr/local/yunsuo_agent/nginx/backup 目錄下的 nginx.bak(此操作需要關閉云鎖自保護功能), 這樣就可以使用客戶端的插件卸載功能了

(b)手動刪除或者重命名 /usr/local/yunsuo_agent/nginx/ 目錄下的 libnginx_plugin.so(此操作需要關閉云鎖自保護功能), 重啟 nginx 服務即可

(c)手動使用系統原有的 nginx 直接替換 當前使用的帶有云鎖插件的 nginx

 推薦使用第一種方式, 因為其便于后續的安裝和卸載

推薦使用第一種方式, 因為其便于后續的安裝和卸載

云鎖在GitHub等您,點擊鏈接 https://github.com/yunsuo-open/nginx-plugin#rd 了解詳情。

阿里云開團拉新享三重好禮

推薦站點

  • 學習強國學習強國

    “學習強國”學習網站平臺是為進一步深入學習宣傳貫徹習近平新時代中國特色社會主義思想和黨的十九大精神,按照中央相關部署,中宣部基于互聯網PC端和手機App的信息化平臺建立了“學習強國”學習平臺(以下簡稱“學習平臺”),已于2019年1月1日正式上線。“學習強國”平臺以學習習近平新時代中國特色社會主義思想為主要內容,通過構建網上學習組織架構,實現黨員干部群眾有組織、有指導、有管理、有服務的學習。

    www.xuexi.cn
  • 國家政務服務平臺國家政務服務平臺

    國家政務服務平臺由國務院辦公廳主辦,國務院辦公廳電子政務辦公室負責運行維護。
    國家政務服務平臺作為全國政務服務的總樞紐,重點發揮公共入口、公共通道、公共支撐等三大作用,為全國各地區各部門政務服務平臺提供統一身份認證、統一證照服務、統一事項服務、統一投訴建議、統一好差評、統一用戶服務和統一搜索服務等“七個統一”服務,實現支撐一網通辦、匯聚數據信息、實現交換共享、強化動態監管等四大功能,解決跨地區、跨部門、跨層級政務服務中信息難以共享、業務難以協同、基礎支撐不足等突出問題。

    gjzwfw.www.gov.cn
  • 大公網大公網

    大公網是香港大公報主辦的綜合性新媒體平臺,是華文世界最具影響力的網絡媒體。
    大公報創刊于1902年,是迄今仍在出版的最悠久的中文報章,也是中國最具影響力的媒體之一,在全球華人地區備受尊重。大公報定位于愛國愛港的“精英報”,面向政商界、專業界、文化界、教育界等精英人群,發行世界130多個國家和地區,有著廣泛的、長期固定訂閱的高端讀者,成為中國各級政府、企業面向海外傳播的強力平臺、展示發展風采、招商融資引才的重要窗口,被香港前特首梁振英稱之為“內地和香港的超級聯系人”。

    www.takungpao.com
  • 國家圖書館國家圖書館

    國家圖書館是國家總書庫,國家書目中心,國家古籍保護中心,國家典籍博物館。履行國內外圖書文獻收藏和保護的職責,指導協調全國文獻保護工作;為中央和國家領導機關、社會各界及公眾提供文獻信息和參考咨詢服務;開展圖書館學理論與圖書館事業發展研究,指導全國圖書館業務工作;對外履行有關文化交流職能,參加國際圖聯及相關國際組織,開展與國內外圖書館的交流與合作。

    www.nlc.cn/
  • 中國教育考試網中國教育考試網

    中國教育考試網由中國教育部考試中心主辦,系教育部直屬事業單位,主要承擔教育考試專項職責任務。網站主要有考試資訊、公示公告、考試項目、考試報名、成績查詢、證書查詢、 考試研究等業務,是中國教育考試相關信息最權威的網站之一。

    www.neea.edu.cn
倾国妲己电子游戏 七乐彩基本走势图360 小猪赚钱平台 安徽25选5走势图带连线 浙江快乐12专家推荐号 快车怎样才能赚钱 扎金花偷看牌作弊技巧 三人两房的麻将规则 湖北快三遗漏值 重庆时时彩新规律公式 天龙八部 宝宝 炼丹 赚钱 棋牌十大排行榜大全 时时彩中奖金额怎么算的 新福建体彩22选5走势图 48人中彩票双色球 14场胜负彩预测方法 黑龙江时时彩玩法