类别:CISCO / 日期:2019-10-09 / 浏览:1261 / 评论:0

一、访问ACL时需遵守一些重要规则:

1、总是按顺序将分组与ACL的每一行进行比较。首先访问第一行,之后第二行,第三行……

2、不断比较,直到满足条件为止

3、每个ACL末尾都有一条隐式的deny(拒绝)语句。则如果不满足ACL中任何行条件时,分组将被丢弃!


二、ACL简介

1、标准ACL

只使用源IP地址做条件,意味着要么允许要么拒绝整个IP的所有协议,不能单独限制某些端口。

2、扩展ACL

可以根据源IP地址、目标IP地址、协议类型、端口来做控制。

3、创建ACL后,要将其应用于接口,否则不能生效。还要指定用ACL来过滤哪个方向的数据流。

(1)入站ACL。应用于某接口的入站方向,则数据先经过过滤,再进入到路由器。

(2)出站ACL。应用于某接口的出站方向,则未处理的数据在路由器内可以随意流动,但出了某接口后就变成了过滤的数据。


三、ACL注意事项

1、每个接口上只能有一个入站ACL和一个出站ACL。因为每个ACL末尾后有一条DENY隐式语句的影响,所以不可能有多个ACL同时存在。

2、在ACL中,要将具体的过滤条件放在前面。

3、新增的语句放在ACL的末尾。

4、不能仅删除ACL中的一行。如果这样做,将删除整个ACL要编辑ACL,最好先将其复制到文本编辑器中。命名ACL是唯一的例外。

5、除非ACL以permit any命令结尾,否则不满足任何条件的分组都将被丢弃。所以ACL至少包含一条permit语句,否则将拒绝所有的数据流。又是deny隐式语句的影响。

6、应将IP标准ACL放在目的地尽可能近的地方。因为它只能根据源地址进行过滤,这将影响所有的目的地。所以一般好少使用标准ACL。

7、应将IP扩展ACL放在信源尽可能近的地方。因为扩展ACL可根据非常具体的条件进行过滤,不希望数据流穿越整个网络后,最终却被拒绝。所以放在近信源的地方,可一开始就过滤,以免占用宝贵的带宽。


四、标准ACL

标准ACL根据源地址过滤数据流。创建标准ACL时,使用的ACL编号为1~99或1300~1999(扩展范围)。通常使用编号来区分ACL的类型。

指定ACL编号后,需要决定要创建的是permit语句或deny语句。最后再指定源地址。例:

R1(config)#access-list 10 deny host 192.168.10.12    //拒绝192.168.10.12主机的数据通过

R1(config)#access-list 10 permit host 192.168.10.15    //允许192.168.10.15主机的数据通过

 R1(config)#access-list 10 permit host any    //允许所有主机的数据通过

或使用通配符掩码:

R1(config)#access-list 10 deny 192.168.10.12 0.0.0.0    //拒绝192.168.10.12主机的数据


五、通配符掩码(反掩码)

在ACL中,可使用通配符掩码来指定特定主机、特定网络或网络的一部份。先要理解块大小,用于指定的地址范围。包括64、32、16、8等。例如,如果需要指定34个网络,则块大小为64;需要指定17台电脑,则块大小为32;需要指定2台主机,则块大小为4。

通过使得反掩码和主机(网络)来确定路由器过滤的地址范围。要指定单独一台主机,可以使用类似下面的组合:

172.16.10.1 0.0.0.0

0表示绝对匹配。要指定某个字节为任意值,可使用255。例:

172.16.1.0 0.0.0.255

意思是前三个0为绝对匹配,后面的255为任意值。

指定的范围必须与某个块大小相同。换句话说,不能指定21个网络,而只能指定与块大小相同的范围,即要么是32,要么是16,但不能是21。

还有很重要一点,通配符掩码总是比块大小小1。例:块大小为8时,通配符掩码为7;块大小为32时,通配符掩码为31。例:

R1(config)#access-list 10 deny 172.16.16.0 0.0.7.255

意思是拒绝IP为172.16.16.0~172.16.23.255的网络

总结以下两点:

1、起始位置必须为0或块大小的整数倍。

2、命令any与0.0.0.0 255.255.255.255等价。


六、标准ACL示例:

要求不让销售部员LAN的用户访问财务部LAN,但允许他们访问因特网和人事部。

R1(config)#access-list 10 deny 172.16.30.0 0.0.0.255    //定义标准ACL 10
R1(config)#access-list 10 permit any     //加一条permit any,不然所有数据都被拒绝               
R1(config)#int e0/0
R1(config-if)#ip access-group 10 out    //将标准ACL 10放在离目的财务部最近的接口E0/0,方向为出
R1(config-if)#exit

注意:

1、如果没有在最后加一条access-list 10 permit any ,则人事部、销售部和因特网都不能和财务部互联,相当于断开了E0/0接口。

