服务器如何利用iptables的recent模块来抵御DDOS攻击
《服务器如何利用iptables的recent模块来抵御DDOS攻击》要点: 网站上线后,没多久就会有很多人用各种黑客工具来扫描你的网站,比如下图,一秒钟内会有N>30次的扫描。 扫描的地址大多是一些开源软件的地址,比如kindeditor, dedecms,phpcms等程序上传文件地址或有漏洞的页面地址。 此外,限制黑客猜密码也是这样不断暴力破解,有时也会受到DDOS的功击。 它们共同的特点就是“短时间内高频率”功击。 这类小规模的功击或扫描,可以利用iptables的recent模块来抵御,主要规则是限制在多少秒内发起多少次读取,一旦触发,就阻止该IP访问。 不过,我知道搜索引擎的蜘蛛有时也会很疯狂,比如谷歌蜘蛛,虽然不在中国办公,但它的蜘蛛还是不断抓取国内网站。只是不知道它的抓取频率是多少,为了避免把疯狂的蜘蛛抓取和这类功击行为混在一起拒绝了,我特地看了一下使用VEPHP框架开设的网站89微商代理网 统计系统。如下图统计的,看看时间频率就可以放心了,蜘蛛没那么疯: 这样就放心了,我们大胆使用iptables的recent。 命令:在60秒内连续连接超过20次,就把该IP拒绝掉。 $ iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set $ iptables -A INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 20 -j DROP 保存设置: $ service iptables save #或iptables-save $ service iptables restart 小知识点: 这里的hitcount最大值只能设置20,可以执行这条命令查看你服务器上的ip_pkt_list_tot限制: $ cat /sys/module/xt_recent/parameters/ip_pkt_list_tot 默认都是输出20. 如果你想要设置更大的,可以这样做: 进入到/etc/modprobe.d/ 目录下新建配置文件xt_recent.conf: $ cd /etc/modprobe.d/ $ vi xt_recent.conf 添加: options xt_recent ip_list_tot=1024 ip_pkt_list_tot=200 这样就可以把上限提高到200了。 同理,你也可以用它来限制黑客对你服务器暴力破解密码行为: iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name SSHPOOL --rcheck --seconds 3600 --hitcount 5 -j DROP iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --name SSHPOOL --set -j ACCEPT
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |