阻擋惡意 spider, iptables 設定

未分類
繼上一次的 檔惡意的 spider 之後
昨日又遭受一次 spider 的攻擊
導致 Linode 上主機的 mysql 又被搓掛

只好很仔細的研究一下 iptables 的用法了

如果要檔一個 ip
可以用以下指令


iptables -A INPUT -s [ip] -j DROP


[ip] 請填入你要的 ip
例如


iptables -A INPUT -s 58.68.242.162 -j DROP

如果 spider 是一組連續的 ip
可以這樣下

iptables -A INPUT -p tcp  -m iprange --src-range [ip_begin]-[ip_end] -j DROP

例如
iptables -A INPUT -p tcp  -m iprange --src-range 1.202.218.1-1.202.218.255 -j DROP

這樣輸入完畢
就ok了
這些 ip 就再也連不進來了

那怎樣算是惡意的 spider 呢?
像是已經寫了 robots.txt 規則 但是還是亂搓狂搓的
或是一秒鐘連續搓個三五次的
我都認為是惡意的 spider
(尤其是對岸的搜尋引擎幾乎都是這樣)

這裡提供我設定的案例給各位參考

JikeSpider
iptables -A INPUT -p tcp  -m iprange --src-range 1.202.218.1-1.202.218.255 -j DROP

Yahoo! Slurp China
iptables -A INPUT -p tcp  -m iprange --src-range 110.75.175.1-110.75.175.255 -j DROP

Baiduspider
iptables -A INPUT -p tcp  -m iprange --src-range 119.63.193.1-119.63.193.255 -j DROP

bingbot/2.0
iptables -A INPUT -p tcp  -m iprange --src-range 157.55.35.1-157.55.35.255 -j DROP

這樣設定完還不夠
如果哪天主機需要重開機
這些設定全部都會不見

有兩種方法
一種就是把剛剛那些指令
寫到 local.rc 裡面
讓這些指令一開機就執行

另一種比較複雜一點
首先用 iptables-save 把設定寫出

iptables-save > /etc/firewall.conf

然後一樣在 local.rc 內寫上

iptables-restore < /etc/firewall.conf

就會在開機的時候把之前的設定 restore 回來


以上
設定完畢就可以高枕無憂了~