為了提高云虛擬主機上的網站安全性,防止惡意IP地址訪問網站,避免發生非法盜鏈和惡意采集網站資源的情況,造成資源占用、訪問延遲或網站無法訪問等問題,您可以通過配置Nginx文件或.htaccess文件以及ASP來屏蔽某些惡意IP地址,來指定網站的訪問權限。
注意事項
使用Nginx文件屏蔽IP地址訪問時
云虛擬主機管理控制臺支持allow和deny指令,為保證Nginx服務的穩定性,在控制臺上編寫Nginx文件時,allow和deny指令只允許在location指令下使用。
使用
.htaccess
文件屏蔽IP地址訪問時在Linux操作系統云虛擬主機的/htdocs目錄下,請您提前上傳或者新建
.htaccess
文件。Order指令可以決定Allow規則和Deny規則的生效順序,即哪個規則排在最后,哪個規則就有最終決定權。舉例說明:
先檢查是否有Deny規則,無論有沒有Deny規則都會繼續檢查是否有Allow規則,如果有Allow規則,則執行Allow規則且完全覆蓋掉Deny規則。例如,以下規則表示允許所有IP地址訪問網站。
Order Deny,Allow # 先檢查Deny規則,但Allow規則擁有決定權。 Deny from 192.168.13.0 # 只禁止192.168.13.0地址訪問網站。 Allow from all # 允許所有IP地址訪問網站。
為先檢查是否有Allow規則,無論有沒有Allow規則都會繼續檢查是否有Deny規則,如果有Deny規則,則執行Deny規則且完全覆蓋掉Allow規則。例如,以下規則表示禁止所有IP地址訪問網站。
Order Allow,Deny # 先檢查Allow規則,但Deny規則擁有決定權。 Allow from 192.168.13.0 # 只允許192.168.13.0地址訪問網站。 Deny from all # 禁止所有IP地址訪問網站。
操作步驟
針對不同類型的云虛擬主機,采用不同的屏蔽方式來屏蔽惡意IP地址訪問網站。
部分云虛擬主機提供了訪問控制功能,請以實際控制臺顯示為準,您也可以使用該功能屏蔽惡意IP訪問網站,從而有效降低您網站被DDoS攻擊的風險。具體操作,請參見使用訪問控制屏蔽惡意IP和限制并發連接數。
增強版系統云虛擬主機(Nginx)
針對該類型云虛擬主機,建議您使用Nginx文件屏蔽IP地址。即在云虛擬主機管理控制臺的Nginx設置頁面,配置網站的指定訪問權限,屏蔽不允許的IP地址訪問。
登錄云虛擬主機管理頁面。
找到待配置Nginx文件的增強版云虛擬主機,單擊對應操作列的管理。
在左側導航欄,選擇 。
在NGINX設置頁面的編輯區域,輸入您的配置Nginx文件內容(IP地址屏蔽規則)。
以WordPress網站配置Nginx文件為例。
各場景下IP地址屏蔽的生效規則示例如下所示:
location / { deny 192.168.13.0; }
location / { deny 192.168.13.0; deny 192.168.13.1; deny 10.1.5.0; }
location / { allow 192.168.13.0; allow 10.1.5.0; deny all; }
location / { deny 192.168.13.0/24; }
說明使用掩碼方式配置IP地址段權限時,請您使用網段中最小地址/掩碼方式,否則會出現配置錯誤提示:更新nginx設置失敗:nginx: [warn] low address bits of **** are meaningless。
Nginx文件編輯完成后,單擊保存設置。
完成IP屏蔽規則的配置后,如果這些屏蔽的IP再次訪問您的WordPress網站,網頁會返回403錯誤,表示您無訪問權限。
普通版Linux系統云虛擬主機(Apache)
針對該類型云虛擬主機,建議使用.htaccess
文件屏蔽IP地址,即在云虛擬主機管理控制臺的站點根目錄下,通過.htaccess
文件配置IP地址屏蔽規則。
本文以通過文件管理器方式管理網站程序文件為例,如果您想使用FTP工具管理網站程序文件,請參見通過FileZilla管理網站程序文件。
- 登錄云虛擬主機管理頁面。
- 找到待操作的云虛擬主機,單擊對應操作列下的管理。
- 在左側導航欄,選擇 。
上傳網站程序文件到云虛擬主機并解壓縮。
本文以WordPress網站為例,具體操作,請參見使用文件管理器管理文件。
在主機的站點根目錄下,找到
.htaccess
文件,單擊對應操作列的查看。如果
.htaccess
文件未找到,請下載壓縮包獲取該文件,然后清空原有的規則,按照實際需求添加規則即可。在文件查看/編輯頁面的編輯模式下,輸入
.htaccess
文件內容(IP地址屏蔽規則)。獨享云虛擬主機
各場景下IP地址屏蔽的生效規則示例如下所示:
Order Allow,Deny Allow from all Deny from 192.0.2.0
Order Allow,Deny Allow from all Deny from 192.0.2.1 192.0.2.0
或者
Order Deny,Allow Deny from 192.0.2.1 192.0.2.0
Order Deny,Allow Deny from all Allow from 192.0.2.1 192.0.2.0
Order Allow,Deny Allow from all Deny from 192.168.13.0/24
共享云虛擬主機
各場景下IP地址屏蔽的生效規則示例如下所示:
SetEnvIf X-Real-IP ^(192.0.2.0)$ ip_deny Deny from env=ip_deny
SetEnvIf X-Real-IP ^(192.0.2.0|192.0.2.1|192.0.2.2)$ ip_deny Deny from env=ip_deny
.htaccess
文件編輯完成后,單擊確認。完成IP屏蔽規則的配置后,如果被屏蔽的IP再次訪問您的WordPress網站,網頁會返回403錯誤,表示對應IP地址無訪問權限。
普通版Windows系統云虛擬主機(IIS)
針對該類型云虛擬主機,建議使用ASP屏蔽IP地址。即將以下代碼添加到ASP頁面中,用以屏蔽不允許的IP地址訪問。示例代碼如下所示:
<%
requestIP = request.ServerVariables("REMOTE_ADDR")
IP = "[$Deny_IP2]"
trueURL = "http://www.baidu.com"
falseURL = "http://www.google.com"
ipArr = split(IP,"|")
flag = false
for i=0 to ubound(ipArr)
if requestIP=ipArr(i) then
flag=true
exit for
end if
next
if flag then
response.Redirect(falseURL)
else
response.Redirect(trueURL)
end if
%>
[$Deny_IP2]
為待屏蔽的IP地址,如果需要添加多個待屏蔽的IP地址,中間用|
隔開。