自从用上了 VPS 后,发现大量的网络攻击无时无刻都存在,比如被扫描端口,被暴力破解,被猜解后台密码,被垃圾评论骚扰。一段时间以来,我发现来自俄罗斯和土耳其的 IP 攻击最多,而我的网站是中文,阅读者大多数来自中国。因此屏蔽这两个国家的 IP 段是不会使网站访问受影响,反而会减少攻击。
那么,如何屏蔽来自俄罗斯和土耳其的 IP 呢?(请举一反三,屏蔽其他国家 IP 方法也是一样的)
网上流传的在 IPdeny 下载俄罗斯和土耳其的 IP 地址列表全为空,因此我找到了countryipblocks(需翻,国内 IP 无法访问),选择俄罗斯和土耳其,生成 CIDR,分别复制并保存为 ru.zone 和 tr.zone。
获取了国家的所有 IP 地址后,要想屏蔽这些 IP 就很容易了,写个脚本逐行读取 ru.zone 和 tr.zone 文件并加入到 iptables 中即可。
本地下载http://file.111com.net/upload/2014/1/block_ru_tr.sh
使用方法:
wget http://file.111com.net/upload/2014/1/block_ru_tr.sh
chmod +x block_ru_tr.sh
./block_ru_tr.sh
该脚本执行完毕后,屏蔽日志位于当前目录下的blockedip.log文件中。有8791行。
该脚本在测试时,发现在基于 OpenVZ 的 VPS 中执行会出现“iptables: Memory allocation problem.”错误,原因是基于 OpenVZ 的 VPS 超售严重而导致内存分配不足。在基于 Xen 的 VPS 中执行则完全没有问题。
其实还可以通过 .htaccess 规则来限制这两个国家的 IP 访问。方法如下:
在 countryipblocks 的页面,选择 .htaccess Deny,再分别选择国家 RUSSIAN FEDERATION 和 TURKEY,点击“Creat ACL”按钮即可生成 .htaccess 规则。复制粘贴到文本文件中,上传至 wordpress 根目录下,并改名为 .htaccess,如果该文件已经存在,则需要将在线生成的 .htaccess 屏蔽 IP 规则添加至 # BEGIN WordPress 和 # END WordPress 之间即可。
上面是以国家为单位了,如果只是过滤指定IP可以参考下面方法
iptables 屏蔽ip
iptables -I INPUT -s 202.77.176.106 -j DROP
封整个段即从192.0.0.1到192.255.255.254的命令
iptables -I INPUT -s 192.0.0.0/8 -j DROP
禁止ip段的时候要看清除额,不要吧自己的ip加入了额 呵呵
茶杯头甜蜜终章dlc 官方手机版v1.0.0.3
下载火柴人传说暗影格斗内置菜单 最新版v3.0.1
下载荒野乱斗测试服 安卓版v61.10.3
下载荒野乱斗彩虹服 安卓版v61.10.3
下载寒霜启示录 安卓版v1.25.10
寒霜启示录是一款生存模拟游戏,不少玩家可能对于末日都有着自己
末日城堡免广告版 安卓最新版v0.7.1
末日城堡免广告版是一款非常好玩的模拟经营类游戏,内部可以不看
甜蜜人生模拟器 最新版v1.4.5
甜蜜人生模拟器是一款非常好玩的模拟恋爱手游,玩家在这里能够对
武器锻造师内置功能菜单 v10.4
武器锻造师内置菜单版是游戏的破解版本,在该版本中为玩家提供了
开放空间overfield 安卓版v1.0.5
开放空间Overfield是一款箱庭养成经营手游,让你在广阔