Apache服務器限制用戶通過IP訪問,僅允許域名訪問

前序

Apache是一款知名的網站服務器軟件,用於架設網站服務器(WEB服務器),Apache的常規配置在我的視頻中有詳細講解,如果對此服務器的基本操作還不熟練,大家可以查看 。

正常情況下,通過域名訪問主機,該域名會解析成web服務器的IP,從而達到訪問web服務器的目的,但如果一些非法的域名,也被解析為該web服務器的地址,就會對web服務器造成很多困擾,尤其是惡意解析,配合DDOS攻擊,會對web服務器會造成更大的傷害。今天,我們討論一下Apache的站點安全性實現,限制通過IP地址訪問站點,僅允許通過域名(而且是指定的域名)訪問,該方法主要防止部分用戶的惡意解析行為。

實驗過程

下面我們開始講解實驗過程:

實驗環境:準備2臺主機(vmware workstation)

  1. Apache Server CentOS7 192.168.0.1 www.pip.cc
  2. Client Windows7 192.168.0.88

實驗準備:設置IP地址、安裝httpd服務

Apache服務器限制用戶通過IP訪問,僅允許域名訪問

圖1 Apache Server IP信息

Apache服務器限制用戶通過IP訪問,僅允許域名訪問

圖2 安裝Apache

Apache服務器限制用戶通過IP訪問,僅允許域名訪問

圖3 Client Windows7 IP

圖1、圖2、圖3分別配置了兩臺主機的ip地址,並在CentOS7上安裝了Apache服務。

準備工作我們做好了,說一下”僅域名能訪問,IP不能訪問“的思路,其實很簡單,我們利用Windows服務器中”主機頭“的概念,將通過IP訪問服務器的客戶端強制”轉移“到其它目錄,使其看不到真正的站點,即可實現限制IP訪問的目的。

步驟一、關閉Apache默認主頁(這個會對實驗效果有影響,該默認主頁僅僅用於測試Apache服務器是否安裝成功,在實際環境下幾乎用不到,關掉也無妨)

Apache服務器限制用戶通過IP訪問,僅允許域名訪問

圖4 關閉默認主頁

圖4中,修改/etc/httpd/conf.d/welcome.conf文件,將紅框部分註銷掉,表示關閉默認主頁。

步驟二、創建站點根目錄(注意要創建兩個根目錄)

Apache服務器限制用戶通過IP訪問,僅允許域名訪問

圖5 創建站點目錄

圖5中,我們創建了兩個站點目錄,其中/var/www/test/是正常網站目錄,而/var/www/errors/是假網站目錄,我們只要將通過IP訪問服務器的用戶”引導“到該目錄即可!

步驟三、創建虛擬主機(注意要創建兩臺虛擬主機)

Apache服務器限制用戶通過IP訪問,僅允許域名訪問

圖6 創建虛擬主機配置文件vt.conf

Apache服務器限制用戶通過IP訪問,僅允許域名訪問

圖7 vt.conf

圖6中,創建/etc/httpd/conf.d/vt.conf文件,該文件用於配置虛擬主機,圖7是vt.conf的內容,紅框部分就是主機頭,我們可以清楚的看見第一個虛擬主機是正常的,主機頭是www.pip.cc,第二個虛擬主機是異常的,主機頭是192.168.0.1。也就是說,用戶只能通過www.pip.cc這個域名去訪問站點服務器,如果直接用IP訪問,就會訪問到錯誤的頁面。

步驟四、重啟httpd服務後驗證

Apache服務器限制用戶通過IP訪問,僅允許域名訪問

圖8 重啟apache服務

圖8中,修改好配置文件後,要重啟apache服務才能生效。

Apache服務器限制用戶通過IP訪問,僅允許域名訪問

圖9 Windows7客戶端修改hosts文件

圖9中,因為要通過域名訪問,還需要配置DNS服務器,模擬環境下不做了,太麻煩,DNS是動態解析,我們可以用靜態解析替換,直接修改windows7的hosts文件(C:\\windows\\system32\\drivers\\etc\\),添加紅框部分的記錄,表示www.pip.cc會被解析為192.168.0.1。

Apache服務器限制用戶通過IP訪問,僅允許域名訪問

圖10 Windows7 上驗證效果

圖10中,我們同時通過域名和IP訪問Apache服務器,發現通過IP地址訪問的頁面出現了友好的錯誤提示,而通過域名訪問的頁面提示welcome。實驗成功!我們成功將IP訪問頁面引導向另一個頁面。

後序實驗補充

以上就是限制IP訪問,僅允許域名訪問的方法,嚴格意義上說,這個不叫限制,最多稱為隱藏。圖10中,通過IP訪問,出現了友好提示”You Must use Domain-Name to visit“,當然這個是我自己寫的提示,算是”溫柔的手段“,如果”暴力“一點的,我們也可以這樣做,看下幾張圖:

Apache服務器限制用戶通過IP訪問,僅允許域名訪問

圖11 創建目錄配置文件

圖11中,創建/etc/httpd/conf.d/di.conf文件,寫入目錄權限

Apache服務器限制用戶通過IP訪問,僅允許域名訪問

圖12 目錄權限寫法一

Apache服務器限制用戶通過IP訪問,僅允許域名訪問

圖13 驗證效果一

圖12中,我們可以針對通過IP訪問的站點根目錄(/var/www/errors)寫入拒絕權限,圖13是驗證效果,網頁乾脆打不開了。

Apache服務器限制用戶通過IP訪問,僅允許域名訪問

圖14 目錄權限方法二

Apache服務器限制用戶通過IP訪問,僅允許域名訪問

圖15 驗證效果二

圖14中,也可以這樣寫,這個寫法在Apache2以前的版本中很流行,也是拒絕所有人訪問。圖15是驗證效果,提示的非常明確:Forbidden,被拒絕了。

這兩種”暴力“方法都可以,在實際使用過程中,更傾向於”溫柔“方法,通過友好提示,引導用戶通過域名訪問網站。大家可以試一下,很實用的技巧,今天就到這裡,晚安給位!


分享到:


相關文章: