好久没写博客了,主要是写的都是不方便上传的,今天写一下防火墙的技术,也不知能不能上传成功吧。今天讲一下思科的两大IOS防火墙技术之一–CBAC,主要介绍其原理和实例的配置解析。当然,如果可以的话后面再讲另外一个zone-based技术。
CBAC(context-based access control)即基于上下文的访问控制,它不用于ACL(访问控制列表)并不能用来过滤每一种TCP/IP协议,但它对于运行TCP、UDP应用或某些多媒体应用(如Microsoft的NetShow或Real Audio)的网络来说是一个较好的安全解决方案。除此之外,CBAC在流量过滤、流量检查、警告和审计蛛丝马迹、入侵检测等方面表现卓越。在大多数情况下,我们只需在单个接口的一个方向上配置CBAC,即可实现只允许属于现有会话的数据流进入内部网络。可以说,ACL与CBAC是互补的,它们的组合可实现网络安全的最大化。
通俗的来说,一般我们配置ACL,默认都是出包和回包都会匹配中的,所以我们想做当方面的数据包匹配限制,那么就得去配置一些特殊的ACL,比如自反ACL等等,具体可参照我的那篇高级ACL配置。而CBAC就是配置一个流量的监控,使得我们单方面限制的时候,回包不走ACL,走的是流量的监控。
CBAC指定了哪些协议及接口、接口方向(流入和流出)需要被检查,同指定了检查的起始。CBAC只对指定的协议进行检查。对于这些协议,只要数据包经过已配置检查策略的接口,那么无论它们从哪个方向通过防火墙都将被检查。进入防火墙的数据包只会在其第一次通过接口的入站ACL时才会被检察。如果数据包被ACL拒绝,数据包会被简单的丢掉并且不会被CBAC检查。
![在这里插入图片描述](https://img-blog.csdnimg.cn/202004240918148.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1N0ZXBoZW5famo=,size_16,color_FFFFFF,t_70)
1.单一信道穿过防火墙,不对协议进行限制及过滤。
ip inspect name CBAC tcp //监控TCP通道,使得单一的TCP协议可以正常工作 。
ip inspect name CBAC udp // //监控UDP通道,使得单一的TCP协议可以正常工作 。
2.特殊运用层协议监控,保障协议正常工作,对协议安全进行防护及过滤,配置的alert,audit-trail,timeout优于全局设置。
ip inspect name CBAC smtp
ip inspect name CBAC ftp
3.告警与审计
ip inspect alert-off
ip inspect audit-trail
4.全局DOS相关参数
ip inspect max-incomplete high 1000 (最大半开连接high为1000,超过进入aggressive mode)
ip inspect max-incomplete low 800(最大半开连接low为800,超时进入aggressive mode)
ip inspect one-minute high 1000(每分钟半开连接为1000)
ip inspect one-minute low 800(每分钟半开连接为800)
ip inspect upd idle-time 10(UDP闲置时间,超时后防火墙丢弃会话信息)
ip inspect dns-timeout 3(DNS超时时间,超时后防火墙丢弃会话信息)
ip inspect tcp idle-time 360(TCP闲置时间,超时后防火墙丢弃会话信息)
ip inspect tcp finwait-time 1(发现FIN交换后,1秒内防火墙丢弃会话信息)
ip inspect tcp synwait-time 15(三次握手等待时间为15秒,超时后防火墙丢弃会话信息)
5。查询命令
show ip inspect sessions
show ip inspect config
show ip inspect all
6.清空CBAC配置
no ip ipspect
如上面拓扑所示,配置全网通信,R4模拟服务器,R2模拟防火墙,R1模拟inside网络,R3模拟outside网络。
需求:
1、 监控outbound所有HTTP/SMTP/FTP/telnet/ICMP协议
2、 限制穿越防火墙的TCP三次握手在15秒内完成
3、 对穿越防火墙的半开连接进行限制,最高为1000,最低为800。
4、 防火墙需要做私有地址的地址欺骗防护
5、 放行源至于互联网访问内部服务器的http流量。
6、 调用监控策略使得R1可以访问R3的设置协议。
底层配置这里不再介绍,需保证全网通信。
R4(config)#ip http server //开启http服务
在R3上添加设置管理用户和密码,方便测试,
R3(config)#line vty 0 4
R3(config-line)#login local
R3(config)#username cjc password cjc
其他配置如下:
1.
R2(config)#ip inspect name cbac http
R2(config)#ip inspect name cbac smtp
R2(config)#ip inspect name cbac icmp
R2(config)#ip inspect name cbac telnet
2.
R2(config)#ip inspect tcp synwait-time 15
3.
R2(config)#ip inspect max-incomplete high 1000
%Also resetting low threshold from [unlimited] to [1000](该提示是提醒需配置最低的连接数)
R2(config)#ip inspect max-incomplete low 800
4.
R2(config)#ip access-list extended out-in
R2(config-ext-nacl)#deny ip 10.0.0.0 0.255.255.255 any
R2(config-ext-nacl)#deny ip 172.16.0.0 0.15.255.255 any
R2(config-ext-nacl)#deny ip 192.168.0.0 0.0.255.255 any
R2(config)#ip access-list extended out-in
R2(config-ext-nacl)#permit tcp any host 12.1.1.100 eq 80
R2(config-ext-nacl)#deny ip any any log
R2(config)#int f0/1
R2(config-if)#ip access-group out-in in
6.
R2(config)#int f0/1
R2(config-if)#ip inspect cbac out
配置完成,来查看效果
当我们配置好5,还未配置6的时候,我们可以看到,R3去访问R1的80是可以的,访问其他端口就不行了,所以这里ping失败了。这里是因为ACL策略。策略上的内容决定了流量的走向。
再来看此时R1是没办法ping通R3。也是ACLdeny了所有,所以也是无法ping通和telnet。
我们通过6的配置,调用1的监控策略,那么单数据回包是走的就是监控策略,而不是ACL策略了,监控策略优先于ACL策略。此时就可以ping以及telnet等我们设置的协议了。原因就是本来网络就是可通信的,但是ACL使得其无法通信,调用监控策略,从而使得重新通信。
再来查看防火墙R2的监控状态,很明显可以抓取到数据流,不过要主要我们设置是15秒,15秒后会消失的。而且只会显示一条协议
防火墙技术会从最基本的讲起,所是写的有所错误,请留言直接,让我们共同进步,感谢观看。