IP访问控制列表算是Cisco IOS一个内在的security feature,以下是对常用的动态访问控制列表做了个总结。
Pt.1 Lock-and-Key Security
Lock-and-Key Overview
lock-and-key动态ACL使用IP动态扩展ACL过滤IP流量。当配置了lock-and-key动态ACL之后,临时被拒绝掉的IP流量可以获得暂时性的许可。 lock-and-key动态ACL临时修改路由器接口下已经存在的ACL,来允许IP流量到达目标设备。之后lock-and-key动态ACL把接口状态还原。
通过lock-and-key动态ACL获得访问目标设备权限的用户,首先要开启到路由器的telnet会话。接着lock-and-key动态ACL自动对用户进行认证。如果认证通过,那么用户就获得了临时性的访问权限。
Configuring Lock-and-Key
配置lock-and-key动态ACL的步骤如下:
1.设置动态ACL:
BitsCN(config)#access-list {access-list-number} [dynamic dynamic-name [timeout minutes]] {deny|permit} telnet {source source-wildcard destination destination-wildcard}
2.扩展动态ACL的绝对计时器。可选:
BitsCN(config)# access-list dynamic-extend
3.定义需要应用ACL的接口:
BitsCN(config)#interface {interface}
4.应用ACL:
BitsCN(config-if)#ip access-group {ACL}
5.定义VTY线路:
BitsCN(config)#line vty {line-number [ending-line-number]}
6.对用户进行认证:
BitsCN(config)#username {username} password {password}
7.采用TACACS认证或本地认证方式。可选:
BitsCN(config-line)#login {tacacs|local}
8.创建临时性的访问许可权限,如果没有定义参数host,默认为所有主机:
BitsCN(config-line)#autocommand access-enable {host} [timeout minutes]
Case 1
在5分钟内开启到172.16.1.2的telnet会话,如果认证成功,对用户给予120秒的访问许可权:
!
interface Ethernet0
description this document is written by *****
description powered by BitsCN
ip address 172.16.1.1 255.255.255.0
ip access-group 101 in
!
access-list 101 permit tcp any host 172.16.1.2 eq telnet
access-list 101 dynamic BitsCN timeout 120 permit ip any any
!
line vty 0 4
login tacacs
autocommand access-enable timeout 5
!
Monitoring and Maintaining Lock-and-Key
查看ACL信息:
BitsCN#show access-lists
Pt.2 TCP Intercepting
TCP Intercepting Overview
一般情况下,TCP连接的建立需要经过三次握手的过程:
1.建立发起者向目标计算机发送一个TCP SYN数据包。
2.目标计算机收到这个TCP SYN数据包后,在内存中创建TCP连接控制块(TCB),然后向发送源回复一个TCP确认(ACK)数据包,等待发送源的响应。
3.发送源收到TCP ACK数据包后,再以一个TCP ACK数据包,TCP连接成功。
TCP SYN洪水攻击的过程:
1.攻击者向目标设备发送一个TCP SYN数据包。
2.目标设备收到这个TCP SYN数据包后,建立TCB,并以一个TCP ACK数据包进行响应,等待发送源的响应。
3.而发送源则不向目标设备回复TCP ACK数据包,这样导致目标设备一致处于等待状态。
4.如果TCP半连接很多,会把目标设备的资源(TCB)耗尽,而不能响应正常的TCP连接请求。,从而完成拒绝服务的TCP SYN洪水攻击。
TCP拦截特性可以防止TCP的SYN洪水攻击。TCP拦截特性的两种模式:
1.拦截(intercept):软件将主动拦截每个进站的TCP连接请求(TCP SYN),并以服务器的身份,以TCP ACK数据包进行回复,然后等待来自客户机的TCP ACK数据包。当再次收到客户机的TCP ACK数据包后,最初的TCP SYN数据包被移交给真正的服务器,软件进行TCP三次握手,建立TCP连接。
2.监控(watch):进站的TCP连接请求(TCP SYN)允许路由器移交给服务器,但是路由器将对连接进行监控,直到TCP连接建立完成。如果30秒内TCP连接建立不成功,路由器将发送重置(Reset)信号给服务器,服务器将清除TCP半连接。
Configuring TCP Intercepting
配置TCP拦截的步骤如下:
1.定义IP扩展ACL:
BitsCN(config)#access-list {access-list-number} [dynamic dynamic-name [timeout minutes]] {deny|permit} tcp {source source-wildcard destination destination-wildcard}
2.启用TCP拦截:
BitsCN(config)#ip tcp intercept list {ACL}
3.定义TCP拦截模式,默认为拦截模式。可选:
BitsCN(config)#ip tcp intercept mode {intercept|watch}
4.定义TCP拦截的切断模式,默认为切断最老的TCP连接。可选:
BitsCN(config)#ip tcp intercept drop-mode {oldest|random}
5.定义TCP拦截监控的超时时间,默认为30秒。可选:
BitsCN(config)#ip tcp intercept watch-timeout {seconds}
6.定义即使TCP连接不再活动,系统管理TCP连接的时间长度。默认时间长度为24小时。可选:
BitsCN(config)#ip tcp intercept connection-timeout {seconds}
Monitoring and Maintaining TCP Intercepting
一些辅助性的命令:
1.显示TCP连接信息:
BitsCN#show tcp intercept connections
2.显示TCP拦截的统计信息:
BitsCN#show tcp intercept statistics
自反ACL可以基于上层信息过滤IP流量。可以使用自反ACL实现流量的单向穿越。自反ACL只能通过命名扩展ACL来定义。
Configuring Reflexive ACL
配置自反ACL的步骤如下:
1.定义命名扩展ACL:
BitsCN(config)#ip access-list extended {name}
2.定义自反ACL:
BitsCN(config-ext-nacl)#permit {protocol} any any reflect {name} [timeout seconds]
3.嵌套自反ACL:
BitsCN(config-ext-nacl)#eva luate {name}
4.应用自反ACL:
BitsCN(config-if)#ip access-group {name} {in|out}
5.全局定义自反ACL的超时时间。可选:
BitsCN(config)#ip reflexive-list timeout {seconds}
Case 2
路由器B连接的网段 192.168.0.0/24为内部区域,路由器B的串行接口所连的10.0.0.0/30以及上游网段为外部区域。路由器A和B运行EIGRP.要求允许EIGRP和ICMP信息;允许到达外部区域的TCP和UDP信息;而不允许进入内部区域的TCP和UDP信息
路由器B配置如下:
!
ip access-list extended inbound
permit eigrp any any
permit icmp any any
eva luate BitsCN
ip access-list extended outbound
permit eigrp any any
permit icmp any any
permit tcp any any reflect BitsCN
permit udp any any reflect BitsCN
!
interface Ethernet0
description this document is written by ******
description powered by BitsCN
ip address 192.168.0.1 255.255.255.0
ip access-group inbound in
ip access-group outbound out
Pt.1 Lock-and-Key Security
Lock-and-Key Overview
lock-and-key动态ACL使用IP动态扩展ACL过滤IP流量。当配置了lock-and-key动态ACL之后,临时被拒绝掉的IP流量可以获得暂时性的许可。 lock-and-key动态ACL临时修改路由器接口下已经存在的ACL,来允许IP流量到达目标设备。之后lock-and-key动态ACL把接口状态还原。
通过lock-and-key动态ACL获得访问目标设备权限的用户,首先要开启到路由器的telnet会话。接着lock-and-key动态ACL自动对用户进行认证。如果认证通过,那么用户就获得了临时性的访问权限。
Configuring Lock-and-Key
配置lock-and-key动态ACL的步骤如下:
1.设置动态ACL:
BitsCN(config)#access-list {access-list-number} [dynamic dynamic-name [timeout minutes]] {deny|permit} telnet {source source-wildcard destination destination-wildcard}
2.扩展动态ACL的绝对计时器。可选:
BitsCN(config)# access-list dynamic-extend
3.定义需要应用ACL的接口:
BitsCN(config)#interface {interface}
4.应用ACL:
BitsCN(config-if)#ip access-group {ACL}
5.定义VTY线路:
BitsCN(config)#line vty {line-number [ending-line-number]}
6.对用户进行认证:
BitsCN(config)#username {username} password {password}
7.采用TACACS认证或本地认证方式。可选:
BitsCN(config-line)#login {tacacs|local}
8.创建临时性的访问许可权限,如果没有定义参数host,默认为所有主机:
BitsCN(config-line)#autocommand access-enable {host} [timeout minutes]
Case 1
在5分钟内开启到172.16.1.2的telnet会话,如果认证成功,对用户给予120秒的访问许可权:
!
interface Ethernet0
description this document is written by *****
description powered by BitsCN
ip address 172.16.1.1 255.255.255.0
ip access-group 101 in
!
access-list 101 permit tcp any host 172.16.1.2 eq telnet
access-list 101 dynamic BitsCN timeout 120 permit ip any any
!
line vty 0 4
login tacacs
autocommand access-enable timeout 5
!
Monitoring and Maintaining Lock-and-Key
查看ACL信息:
BitsCN#show access-lists
Pt.2 TCP Intercepting
TCP Intercepting Overview
一般情况下,TCP连接的建立需要经过三次握手的过程:
1.建立发起者向目标计算机发送一个TCP SYN数据包。
2.目标计算机收到这个TCP SYN数据包后,在内存中创建TCP连接控制块(TCB),然后向发送源回复一个TCP确认(ACK)数据包,等待发送源的响应。
3.发送源收到TCP ACK数据包后,再以一个TCP ACK数据包,TCP连接成功。
TCP SYN洪水攻击的过程:
1.攻击者向目标设备发送一个TCP SYN数据包。
2.目标设备收到这个TCP SYN数据包后,建立TCB,并以一个TCP ACK数据包进行响应,等待发送源的响应。
3.而发送源则不向目标设备回复TCP ACK数据包,这样导致目标设备一致处于等待状态。
4.如果TCP半连接很多,会把目标设备的资源(TCB)耗尽,而不能响应正常的TCP连接请求。,从而完成拒绝服务的TCP SYN洪水攻击。
TCP拦截特性可以防止TCP的SYN洪水攻击。TCP拦截特性的两种模式:
1.拦截(intercept):软件将主动拦截每个进站的TCP连接请求(TCP SYN),并以服务器的身份,以TCP ACK数据包进行回复,然后等待来自客户机的TCP ACK数据包。当再次收到客户机的TCP ACK数据包后,最初的TCP SYN数据包被移交给真正的服务器,软件进行TCP三次握手,建立TCP连接。
2.监控(watch):进站的TCP连接请求(TCP SYN)允许路由器移交给服务器,但是路由器将对连接进行监控,直到TCP连接建立完成。如果30秒内TCP连接建立不成功,路由器将发送重置(Reset)信号给服务器,服务器将清除TCP半连接。
Configuring TCP Intercepting
配置TCP拦截的步骤如下:
1.定义IP扩展ACL:
BitsCN(config)#access-list {access-list-number} [dynamic dynamic-name [timeout minutes]] {deny|permit} tcp {source source-wildcard destination destination-wildcard}
2.启用TCP拦截:
BitsCN(config)#ip tcp intercept list {ACL}
3.定义TCP拦截模式,默认为拦截模式。可选:
BitsCN(config)#ip tcp intercept mode {intercept|watch}
4.定义TCP拦截的切断模式,默认为切断最老的TCP连接。可选:
BitsCN(config)#ip tcp intercept drop-mode {oldest|random}
5.定义TCP拦截监控的超时时间,默认为30秒。可选:
BitsCN(config)#ip tcp intercept watch-timeout {seconds}
6.定义即使TCP连接不再活动,系统管理TCP连接的时间长度。默认时间长度为24小时。可选:
BitsCN(config)#ip tcp intercept connection-timeout {seconds}
Monitoring and Maintaining TCP Intercepting
一些辅助性的命令:
1.显示TCP连接信息:
BitsCN#show tcp intercept connections
2.显示TCP拦截的统计信息:
BitsCN#show tcp intercept statistics
自反ACL可以基于上层信息过滤IP流量。可以使用自反ACL实现流量的单向穿越。自反ACL只能通过命名扩展ACL来定义。
Configuring Reflexive ACL
配置自反ACL的步骤如下:
1.定义命名扩展ACL:
BitsCN(config)#ip access-list extended {name}
2.定义自反ACL:
BitsCN(config-ext-nacl)#permit {protocol} any any reflect {name} [timeout seconds]
3.嵌套自反ACL:
BitsCN(config-ext-nacl)#eva luate {name}
4.应用自反ACL:
BitsCN(config-if)#ip access-group {name} {in|out}
5.全局定义自反ACL的超时时间。可选:
BitsCN(config)#ip reflexive-list timeout {seconds}
Case 2
路由器B连接的网段 192.168.0.0/24为内部区域,路由器B的串行接口所连的10.0.0.0/30以及上游网段为外部区域。路由器A和B运行EIGRP.要求允许EIGRP和ICMP信息;允许到达外部区域的TCP和UDP信息;而不允许进入内部区域的TCP和UDP信息
路由器B配置如下:
!
ip access-list extended inbound
permit eigrp any any
permit icmp any any
eva luate BitsCN
ip access-list extended outbound
permit eigrp any any
permit icmp any any
permit tcp any any reflect BitsCN
permit udp any any reflect BitsCN
!
interface Ethernet0
description this document is written by ******
description powered by BitsCN
ip address 192.168.0.1 255.255.255.0
ip access-group inbound in
ip access-group outbound out