2022-10-06 分類: 網(wǎng)站建設(shè)
由于公司機(jī)房和辦公環(huán)境是在一起的,默認(rèn)情況下公司出口IP是禁止80/443訪問【運(yùn)營商側(cè)有限制】。目前采用的是阿里云進(jìn)行中轉(zhuǎn),即將開發(fā)環(huán)境的域名解析到阿里云,然后通過Nginx反向代理到公司出口非80端口。開發(fā)環(huán)境部分接口涉及到第三方回調(diào)和校驗(yàn),所以完全禁止開發(fā)環(huán)境對外網(wǎng)訪問不現(xiàn)實(shí)。
目前合理的需求如下:
公司網(wǎng)絡(luò)地址段可以訪問開發(fā)環(huán)境不受限制 允許部分第三方IP地址段加入白名單 若第三方IP不固定,需支持第三方回調(diào)的URL加入白名單 不在上述條件內(nèi)全部禁止外網(wǎng)訪問。面對上述簡單的需求場景,我們?nèi)绾螌?shí)現(xiàn)呢?
方案一:采用防火墻白名單策略進(jìn)行實(shí)現(xiàn),目前看只能實(shí)現(xiàn) 1 和 2 的條件
方案二:采用Nginx的allow、deny等策略,目前看也只能實(shí)現(xiàn) 1 和 2 的條件
方案三:采用Nginx+Lua 通過access_by_lua_file策略,目前看能實(shí)現(xiàn)上述所有條件而且實(shí)現(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腳本
網(wǎng)站題目:開發(fā)環(huán)境下如何進(jìn)行安全加固呢
文章路徑:http://www.rwnh.cn/news27/202677.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站維護(hù)、靜態(tài)網(wǎng)站、動態(tài)網(wǎng)站、全網(wǎng)營銷推廣、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容