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

技术 1881 次围观 5 次吐槽

iptables

  一段时间以来,在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后即可创建定时自动作业。如下图所示。
图一
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

  (2013年5月9日补充)使用Ngnix作为web服务器的,可以参照《VPS 屏蔽扫描网站的 IP》一文,使用脚本定时检测Nginx日志。

转载请注明:秋水逸冰 » 利用iptables和webmin屏蔽恶意扫描IP地址

发表评论
取消评论
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
表情

已有评论 (5)

  1. 这个google driver上找不到了啊
    demoxu1年前 (2016-05-13)回复
    • Google Code 已经被关闭了,但有个备份文件可以下载,下载完成后找到 scaniptables.sh 可以参考: https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/teddysun/source-archive.zip
      秋水逸冰1年前 (2016-05-13)回复
  2. GOOD.I like it.脚本短小精悍,作用大。要是能够更傻瓜一点就好了。
    软件分享4年前 (2013-05-03)回复
    • Linux下基本上都是命令行,自己动手还是很有成就感滴!哈哈。
      秋水逸冰4年前 (2013-05-03)回复
      • vps,羡慕嫉妒恨啊
        vfhky4年前 (2013-05-03)回复