使用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
下一篇 2015-02-09

相关推荐

  • 文件权限

    浅谈文件权限 Linux系统中的每个文件和目录都有访问许可权限,用他来确定谁能通过何种方式对文件和目录进行访问和操作。  文件权限: 文件或目录的访问权限分为只读,只写和可执行三种。  文件的权限主要针对三类对象进行定义:          owne…

    Linux干货 2016-08-07
  • bash的工作特性之命令执行状态返回值和命令行展开

    bash特性之一:命令别名 将一个命令用其他名字来代替,可以用别名来简化操作。 获取当前用户可用的别名的定义: ~]#alias NAME=’COMMAND’ bash的特性之二:命令历史 shell进程会保存其会话中用户曾经执行过的命令;命令通过其“历史文件”来持久保存此前执行过的命令;每个用户都有其自己专用的历史文件; HISTSIZE:shell进程的…

    Linux干货 2016-11-06
  • 文件系统自动挂载

    什么是文件系统自动挂载?          利用mount在shell终端进行挂载的时,开机自动启动文件文件系统不会自动挂载,我们需要开机的时候自动挂载文件系统,称为文件系统自动挂载 实现Linux自动挂载文件:/etc/fstab Linux中挂载注意事项:  &nb…

    Linux干货 2016-08-29
  • 基于Cobbler实现多版本操作系统自动部署

    前言     在生产环境中,当需要批量部署几十甚至上百台服务器时,实现自动化安装操作系统尤为重要,按照传统的光盘引导安装是不可想象的;此前我们通过pxe+kickstart简单实现了自动化安装,但只能实现单一版本安装,当需要部署不同版本或不同引导模式(BIOS、EFI)时,此种方式就不够灵活。而Cobbler正是为了解…

    Linux干货 2015-08-11
  • 马哥教育网络班22期+第2周课程练习 忍者乱太郎喻成

    1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示?  type 查看文件类型的命令    type /dev/sda     mkdir 创建文件夹     mkdir [ -p -v…

    Linux干货 2016-09-06
  • 文本三剑客 grep sed awk

    模式,选项。常用用法。

    2017-12-03