網站屏蔽和阻止特定地區和國家的IP訪問設置方法-PHP代碼/Nginx/WordPress設置

有不少的朋友搭建了外貿站的朋友想要限制自己的網站不讓國內的IP訪問,也有一些朋友網站存放的資源可能因為各種原因需要阻止特定的IP訪問,還有一些朋友看到攻擊源IP大多來自國外,想要阻止國外的IP造訪網站。

無論是出於什麼原因,屏蔽和阻止特定地區和國家的IP訪問都是我們日常建站中經常要用到的。如果你用的是PHP,比較簡單的方法就是在PHP檔案加入判斷IP的程式碼,利用IP函式庫進行比對,如果IP為限定存取範圍內,則阻止其繼續存取。

如果網站是Nginx,則可以直接使用Nginx-ngx_http_geoip_module模組,該模組可以精確到國家、省、市等一級的IP,並且全部由Nginx執行識別和阻止訪問,所以相對於PHP來說比較省資源,但Nginx編譯起來比較費事。

如果網站是搭建在VPS或獨立伺服器上,那麼可以直接使用Linux防火牆,利用iptables規則來阻止特定國家和省份的IP存取。當是,Wordpress用戶完全不用擔心Nginx、iptables等設定的問題,因為Wordpress早就有了各種限制IP存取的插件了。

Cloudflare自動封鎖惡意IP到防火牆和自動切換5秒盾腳本防CC攻擊

一個朋友將自己的企業站放在其雲端否主機上,流量不大,但由於使用的是經常受到CC攻擊,主要表現就是IO和CPU爆增,最後就是資料庫掛掉導致網站無法存取。一開始啟用了Cloudflare,但是攻擊者瘋狂地掃描,防禦效果一般。

為了能夠精確地識別惡意IP,在啟用了Cloudflare CDN後需要在Nginx和Apache中啟用Real IP模組,然後利用腳本分析網站日誌,從日誌中蒐集異常IP,然後使用Cloudflare API批量將惡意IP添加到Cloudflare的防火牆當中。

當然,當網站遭遇非常強大的CC和DDoS攻擊時,我們可以啟用Cloudflare經典的5秒盾防攻擊,如果把握不了攻擊的頻率的話,可以設定一個定時任務,當系統負載超過某一個值(一般來攻擊會導致系統負載爆增),呼叫Cloudflare API啟用5秒盾。

Cloudflare自動封鎖惡意IP到防火牆和自動切換5秒盾腳本防CC攻擊

VPS主機與伺服器安全防護:SSH修改連接埠,新增白名單,僅限金鑰登入

最近有朋友在使用其雲端否主機時,發現SSH一直在被人暴力掃描,雖然說SSH帳號和密碼始終沒有被猜出來,但是老是被人盯著恐怕遲早要出事。於我幫他設定了S-S-H登入白名單,即只允許自己的IP登入訪問,其它的IP一概拒絕。

其實,要確保S-S-H不被破解,最簡單的方法就是修改預設的22端口,例如我們用的經典VPS,VPS在創建時就預設修改了22端口。最徹底的方法,是禁止使用帳號密碼登錄,而是改用金鑰登錄,只要確保金鑰安全,伺服器也沒有人能進入了。

本篇文章就來分享Linux VPS主機和伺服器安全防護一些基本的方法,例如修改SSH的端口;給SSH登錄添加白名單,僅允許自己的IP訪問;也可設置密鑰登錄,禁止密碼登錄,這樣破解者就「無門可入」了。

當然,有經驗的朋友還可以直接關閉S-S-H登錄,如果已經安裝了像寶塔BT面板WDCP面板,則可以直接在面板的後台選擇關閉S-S-H,或者手動關閉它們。有些商家例如阿里雲、騰訊雲等還自帶了安全組,你也可以在安全組中選擇臨時屏蔽22等端口,等到自己要用的時候再手動去開啟端口,雖然有點麻煩,但是卻是比較簡單方便的方法。

VPS主機防攻擊應對CC和DDOS的基本想法-防掃描防火牆阻止策略

越來越多的人使用VPS主機建站,但是與虛擬主機或管理型的伺服器相比,個人VPS主機基本上是無管理型的,即主機商只負責VPS主機的網路暢通,至於技術上的問題都得靠自己來解決。之前用阿里雲的VPS主機經常受到CC和DDOS攻擊,基本上每次一被攻擊就要進入阿里雲的「黑洞」。

阿里雲對待CC和DDOS的VPS主機一般不能防禦太多流量,一旦攻擊流量起來了基本上會清空路由,如果被攻擊的次數多了話甚至會長達一天或幾天的「黑洞」。現在挖站否搬家到了經典CN2 VPS搬運工上,之前有收到過熱心朋友的提醒,搬運工對待CC和DDOS的次數只有3次,超過3次直接封掉VPS。

這次的攻擊事件也讓我知道了將網站放在經典VPS主機上依然要保持一種小心謹慎的態度。在最開始挖站否無法打開,接著受到不少朋友發來的信息提醒,我馬上登錄到主機商後台查看,從監控圖表中可以看出VPS的CPU佔用超過100%,頻寬速度已經超過上百MB,顯然VPS是被主機商給斷網了。

這篇文章就來分享一下使用VPS主機建站的朋友,應對小型的CC和DDOS攻擊的基本步驟,基本上是圍繞防火牆阻止惡意IP來展開的。

訂閱@標題