1.增大队列SYN最大半连接数

在Linux中执行命令"sysctl -a|grep net.ipv4.tcp_max_syn_backlog",在返回的"net.ipv4.tcp_max_syn_backlog=256"中显示 Linux队列的最大半连接容量是256.这个默认值对于Web服务器来说是远远不够的,一次简单的SYN***就足以将其完全占用.因此,防御DOS***最简单的办法就是增大这个默认值,在Linux中执行命令"sysctl -w et.ipv4.tcp_max_syn_backlog=3000",这样就可以将队列SYN最大半连接数容量值改为3000了

2.减小超时值

  在Linux中建立TCP连接时,在客户端和服务器之间创建握手过程中,当服务器未收到客户端的确认包时,会重发请求包,一直到超时才将此条目从未连接队列是删除,也就是说半连接存在一定的存活时间,超过这个时间,半连接就会自动断开,在上述SYN***测试中,当经过较长的的时间后,就会发现一些半连接已经自动断开了.半连接存活时间实际上是系统所有重传次数等待的超时时间之和,这个值越大,半连接数占用的Backlog队列的时间就越长,系统能处理的 SYN请求就越少,因此,缩短超时时间就可以有效防御SYN***,这可以通过缩小重传超时时间和减少重传次数来实现.在Linux中默认的重传次数为5 次,总超时时间为3分钟,在Linux中执行命令"sysctl -w net.ipv4.tcp_synack_retries=1",将超时重传次数设置为1.

3.利用SYN cookie来防御DOS***

  除了在TCP协议栈中开辟一个内存空间来存储半连接数之外,为避免因为SYN请求数量太多,导致该队列被填满的情况下,Linux服务器仍然可以处理新的 SYN连接,可以利用SYN Cookie技术来处理SYN连接.什么是SYN Cookie呢?SYN Cookie是用一个Cookie来响应TCP SYN请求的,在正常的TCP连接过程中,当服务器接收一个SYN数据包,就会返回一个SYN -ACK包来应答,然后进入TCP -SYN -RECV(半开放连接)状态来等待最后返回的ACK包.服务器用一个数据空间来描述所有未决的连接,然而这个数据空间的大小是有限的,所以***者将塞满这个空间,在TCP SYN COOKIE的执行过程中,当服务器收到一个SYN包的时候,他返回一个SYN -ACK包,这个数据包的ACK序列号是经过加密的,它由TCP连接的源地址和端口号,目标地址和端口号,以及一个加密种子经过HASH计算得出的,然后服务器释放所有的状态.如果一个ACK包从客户端返回后,服务器重新计算COOKIE来判断它是不是上个SYN -ACK的返回包.如果是的话,服务器就可以直接进入TCP连接状态并打开连接.这样服务器就可以避免守候半开放连接了,在Linux中执行命令"echo "echo "1" > / proc/sys/net/ipv4/tcp_syncookies"> > /etc/rc_local",这样即可启动SYN Cookie,并将其添加到了Linux的启动文件,这样即使系统重启也不影响SYN Cookie的激活状态.

4.过滤可疑的IP直址

  当客户机对服务器进行***时.在服务器上可以进行抓包操作,这样可以对数据包中的IP进行检测,然后再对这些可疑的潮行过滤,从而将其无法正常连接服务器.利用Linux自带的"tcpdump"命令可以实现抓包操作.执行命令"tcpdump -c 1000 -l eth 0 -n dst port 80 > test.txt",就可以在当前目录下创建一个'test.txt"文件,在其中包含大量的网络数据包,通过对该文件的的分析,就很容易得到可疑的客户端IP,之后利用系统自带的"iptables"命令即可对可疑IP进行屏蔽.便如执行命令"iptables -A INPUT -s 219.29.78.79 -d 0/0 -j REJECT",即可禁止"219.29.78.79"的外部主要访问本机所有端口.其中"-j REJECT"参数表示禁止访问.

原文来自:http://www.cnblogs.com/ask2650/archive/2010/02/20/1669582.html

转载于:https://blog.51cto.com/naonao/1409742

