一段时间以来,在VPS的日志/var/log/secure里总会发现一些恶意尝试登录的IP,具体表现就是不断的用root或者其他揣测出的用户名尝试登录但是失败。尽管你已经设置了强密码,但还是觉得就这样被扫描很不爽,怎么办?一句话,屏蔽丫的。
先读取/var/log/secure中的特定字段,筛选出待屏蔽的IP,再利用自带防火墙iptables就能办到。
shell代码点击该链接查看,复制代码保存为文件scaniptables.sh(文件名随便自定义,这里举例说明)。
将scaniptables.sh上传至/root目录下,执行以下命令赋予权限:
chmod +x scaniptables.sh
根据《使用webmin管理PPTP VPN Server》一文,安装好webmin后即可创建定时自动作业。如下图所示。
图一
注意点:
1、需用root用户运行,更改iptables规则必须要是root才行;
2、设置自动运行的时间表,要根据实际情况调整,比如我就是每个一小时运行一次;
3、被屏蔽后的IP可以在/root/blockedip.log中看到,如果你的IP登录到VPS也失败,而恰巧脚本又自动运行了,如何解封你的IP呢?请参照第4点;
4、去除iptables规则的方法:
首先,你要能登录到SSH,方法有很多,比如ADSL重新拨号更换IP,又或者是连上VPN后再登录。
其次,登录SSH后,执行命令查看iptables规则:
service iptables status
你会看到诸如以下的iptables规则:
Table: filter Chain INPUT (policy ACCEPT) num target prot opt source destination 1 LOGINFAIL_LIST all -- 109.87.208.17 0.0.0.0/0 2 LOGINFAIL_LIST all -- 113.140.43.162 0.0.0.0/0 3 LOGINFAIL_LIST all -- 115.238.73.16 0.0.0.0/0 4 LOGINFAIL_LIST all -- 115.68.22.162 0.0.0.0/0 5 LOGINFAIL_LIST all -- 115.95.166.247 0.0.0.0/0
如果你想清除num为1,IP为109.87.208.17的iptables规则,只需运行:
iptables -D INPUT 1
(2013年5月9日补充)使用Ngnix作为web服务器的,可以参照《VPS 屏蔽扫描网站的 IP》一文,使用脚本定时检测Nginx日志。
转载请注明:秋水逸冰 » 利用iptables和webmin屏蔽恶意扫描IP地址