《服务器如何利用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
对连接到本机的SSH连接进行限制,每个IP每小时只限连接5次。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/45.html