TCP拦截(TCP intercept)监视TCP分组,判断在被请求的连接是否没有完成
如果TCP的连接请求来自一个不可达或者欺骗性的源地址,那么就可能出现拒绝服务(Denial-of-Service,DOS)攻击,目标服务器留下了大量打开一半的连接,最终会用光内存。
 
TCP拦截能够运行在拦截模式,此时路由器积极地按照这些步骤执行:
①路由器拦截来自请求放的TCP请求分组
②路由器代表目标服务器向请求方发回一个代理的应答
③路由器等候请求方用他的确认(ACK)跟进
④如果连接的握手进行到此,那么路由器向目标服务器发送原来的请求分组,路由器执行了一次代理的三次握手,就好像目标在和请求方通信一样。
⑤请求方和目标服务器得到许可执行一次正常的TCP连接
 
·在拦截模式中,TCP拦截能够在处于DOS攻击而收到大量不完整的连接请求时变的更为主动。在主动模式中,每个新的连接请求都会让过去的一次不完整连接被删除。路由器还把重传超时减少一半,并且把等待连接建立的时间减少一半。
·TCP拦截还能够运行在监视模式,此时路由器被动地进行监视,查看是否建立了TCP连接。如果在一段超时时间内没有建立连接,那么路由器就向目标服务器发送一个TCP复位(RST)信号以清除打开一半的连接。
 
————————————
拦截配制
1.使用扩展的访问列表识别TCP连接请求
2.使用访问列表触发TCP拦截
(global)ip tcp intercept list acc-list-number
3.设定TCP拦截模式,intercept为主动, watch为被动
(global)ip tcp intercept mode {intercept|watch}
4.调节TCP拦截行为
设定丢弃模式 oldest 丢弃超时时间最长的(默认),random随机丢弃。
(global)ip tcp intercept drop-mode {oldest | random}
 
设定计时器
—设定监视模式超时(如果为被动监视模式时):(global)ip tcp intercept watch-timeout seconds
如果在senconds(大于0,默认为30)的请求内没有建立连接,那么路由器就向目标服务器发送一个复位信号
—设定连接复位保持时间:(global)ip tcp intercept finrst-timeout seconds
路由器在FIN握手或者出现RST而关闭连接之后继续关联连接达senconds(大于0,默认30)s。
—设定连接管理时间:(global)ip tcp intercept connection-timeout senconds
在没有活动之后路由器继续关联连接达senconds(大于0,默认为86400s,或者24小时)s。
 
设定主动模式连接时值:
(global)ip tcp intercept max-incomplete {high | low} number
当不完整或者打开一半的连接数超过了high number (1~2147483647,默认1100个连接)之后触发主动模式。主动模式在不完整或者打开一半的连接数降至low number(1~2147483647;默认为1100个连接)以下后结束。
 
例子:
access-list 101 permit tcp any 192.168.1.0 0.0.0.255
access-list 101 permit tcp any 192.168.2.0 0.0.0.255
ip tcp intercept mode intercept
ip tcp intercept drop-mode random
配制TCP拦截管理到两个服务器的网络(192.168.1.0 ;192.168.2.0)内目标主机的TCP连接请求。
使用主动拦截模式,并随机丢弃连接。