下面直接开始操作实验过程。SW1和SW2上面只需要关闭路由功能就行。下面是在ASA防火墙上的操作,启动ASA的startup-config配置文件。
然后配置ASA防火墙的IP地址,设置相应的区域,并且做了一个NAT地址转换。
此时配置完成就可以互相连通了。下面来检查客户机的IP地址配置,本地连接2回环网卡的配置如下所示。
下面再来检查linux服务器的IP地址配置,首先查看连接网卡VMnet1要和拓扑图衔接,宿主机上的VMnet1设置为自动获取就行。
编辑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。
下面就可以使用客户机的浏览器,输入域名进行访问测试。下面我要做的就是在ASA防火墙上做URL域名过滤掉accp网站。
下面才是今天的重头戏……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!实验完成!