我们的 SQL 服务器正在遭受字典攻击,因此我想使用 shorewall 黑名单阻止一些 IP。我在 /etc/shorewall/blacklist 中提到了 IP,如下所示
#ADDRESS/SUBNET PROTOCOL PORT
Some IP
没有用,所以我又试了一次,如下所示,但还是不起作用
#ADDRESS/SUBNET PROTOCOL PORT
Some IP - -
我有这个配置 BLACKLIST_DISPOSITION=DROP,并且我正在使用 shorewall 版本 4.4.6
我需要检查或添加什么吗?
答案1
通常,在这种情况下,更好的策略是采取主动。很少有需要将 SQL 服务器暴露给整个公共互联网的情况;考虑使用 VPN 或防火墙来限制仅对有理由连接到它的主机(或网络)进行访问。
如果发起暴力攻击的主机在您的控制之下,请解决根本原因(受感染的机器或恶意用户)。
也就是说,请确保blacklist
为干扰流量到达的接口指定该选项,否则不会检查该接口上进入的任何流量的黑名单。
答案2
您的 Shorewall 配置似乎应该可以正常工作,但 Shorewall 是一个由小版本和更改组成的复杂迷宫,因此很难确定。在更高版本中,您需要编辑 /etc/shorewall/zones 并添加blacklist
选项IN
以启用特定区域的黑名单。甚至更高版本也使用不同的文件并完全删除 /etc/shorewall/blacklist 文件。您最好升级到较新的版本。
话虽如此,在公共互联网上安装 SQL 服务器并不是一件好事。您确实应该使用白名单对其进行适当的防火墙保护,或者最好仅通过 VPN 来访问它,并完全阻止公共互联网。
答案3
我遇到了这个问题
我必须说,过去几年我没有阅读 Shorewall 文档,而且,一次又一次升级,我的配置都不可靠。我刚刚发现了检查并转换所有内容的
命令。shorewall update
因此,如果您在 shorewall.conf 中设置DYNAMIC_BLACKLIST=Yes
了BLACKLIST_DISPOSITION=DROP
,那么您的黑名单文件(现在/etc/shorewall/blrules
至少在 shorewall 5.x 中名为 )应该可以工作。
无论如何,不要无缘无故地让 MySQL 端口公开开放。