下面直接開始操做實驗過程。SW1和SW2上面只須要關閉路由功能就行。下面是在ASA防火牆上的操做,啓動ASA的startup-config配置文件。linux
而後配置ASA防火牆的IP地址,設置相應的區域,而且作了一個NAT地址轉換。web
此時配置完成就能夠互相連通了。下面來檢查客戶機的IP地址配置,本地鏈接2迴環網卡的配置以下所示。正則表達式
下面再來檢查linux服務器的IP地址配置,首先查看鏈接網卡VMnet1要和拓撲圖銜接,宿主機上的VMnet1設置爲自動獲取就行。apache
編輯linux服務器的IP地址、子網掩碼和網關地址。瀏覽器
而後下面作DNS服務,關閉防火牆和SElinux,安裝DNS服務,編輯NDS服務的配置文件,這裏只是給你們引用一下DNS詳細過程http://zhang2015.blog.51cto.com/9735109/1661890。緩存
注意要配置兩個主句A記錄區域accp.com.zone和benet.com.zone。而後重啓DNS服務,使用host可以正常解析這兩個域名就OK了。安全
而後下面就是配置apache服務,默認系統已經安裝了,只要啓用一下就行,可是直接啓用會有一些提示信息,這些提示信息其實不影響apache服務的使用。服務器
下面切換至/etc/httpd/conf.d/目錄下,編輯基於不一樣主機名的兩個web網站,具體配置過程能夠看http://zhang2015.blog.51cto.com/9735109/1670759。tcp
下面就可使用客戶機的瀏覽器,輸入域名進行訪問測試。下面我要作的就是在ASA防火牆上作URL域名過濾掉accp網站。ide
下面纔是今天的重頭戲……url過濾,建立class-map 類映射,識別傳輸流量,下面有圖。
access-list aclfile extended permit tcp 192.168.100.0 255.255.255.0 any eq 80 //定義ACL訪問控制列表aclfile,注意網段,不要照抄
class-map aclclass //創建類映射aclclass
match access-list aclfile //匹配訪問控制列表
定義正則表達式以前,決定url中包含的(域名)關鍵字
regex url "\.accp\.com" //*注意斜槓別寫反了*//
創建類映射urlclass,而且調用匹配正則表達式。
class-map type regex match-any urlclass
match regex url
創建檢查流量的類映射,檢查IP報文頭部,是不是http流量。
class-map type inspect http httpclass
match request header host regex class urlclass//調用以前已配置好的urlclass//,下圖中綠色框內,所有都只是名字。
建立policy-map 策略映射,關聯class-map,要麼容許這個連接,要麼丟棄這個連接。一般把策略應用在inside(入站)接口上,一個接口只能應用一個策略映射。
policy-map type inspect http httppolicy //創建策略映射
class httpclass //調用已經作好的檢查http頭部的類映射
drop-connection log //丟棄並記錄日誌
policy-map insidepolicy //對訪問控制列表進行操做,定義相應策略
class aclclass //調用訪問控制列表的類映射
inspect http httppolicy //檢查定義好的策略映射//
service-policy insidepolicy interface inside //應用在inside端口//
下面再次進行訪問,此時最好先刷新一下緩存。
再次進行訪問時,benet網站仍是可正常訪問,而accp網站則是不可以進行訪問。
實驗總結:對於URL過濾在主機的hosts文件中也能夠直接進行定義,可是那要對內部客戶機一臺一臺進行設置,工做量很是龐大,並且很容易被人篡改。因此在ASA防火牆上作是即方便又安全。
對於ASA中URL的過濾語句、定義類型、所類型的名稱千萬不能搞亂,亂了也就玩完了。但願你們細心一點,多多檢查。
OK!實驗完成!