想象一下,我们有一台路由器,它连接着内部网络和外部网络。为了保护内部网络不受外部攻击,我们可以在路由器上配置一个扩展的ACL(ip Access-list extended)。
首先,我们定义一个名为“abc”的ACL,这个ACL禁止所有来自192.168.1.0/24网段的ICMP(ping)流量。这样,任何试图从外部网络ping内网192.168.1.0/24网段的行为都会被拒绝。以下是相应的配置:
``` ip access-list extended abc deny icmp any 192.168.1.0 0.0.0.255 permit ip any any exit int s0/0 ip access-group abc in ```
在上面的配置中,如果有人尝试从192.168.1.1(属于192.168.1.0/24网段)ping外网,由于ICMP流量被禁止,这次ping操作将不会成功。这是因为ACL规则是双向的,限制了一方的流量,也会影响到另一方的流量。
接下来,让我们探讨自反ACL(reflexive access list)。自反ACL是一种特殊的ACL,它允许我们动态地创建规则,以应对复杂的网络流量模式。
以一个例子来说明,我们定义了一个名为“refin”的ACL,它只允许OSPF协议通过。这意味着除了OSPF,任何其他流量都会被拒绝。然后,我们使用自反ACL来创建名为“refout”的ACL,它允许所有流量出去,但是这些出去的流量如果符合某些条件,就会在“refin”ACL中自动创建对应的规则,确保返回流量也被允许。
以下是相应的配置:
``` ip access-list extended refin permit ospf any any evaluate abc exit
ip access-list extended refout permit ip any any reflect abc exit
int s0/0 ip access-group refin in ip access-group refout out exit
ip reflexive-list timeout 60 ```
在这里,我们设置了自反ACL的条目有效时间为60秒。这意味着如果从内网发起的流量匹配了“refout”ACL中的规则,那么在“refin”ACL中创建的动态规则将在60秒后自动失效。
通过上述配置,我们可以确保内部网络的安全,同时允许特定的流量如OSPF进行通信。通过ACL的灵活运用,我们可以根据不同的需求来控制网络流量,从而增强网络安全。注意必须是内部发起的!用命名的ACL做。
不是很好理解,看个例子吧。
先看下面的:
ip access-list extended abc
deny icmp any 192.168.1.0 0.0.0.255
permit ip any any
exit
int s0/0
ip access-group abc in
这个ACL是禁止外网去ping内网的192.168.1.0/24这个网段,但是我如果从192.168.1.1去ping外网是否能ping通?
不通!!记住,通信都是双向的!限制住一面的流量就都不通了!!
下面再来看自反ACL吧;
ip access-list extended refin
permit ospf any any
evaluate abc '注意这条语句!
exit
ip access-list extended refout
permit ip any any reflect abc '还有这条!
exit
int s0/0
ip access-group refin in
ip access-group rofut out
exit
ip reflexive-list timeout 60
仔细看看先,在接口的in方向上只允许了一个ospf协议,其他访问都禁止了,也就是不允许外网访问内网。evaluate abc嵌套了一个反射ACL,名称为abc。
在接口的out方向上,允许所有的访问,记住刚才提到的;可以出去但是回不来!!!所以在permit ip any any 后加上了一个reflect abc,也就是说,任何从内网发起的流量如果它匹配这条permit ip any any reflect abc语句的话,则自动在refin的列表中创建一条动态的permit语句!用show access-lists可以看到!不是简单的将这个条目中的源目的地址调过来啊!是详细条目啊!
记住,自反ACL永远是permit的,做个实验好好理解一下吧!
ip reflexive-list timeout 60 设置的是反射出来的条目的有效时间!