《服務器如何利用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.snjht.com/jiaocheng/45.html