網路攻擊時有發生,
tcp洪水攻擊、注入攻擊、dos等
比較難防的有ddos等
資料安全,防止對手爬蟲惡意爬取,封禁ip
一般就是封禁ip
linux server的層面封ip:iptables
nginx的層面封ip ,方式多種 (但 req還是會打進來, 讓nginx 返回 403, 占用資源)
拓展-自動化封禁思路
編寫shell指令碼
awk統計access.log,記錄每秒訪問超過60次的ip,然後配合nginx或者iptables進行封禁
crontab定時跑指令碼
接下來後面就是關於實際真實雲主機(基於寶塔面板的環境)編寫的shell指令碼
blacklist.sh
(之前所寫的指令碼存在問題,現在已重新修改)
#!/bin/bash
access_file=/www/wwwlogs/**uke.com.log
info_file=/www/wwwlogs/ddos_check.log
blacklist=/www/server/nginx/conf/blacklist.conf
#從日誌上獲取短時間內的訪問量
awk 『end』 acc
essf
ile∣
sort
−nk2
−r
>
access_file | sort -nk2 -r >
access
fil
e∣so
rt−n
k2−r
>
info_file
ips=($(awk 『』 $blacklist))
flagblack=false
while read line
doip_add=echo $line |awk ''
access=echo $line |awk ''
if [ $access -ge 10000 ];then
for ip in $ips
doif [ $ip = $ip_add ];then
flagblack=true
break
fidone
if [ $flagblack = false ];then
echo "deny ipa
dd;"
>
>
ip_add ;" >>
ipadd
;">
>
blacklist
fifi
done <$info_file
crontab -e 進行編輯定時任務
這裡我使用了linux 的crontab設定每5分鐘執行一次,當然你也可以使用swoole的毫毛定時器進行編寫設定成秒級別的檢測執行,這裡我就沒有使用swoole去編寫了。
5 * * * * /www/server/nginx/blacklist.sh
nginx 檢視訪問 IP 並封禁 IP 詳解
1 查詢伺服器所有訪問者ip方法 awk nginx access.log sort uniq c sort nnginx.access.log 為nginx訪問日誌檔案所在路徑 會到如下結果,前面是ip的訪問次數,後面是ip,很明顯我們需要把訪問次數多的ip並且不是蜘蛛的ip遮蔽掉,如下面結果,若...
nginx 檢視訪問 IP 並封禁 IP 詳解
1 查詢伺服器所有訪問者ip方法 awk nginx access.log sort uniq c sort n nginx.access.log 為nginx訪問日誌檔案所在路徑 會到如下結果,前面是ip的訪問次數,後面是ip,很明顯我們需要把訪問次數多的ip並且不是蜘蛛的ip遮蔽掉,如下面結果,...
ip被封禁,怎麼更改ip位址?
上網ip被封禁,該如何更改ip位址,解決問題?換ip的軟體的幾種方法 第一大類是vpn,vpn中也分全域性 和區域性 全域性 就是把你所有的網路資料都傳送到vpn的那端,然後vpn那端再把資料 到目標伺服器,區域性 多見於socket5 web 只對某個程式或者埠進行資料 全域性 可能會影響你的上網...