资源描述
所在的单位有一台路由器将两个以太网段连到了internet上,路由器是通过串行端口0连 到internet上的,而以太网分别通过端口E 0和E 1连到路由器上。假设我们希望允许任 何用户都能通过I P访问1 9 8 . 7 8 . 4 6 . 1 2服务器,并允许2 0 5 . 1 3 1 . 1 7 5 . 0网络上的用户通过We b浏览(h t t p)和F T P访问I n t e r n e t。
useranme test password cisco
!
int serial 0
ip add 175.10.1.1 255.255.255.0
ip access-group 100 in
!
access-list 100 permit tcp any host 175.10.1.1 eq telnet
access-list 100 permit udp any eq 53 205.131.175.0 0.0.0.255 gt 1023
established
access-list 100 permit tcp any eq 21 205.131.175.0 0.0.0.255 gt 1023
established
access-list 100 permit tcp any eq 20 205.131.175.0 0.0.0.255 gt 1023
access-list 100 dynamic test timeout 180 permit ip any host 198.76.46.12 log
!
logging buffered 64000
!
line vty 0 2
login local
autocommand access-enable host timeout 10
line vty 3 4
login local
rotary 1
首先,我们注意到访问表被应用到了串行端口上。将扩展访问表应用到离过滤源最近的 地方,这是一种很好的方法。在本例中,我们的目的是要过滤I n t e r n e t上的主机 ,所以串行端口是路由器上离被过滤主机最近的端口。访问表应用的方向是向内的,因 为从路由器的角度看来, I n t e r n e t来的报文是流向路由器的。如果我们将访问 表应用成向外的访问,则过滤的报文将是离开串行接口而通往I n t e r n e t的报文, 而这并非我们所希望的。另外,我们还建立了一个用户名“ t e s t”,它可以用来访问路由器。在实际应用中,我们应该为每个用户建立一对用 户名和口令。现在,让我们再分析访问表的每一个表项。
第一个表项允许从任何源I P地址来的报文到达主机1 7 5 . 1 0 . 1 . 1,如果其目标 端口为t e l n e t(2 3)的话。这样,我们实际上允许了向内的t e l n e t连接到路 由器的串行接口。我们可以允许向内的t e l n e t,连接到路由器的其他I P地址,但 只允许向内访问路由器的串行接口是一种最佳的选择。
第二个表项允许从任何源I P地址来的报文,如果其源端口是域名系统( domain namesystem, DNS)(UDP 53),且目标网络位于2 0 5 . 1 3 1 . 1 7 5 . 0 / 2 4, 目的端口大于1 0 2 3的话。这将允许D N S应答到达2 0 5 . 1 3 1 . 1 7 5 . 0 / 2 4网络。所有有效D N S请求的源端口应该为1 0 2 4或更大,因此有效D N S的应答就应 发送到此1 0 2 4或更高的端口。如果我们不指定目的端口大于1 0 2 3,则攻击者可以 从源端口5 3发送U D P报文到达我们的网络,从而导致对内部服务器的拒绝服务(denia l-of-service, DOS)攻击。大量的服务器端口都处于小于1 0 2 4的保留区间内,所以 我们应阻塞目的端口小于1 0 2 4的报文,以关闭潜在的安全漏洞。
第三和第四个表项允许具有如下特征的报文进入:源端口为W W W(TCP 80 )或F T P( TCP 21),目标位于2 0 5 . 1 3 1 . 1 7 5 . 0 / 2 4网络,目标端口大于1 0 2 3, 且T C P头中设置了A C K和R S T位。这两个表项允许由内部主机发起的W W W和F T P会 话的返回报文。指定源端口和目的端口的原因与第二个表项相同。使用e s t a b l i s h e d意味着只有设置了应答位( A C K)和复位位(R S T)的报文才能够匹配并允许通过访问表项。只有那些已经建立了T C P会话的报文才会设置这些位,这样增加了访 问表的安全层次。值得注意的是,攻击者很容易在向内的报文中手工设置这些位,所以 这种检测是十分简单的。但是,如果内部网络采用正确的T C P / I P协议栈, 它们就会忽略这些带A C K和R S T位的向内报文,因为它们不是主机上合法的T C P会话 的一部分,这就是为什么e s t a b l i s h e d关键字仍然十分重要的原因。注意,这 种检验对U D P报文是无用的,这就是为什么在第二个访问表项中没有该关键字的原因。
第五个表项允许那些从源端口为2 0的任何主机向内报文到达网络2 0 5 . 1 3 1 . 1 7 5 . 0 / 2 4的主机, 如果其目的端口大于1 0 2 3的话,允许了那些由内部主机发起的F T P部分数据的报文 连接到内部主机。F T P协议实现的标准实现需要F T P服务器发回一个到源F T P客户机连接。该连接的初始报文没有设置A C K或R S T位,所以我们在表项中不能使用e s t a b l i s h e d关键字。有一种版本的F T P称为被动模式( passive mode)的F T P ,或称为PA S C,它不需要服务器发起一个向源F T P客户机的连接。在这种模式的F T P中,客户机需要发起到F T P服务器非2 0端口的另一个连接。该端口是大于1 0 2 3的一种随机选择。我们允许所有大于1023 TCP端口的报文通过,是因为我们不能进一步确定F T P服务器会选择哪一个端口(被动模式F T P服务器的数据端口不为2 0,这与普通模式F T P是不同的)。尽管我们不能让该表项如我们所希望的那样确切, e s t a b l i s h e d关键字仍能使该表项比允许外部发起向内部网络的会话要安全一些。
第六个表项(也是最后一个表项)为动态访问表项,它允许来自被认证主机的报文到达服务器1 9 8 . 7 8 . 4 6 . 1 2。我们定义的绝对超时时间为3小时( 1 8 0分钟),并对该表项进行了日志记录(我们还开启了路由器缓冲区的日志)。通过将匹配动态表项的报文进行记录,我们可以跟踪用户的行为,并建立一个普通的基线。这样,我们可以发现不正常的行为,并由此判断这是否是由攻击者产生的。我们还将动态访问表项的空闲时间设置成了1 0分钟,这是在v t y线配置中通过a u t o c o m m a n d设置的。最好是将这两个值都设上,这样我们能减少动态表项处于活跃状态的时间,因此也减少了攻击者冲破动态表项的可能性。
空闲计时器在每有一个报文匹配动态访问表项时进行复位。而绝对计时器是不复位的。即使一个会话仍然处于活跃状态,如果绝对超时达到,动态表项就会被删除,从而用户需要再经过一个认证过程。如果他们有经过路由器的活跃会话,这些会话将被终止。正因如此,我们建议将绝对超时设置得相对大一些,一般为一个小时或更长一些的时间。但我们应该将空闲时间设置得小一些,一般为1 0分钟或更短的时间。我们认为,不应将空闲时间的设置大于3 0钟
动态IP访问控制列表解析
本文网址: 复制
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
Pt.3 IP Session Filtering
Reflexive ACL Overview
自反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)#evaluate {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
evaluate 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
【转自bbs.bitsCN.com】
展开阅读全文