2、删除已建立的标准ACL
R1(config)#no access-list +access-list number
对标准的ACL来说,不能删除单个acl语句,只能删除整个ACL。

ACL只能从后增加,但不能删除。如果删除一条,则所有的ACL条项都被删除。所以如果要编辑ACL,应先复制到文本中,编辑好后再粘贴上去。

如上图,如果要禁止三个部门访问INTERNET,则:

R1(config)#access-list 10 deny 172.16.10.0 0.0.0.255 

R1(config)#access-list 10 deny 172.16.20.0 0.0.0.255 

R1(config)#access-list 10 deny 172.16.30.0 0.0.0.255 

R1(config)#access-list 10 permit any

R1(config)#int e0/3
R1(config-if)#ip access-group 10 out

当然也可以使用一条ACL

R1(config)#access-list 10 deny 172.16.0.0 0.0.255.255

但相当于完全禁止了INTERNET,一般好少这样设的。


七、扩展ACL

扩展访问控制列表的格式:
access-list access-list number {permit/deny} protocol +源地址+反码 +目标地址+反码+operator operan(It小于,gt大于,eq等于,neq不等于.具体可?)+端口号
1、扩展访问控制列表号的范围是100-199或者2000-2699。
2、因为默认情况下,每个访问控制列表的末尾隐含deny all,所以在每个扩展访问控制列表里面必须有例如:access-list 110 permit ip any any 。
3、不同的服务要使用不同的协议,比如TFTP使用的是UDP协议。
4、更多注意事项可以参考上面标准访问控制列表部分
例如:access-list 101 deny tcp any host 192.168.1.1 eq www     //将所有主机访问192.168.1.1这个地址网页服务(WWW)TCP连接的数据包丢弃。

实例一:
R2(config)#access-list 110 deny tcp any host 192.168.1.12 eq www
R2(config)#access-list 110 deny tcp any host 192.168.1.12 eq ftp

R2(config)#access-list 110 permit ip any any

R2(config)#int fa0/0
R2(config-if)#ip access-group 110 out    //
因为目标只是一台主机,所以应该应用于最近主机的F0/0,并为出方向。
上面配置的含义是拒绝访问192.168.1.12的www和ftp服务。

实例二:
路由器连接了二个网段,分别为192.168.4.0/24,192.168.3.0/24。在192.168.4.0/24网段中有一台服务器提供WWW服务,IP地址为192.168.4.13。
要求:禁止192.168.3.0的计算机访问192.168.4.0的计算机,包括那台服务器,不过惟独可以访问192.168.4.13上的WWW服务,而其他服务不能访问。
路由器配置命令:
access-list 101 permit tcp any 192.168.4.13 0.0.0.0 eq www  //设置ACL101,容许源地址为任意IP,目的地址为192.168.4.13主机的80端口即WWW服务。由于CISCO默认添加DENY ANY的命令,所以ACL只写此一句即可。
进入靠近目标地址的端口
ip access-group 101 out //将ACL101应用到端口

设置完毕后192.168.3.0的计算机就无法访问192.168.4.0的计算机了,就算是服务器192.168.4.13开启了FTP服务也无法访问,惟独可以访问的就是192.168.4.13的WWW服务了。

R2(config)#access-list 101 permit tcp any 192.168.4.13 0.0.0.0 eq www

R2(config)#int f0

R2(config-if)#ip access-group 101 out

或者:

R1(config)#access-list 101 permit tcp 192.168.3.0 0.0.0.255 192.168.4.13 0.0.0.0 eq www

R1(config)#access-list 101 deny ip 192.168.3.0 0.0.0.255 192.168.4.0 0.0.0.255

R1(config)#access-list 101 permint ip any any

R1(config)#int f0

R1(config-if)#ip access-group 101 in

实例三:

如上图,只允许192.168.3.0/24网络访问192.168.4.13的WWW和FTP,其它所有服务都不准。

R1(config)#access-list 101 permit tcp 192.168.3.0 0.0.0.255 192.168.4.13 0.0.0.0 eq 80

R1(config)#access-list 101 permit tcp 192.168.3.0 0.0.0.255 192.168.4.13 0.0.0.0 eq 21

R1(config)#int f0

R1(config-if)#ip access-group 101 in

删除已建立的扩展标准ACL
删除和标准一样,不能单条删除,只能删除整个acl


八、命名ACL
不管是标准ACL还是扩展访ACL都有一个弊端,那就是当设置好ACL的规则后发现其中的某条有问题,希望进行修改或删除的话只能将全部ACL信息都删除。也就是说修改一条或删除一条都会影响到整个ACL列表。这一个缺点影响了我们的工作,为我们带来了繁重的负担。不过我们可以用基于名称的访问控制列表来解决这个问题。
命名访问控制列表格式:
ip access-list {standard/extended} access-list-name(可有字母,数字组合的字符串)
例如:ip access-list standard softer     //建立一个名为softer的标准访问控制列表。
命名访问控制列表使用方法:
router(config)#ip access-list standard +自定义名
router(config-std-nac1)#11 permit host +ip     //默认情况下第一条为10,第二条为20.如果不指定序列号,则新添加的ACL被添加到列表的末尾
router(config-std-nac1)#deny any
对于命名ACL来说,可以向之前的acl中插入acl,删除也可以删除单条acl,
如:router(config)#ip access-list standard benet
router(config-std-nasl)#no 11

