05-TCP Proxy配置

目  录

1 TCP Proxy

1.1 概述

1.1.1 SYN Flood攻击简介

1.1.2 TCP Proxy功能简介

1.1.3 TCP Proxy处理流程

1.2 配置TCP Proxy

1.2.1 配置概述

1.2.2 配置TCP Proxy全局参数

1.2.3 使能TCP Proxy功能

1.2.4 新建静态受保护IP表项

1.2.5 查看受保护IP表项及统计信息

1.3 TCP Proxy典型配置举例

1.4 注意事项

1 TCP Proxy

 

目前,设备仅支持通过Web方式配置TCP Proxy。

1.1  概述

1.1.1  SYN Flood攻击简介

一般情况下,TCP连接的建立需要经过三次握手,即:

(1)      TCP连接请求的发起者向目标服务器发送SYN报文;

(2)      目标服务器收到SYN报文后,建立处于SYN_RECEIVED状态的TCP半连接,并向发起者回复SYN ACK报文,等待发起者的回应;

(3)      发起者收到SYN ACK报文后,回应ACK报文,这样TCP连接就建立起来了。

利用TCP连接的建立过程,一些恶意的攻击者可以进行SYN Flood攻击。攻击者向服务器发送大量请求建立TCP连接的SYN报文,而不回应服务器的SYN ACK报文,导致服务器上建立了大量的TCP半连接。从而达到耗费服务器资源,使服务器无法处理正常业务的目的。

1.1.2  TCP Proxy功能简介

TCP Proxy功能用来防止服务器受到SYN Flood攻击。客户端通过TCP代理请求与受保护的服务器建立连接时,TCP代理首先验证客户端的请求是否为SYN Flood攻击,验证通过后客户端和服务器之间才能建立TCP连接,从而避免服务器受到攻击。

TCP Proxy支持两种代理方式:单向代理和双向代理。单向代理方式是指仅对TCP连接的正向报文进行处理;双向代理是指对TCP连接的正向和反向报文都进行处理。用户可以根据实际的组网情况进行选择。

例如:在如图1-1所示的组网中,从客户端发出的报文经过TCP代理,而从服务器端发出的报文不经过TCP代理,此时只能使用单向代理方式;在如图1-2所示的组网中,从客户端发出的报文经和从服务器端发出的报文都经过TCP代理,此时可以使用单向代理方式,也可以使用双向代理方式。

图1-1 单向代理组网

图1-2 双/单向代理组网

1.1.3  TCP Proxy处理流程

1. 单向代理

单向代理方式下,TCP Proxy的处理流程如图1-3所示。

图1-3 单向代理方式的TCP Proxy处理流程

TCP代理收到某客户端发来的与受保护服务器(匹配某个受保护IP表项)建立TCP连接的请求(SYN报文)后,先代替服务器向客户端回应序号错误的SYN ACK报文。如果收到客户端回应的RST报文,则认为该TCP连接请求通过TCP代理的验证。一定时间内,TCP代理收到客户端重发的SYN报文后,直接向服务器转发,在客户端和服务器之间建立TCP连接。TCP连接建立后,TCP代理直接转发后续的报文,不对报文进行处理。

2. 双向代理

双向代理方式下,TCP Proxy的处理流程如图1-4所示。

图1-4 双向代理方式的TCP Proxy处理流程

TCP代理收到某客户端发来的与受保护服务器建立TCP连接的请求(SYN报文)后,先代替服务器向客户端回应正常的SYN ACK报文(窗口值为0)。如果收到客户端回应的ACK报文,则认为该TCP连接请求通过TCP代理的验证。TCP代理再向服务器发送同样的SYN报文,并通过三次握手与服务器建立TCP连接。双向代理方式中,在客户端和TCP代理、TCP代理和服务器之间建立两个TCP连接。由于两个TCP连接使用的序号不同,TCP报文交互过程中,TCP代理接收到客户端或服务器发送的报文后,需要修改报文序号,再转发给对端,这样才能保证通信正常。

1.2  配置TCP Proxy

