VPS

利用iptables和webmin屏蔽恶意扫描IP地址

一段时间以来,在VPS的日志/var/log/secure里总会发现一些恶意尝试登录的IP,具体表现就是不断的用root或者其他揣测出的用户名尝试登录但是失败。尽管你已经设置了强密码,但还是觉得就这样被扫描很不爽,怎么办?一句话,屏蔽丫的。   先读取/var/log/secure中的特定字段,筛选出待屏蔽的IP,再利用自带防火墙iptables就能办到。   shell代码点击查看,复制代码保存为文件scaniptables.sh(文件名随便自定义,这里举例说明)。

 

将scaniptables.sh上传至/root目录下,执行以下命令赋予权限:

chmod +x scaniptables.sh

根据一文,安装好webmin后即可创建定时自动作业。如下图所示。 图一 cron_iptables

图二 pptp_vpn_server

注意点:   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

Leave a Reply

学习的梦想

锤炼的彩色