DoS Attacks Prevention with TCP Intercept

简介:

【实验说明】


 
在路由器上配置,使用 TCP intercept 检查所有TCP连接。

 
【实验拓扑】

 

 

【实验配置】

 
tcp intercept  拦截有两种模式一种是拦截,一种是监视。默认为拦截模式,

 
R1:
interface FastEthernet0/0
ip address 12.1.1.1 255.255.255.0
no sh
ip route 23.1.1.0 255.255.255.0 12.1.1.2

 
R2:
interface FastEthernet0/0
ip address 12.1.1.2 255.255.255.0
interface FastEthernet1/0
ip address 23.1.1.2 255.255.255.0
!首先定义要保护的网络
access-list 199 permit tcp any 23.1.1.0 0.0.0.255 eq telnet
!配置拦截模式,默认为intercept ,还有一种模式为watch
ip tcp intercept mode intercept
!调用访问控制列表
ip tcp intercept list 199
!设置半开连接超时时间,1小时, (默认TCP连接是永远不超时的)
ip tcp intercept connection-timeout 3600
! 设置半开连接的数量限制 low 1200high 1500; 所有半开连接数达到1500后,进入主动模式,主动模式会将所有的超时时间减半,比如上面配置的connection-timeout会由3600s变成1800s。当连接数低于1200时,再恢复正常。
ip tcp intercept max-incomplete low 1200
ip tcp intercept max-incomplete high 1500
!设置丢弃模式为随机,另一种为丢弃模式为oldest ,丢弃老的连接
ip tcp intercept drop-mode random
!开启intercept的debug模式
debug ip tcp intercept
R3:
interface FastEthernet0/0
ip address 23.1.1.3 255.255.255.0
!
ip route 12.1.1.0 255.255.255.0 23.1.1.2

 
------------------------------------------------------说明-------------------------------------------------------
两种模式的对比

intercept

Active mode in which the TCP intercept software intercepts TCP packets from clients to servers that match the configured access list and performs intercept duties. This is the default.

watch

Monitoring mode in which the software allows connection attempts to pass through the router and watches them until they are established.


【实验验证】


 
在R1上telnet R3,建立TCP连接
R1#telnet 23.1.1.3
Trying 23.1.1.3 ... Open

 
User Access Verification

 
在R4上观察debug信息
R4:
*Mar 1 00:12:22.199:  INTERCEPT: new connection (12.1.1.1:21323 SYN -> 23.1.1.3:23)
*Mar 1 00:12:22.203:  INTERCEPT(*): (12.1.1.1:21323 <- ACK+SYN 23.1.1.3:23)
*Mar 1 00:12:22.263:  INTERCEPT: 1st half of connection is established (12.1.1.1:21323 ACK -> 23.1.1.3:23)
*Mar 1 00:12:22.263:  INTERCEPT(*): (12.1.1.1:21323 SYN -> 23.1.1.3:23)
*Mar 1 00:12:22.315:  INTERCEPT: 2nd half of connection established (12.1.1.1:21323 <- ACK+SYN 23.1.1.3:23)
*Mar 1 00:12:22.315: INTERCEPT(*): (12.1.1.1:21323 ACK -> 23.1.1.3:23)
*Mar 1 00:12:22.319: INTERCEPT(*): (12.1.1.1:21323 <- WINDOW 23.1.1.3:23)

 
TCP intercept 模式工作原理
1、客户端发送SYN包
2、中间的路由器伪装自己作为服务器来处理对客户端发送的SYN
3、客户端和路由器建立三次握手之后,证明会话没有问题(若无法形成会话,则丢弃)
4、此时路由器再伪装为客户端向服务器发送SYN包
5、服务器发送SYN/ACK给伪装客户端的路由器
6、伪装客户端的路由器发送ACK给服务器
7、三次握手之后,路由器和服务器也形成了会话,于是客户端和服务器形成会话。

 

 

R2#show tcp intercept connections
Incomplete:
Client Server State Create Timeout Mode

Established:
Client Server State Create Timeout Mode
12.1.1.1:12267 23.1.1.3:23 ESTAB 00:00:15 00:59:56 I

R2#show tcp intercept statistics
Intercepting new connections using access-list 199
0 incomplete, 1 established connections (total 1)
1 connection requests per minute

 


 

