不知道之前是哪位同事心大,居然把一台Linux主机在防火墙上做了主机映射,结果这台主机完全暴露在公网上,关键是sshd服务端口也没改。一查日志,全是暴力登录的记录,真担心哪天密码被暴力破解了。
为了解决这个问题,想到了使用firewalld来禁止这些ip地址通过ssh连接,从而阻断服务器被远程暴力破解,以下是详细步骤。
1.定义firewalld ipset
2.定义firewalld规则调用ipset
3.将日志中的ip添加到ipset中
因为日志中ip很多,而且会不断更新,不可能手动添加,于是打算写个shell脚本,通过定时任务添加到ipset中。shell脚本内容如下:
4.定时任务
说明:任务每小时执行一次
5.其他
此时可以用如下方法查询被禁止的IP地址:
使用firewall-cmd命令查看已经被进入黑名单的IP地址
经过查询,居然有这么多IP,由此可见服务器暴露在公网上是有多不安全。
查看ipset配置文件blacklist.xml
注意,这里使用的firewalld ipset 是指 firewalld 与 ipset 工具的集成,而不是独立的ipset工具,如果使用ipset命令创建IP地址集合,firewalld将无法与之关联。