访问控制列表(ACL)高级应用

  • 格式:docx
  • 大小:197.85 KB
  • 文档页数:7

首先简单介绍下ACLcisco里的ACL一共分为4种1.标准控制列表序号范围在1---99以及1300~1999 标准的控制列表不能过滤数据包中的4层信息,并且只可以过滤三层的原地址2.扩展控制列表需要范围在100-199以及2000~2699 扩展的控制列表可以过滤数据包的4层信息,并且可以根据三层的原目地址进行过滤3.命名控制列表这里不再用序号表示,而是以字符为命名并且还比前两种好的地方在于,可以自由删除表的随意一个条目,而前两种都不行4.基于时间的控制列表这里就是增加了一个时间的选项,前三种都可以引用这个定义的时间(时间可以是周期也可以是绝对时间)ACL 3p原则记住 3P 原则,您便记住了在路由器上应用 ACL 的一般规则。

您可以为每种协议 (per protocol)、每个方向 (per d (per interface) 配置一个 ACL:每种协议一个 ACL 要控制接口上的流量,必须为接口上启用的每种协议定义相应的 ACL。

每个方向一个 ACL 一个 ACL 只能控制接口上一个方向的流量。

要控制入站流量和出站流量,必须分别定义两个 ACL。

每个接口一个 ACL 一个 ACL 只能控制一个接口(例如快速以太网 0/0)上的流量。

ACL 的编写可能相当复杂而且极具挑战性。

每个接口上都可以针对多种协议和各个方向进行定义。

示例中的路由器有两个接口配置了 IP、AppleTalk 和 IPX。

该路由器可能需要12 个不同的 ACL —协议数 (3) 乘以方向数 (2),再乘以端口数 (2)。

ACL的执行过程一个端口执行哪条ACL,这需要按照列表中的条件语句执行顺序来判断。

如果一个数据包的报头跟表中某个条件判断语句相匹配,那么后面的语句就将被忽略,不再进行检查。

数据包只有在跟第一个判断条件不匹配时,它才被交给ACL中的下一个条件判断语句进行比较。

如果匹配(假设为允许发送),则不管是第一条还是最后一条语句,数据都会立即发送到目的接口。

如果所有的ACL判断语句都检测完毕,仍没有匹配的语句出口,则该数据包将视为被拒绝而被丢弃。

这里要注意,ACL不能对本路由器产生的数据包进行控制。

1、利用ACL检测SYN Flood攻击服务器每接收到一个SYN报文就需要建立一个连接并为这个链接信息分配核心内存,并将此链接放入半连接,然后向源地址回应SYN+ACK报文。

如果SYN报文的源地址是伪造的,则源端无法收到服务器发送的SYN+ACK 报文,也就不会返回ACK确认报文,这时服务器上这个半连接就会一直等待直到超时。

如果短时间内接收到的大量SYN报文,半连接队列就会溢出,使得有效的连接被挤出队列。

这种方式的攻击就是SYN Flood攻击。

SYN Flood攻击是利用TCP协议三次握手的原理,发送大量伪造源IP的SYN报文,使被攻击主机产生大量的半连接。

由于SYN Flood攻击的发起报文中SYN位为1,所以可以配置一个扩展ACL来匹配这样的报文,由此来观察是否出现SYN攻击。

配置的ACL如下:Router(config)#access-list 100 permit tcp any any syn此ACL表示TCP报文中SYN位为1的数据报文就会匹配此ACL。

如果只想检测某台服务器是否被攻击,可以将目的地址改为服务器地址。

由于ACL最后隐含着一条全部拒绝的条目,所以还需要进行如下配置:Router(config)#access-list 100 permit ip any any在配置完成后需要在连接服务器的接口应用,之后要查看SYN报文的数量可以使用show ip access-list命令进行查看:Router#show ip access-lists记录数据图形如图6.1所示。

图6.1 数据记录图和数据记录表由上图可以看出,服务器平时收到的SYN报文数大约在12500左右,但是10月14日和15日数量突然增加,并且增加量较大属于异常情况。

这时,就需要做进行一步的检查了。

2、记录ACL日志在路由器接口应用ACL后,根据ACL中配置的规则来控制数据包的转发或丢弃,从而加强网络的安全性。

例如:公司内部有一台财务服务器,公司希望只有财务部能够访问这台服务器,其他部门都不能访问此服务器。

这时可以配置ACL让财务部到达主机的流量通过,而丢弃其他流量。

如果拒绝的数据包中有大量数据包来自同一源IP地址,则该IP地址的主机可能正在试图攻击服务器;如果允许的数据包中有大量数据包来自同一源IP地址,则该IP地址的主机可能感染了病毒正在向服务器发送病毒。

一旦出现上述情况就需要进一步检查主机是感染了病毒还是有人在对服务器进行攻击。

但是使用show ip access-list 命令只能了解转发或丢弃的数据包的个数而无法确定数据包的来源。

要解决上述问题就需要使用ACL日志功能,通过ACL日志能过清除的知道数据包的源IP地址和目的IP地址,以及该数据包是否被转发了。

下面通过一个案例来掩饰ACL日志的记录。

如图6.2所示搭建网络环境。

图6.2 ACL日志记录案例拓扑网络规划如下:1)R1与R2的互联地址为:192.168.0.0/30,R2与R3的互联地址为:192.168.0.4/30, R2与R4的互联地址为:192.168.0.8/30;2)在R3上配置Loopback0地址为192.168.3.1/24,模拟服务器;3)在R1上配置Loopback0地址为192.168.1.1/24,模拟客户端;4)在R4上配置Loopback0地址为192.168.4.1/24,模拟客户端;5)Syslog服务器的地址为10.0.0.7/24,网关:10.0.0.254/24;6)在R2上配置ACL实现:192.168.1.0/24网段能够访问服务器192.168.3.0/24网段;拒绝其他倒服务器192.168.3.0/24网段的流量;ACL日志发送到Syslog服务器;7)服务器使用Kiwi Syslog Service Manager软件接收SysLog;根据网络规划配置设备。

