共计 1017 个字符,预计需要花费 3 分钟才能阅读完成。
一段时间以来,在 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