例:

Router(config)#ip access-list extended HQINBOUND

Router(config-ext-nacl)#permit tcp any any eq www

Router(config-ext-nacl)#permit tcp any any eq 21

Router(config-ext-nacl)#permit tcp any any established 
Router(config-ext-nacl)#permit icmp any any echo 
Router(config-ext-nacl)#deny ip any any 
Router(config-ext-nacl)#exit
Router(config-ext-nacl)#int f0/0
Router(config-ext-nacl)#ip access-group HQINBOUND in
Router(config-ext-nacl)#end


九、使用show access-lists可查看配置的acl信息

十、反向访问控制列表
反向访问控制列表属于ACL的一种高级应用。他可以有效的防范病毒。通过配置反向ACL可以保证AB两个网段的计算机互相PING,A可以PING通B而B不能PING通A。
说得通俗些的话就是传输数据可以分为两个过程,首先是源主机向目的主机发送连接请求和数据,然后是目的主机在双方建立好连接后发送数据给源主机。反向ACL控制的就是上面提到的连接请求。
反向访问控制列表的格式:
反向访问控制列表格式非常简单,只要在配置好的扩展访问列表最后加上established即可。
反向访问控制列表配置实例:
如上图,路由器连接了二个网段,分别为192.168.4.0/24,192.168.3.0/24。在192.168.4.0/24网段中的计算机都是服务器,我们通过反向ACL设置保护这些服务器免受来自192.168.3.0这个网段的病毒攻击。
要求:禁止病毒从192.168.3.0/24这个网段传播到192.168.4.0/24这个服务器网段。
路由器配置命令:
R2(config)#access-list 101 permit tcp 192.168.3.0 0.0.0.255 192.168.4.0 0.0.0.255 established     //定义ACL101,容许所有来自192.168.3.0网段的计算机访问192.168.4.0网段中的计算机,前提是TCP连接已经建立了的。当TCP连接没有建立的话是不容许的。
R2(config)#int f0

R2(config-if)#ip access-group 101 out     //将ACL101应用到端口
设置完毕后病毒就不会轻易的从192.168.3.0传播到192.168.4.0的服务器区了。因为病毒要想传播都是主动进行TCP连接的,由于路由器上采用反向ACL禁止了192.168.3.0网段的TCP主动连接,因此病毒无法顺利传播。
小提示:检验反向ACL是否顺利配置的一个简单方法就是拿192.168.4.0里的一台服务器PING在192.168.3.0中的计算机,如果可以PING通的话再用192.168.3.0那台计算机PING192.168.4.0的服务器,PING不通则说明ACL配置成功。
通过上文配置的反向ACL会出现一个问题,那就是192.168.3.0的计算机不能访问服务器的服务了,假如图中192.168.4.13提供了WWW服务的话也不能正常访问。解决的方法是在ESTABLISHED那句前头再添加一个扩展ACL规则,例如:

R2(config)#access-list 101 permit tcp 192.168.3.0 0.0.0.255 192.168.4.13 0.0.0.0 eq www
这样根据“最靠近受控对象原则”即在检查ACL规则时是采用自上而下在ACL中一条条检测的,只要发现符合条件了就立刻转发,而不继续检测下面的ACL语句。192.168.3.0的计算机就可以正常访问该服务器的WWW服务了,而下面的ESTABLISHED防病毒命令还可以正常生效。


十一、访问控制列表流量记录
网络管理员就是要能够合理的管理公司的网络,俗话说知己知彼方能百战百胜,所以有效的记录ACL流量信息可以第一时间的了解网络流量和病毒的传播方式。下面这篇文章就为大家简单介绍下如何保存访问控制列表的流量信息,方法就是在扩展ACL规则最后加上LOG命令。
实现方法:
log 192.168.1.1 //为路由器指定一个日志服务器地址,该地址为192.168.1.1
access-list 101 permit tcp any 192.168.4.13 0.0.0.0 eq www log     //在希望监测的扩展ACL最后加上LOG命令,这样就会把满足该条件的信息保存到指定的日志服务器192.168.1.1中。
小提示:如果在扩展ACL最后加上log-input,则不仅会保存流量信息,还会将数据包通过的端口信息也进行保存。使用LOG记录了满足访问控制列表规则的数据流量就可以完整的查询公司网络哪个地方流量大,哪个地方有病毒了。简单的一句命令就完成了很多专业工具才能完成的工作。

打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文未使用任何知识共享协议授权,您可以任何形式自由转载或使用。

 可能感兴趣的文章