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. keras实现mnist数据集手写数字识别

    一. Tensorflow环境的安装 这里我们只讲CPU版本,使用 Anaconda 进行安装 a.首先我们要安装 Anaconda 链接:https://pan.baidu.com/s/1AxdGi ...

  2. Java中应该返回零长度数组或空集合,而不是返回null(转)

    说明:为了避免在数组和集合的获取上增加null的判断,同时也能减少不必要的空指针异常,通常会在业务返回零数组或空集合. 方法: 1.数组: 定义全局静态常量来减少内存开销:private static ...

  3. Two PWM outputs from MCU combine to form a monotonic 16-bits DAC

    http://www.edn.com/design/analog/4329365/Combine-two-8-bit-outputs-to-make-one-16-bit-DAC

  4. ionic开发环境搭建之ios

    前言 公司在做完ionic androud版后就开始做ios版,虽然ios的坑我觉得比起androud少了很多,但是作为第一次接触ios的我来说,环境实在太麻烦,从搭环境到打包一个正式版的ios ap ...

  5. Step by Step 設定 TFS 2012 Create Team Project 權限 - 避免 TF218017、TF250044

    基本上權限的設定和 以往的 TFS 沒有什麼太大的差別 只是這次的權限設定畫面有略作些調整,我還是一併整理一下 當我們用 TFSSetup 的帳號安裝完 TFS 2012 後 想要在自已的電腦上用自已 ...

  6. linux文件系统命令(6)---touch和mkdir

    一.目的 本文将介绍linux下新建文件或文件夹.删除文件或文件夹命令.         touch能够新建文件,mkdir用来新建文件夹.rm用来删除文件或文件夹.         本文将选取ubu ...

  7. TortoiseSVN 图文使用教程

      1 安装及下载client 端 2 什么是SVN(Subversion)? 3 为甚么要用SVN? 4 怎么样在Windows下面建立SVN Repository? 5 建立一个Working目录 ...

  8. 微信公众平台——获取access_token、expires_in

    微信公众平台——获取access_token.expires_in 在微信公众平台接口开发中,Access Token占据着重要地位,它相当于进入各种接口的邀请,拿到这个钥匙才拥有调用其他各种特殊接口 ...

  9. 使MySQL对表名不区分大小写

    今天郁闷死了,在LINUX下调一个程序老说找不到表,但是我明明是建了表的,在MYSQL的命令行下也可以查到,为什么程序就找不到表呢? 后来请教了一个老师才搞定,原来是LINUX下的MYSQL默认是要区 ...

  10. Ext树形结构

    <html> <head> <meta http-equiv="Content-Type" content="text/html; char ...