2022-10-06 分類: 網(wǎng)站建設(shè)
由于公司機房和辦公環(huán)境是在一起的,默認(rèn)情況下公司出口IP是禁止80/443訪問【運營商側(cè)有限制】。目前采用的是阿里云進(jìn)行中轉(zhuǎn),即將開發(fā)環(huán)境的域名解析到阿里云,然后通過Nginx反向代理到公司出口非80端口。開發(fā)環(huán)境部分接口涉及到第三方回調(diào)和校驗,所以完全禁止開發(fā)環(huán)境對外網(wǎng)訪問不現(xiàn)實。
目前合理的需求如下:
公司網(wǎng)絡(luò)地址段可以訪問開發(fā)環(huán)境不受限制 允許部分第三方IP地址段加入白名單 若第三方IP不固定,需支持第三方回調(diào)的URL加入白名單 不在上述條件內(nèi)全部禁止外網(wǎng)訪問。面對上述簡單的需求場景,我們?nèi)绾螌崿F(xiàn)呢?
方案一:采用防火墻白名單策略進(jìn)行實現(xiàn),目前看只能實現(xiàn) 1 和 2 的條件
方案二:采用Nginx的allow、deny等策略,目前看也只能實現(xiàn) 1 和 2 的條件
方案三:采用Nginx+Lua 通過access_by_lua_file策略,目前看能實現(xiàn)上述所有條件而且實現(xiàn)起來比較簡單,改造成本較小。
在Nginx的server層配置:access_by_lua_file 'scripts/filter_white.lua' filter_white.lua 腳本配置信息: root@develop:/usr/local/nginx/scripts# cat filter_white.lua -- 默認(rèn)配置 local redis = require 'resty.redis' local allow = false -- 連接Redis local red = redis:new() local ok, err = red:connect('172.17.173.183', 26379) if not ok then ngx.log(ngx.ERR, 'connect to redis failed: ' .. err) end local res, err = red:auth('Huajianghu@123') if not res then ngx.log(ngx.ERR, 'failed to authenticate: ' .. err) end -- 過濾精確IP --if red:sismember('white:dev:ip', ngx.var.remote_addr) == 1 then -- allow = true --end -- 過濾IP地址段 local iputils = require("resty.iputils") iputils.enable_lrucache() local white_ips =red:smembers('white:dev:ip') local whitelist = iputils.parse_cidrs(white_ips) if iputils.ip_in_cidrs(ngx.var.remote_addr, whitelist) then allow = true end -- 過濾URL if not allow then local url = ngx.var.http_host .. ngx.var.uri local white_urls = red:smembers('white:dev:url') forindex, white_url in ipairs(white_urls) do if url:match(white_url) then allow = true break end end end -- 默認(rèn)策略 if not allow then ngx.log(ngx.ERR, "not allow: " .. ngx.var.http_host .. ngx.var.uri) ngx.status = ngx.HTTP_FORBIDDEN ngx.say('請申請白名單') ngx.exit(200) end3.此腳本僅供參考使用,特殊場景需要進(jìn)行修改lua腳本
新聞標(biāo)題:開發(fā)環(huán)境下如何進(jìn)行安全加固呢
網(wǎng)頁URL:http://www.rwnh.cn/news/202677.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、虛擬主機、定制開發(fā)、小程序開發(fā)、網(wǎng)站營銷、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容