----------------------------------------------------------watch 模式的配置---------------------------------------------------
R2:增加
!配置为监听模式
ip tcp intercept watch
!设置监听
ip tcp intercept watch-timeout 15

 
【验证监听模式】
R2(config)#ip tcp intercept watch-timeout
*Mar 1 00:56:50.767: INTERCEPT: new connection (12.1.1.1:61984 SYN -> 23.1.1.3:23)
*Mar 1 00:56:50.871: INTERCEPT: (12.1.1.1:61984 <- ACK+SYN 23.1.1.3:23)
*Mar 1 00:56:50.923: INTERCEPT: (12.1.1.1:61984 ACK -> 23.1.1.3:23)

 

 

 
-------------------------------------------------两种模式的对比--------------------------------
拦截模式,而采取主动的方式处理TCP SYN洪水攻击,watch模式需要一个时间反应的方法。拦截模式的主要优点之一是,它消除内部服务器处理TCP SYN洪水的负载。然而,这是一把双刃剑,因为,在大多数时间内,不会发生TCP SYN洪水,但路由器仍然是执行拦截,它将消耗路由器的负载。
为了缓解这个问题,您可以使用TCP 拦截中的watch模式。watch模式是被动的。在watch模式中,路由器被动地观察从客户端到服务器的TCP连接。它可以通过监视这些连接的超时时间。然后与预先设定的超时值(它默认为30秒)比较。如果一个TCP连接在预设值内没有完成三次握手,思科IOS发送的TCP重置,删除该连接。当服务器受到TCP syn攻击时,它消除了半开连接的数量,从而减少了服务器上的负载,并允许合法的连接尝试处理。
 
 
 

本文转自zcm8483 51CTO博客,原文链接:http://blog.51cto.com/haolun/991729

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
缓存 网络协议 安全
网络安全-DoS与DDoS攻击原理(TCP、UDP、CC攻击等)与防御
网络安全-DoS与DDoS攻击原理(TCP、UDP、CC攻击等)与防御
1250 0
|
网络协议 Shell 网络架构
|
存储 Shell Linux
【Shell 命令集合 磁盘维护 】Linux 创建DOS文件系统 mkdosfs命令使用指南
【Shell 命令集合 磁盘维护 】Linux 创建DOS文件系统 mkdosfs命令使用指南
196 2
|
关系型数据库 数据库连接 Windows
windows 常用的dos命令
windows 常用的dos命令
314 0
|
算法 Linux Shell
【Shell 命令集合 磁盘管理 】Linux 于挂入MS-DOS文件系统 mmount 命令使用指南
【Shell 命令集合 磁盘管理 】Linux 于挂入MS-DOS文件系统 mmount 命令使用指南
209 0
|
存储 Linux Shell
【Shell 命令集合 磁盘维护 】Linux 创建MS-DOS文件系统 mkfs.msdos命令使用教程
【Shell 命令集合 磁盘维护 】Linux 创建MS-DOS文件系统 mkfs.msdos命令使用教程
238 0
|
5月前
常用DOS命令操作总结
以上所述为常用DOS命令操作,可以帮助用户在计算机操作系统中完成常见任务。这些命令的掌握和熟练运用能对于提高工作效率及解决一些常见问题有很大帮助。新手使用时可通过输入“command /?”(如:`ipconfig /?`)查看命令详细用法和参数说明。慢慢熟悉这些命令,你会发现它们在日常操作中具有很高的实用性。
192 20
|
6月前
|
搜索推荐
课时4:常用DOS命令
今天给大家带来分享是常用的DOS命令,以及如何使用命令,其主要分为以下七部分。 1.DIR 查看当前目录下的所有文件(夹) 2.CD 进入到指定的目录 3.“.”表示当前目录“..”表示上一级目录 4.方向键查看历史记录,tab 键自动补全命令 5.md 创建一个目录, RD 删除一个目录 6.del 删除一个文件, cls 清除屏幕 7.命令的语法
169 0
|
11月前
|
Java Windows
JAVA 常用的 DOS 命令
【10月更文挑战第15天】DOS 命令是 Java 开发中不可或缺的工具,掌握这些命令可以提高开发效率和操作便利性。
193 63