tcp 代理的作用的更多相关文章

  1. nginx TCP 代理& windows傻瓜式安装

    一.下载nginx Windows http://nginx.org/en/download.html 二.解压到目录 三.进入目录并start nginx.exe即可启动 cd d:/java/ng ...

  2. nginx : TCP代理和负载均衡的stream模块

    一直以来,Nginx 并不支持tcp协议,所以后台的一些基于TCP的业务就只能通过其他高可用负载软件来完成了,比如Haproxy. 这算是一个nginx比较明显的缺憾.不过,在1.90发布后这个认知将 ...

  3. iOS进阶之TCP代理鉴权过程

    这段时间接触了网络代理,而自己的任务是完成TCP和UDP的网络代理,所以在这里写些自己的理解吧. 这篇文章先介绍一下TCP代理的鉴权过程(采用的是用户名和密码鉴权),下一篇文章再介绍UDP代理的鉴权过 ...

  4. 早期nginx tcp代理(基于patch实现)

    nginx tcp代理功能由nginx_tcp_proxy_module模块提供,同时监测后端主机状态.该模块包括的模块有: ngx_tcp_module, ngx_tcp_core_module, ...

  5. Nginx 配置TCP代理

    Nginx 1.9 版本以后增加了stream模块,可以对tcp,udp请求进行代理和负载均衡了,今天来体验一下首先编译安装过程configure的时候增加选项 --with-stream --wit ...

  6. nginx做TCP代理实现群集

    nginx做TCP代理实现群集 nginx从版本1.9开始,既能做HTTP代理,又能做TCP代理,这就非常完美了. 配置nginx.conf. 为了简单起见,笔者故意去掉了HTTP代理配置部分,只保留 ...

  7. 一个简单的tcp代理实现

    There are a number of reasons to have a TCP proxy in your tool belt, bothfor forwarding traffic to b ...

  8. Nginx TCP代理

    nginx 在1.9.0 版本发布以前如果要想做到基于TCP的代理及负载均衡需要通过打名为nginx_tcp_proxy_module的第三方patch来实现,该模块的代码托管在github上 网址: ...

  9. 创建一个TCP代理

    代理技术 代理一般被我们用于"穿墙",具体来说可以看这里,或者查wiki.理解代理背后的原理之后,便很容易知道,代理的作用不仅仅只是"穿墙".例如我们可以把经过 ...

随机推荐

  1. Java乐观锁实现之CAS操作

    介绍CAS操作前,我们先简单看一下乐观锁 与 悲观锁这两个常见的锁概念. 悲观锁: 从Java多线程角度,存在着“可见性.原子性.有序性”三个问题,悲观锁就是假设在实际情况中存在着多线程对同一共享的竞 ...

  2. PHP -- 页面传值的6种获取方法

    1.PHP4以后获取传值的方法 一般在页面中传值常见的是POST.GET和COOKIE几种,所以下面我也主要介绍这几种.PHP4以后都采用的是$_POST.$_GET等数组来获取网页传值.在PHP3. ...

  3. 2015 UESTC 搜索专题A题 王之迷宫 三维bfs

    A - 王之迷宫 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/contest/show/61 Des ...

  4. 为什么要使用netty

    选择Netty的理由在开始本节之前,我先讲一个亲身经历的故事:曾经有两个项目组同时用到了NIO编程技术,一个项目组选择自己开发NIO服务端,直接使用JDK原生的API,结果2个多月过去了,他们的NIO ...

  5. Vue2.0实现双向绑定的原理

    一.几种实现双向绑定的做法 目前几种主流的mvc(vm)框架都实现了单向数据绑定,而我所理解的双向数据绑定无非就是在单向绑定的基础上给可输入元素(input.textare等)添加了change(in ...

  6. 树莓派(Debian)系统设置了静态IP之后还会获取动态IP的问题解决(scope global secondary eth0)

    解决方法: 1.配置好静态IP在/etc/network/interface 2.关闭dhcp服务(不知道这个服务是干嘛的,明明是客户端还需要这个) sudo systemctl stop dhcpc ...

  7. 在WPF中快速实现键盘钩子

    大部分的时候,当我们需要键盘事件的时候,可以通过在主窗口注册KeyBinding来实现,不过,有的时候我们需要的是全局键盘事件,想在任何一个地方都能使用,最开始的时候我是通过键盘钩子来实现的, 不过键 ...

  8. ELM327 OBD to RS232 Interpreters

    http://elmelectronics.com/DSheets/ELM327DS.pdf

  9. ASP.NET数据库连接字符串总结

    一.使用OleDbConnection对象连接OLE DB数据源 1.连接Access 数据库 Access 2000: “provider=Microsoft.Jet.Oledb.3.5;Data ...

  10. Python for 循环语句

    Python for 循环语句 Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串. 语法: for循环的语法格式如下: for iterating_var in sequenc ...