使用iptables缓解DDOS及CC攻击

缓解DDOS攻击

防止SYN攻击,轻量级预防

iptables -N syn-flood
iptables -A INPUT -p tcp –syn -j syn-flood
iptables -I syn-flood -p tcp -m limit –limit 3/s –limit-burst 6 -j RETURN
iptables -A syn-flood -j REJECT

防止DOS太多连接进来,可以允许外网网卡每个IP最多15个初始连接,超过的丢弃

iptables -A INPUT -i eth0 -p tcp –syn -m connlimit –connlimit-above 15 -j DROP
iptables -A INPUT -p tcp -m state –state ESTABLISHED,RELATED -j ACCEPT

用Iptables缓解DDOS (参数与上相同)

iptables -A INPUT  -p tcp --syn -m limit --limit 12/s --limit-burst 24 -j ACCEPT
iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

缓解CC攻击

当apache站点受到严重的cc攻击,我们可以用iptables来防止web服务器被CC攻击,自动屏蔽攻击IP。

1.系统要求
(1)LINUX 内核版本:2.6.9-42ELsmp或2.6.9-55ELsmp(其它内核版本需要重新编译内核,比较麻烦,但是也是可以实现的)。
(2)iptables版本:1.3.7

  1. 安装
    安装iptables1.3.7和系统内核版本对应的内核模块kernel-smp-modules-connlimit

  2. 配置相应的iptables规则

示例如下:

(1)控制单个IP的最大并发连接数

iptables -I INPUT -p tcp --dport 80 -m connlimit  --connlimit-above 25 -j REJECT #允许单个IP的最大连接数为25个

早期iptables模块不包含connlimit,需要自己单独编译加载,请参考该地址http://sookk8.blog.51cto.com/455855/280372 不编译内核加载connlimit模块

(2)控制单个IP在一定的时间(比如60秒)内允许新建立的连接数

iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --update --seconds 60 --hitcount 30 -j REJECT
iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP_ACCESS --set -j ACCEPT

单个IP在60秒内只允许最多新建30个连接

实时查看模拟攻击客户机建立起来的连接数

watch 'netstat -an | grep:21 | grep <攻击IP>| wc -l

查看模拟攻击客户机被 DROP 的数据包数

watch 'iptables -L -n -v | grep <攻击IP>

 

原文链接:http://www.cszhi.com/20111010/iptables-remission-ddos-cc.html

 

 

原创文章,作者:追马,如若转载,请注明出处:http://www.178linux.com/368

(0)
追马追马
上一篇 2015-02-09 10:33
下一篇 2015-02-09 11:19

相关推荐

  • 马哥教育21期网络班—第四周课程+练习

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@localhost ~]#cp -rf /etc/skel /home/tuser1[root@localhost ~]#chmod -R g…

    Linux干货 2016-07-16
  • magedu_20160804

    文本处理工具和grep过滤工具以及正则表达式    一.文本处理工具相关命令    前面课程中曾经使用过cat,head,tail命令查看相关文件,head,tail分别查看文件开头、结尾的行信息。对于特定想要显示的信息则需要特定的文本查看指令,比如cut,sort,paste,uniq等。如下内容分别对每个…

    Linux干货 2016-08-08
  • 有关shell脚本

    SHELL脚本 在Linux运维工作中有着大量的重复性质的工作,比如同时给很多台的服务器备份,查看多台的内存情况,等等。这样的情况下总不能一个一个服务器自己去看,那样耗时,费力,还容易出错。所以编写程序来做这些事情就成了必要的工作。而SHELL就是完成这项工作的。   脚本第一行的开头写上#!/bin/bash 这是属于格式性质的,作用在于加上执行…

    2017-08-12
  • Shell脚本编程3

    Shell脚本编程3  一、杂项知识整理 1、select与case select是个无限循环,因此要记住用break命令退出循环,或用exit命令终止脚本。也可以按ctrl+c退出循环,自动生成数字的选择项,适合创建菜单。 select经常和case联合使用。与for循环类似,可以省略in LIST,此时使用位置参量$1、$2等传递参数。 cas…

    Linux干货 2016-08-19
  • Code Review中的几个提示

    Code Review应该是软件工程最最有价值的一个活动,之前,本站发表过《简单实用的Code Review工具》,那些工具主要是用来帮助更有效地进行这个活动,这里的这篇文章,我们主要想和大家分享一下Code Review代码审查的一些心得。 首先,我们先来看看Code Reivew的用处: Code reviews 中,可以通过大家的建议增进代码的质量。 …

    Linux干货 2015-04-03
  • CentOS7 实现网卡绑定

    Bonding ;理念 将多块网卡绑定同一IP地址对外提供服务,可以实现高可用 或者负载均衡。直接给两块网卡设置同一IP地址是不可以的 。通过bonding,虚拟一块网卡对外提供连接,物理网卡的 被修改为相同的MAC地址 banding工作模式 Mode 0 (balance-rr) 轮转(Round-robin)策略: 从头到尾顺序的在每一个slave 接…

    2017-12-19