1)配置IP地址和静态路由实现全网互通;R1的配置:R1(config)#interface fastEthernet 0/0R1(config-if)#ip address 10.0.0.254 255.255.255.0R1(config-if)#no shutdownR1(config-if)#exitR1(config)#interface fastEthernet 1/0R1(config-if)#ip address 192.168.0.1 255.255.255.252R1(config-if)#no shutdownR1(config-if)#exitR1(config)#interface loopback 0R1(config-if)#ip address 192.168.1.1 255.255.255.0R1(config-if)#exitR1(config)#ip route 192.168.3.0 255.255.255.0 192.168.0.2R1(config)#ip route 192.168.4.0 255.255.255.0 192.168.0.2R1(config)#ip route 192.168.0.4 255.255.255.252 192.168.0.2R1(config)#ip route 192.168.0.8 255.255.255.252 192.168.0.2R2的配置:R2(config)#interface fastEthernet 1/0R2(config-if)#ip address 192.168.0.2 255.255.255.252R2(config-if)#no shutdownR2(config-if)#exitR2(config)#interface fastEthernet 0/0R2(config-if)#ip add 192.168.0.5 255.255.255.252R2(config-if)#no shutdownR2(config-if)#exitR2(config)#interface fastEthernet 2/0R2(config-if)#ip address 192.168.0.9 255.255.255.252R2(config-if)#no shutdownR2(config-if)#exitR2(config)#ip route 10.0.0.0 255.255.255.0 192.168.0.1R2(config)#ip route 192.168.3.0 255.255.255.0 192.168.0.6R2(config)#ip route 192.168.1.0 255.255.255.0 192.168.0.1R2(config)#ip route 192.168.4.0 255.255.255.0 192.168.0.10R3的配置:R3(config)#interface fastEthernet 0/0R3(config-if)#ip address 192.168.0.6 255.255.255.252R3(config-if)#no shutdownR3(config-if)#exitR3(config)#interface loopback 0R3(config-if)#ip address 192.168.3.1 255.255.255.0R3(config-if)#exitR3(config)#ip route 0.0.0.0 0.0.0.0 192.168.0.5R4的配置:R4(config)#interface fastEthernet 0/0R4(config-if)#ip address 192.168.0.10 255.255.255.252R4(config-if)#no shutdownR4(config-if)#exitR4(config)#interface loopback 0R4(config-if)#ip address 192.168.4.1 255.255.255.0R4(config-if)#exitR4(config)#ip route 0.0.0.0 0.0.0.0 192.168.0.92)在服务器安装Kiwi Syslog Service Manager软件;3)配置ACL和Syslog在R2路由器上配置ACL:R2(config)#access-list 100 permit ip 192.168.1.0 0.0.0.255 192.168.3.0 0.0.0.255 log-input//配置ACL并启用日志功能,其中log-input记录日志并且记录input端口,如果使用log参数不记录input端口R2(config)#access-list 100 deny ip any any log-input //deny条目也需要配置log记录R2(config)#interface fastEthernet 0/0R2(config-if)#ip access-group 100 out //应用ACLR2(config-if)#exit在R2路由器上配置Syslog:R2(config)#logging 10.0.0.7 //配置Syslog服务器地址R2(config)#logging buffered //启用缓存记录R2(config)#logging on //启用日志4)分别从不同网段的客户端访问服务器(IP地址192.168.3.1),在Syslog服务器查看ACL日志;在R1和R4路由器上分别ping服务器:R1#ping 192.168.3.1 source 192.168.1.1//R1路由器上指定源IP地址,可以正常与服务器通信Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 192.168.3.1, timeout is 2 seconds:Packet sent with a source address of 192.168.1.1!!!!!Success rate is 100 percent (5/5), round-trip min/avg/max = 56/100/196 msR4#ping 192.168.3.1 source 192.168.4.1//R4路由器上指定源IP地址,不能与服务器通信Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 192.168.3.1, timeout is 2 seconds:Packet sent with a source address of 192.168.4.1U.U.USuccess rate is 0 percent (0/5)在R2路由器上会出现系统提示,如下:*Mar 1 00:26:11.435: %SEC-6-IPACCESSLOGDP: list 100 permitted icmp 192.168.1.1 (FastEthernet1/0 cc00.0938.0010) -> 192.168.3.1 (0/0), 1 packet*Mar 1 00:26:36.575: %SEC-6-IPACCESSLOGDP: list 100 denied icmp 192.168.4.1(FastEthernet2/0 cc00.07b8.0000) -> 192.168.3.1 (0/0), 1 packet在R2路由器上可以使用show logging命令查看日志(如果没有配置logging buffered命令则无法查看):R2#show loggingSyslog logging: enabled (11 messages dropped, 0 messages rate-limited,0 flushes, 0 overruns, xml disabled, filtering disabled)Console logging: level debugging, 31 messages logged, xml disabled,filtering disabledMonitor logging: level debugging, 0 messages logged, xml disabled,filtering disabledBuffer logging: level debugging, 8 messages logged, xml disabled,filtering disabledLogging Exception size (4096 bytes)Count and timestamp logging messages: disabledNo active filter modules.Trap logging: level informational, 34 message lines loggedLogging to 10.0.0.7 (udp port 514, audit disabled, link up), 8 message lines logged, xml disabled,filtering disabledLog Buffer (4096 bytes):*Mar 1 00:25:18.139: %SYS-5-CONFIG_I: Configured from console by console*Mar 1 00:25:19.139: %SYS-6-LOGGINGHOST_STARTSTOP: Logging to host 10.0.0.7 started - CLI initiated*Mar 1 00:25:25.931: %SEC-6-IPACCESSLOGDP: list 100 denied icmp 192.168.0.1 (FastEthernet1/0 cc00.0938.0010) -> 192.168.3.1 (0/0), 1 packet*Mar 1 00:26:11.435: %SEC-6-IPACCESSLOGDP: list 100 permitted icmp 192.168.1.1 (FastEthernet1/0 cc00.0938.0010) -> 192.168.3.1 (0/0), 1 packet*Mar 1 00:26:36.575: %SEC-6-IPACCESSLOGDP: list 100 denied icmp 192.168.4.1 (FastEthernet2/0 cc00.07b8.0000) -> 192.168.3.1 (0/0), 1 packet*Mar 1 00:31:01.443: %SEC-6-IPACCESSLOGDP: list 100 denied icmp 192.168.0.1 (FastEthernet1/0 cc00.0938.0010) -> 192.168.3.1 (0/0), 4 packets*Mar 1 00:32:01.443: %SEC-6-IPACCESSLOGDP: list 100 permitted icmp 192.168.1.1 (FastEthernet1/0 cc00.0938.0010) -> 192.168.3.1 (0/0), 9 packets*Mar 1 00:32:01.447: %SEC-6-IPACCESSLOGDP: list 100 denied icmp 192.168.4.1 (FastEthernet2/0 cc00.07b8.0000) -> 192.168.3.1 (0/0), 9 packets除此之外,R2还将Syslog信息发送给服务器10.0.0.7,在服务器上Kiwi Syslog Service Manager软件接收log,如图6.3所示。