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

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

來源:本站原創 瀏覽:671次 時間: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 了解詳情。

360廣告招商

推薦站點

  • 國家圖書館國家圖書館

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

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

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

    www.neea.edu.cn
  • 人民論壇網人民論壇網

    人民論壇網為國家一類新聞網站、中央重點思想理論門戶網站、中央網信辦新聞信息稿源單位、全國行業新聞網站傳播力10強網站。人民論壇網由人民日報社主管、人民論壇雜志社主辦,堅持四個自信,弘揚中國精神,引領思想潮流,開創了“互聯網+智庫”的新型發展模式,獲得國家首批數字轉型示范單位等系列榮譽,作為中國思想理論網站的排頭兵,被視為觀察中國思想動態走向的“晴雨表”。

    www.rmlt.com.cn
  • 央廣網央廣網

    央廣網由中央人民廣播電臺主辦,是中央重點新聞網站,以獨家、快速原創報道聞名,以音頻收聽為特色,將打造為新聞門戶,成為優勢突出、特色鮮明的多媒體集群網站

    www.cnr.cn
  • AcFun彈幕視頻網AcFun彈幕視頻網

    AcFun彈幕視頻網隸屬于北京彈幕網絡科技有限公司,是中國最具影響力的彈幕視頻平臺,也是全球最早上線的彈幕視頻網站之一。“AcFun”原取意于“Anime Comic Fun”。自2007年6月6日成立以來,AcFun歷經幾年努力,從最初單一的視頻站發展為現在的綜合性彈幕視頻網站,目前已是國內彈幕視頻行業的領軍品牌。

    www.acfun.cn
羽毛球视频