談談如何快速的應對網站被攻那點事node
網絡安全的重要性nginx
網絡安全性一直是一個是作it人員,最關心的一個話題,一個網站是否穩定的運行,還得看它安全性高不高,固然,也要看看你的網站是否能賺錢,哈哈,能賺錢事就多了。web
爲啥網站會被攻ji?安全
網站被攻ji,說白就是眼紅唄,刷你流量,你能咋地,哈哈;bash
突發,網站被攻ji?服務器
很不幸,最近搞的一個新網站,被攻ji了,凌晨一兩點時,收到短信,443端口不可達的告警信息,剛開始時,覺得是監控系統出問題了,怎麼會出現這個那麼不合理的告警信息,收到信息,確實挺驚訝的,沒多管,主要着實冷,爬起來費力,後來告警信息多了,(用戶也反饋了)乖乖起來,電腦一開,訪問一下網站,GG,還真是,空白頁面,啥都沒有。網絡
如何應對?問題定位?架構
立刻,ssh登陸服務器,也是GG,登不進去。遇到這種狀況,慌不慌,哈哈,因此必須想盡辦法登陸進去處理。ssh
先談談我搭建網站使用的架構吧,使用的是雲服務器,nignx 實現後臺web代理,登陸每一個web服務器,都能正常登陸,而只有nginx代理沒法登陸。ide
登陸不了,很明顯,服務器,cpu,寬帶都跑滿了唄,也很明顯,網站是被攻ji了
重點來了:如何處理?
說實話,我的也是第一次遇到這種問題,不幹這行的,心裏要特別大,冷靜思惟是必須擁有的。把這個當成一個日常的問題處理就行了。我分析一下,大概分如下幾個步驟:
第一步:登陸服務器
既然,咱們的ssh遠程不了,服務器的,大概就是服務器的寬帶佔滿,這個是拿他沒辦法的;因此咱們能夠經過內網登陸。即經過雲平臺去登陸。在這裏有個小狀況,你會發現內網也會登陸不了,爲啥,寬帶都擠滿了,確定不行的了,這會,你須要從新啓動一下你的服務器,或者設置一下你的端口規則,把web端口訪問去掉,這樣就能很快的登陸服務器了。
第二步:中止nginx代理,日誌分析
中止nginx,這個也是須要的,由於網站都訪問不了,停了反正不影響。找到對應的域名nginx日誌,使用awk分析nginx日誌,統計ip數量,下面是個人一個IP統計,
awk '{a[$1]++}END{for(i in a) if(a[i]>100){print i,a[i]}}' www.test.com_nginx.log-20201230 | sort -k2 -nr | head -n 20
大概就是這樣子:
第三步:deny ip,IP限流
1. Deny ip
從上圖的統計分析可知,基本把超過5萬數量的直接被屏蔽就好,很簡單,nginx 上直接配置
deny ip
2. IP限流
其實也挺好配置的
nginxconf 添加
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
vhost添加
limit_req zone=one burst=10 nodelay;
解析一下:意思是每一個ip 每秒,能夠完成10+10個的請求,下一秒每秒完成10+1,直到10秒後再恢復10+10個請求,以此類推
第四步:加大服務器帶寬
這個也很簡單,不是刷流量嗎,加大帶寬,反正喜歡你就刷唄。
第五步:cdn 域名、ip假裝加速
基本雲平臺,都能配置,配置好以後,咱們經過工具,看看是否能分析到真實ip
經過dig工具,你會發現你的網站真實ip,確實已經被隱藏了
經過工具分析:
最終:網站恢復使用?
到這裏,咱們須要作的都作了,接着直接恢復,nginx,web規則,代理的一些服務,稍等片刻後,你會發現網站很友好滴,出來了,各資源使用狀況,也逐漸恢復正常,可是不友好的是,深夜,夜很長~。