下面直接开始操做实验过程。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!实验完成!