前序
Apache是一款知名的網站服務器軟件,用於架設網站服務器(WEB服務器),Apache的常規配置在我的視頻中有詳細講解,如果對此服務器的基本操作還不熟練,大家可以查看 。
正常情況下,通過域名訪問主機,該域名會解析成web服務器的IP,從而達到訪問web服務器的目的,但如果一些非法的域名,也被解析為該web服務器的地址,就會對web服務器造成很多困擾,尤其是惡意解析,配合DDOS攻擊,會對web服務器會造成更大的傷害。今天,我們討論一下Apache的站點安全性實現,限制通過IP地址訪問站點,僅允許通過域名(而且是指定的域名)訪問,該方法主要防止部分用戶的惡意解析行為。
實驗過程
下面我們開始講解實驗過程:
實驗環境:準備2臺主機(vmware workstation)
- Apache Server CentOS7 192.168.0.1 www.pip.cc
- Client Windows7 192.168.0.88
實驗準備:設置IP地址、安裝httpd服務
圖1、圖2、圖3分別配置了兩臺主機的ip地址,並在CentOS7上安裝了Apache服務。
準備工作我們做好了,說一下”僅域名能訪問,IP不能訪問“的思路,其實很簡單,我們利用Windows服務器中”主機頭“的概念,將通過IP訪問服務器的客戶端強制”轉移“到其它目錄,使其看不到真正的站點,即可實現限制IP訪問的目的。
步驟一、關閉Apache默認主頁(這個會對實驗效果有影響,該默認主頁僅僅用於測試Apache服務器是否安裝成功,在實際環境下幾乎用不到,關掉也無妨)
圖4中,修改/etc/httpd/conf.d/welcome.conf文件,將紅框部分註銷掉,表示關閉默認主頁。
步驟二、創建站點根目錄(注意要創建兩個根目錄)
圖5中,我們創建了兩個站點目錄,其中/var/www/test/是正常網站目錄,而/var/www/errors/是假網站目錄,我們只要將通過IP訪問服務器的用戶”引導“到該目錄即可!
步驟三、創建虛擬主機(注意要創建兩臺虛擬主機)
圖6中,創建/etc/httpd/conf.d/vt.conf文件,該文件用於配置虛擬主機,圖7是vt.conf的內容,紅框部分就是主機頭,我們可以清楚的看見第一個虛擬主機是正常的,主機頭是www.pip.cc,第二個虛擬主機是異常的,主機頭是192.168.0.1。也就是說,用戶只能通過www.pip.cc這個域名去訪問站點服務器,如果直接用IP訪問,就會訪問到錯誤的頁面。
步驟四、重啟httpd服務後驗證
圖8中,修改好配置文件後,要重啟apache服務才能生效。
圖9中,因為要通過域名訪問,還需要配置DNS服務器,模擬環境下不做了,太麻煩,DNS是動態解析,我們可以用靜態解析替換,直接修改windows7的hosts文件(C:\\windows\\system32\\drivers\\etc\\),添加紅框部分的記錄,表示www.pip.cc會被解析為192.168.0.1。
圖10中,我們同時通過域名和IP訪問Apache服務器,發現通過IP地址訪問的頁面出現了友好的錯誤提示,而通過域名訪問的頁面提示welcome。實驗成功!我們成功將IP訪問頁面引導向另一個頁面。
後序實驗補充
以上就是限制IP訪問,僅允許域名訪問的方法,嚴格意義上說,這個不叫限制,最多稱為隱藏。圖10中,通過IP訪問,出現了友好提示”You Must use Domain-Name to visit“,當然這個是我自己寫的提示,算是”溫柔的手段“,如果”暴力“一點的,我們也可以這樣做,看下幾張圖:
圖11中,創建/etc/httpd/conf.d/di.conf文件,寫入目錄權限
圖12中,我們可以針對通過IP訪問的站點根目錄(/var/www/errors)寫入拒絕權限,圖13是驗證效果,網頁乾脆打不開了。
圖14中,也可以這樣寫,這個寫法在Apache2以前的版本中很流行,也是拒絕所有人訪問。圖15是驗證效果,提示的非常明確:Forbidden,被拒絕了。
這兩種”暴力“方法都可以,在實際使用過程中,更傾向於”溫柔“方法,通過友好提示,引導用戶通過域名訪問網站。大家可以試一下,很實用的技巧,今天就到這裡,晚安給位!
閱讀更多 年糕IT講堂 的文章