转帖:对linux中半增加半连接数量和防止服务器被dos***相关推荐

  1. 转帖:对linux中半增加半连接数量和防止服务器被dos攻击

    .增大队列SYN最大半连接数 在Linux中执行命令"sysctl -a|grep net.ipv4.tcp_max_syn_backlog",在返回的"net.ipv4 ...

  2. 在Linux中修改打开文件数量和进程数量限制的3种方法

    方法一:使用ulimit命令 ulimit命令可用来增加在shell中打开文件的数量.这个命令是系统内置命令,因此它只影响bash和从它启动的程序. ulimit -n 65535 方法二:使用PAM ...

  3. linux hosts文件如何修改_3 种方法教你在 Linux 中修改打开文件数量限制

    当文件被打开访问时,操作系统临时分配一个名为文件句柄的数字.主内存的一个特殊区域是为文件句柄预留的,这个区域的大小决定了一次可以打开多少个文件. Linux上的进程受到许多限制,这些限制也阻碍它们正确 ...

  4. 在Linux中修改打开文件数量限制的3种方法

    当文件被打开访问时,操作系统临时分配一个名为文件句柄的数字.主内存的一个特殊区域是为文件句柄预留的,这个区域的大小决定了一次可以打开多少个文件.Linux上的进程受到许多限制,这些限制也阻碍它们正确地 ...

  5. linux增加分区swap,linux中Centos7增加swap分区详解

    注意:(Redhat5官方推荐) RAM<=4G,swap=2G;RAM>4G,<16G,swap=4G;RAM>16G,<64G,swap=8G;RAM>64G, ...

  6. linux的物理内存中swap压缩,linux中Centos7增加swap分区详解

    注意:(Redhat5官方推荐) RAM<=4G,swap=2G;RAM>4G,<16G,swap=4G;RAM>16G,<64G,swap=8G;RAM>64G, ...

  7. linux 获取内核线程数,如何从命令行获取Linux中的CPU /内核数量?

    前言: 基于/proc/cpuinfo的答案的问题是,它们parsing了供人类使用的信息,因此缺乏为机器分析devise的稳定格式 :输出格式可能因平台和运行时间条件而有所不同; 在Linux上使用 ...

  8. linux中安装pip镜像怎么设置_linux服务器怎么安装pip?

    展开全部 首先Linux服务器上更新python,pip的下载e68a84e8a2ad3231313335323631343130323136353331333365633837和安装,setupto ...

  9. linux中sed命令用例,Linux中使用sed命令或awk命令修改常规配置文件

    一.方案: Linux中使用sed命令或awk命令修改常规配置文件 二.步骤: 1.假设有一个a.txt,内容如下: #!/bin/bash aa= bbb= ccc= #ddd= 2.如果想要把里面 ...

最新文章

  1. matlab GUI figure置右上角
  2. 模糊数学笔记:六、模糊模型识别-I(最大隶属度原则)
  3. java基础系列:集合总结(6)
  4. python教程:利用while求100内的整数和
  5. 若依前后端分离版手把手教你本地搭建环境并运行项目
  6. 查看java源码时出现class文件而不是java文件,可能是因为java的安装路径下没有src.zip文件而是javafx-src.zip文件
  7. MYSQL中group_concat有长度限制!默认1024
  8. bash编程初体验之if
  9. 【shell编程】1、shell编程简介
  10. http服务器使用libevent实现get和post请求实例
  11. 海湾汉字编码表全部_汉字编码对照表
  12. SXF python
  13. X-Brain:如此美丽可爱的大脑工作原理
  14. 游戏中常用的设计模式
  15. 先验分布,后验分布,共轭分布的关系
  16. 3D角色硬表面建模技巧与思路分享【案例解析】
  17. 滚动轴承退化趋势预测
  18. EJB_开发EJB容器模型的WEB服务
  19. vue2中,使用vite流程之应用前端构建工具vite和vite-plugin-vue2插件
  20. python程序员兼职平台-用Python拓展副业的几种方式

热门文章

  1. 计算机应用技术自我分析,计算机应用*个人自我鉴定
  2. c语言如何控制电脑串口,C语言直接驱动硬件实现PC机的串口操作
  3. 10kv线路负载率计算_10kV配电线路保护的整定计算
  4. dvt高危患者的护理措施_dvt的预防及护理
  5. 计算机基础知识二进制转换,计算机基础知识数制转换
  6. 32位操作系统,为什么最大支持4G存储空间,2的32次方 = 4294967296bit = 4G,这个怎么计算出来的,
  7. 数据分析体系构建那点事!
  8. 倒推后台系统_CRM客户管理系统
  9. “大数据标准”征稿通知
  10. Oralce 查看,修改,kill 连接数